Looking for the exact CPT code for a PFT test? The short answer is that there isn’t just one code to cover everything. Pulmonary function testing usually requires a combination of different billing codes depending on the specific procedures your clinic performs. The most common ones you’ll see on a claim are 94010, 94060, 94726, and 94729. Submitting clean claims for these respiratory services means knowing exactly how to bundle them together, which modifiers to append, and what specific documentation payers demand. In this guide, we will break down the exact billing rules, National Correct Coding Initiative (NCCI) edits, and coding strategies your pulmonology practice needs to get paid fairly and quickly this year.
What Is a PFT Test and Why Does Coding Matter?
A pulmonary function test (PFT) isn’t a single procedure. It’s actually a comprehensive evaluation of how well your patient’s lungs take in and release air, and how efficiently they move gases like oxygen into the blood. Pulmonologists rely heavily on these panels to diagnose chronic conditions like asthma, COPD, and pulmonary fibrosis.
But from a medical billing perspective? A complete PFT panel can become a massive headache if your front office team doesn’t understand the individual components. Coding matters here because insurance payers treat lung function tests very strictly. If you try to bill a basic spirometry and lung volumes together without checking NCCI edits, your claim is going to hit a brick wall. Revenue leaks happen constantly when medical coders miss add-on opportunities or fail to use the right modifier for the professional component of the test. Getting the CPT right means securing the revenue you actually earned for that 45-minute patient encounter, rather than waiting on a denial letter.
Is There One CPT Code for a PFT Test?
No, there is no single CPT code for a complete PFT test. You must bill the individual components performed. A standard PFT panel usually involves coding a combination of spirometry (94010 or 94060), lung volumes (94726), and diffusing capacity (94729) on the same claim.
Pulmonary Function Test CPT Codes List
Let’s look at the primary procedures you will usually see on a standard pulmonology superbill. Here is the core lineup of respiratory codes and exactly what they do.
| CPT Code | Descriptor / Service Name | What It Actually Measures | Primary or Add-on? |
| 94010 | Basic Spirometry | Forced vital capacity (FVC) and expiratory flows | Primary |
| 94060 | Bronchodilation Responsiveness | Lung function before and after medication | Primary |
| 94726 | Plethysmography | Total lung volume (using a “body box”) | Primary |
| 94727 | Gas Dilution/Washout | Lung volumes via helium or nitrogen | Primary |
| 94728 | Airway Resistance | Resistance via impulse oscillometry | Primary |
| 94729 | Diffusing Capacity (DLCO) | Gas exchange efficiency (carbon monoxide) | Primary |
Spirometry CPT Codes: 94010 vs 94060
This is where a lot of newer medical coders make their very first mistake. You have to choose between a basic breathing test and a pre/post-bronchodilator evaluation.
CPT 94010
This is your basic, standard breathing test. You use this code when the patient does a standard spirometry without any medication administered to open up their airways. It measures things like forced vital capacity (FVC) and forced expiratory volume (FEV1). It tells the doctor the baseline status of the patient’s breathing mechanics.
CPT 94060
Use this code when you test the patient once, administer a bronchodilator drug (like Albuterol), wait a few minutes, and then test them all over again. The goal here is to see if the medication actually improved their lung function, which is a key indicator for asthma reversibility.
The Golden Rule: You cannot bill these two together. Ever. If you do the pre- and post-test, 94060 covers the entire encounter. Billing 94010 and 94060 on the same date of service will trigger an automatic denial from Medicare and commercial payers alike.
Lung Volume CPT Codes: 94726, 94727 and 94728
Measuring total lung capacity requires highly specific gear. The exact code you pick depends entirely on the technology and method your clinic uses.
- 94726: Use this for plethysmography. This happens when the patient sits inside the enclosed glass cabin known as the “body box.” This is by far the most common and accurate method for measuring lung volumes today.
- 94727: Bill this code if you use gas dilution or washout techniques. This usually involves having the patient breathe in a specific mixture of nitrogen or helium.
- 94728: This code covers airway resistance measured by impulse oscillometry.
Keep in mind that you only bill one of these per patient encounter. Don’t stack them. If you do a body box test, just bill 94726 and move on.
Diffusing Capacity CPT Code (DLCO): 94729
When a pulmonologist needs to see how well oxygen transfers from the lungs right into the patient’s bloodstream, they order a DLCO test. The CPT code for diffusing capacity is 94729.
During this procedure, a very small, safe amount of carbon monoxide is used as a tracer gas. The patient inhales it, holds their breath for about ten seconds, and exhales. The machine analyzes the exhaled air to see how much gas crossed the alveolar-capillary membrane. This code almost always gets billed alongside a spirometry and lung volume code to create a “complete” PFT profile for the patient.
Other Related PFT CPT Codes
Sometimes the physician goes a bit beyond the standard trio of tests. Depending on the patient’s symptoms, they might order specialized evaluations. Here are a few supplemental codes you should definitely keep handy:
- 94070: Bronchospasm provocation evaluation. This involves multiple spirometries done after giving the patient methacholine or histamine to see how reactive their airways are.
- 94200: Maximum breathing capacity or maximal voluntary ventilation (MVV).
- 94375: Respiratory flow-volume loop.
- 94618: Pulmonary stress testing. This usually looks like a 6-minute walk test to evaluate oxygen desaturation during exercise.
How to Bill a Complete PFT Panel
So, what does a full panel actually look like when it drops onto a CMS-1500 claim form? Let’s walk through a real-world clinic scenario.
Imagine your pulmonologist orders a comprehensive workup for a new patient with suspected COPD. The respiratory tech takes the patient back. First, they perform a pre- and post-bronchodilator spirometry. Next, they put the patient in the body box for lung volumes. Finally, they run a DLCO test to check gas exchange.
Here is exactly how that claim should look:
- Line 1: 94060 (Bronchodilation responsiveness)
- Line 2: 94726 (Plethysmography)
- Line 3: 94729 (Diffusing capacity)
This is the holy trinity of PFT billing. Assuming your diagnosis codes prove medical necessity and the doctor signs the interpretation, this combination processes cleanly through Medicare and almost all commercial payers.
PFT Bundling Rules and NCCI Edits
You always have to watch out for NCCI edits. Medicare loves to bundle respiratory services together to prevent overpayment.
We already talked about how 94010 and 94060 are mutually exclusive. But what happens if you do a flow-volume loop (94375) alongside a basic spirometry? You might think you can easily bill both since they measure slightly different things.
NCCI edits say otherwise. The flow-volume loop is considered inherently bundled into the primary spirometry code unless it was performed for a distinctly separate, medically necessary reason. If you truly have a separate reason, you would need to append a modifier. But honestly, in a standard clinic setting, it is rarely justified. Keep a close eye on your claim scrubber to catch these overlaps before they go out the door.
PFT Modifiers: 26, TC, 25 and 59
Modifiers dictate who gets paid for what part of the test. Get them wrong, and you’re leaving money on the table or risking an audit.
| Modifier | What It Means | When to Use It for PFTs |
| 26 | Professional Component | The doctor interprets the results but does not own the equipment (e.g., doing the read at a hospital). |
| TC | Technical Component | The facility owns the equipment and pays the tech, but the doctor doesn’t do the final read. |
| None | Global Service | The doctor owns the equipment in their private practice and does the interpretation. |
| 25 | Significant E/M | Used on an office visit code if the doctor did a totally separate, full evaluation on the same day as the PFT. |
| 59 / X | Distinct Service | Used when doing an unbundled procedure that is separate from the main test, bypassing NCCI edits. |
ICD-10 Codes That Support PFT Medical Necessity
Even perfect CPT coding fails fast if your diagnosis doesn’t match up. Payers want hard proof the test was actually necessary for the patient’s care. You usually need symptoms or established chronic conditions to justify a full panel.
Some of the most common ICD-10 codes that support medical necessity include:
- J45.909 (Unspecified asthma, uncomplicated)
- J44.9 (Chronic obstructive pulmonary disease, unspecified)
- J84.10 (Post-inflammatory pulmonary fibrosis, unspecified)
- R06.00 (Dyspnea, unspecified)
- R05.1 (Acute cough)
Always code to the absolute highest level of specificity. If the patient has severe persistent asthma with an acute exacerbation, don’t just use the unspecified code. Dig into the chart and find the exact code that tells the whole clinical story.
Medicare and Payer Rules for PFT Billing
Every Medicare Administrative Contractor (MAC) has slightly different Local Coverage Determinations (LCDs) for pulmonary testing. If you are operating in Texas, you have to follow Novitas Solutions’ specific guidance.
Most payers require that the ordering physician clearly document why the test is needed today. Routine screening without symptoms? Good luck getting that paid. Some commercial insurers take it a step further and demand prior authorization for comprehensive pulmonary panels, especially if you are doing methacholine challenges or cardiopulmonary exercise stress testing. Always check payer portals before the patient even walks into the exam room.
PFT Reimbursement Rates
How much do these tests actually pay? Under the Medicare Physician Fee Schedule, rates fluctuate depending on your geographic location and whether you bill globally or just the professional component.
Roughly speaking, a global 94060 hovers around $50 to $60. A global 94726 brings in about $40, and 94729 pays near $45. So, a full panel can generate around $135 to $150 per patient for a private practice that owns the equipment. Keep in mind, these are ballpark figures. You always need to check the current year’s CMS fee schedule for your specific zip code to forecast exact practice revenue.
Common PFT Billing Mistakes and Denials
Why do PFT claims get kicked back so often? Here are the usual suspects:
- Missing the physician order: The chart lacks a formally signed order for the specific tests performed. Payers will ask for this during an audit.
- Wrong place of service: Billing global codes when the test actually happened in a hospital outpatient department. You should only bill the 26 modifier in a hospital setting.
- Diagnosis mismatch: The ICD-10 code doesn’t support the medical need for lung volumes or diffusing capacity.
The fix is simple. Audit your superbills before they drop. Make sure the clinical documentation explicitly mentions the indications and that the place of service matches the modifiers you applied.
PFT Documentation Checklist for Clean Claims
Don’t let bad chart notes ruin your clean claim rate. Your clinical documentation must include a few critical elements to survive a payer review:
- A clear, signed order from the treating provider.
- The medical rationale for the test (like new symptoms or tracking disease progression).
- The actual test data and graphical printouts from the PFT machine.
- A formal interpretation and report (I&R) written and signed by the physician.
Just having the machine printout in the file isn’t enough to bill the professional component. The doctor has to add their clinical insight and explain what the numbers actually mean for the patient’s treatment plan.
How Medical Billing Services Texas Helps Pulmonology Practices
Managing NCCI edits, modifier logic, and shifting Medicare rules drains a lot of time. If your practice is struggling with PFT denials or you’re tired of seeing high-dollar claims get stuck in accounts receivable, we can step in and fix it.
At Medical Billing Services Texas (MBS Texas), we handle the heavy lifting for pulmonology practices. We don’t charge flat monthly minimums or hide surprise setup fees in our contracts. Instead, we work on a completely transparent 2.99% collections-based pricing model. That means we only get paid when you actually get paid. If you want to stop leaking revenue on complex respiratory panels and get back to focusing on patient care, schedule a consultation to see how we streamline your cash flow and get your denials down to zero.
Frequently Asked Questions
Can I bill an E/M visit with a PFT on the same day?
Yes, you can, but only if the doctor performs a significant, separately identifiable evaluation and management service. You will need to attach modifier 25 to the E/M code. The chart notes must clearly show the separate work done beyond just interpreting the PFT results.
How often will Medicare pay for a PFT?
It depends entirely on medical necessity. There is no strict national frequency limit (like one per year), but if you do a full panel every single month without a documented change in the patient’s clinical condition, you should expect an audit.
Who can actually administer the test?
A trained respiratory technician or medical assistant can administer the test under the general supervision of a physician. However, the physician must be the one to provide and sign off on the final interpretation report to bill the professional component.
What if the patient cannot finish the PFT test—how do we bill that?
You shouldn’t bill the standard code as if everything went perfectly. Instead, you need to append modifier 52 (Reduced Services) to the specific CPT code you were attempting to perform. Make sure the physician’s clinical documentation explicitly outlines why the test was cut short so the insurance payer understands the reason for the modifier.
Can we bill separately for the Albuterol used during a bronchodilator response test (94060)?
Yes, you can and absolutely should bill for the medication itself. While CPT 94060 covers the actual labor and technical work of testing the patient before and after the drug, it does not cover the cost of the pharmaceutical supply you pulled from your cabinet.
Reviewed by the billing team at Medical Billing Services Texas (MBS Texas). Last updated October 2026.
AI tools helped with the first draft. Our team reviewed and edited it for accuracy.




