Floating Contact
Text Message
+1 (916) 299-5335

Pulmonary Function CPT Codes: The 2026 Billing, Bundling, and Reimbursement Guide for Providers

Pulmonary function CPT codes 2026 hero banner: spirometry codes 94010 and 94060, lung volume codes 94726-94728, diffusing capacity add-on 94729, exercise testing 94617-94621, NCCI bundling rules, and the January 2026 deletion of CPT 94662, from ClaimMax RCM.

No single pulmonary function CPT code covers every test. The code follows what the technologist performed, and for lung volumes the method used. The core set runs 94010, 94060, 94726, 94727, 94728, and 94729, inside the 94010 to 94799 range. One rule drives the most denials: 94060 includes baseline spirometry, so 94010 isn’t reported alongside it.

Every pulmonary function test cpt code below comes with its bundling exclusions. This guide covers the full list, NCCI rules, modifiers, ICD-10 pairing, 2026 Medicare rates, and the denial fix behind each one.

Key Takeaways

  • No single PFT code exists. The code follows the test performed and the method used.
  • CPT 94060 includes baseline spirometry. Billing 94010 alongside it gets bundled.
  • CPT 94726 and 94727 are alternative lung volume methods, not a stack. Bill the one used.
  • CPT 94729 is an add-on. It needs a qualifying primary PFT in the same session.
  • CPT 94662 was deleted effective January 1, 2026. Scrub your charge master.
  • The 2026 conversion factor rose, and a 2.5% work RVU cut hit PFTs. Rates moved both ways.

What Is a Pulmonary Function CPT Code?

Pulmonary function CPT codes report diagnostic tests that measure how the lungs move air and exchange gas. They sit in the pulmonary diagnostic testing and therapies range of CPT. The code you pick has to describe what the technologist did, including the method, not what the order asked for in general terms.

The Five Code Families in Pulmonary Function Testing

Five families cover almost everything a pulmonary lab bills. Anyone searching a lung function test cpt code lands inside one of them.

Spirometry: 94010, 94060, 94070, 94150, 94200, 94375

Lung volumes and airway resistance: 94726, 94727, 94728

Diffusing capacity: 94729

Exercise and pulmonary stress testing: 94617, 94618, 94619, 94621

Inhalation and respiratory therapy: 94640, 94664, 94667, 94668

A PFT visit is a set of components, not one service. One patient gets spirometry alone. The next gets spirometry, lung volumes, and diffusing capacity in a single session. Your claim has to mirror which components ran and which ones didn’t.

Who Sets the Rules for PFT Coding and Payment

Five bodies govern pulmonary function testing cpt code rules, and each one owns a different piece.

AMA: maintains CPT descriptors and the parenthetical instructions that tell you what not to report together.

CMS: sets Medicare coverage and payment.

Medicare Administrative Contractors: publish jurisdiction-level LCDs and billing and coding articles.

NCCI: sets the procedure-to-procedure bundling edits.

Commercial payers: write their own policies. Most mirror Medicare. Several add prior authorization on top.

When two of them disagree, the payer processing your claim decides what gets paid. That’s why the payer crosswalk in your billing system matters more than any single published rule.

The Complete Pulmonary Function CPT Code List for 2026

Four tables below cover every pulmonary function CPT code a lab bills in 2026. The third column carries the exclusions from the AMA parentheticals, which is where most bundling denials start. Coders searching a pulmonary test cpt code by number will find it in one of the four.

Spirometry and Airflow Codes

Spirometry codes measure airflow and volume. Three of them apply only to very young children, and coders miss that constantly.

Table 1. Spirometry and Airflow CPT Codes for 2026, With Bundling Exclusions

CPT CodeShort DescriptorDo Not Report With
94010Spirometry with graphic record94150, 94200, 94375, 94728
94011Spirometric flows, infant through age 2Adult spirometry codes
94012Infant flows before and after bronchodilatorAdult spirometry codes
94013Lung volumes, infant through age 2Adult lung volume codes
94060Bronchodilation responsiveness spirometry94010, 94150, 94200, 94375, 94640, 94728
94070Bronchospasm provocation, multiple determinations94728, routine spirometry in protocol
94150Vital capacity, total, separate procedure94010, 94060
94200Maximum breathing capacity94010, 94060
94375Respiratory flow volume loop94010, 94060, 94728

Note the age boundary on 94011, 94012, and 94013. All three apply to infants and children through 2 years of age. Several published guides describe them as adult spirometry variants, and billing them that way produces an age-mismatch denial from every payer that runs age edits.

Lung Volume, Airway Resistance, and Diffusion Codes

The cpt code for lung volumes depends on the method used, and these four codes get confused with each other more than any other group in the pulmonary section.

Table 2. Lung Volume, Airway Resistance, and Diffusion CPT Codes

CPT CodeShort DescriptorDo Not Report With
94726Plethysmography for lung volumes94727, 94728
94727Gas dilution or washout for lung volumes94726
94728Airway resistance by impulse oscillometry94010, 94060, 94070, 94375, 94726
94729Diffusing capacity, add-on codeBill with a qualifying primary
94750Pulmonary compliance studyNeeds a separate physician order

CPT 94726 reports lung volumes measured by body plethysmography. CPT 94727 reports lung volumes measured by gas dilution or washout. Neither one is a diffusion test. Diffusing capacity is 94729, and it carries a plus symbol because it’s an add-on.

Exercise and Pulmonary Stress Testing Codes

Exercise testing splits on monitoring intensity, and the code has to match what the protocol captured.

Table 3. Exercise and Pulmonary Stress Testing CPT Codes

CPT CodeShort DescriptorDo Not Report With
94617Exercise test for bronchospasm, with ECG94619, 94621, protocol spirometry
94618Pulmonary stress testing, simple94621, 94760, 94761
94619Exercise test for bronchospasm, no ECG94617, 94621, protocol spirometry
94621Cardiopulmonary exercise testing, complex94617, 94618, 94619, component services
94681Oxygen uptake with CO2 output94621 in the same encounter
94690Oxygen uptake, rest, indirect94621 in the same encounter

One caution on this family. Codes 96417, 96418, and 96421 appear in circulating guidance as pulmonary exercise testing codes. They’re chemotherapy administration codes. Pulmonary stress testing is 94617, 94618, 94619, and 94621.

Inhalation Therapy and Monitoring Codes

Frequency, not bundling, drives the payment risk on this group.

Table 4. Inhalation Therapy, Oximetry, and Unlisted Pulmonary CPT Codes

CPT CodeShort DescriptorFrequency Note
94640Inhalation treatment for airway obstructionOnce per episode of care
94664Device demonstration or evaluationUsually once per beneficiary per group
94667Chest wall manipulation, initialPer session
94668Chest wall manipulation, subsequentPer session
94760Pulse oximetry, single determinationBundled into many services
94761Pulse oximetry, multiple determinationsBundled into many services
94762Pulse oximetry, continuous overnightPer study
94799Unlisted pulmonary serviceRequires a narrative report

CPT 94010 reports baseline spirometry. CPT 94060 reports spirometry before and after a bronchodilator. CPT 94726 reports lung volumes by body plethysmography, and 94727 reports lung volumes by gas dilution or washout. CPT 94729 reports diffusing capacity as an add-on. Code groupings and the 94664 frequency rule come from the CMS respiratory care billing article.

What Changed for PFT Billing in 2026

Three changes hit pulmonary function CPT codes this year. Most published guidance still hasn’t caught any of them.

CPT 94662 Was Deleted Effective January 1, 2026

CPT 94662 was deleted effective January 1, 2026. Pull it from your charge master today. Then check your order sets, encounter templates, and provider favorites lists, because those three places are where retired codes survive longest.

The failure mode catches billers off guard. A claim carrying 94662 rejects as an invalid procedure code, not as a retired one. The biller working that rejection reads it as a data-entry problem, fixes nothing, resubmits, and the claim ages while nobody traces the cause.

The AMA CPT Editorial Panel put 94662 forward for deletion with a January 2026 effective date. The CMS NCCI Policy Manual for 2026 flags the deletion in its ventilation management discussion, and a CMS Medicare Coverage Database revision history records it too. Practices running code-deletion audits already know this pattern from the sleep study code deletions landing January 1, 2027.

Virtual Direct Supervision Became Permanent

CMS made virtual direct supervision permanent effective January 1, 2026. A supervising practitioner can now meet the direct supervision requirement through real-time, two-way audio and video presence. Audio-only doesn’t qualify.

The policy reaches many diagnostic tests under 42 CFR 410.32, with an exception for procedures carrying 010 or 090 global surgery indicators. Pulmonary function services billed as diagnostic tests sit inside that framework.

Your PFT lab staffing model can change because of this, but two conditions gate it. Direct supervision has to be the applicable requirement for the service, and your state scope-of-practice rules have to permit the arrangement. Confirm both before you rewrite a coverage schedule.

The Conversion Factor Rose and Work RVUs Were Cut

Two payment changes landed together, and they pull in opposite directions.

The 2026 conversion factor is $33.5675 for clinicians meeting Advanced Alternative Payment Model participation thresholds and $33.4009 for everyone else, up from $32.3465 in 2025. Those figures come from the CY2026 physician fee schedule final rule.

CMS also applied a 2.5% efficiency adjustment that reduces work RVUs and intraservice time for nearly all services that aren’t time-based. Pulmonary function tests are diagnostic procedures rather than time-based services, so the adjustment applies to them. New CPT codes effective January 1, 2026 are exempt.

One number went up and the other went down. They don’t cancel evenly across every code. A practice that built its pft cpt code 2025 revenue projection off last year’s fee schedule is carrying an error that won’t surface until reconciliation.

Spirometry Codes: CPT 94010 vs CPT 94060

These two pulmonary function CPT codes describe the same machine and two different services, and the spirometry cpt code you pick decides what you collect. Mixing them up costs money in both directions.

What CPT 94010 Reports

CPT 94010 reports a single baseline spirometry with no bronchodilator given.

What it measures: CPT 94010 captures airflow and lung capacity, including forced vital capacity and forced expiratory volume.

How the test works: The patient inhales fully, then exhales as hard and as fast as possible into a spirometer.

Billing designation: CPT 94010 is a standalone diagnostic test, billed globally unless the components are split.

Bundling status: CPT 94010 doesn’t get reported with 94150, 94200, 94375, or 94728.

Common uses: Baseline assessment, COPD monitoring, asthma evaluation, and preoperative pulmonary status.

What CPT 94060 Reports

CPT 94060 reports spirometry performed before and after a bronchodilator to measure reversibility.

What it measures: CPT 94060 captures the same values as 94010, twice, separated by bronchodilator administration.

How the test works: The technologist runs baseline spirometry, gives the bronchodilator, waits the protocol interval, then repeats the test.

Billing designation: CPT 94060 is a single integrated service covering both measurement sets.

Bundling status: CPT 94060 includes baseline spirometry, so 94010 isn’t separately reportable in the same session, and 94640 isn’t reportable for the bronchodilator given solely to test reversibility.

Common uses: Asthma versus COPD differentiation, reversibility assessment, and medication response evaluation.

The Rule That Decides Between Them

One variable separates the two codes, and it isn’t the equipment.

Equipment and technique: Both use the same spirometer. CPT 94010 captures one set of measurements. CPT 94060 captures two sets separated by a bronchodilator.

Clinical distinction: CPT 94010 measures lung function at a point in time. CPT 94060 measures whether the obstruction reverses.

Billing and bundling: One set of measurements is 94010. Before and after is 94060. The two don’t stack on one claim for one session.

Watch the charge ticket, because that’s where this breaks. The technologist gives albuterol and repeats the test, but the ticket still says 94010 because that’s what the order said. Your practice bills the lower-paying code for the higher-effort test. Nobody catches it, because a clean payment never generates a report.

Pre and Post Bronchodilator Spirometry: Which Code Applies

Reversibility testing generates a cluster of pulmonary function test cpt code questions, and the answers run shorter than most people expect.

The Code for Spirometry Before and After a Bronchodilator

CPT 94060 reports spirometry performed before and after bronchodilator administration.

The phrasing varies and the code doesn’t. Pre and post spirometry, spirometry with bronchodilator, bronchodilator responsiveness, reversibility testing, and a complete PFT with post bronchodilator spirometry all describe one service. Every one reports under 94060.

Coders searching the cpt code for spirometry pre and post bronchodilator, the cpt code for spirometry before and after bronchodilator, or the pft with bronchodilator cpt code all land on the same answer.

Spirometry without a bronchodilator stays on 94010. That’s the only fork in this decision.

Billing the Bronchodilator Itself

A separate charge for the drug is where this claim usually goes wrong.

Billing rule: Don’t report 94640 for a bronchodilator given only to test reversibility. NCCI calls that a misuse, because 94060 already includes the administration.

The pattern repeats weekly in real labs. The technologist gives albuterol during a reversibility study, someone charges 94640 for the neb, and the payer bundles it. That’s the edit working as designed, not a payer error. The rule sits in the pulmonary services section of the NCCI pulmonary services rules for 2026.

A second, separate inhalation treatment episode on the same date is a different question. CPT 94640 is reported once per episode of care, and modifier 76 covers that second episode when the record supports it.

When the Post Test Is Not Indicated

Not every patient gets a post-bronchodilator study, and billing one that didn’t happen fails a chart review.

A patient whose baseline spirometry reads normal or shows a restrictive pattern isn’t a candidate for reversibility testing. When the baseline shows obstruction or a combined pattern, the post-bronchodilator study is indicated and 94060 applies. A 94060 claim with no post-bronchodilator values in the report won’t survive review.

Lung Volumes, Airway Resistance, and Diffusion: CPT 94726 to 94729

This group carries the most misinformation of any pulmonary function CPT codes range in the section. Get the descriptors right and half the denials disappear.

CPT 94726 vs CPT 94727: Which Lung Volume Method Was Used

The testing method separates these two codes. Nothing else does.

Equipment and technique: CPT 94726 uses a body plethysmograph, a sealed cabin that measures pressure and volume change. CPT 94727 uses gas dilution or washout, with the patient breathing a helium or nitrogen mixture through a mouthpiece.

Clinical distinction: CPT 94726 also captures airway resistance when performed. CPT 94727 captures distribution of ventilation and closing volumes when performed.

Billing and bundling: These are alternative methods for the same measurement. Report the one used. CPT 94727 isn’t reported in addition to 94726.

Among all pulmonary function CPT codes, this pair is the one your chart has to disambiguate. The equipment record or the technologist note establishes which method ran. A COPD diagnosis doesn’t decide it, and neither does the wording on the order. If the chart can’t establish the method, your coder is guessing, and that guess shows up in an audit.

CPT 94728: Airway Resistance by Oscillometry

CPT 94728 reports airway resistance measured by impulse oscillometry.

Labs reach for it when a patient can’t perform a reliable forced maneuver, which makes it common in pediatric and frail-elderly testing. Several published sources describe 94728 as pressure-volume loops. The descriptor is airway resistance by impulse oscillometry.

Bundling status: CPT 94728 doesn’t get reported with 94010, 94060, 94070, 94375, or 94726.

CPT 94729: Diffusing Capacity as an Add-On Code

CPT 94729 reports diffusing capacity, and it never stands alone on a claim.

What it measures: CPT 94729 measures how efficiently gas transfers from the alveoli into the blood.

How the test works: The patient inhales a trace amount of carbon monoxide, holds the breath for roughly ten seconds, then exhales for analysis.

Billing designation: CPT 94729 is an add-on code, reported in addition to a qualifying primary PFT performed in the same session.

Bundling status: CPT 94729 gets used with 94010, 94060, 94070, 94375, 94726, or 94728.

Conditions evaluated: Interstitial lung disease, pulmonary fibrosis, emphysema, pulmonary hypertension, and preoperative evaluation.

Anyone searching the dlco cpt code or the pft with dlco cpt code is looking for 94729. The add-on status is the part that gets missed. A 94729 line with no qualifying primary on the same claim denies.

What a Complete PFT Bills, Component by Component

The complete pft cpt code question has no single answer, which is why it keeps getting asked. Neither does the cpt code for pft complete phrasing, because the answer is a combination rather than one number.

Table 5. What a Complete Pulmonary Function Test Bills by Component

Component PerformedCode ReportedNote
Spirometry, baseline only94010Reported separately from lung volumes
Spirometry with reversibility94060Includes baseline, replaces 94010
Lung volumes, plethysmography94726Not with 94727
Lung volumes, gas dilution94727Not with 94726
Diffusing capacity94729Add-on, needs a primary

A common full panel bills spirometry plus one lung volume method plus diffusing capacity. Spirometry is reported separately in addition to 94726 or 94727, not folded into it. Bill only what ran and what the report documents. The code groupings sit in the CMS respiratory care billing article.

Exercise and Pulmonary Stress Testing: CPT 94617 to 94621

Four pulmonary function CPT codes cover exercise testing, and the documentation has to match the monitoring intensity you billed for. The 6 minute walk test cpt code sits in this group and gets miscoded more than the rest.

CPT 94618 and the Six Minute Walk Test

CPT 94618 reports simple pulmonary stress testing, including the six minute walk test, with heart rate, oximetry, and oxygen titration when performed.

Documentation needed: Distance walked, baseline and lowest oxygen saturation, heart rate response, symptoms, and any oxygen titration performed during the test.

Billing rule: Pulse oximetry monitoring sits inside the descriptor. Billing 94760 or 94761 separately alongside 94618 isn’t appropriate.

Some published sources still give 94620 as the six minute walk test cpt code. CPT 94618 is the current code. Practices that document exertional desaturation on this test are usually managing tobacco-related lung disease, and the counseling side of that visit runs on separate smoking cessation counseling codes.

CPT 94617 vs CPT 94619: The ECG Distinction

ECG monitoring is the single variable that separates these two codes.

Equipment and technique: Both are exercise tests for bronchospasm with spirometry before and after the exercise challenge.

Clinical distinction: CPT 94617 includes electrocardiographic recording. CPT 94619 doesn’t.

Billing and bundling: Pick one based on whether ECG monitoring ran. They aren’t reported together, and the spirometry components inside the protocol aren’t separately billable.

CPT 94621 Cardiopulmonary Exercise Testing

CPT 94621 reports complex cardiopulmonary exercise testing with measurement of carbon dioxide production, oxygen uptake, and electrocardiographic recording.

NCCI treats 94621 as comprehensive. Venous access, ECG monitoring, spirometric parameters, oximetry, oxygen consumption, and carbon dioxide production aren’t separately reportable in the same encounter. Neither is a simple pulmonary stress test such as 94618. That position appears in the NCCI pulmonary services rules for 2026.

Documentation complexity has to match code complexity. A routine walk test billed as complex CPET is the exact pattern a MAC review flags, and the finding comes back as a refund request plus a documentation audit. Bill the code that describes the work that happened.

NCCI Bundling Rules for Pulmonary Function Testing

Five NCCI rules govern how pulmonary function CPT codes combine on a claim. Four of them appear almost nowhere in published billing guidance, and all five generate denials.

The Five NCCI Rules That Generate PFT Denials

The Medicare NCCI Policy Manual for 2026 devotes a pulmonary services section to these combinations. The five rules below drive the denials that repeat. Each one is published in the NCCI pulmonary services rules.

Table 6. NCCI Bundling Rules for Pulmonary Function CPT Codes, 2026

RuleWhat It MeansCodes Affected
Alternate reporting methods don’t stackA different way of expressing the same measurement isn’t a second service94375 into spirometry
Bronchodilator administration is includedThe drug given to test reversibility sits inside the test code94060 and 94640
Multiple determinations equal one unitSerial measurements completing one service bill once94070
Inhalation treatment is per episodeTreatment count inside one episode doesn’t change the unit count94640
Comprehensive tests absorb componentsA comprehensive code includes the parts performed to complete it94621

The second rule costs the most money. CPT 94060 already pays for the bronchodilator, so charging 94640 for the neb given during a reversibility study is what NCCI calls a misuse. It bundles every time, on every payer, and no modifier changes that.

Why 94375 Is Almost Never Separately Billable

NCCI states that 94375, the respiratory flow volume loop, is included in standard spirometry studies at rest and during exercise. The loop is an alternative way of calculating a standard spirometric parameter, not a second service.

Bill 94375 only when the loop ran independently for a distinct clinical purpose, which is uncommon. A spirometry report that happens to contain a loop graphic is one service, and billing both lines produces a bundling denial.

Billing an Office Visit on the Same Day as a PFT

Same-day E/M billing on a pulmonary function testing cpt code claim turns on documentation, not on habit.

NCCI takes a clear position. A limited history and physical related to performing the test doesn’t support a separate E/M. A significant, separately identifiable E/M unrelated to performing the test may be reported with modifier 25.

Read your own notes against that standard. A note reading spirometry reviewed, patient stable won’t support a separate visit. A note working up new symptoms, adjusting therapy, and addressing unrelated problems will. Practices that append modifier 25 by default on every PFT day build a pattern that draws review.

When Multiple Measurements Count as One Unit

NCCI states that when multiple spirometric determinations are required to complete the service a code describes, you report only one unit. CPT 94070 is the named example, because a bronchoprovocation study includes the serial spirometries inside its protocol.

A technologist running six spirometry maneuvers during a methacholine challenge produced one unit of 94070, not six units of anything. Units-of-service errors on this cluster generate MUE denials that read like frequency problems, which sends the biller down the wrong appeal path.

Bundling denials cluster by code and payer, not by patient. That pattern shows up fast in a denial report sorted by reason code. If PFT claims keep bundling and nobody has traced why, our root-cause denial recovery team runs the trace and rebuilds the payer crosswalk behind it.

Modifiers for PFT Billing: 26, TC, 59, 25, 76, and 91

Modifiers on pulmonary function CPT codes answer one question for the payer: which slice of the service is this claim for. Get that wrong and the payment math stops working. Most pulmonary function CPT codes need no modifier at all, and appending one out of habit causes as many denials as leaving one off.

Modifier 26 and TC: Who Owns the Equipment Decides

Modifier 26 reports the physician interpretation and written report. Modifier TC reports the equipment, the technologist, and the facility resources that performed the test.

Table 7. Modifier 26 and TC Decision Rules for Pulmonary Function CPT Codes

Billing ArrangementWho BillsModifier
Practice owns equipment and employs the interpreting physicianThe practice bills globallyNone
Hospital performs the test, outside physician reads itHospital bills the acquisitionTC
Hospital performs the test, outside physician reads itPhysician bills the interpretation26
Hospital-employed physician reads a hospital studyFacility claim captures bothNone separately

Equipment ownership decides this, not the setting. A pulmonologist reading PFTs at a hospital that owns the plethysmograph bills 26. Check the PC/TC indicator through the CMS fee schedule lookup first, because only codes with an indicator of 1 support the split. Our guide to modifier 26 and TC split billing on EEG runs the same logic.

Anyone searching the cpt code for pft interpretation is asking this. Payer behavior adds a layer. Billing 94060, 94726, and 94729 together under modifier 26 draws maximum-units rejections at some payers, including Highmark and UnitedHealthcare, even when the coding is right. Provider-based billing splits Medicare claims A-side and B-side, and our hospital revenue cycle management team handles that split.

Modifier 25 for a Same Day Office Visit

Modifier 25 goes on the E/M code, never on the PFT code, when a significant and separately identifiable evaluation and management service happened on the same day.

Billing rule: A limited history and physical related to performing the test doesn’t support a separate E/M. NCCI says so directly.

The NCCI tables pair E/M codes with 94010 and 94060 at a modifier indicator of 1, which means a modifier can override the edit when your documentation supports it. Indicator 1 permits the override. Your note earns it.

Modifier 59 and XU: Rare on PFT Claims

Modifier 59 and modifier XU should show up rarely on a cpt code for pft test claim.

Most PFT measurements come out of one integrated testing session, which makes a distinct-service argument hard to defend. The two pairs that matter most, 94010 with 94060 and 94726 with 94727, carry a modifier indicator of 0. No modifier bypasses a 0-indicator pair. Appending 59 there produces a denial and an audit signal in the same submission.

Modifier 76 and 91: Repeat Services on the Same Date

Modifier 76 reports a repeat procedure by the same physician. NCCI names it for a second, separate inhalation treatment episode on the same date. Modifier 91 reports a repeat clinical diagnostic laboratory test and has no application to PFTs.

A repeated PFT on the same date needs a documented clinical reason and its own report. Two runs of the same test to obtain an acceptable maneuver is one billable service, not two.

ICD-10 Codes That Support Medical Necessity for PFTs

CPT tells the payer what you did. ICD-10 tells the payer why, and every pulmonary function test cpt code claim carries both. On advanced pulmonary testing, the why decides whether the claim pays. Payers now auto-deny full panels tied to unspecified diagnoses, which makes specificity a payment issue rather than a paperwork issue.

The Diagnosis Codes That Support Pulmonary Function Testing

The right diagnosis depends on what the clinician is evaluating, and the strength of support varies by code.

Table 8. ICD-10 Codes That Support Medical Necessity for Pulmonary Function CPT Codes

ICD-10 CodeConditionSupports
J44.9COPD, unspecifiedBaseline testing. Weak support for a full panel.
J44.1COPD with acute exacerbationRepeat and follow-up testing
J44.0COPD with acute lower respiratory infectionDocuments the infectious component
J45.909Asthma, unspecified, uncomplicatedSpirometry. Use a severity code when documented.
J45.901Asthma with acute exacerbationSame-day spirometry and reversibility testing
J43.9Emphysema, unspecifiedLung volumes and diffusing capacity
J84.10Pulmonary fibrosis, unspecifiedFull panel with diffusing capacity
J84.113Idiopathic pulmonary fibrosisFull panel with diffusing capacity
R06.02Shortness of breathInitial diagnostic workup
R05.3Chronic coughInitial diagnostic workup

Reach for the most specific diagnosis your documentation supports. A complete panel backed only by J44.9 faces medical necessity review far more often than the same panel backed by J44.1 with a documented exacerbation. The clinical picture didn’t change. The claim outcome did. Practices running outsourced medical billing build that specificity check into coding rather than into appeals.

ICD-10 Codes Medicare Allows for Exercise Testing

Exercise testing carries a published allowed-diagnosis list, which most billing teams have never seen.

Billing 94617, 94618, 94619, or 94621 alone: E66.2, R06.02, R06.09, R06.2, R06.82, R06.83, R06.89, Z79.899

Billing 94070 together with 94617 to 94621: J12.82, J45.990, Z86.16

That list comes from a CMS billing and coding article, which means a claim carrying a diagnosis outside it is running against a published allowance. Jurisdictions publish their own lists, so check your own MAC article alongside the CMS respiratory care billing article.

Coding an Abnormal PFT Result

R94.2 reports abnormal results of pulmonary function studies.

Sequencing trips people up here. R94.2 documents a finding, not a reason for testing, so it doesn’t establish medical necessity for the study that produced it. Put the symptom or condition that prompted the study in the primary position and carry R94.2 forward as the result. The abnormal pft icd 10 question is a sequencing problem, not a code-selection one.

Screening and Preoperative Encounters

Z01.811 reports an encounter for preprocedural respiratory examination. Use it when the study is preoperative clearance rather than a workup of symptoms. Tobacco history codes travel with these encounters, and our guide to lung cancer screening diagnosis rules covers how Z87.891 and the F17 series pair on a screening claim.

Medicare doesn’t cover PFTs as routine screening in asymptomatic patients. Occupational screening, wellness screening, and sports clearance all sit outside the benefit. A preoperative study tied to a documented surgical decision is a different service, and the record has to show which one happened.

Medicare Coverage, Frequency Limits, and Supervision Rules

Coverage, frequency, and supervision each carry their own rules for pulmonary function CPT codes, and a claim can satisfy two of them and still deny on the third.

Will Medicare Pay for a Pulmonary Function Test?

Medicare covers pulmonary function tests when they’re reasonable and necessary to diagnose or manage a respiratory condition, quantify severity, assess response to therapy, or evaluate symptoms such as dyspnea, cough, or wheeze. Coverage isn’t automatic because a test is common. PFTs are diagnostic rather than therapeutic, and they aren’t used to demonstrate breathing exercises.

Four documentation requirements govern the claim.

Order: A specific written order from a physician or an appropriate non-physician practitioner.

Referral content: The order carries the diagnoses and the requested tests.

Interpretation: A written report, with a physician signature attesting review when the report is computer-generated.

Documentation: Legible, available to Medicare on request, and showing the results and their use in treatment.

Those requirements come from a MAC billing and coding article rather than a national coverage determination, which matters. Treat them as an enforcement example and check your own jurisdiction through the Medicare Coverage Database.

How Often Medicare Covers Repeat PFTs

No fixed national frequency limit applies. Repeat testing has to be clinically driven.

  • Routine or repetitive testing at every visit without a change in clinical status isn’t clinically reasonable.
  • Weekly or monthly follow-up testing is appropriate only when clinically required, such as during an acute exacerbation of interstitial lung disease.
  • CPT 94664, device demonstration or evaluation, is usually paid once per beneficiary for the same provider or group.

The American Thoracic Society, the American Lung Association, and the American College of Chest Physicians set usage patterns CMS treats as community norms. A schedule outside them invites review. Catching a frequency conflict before the patient reaches the lab beats catching it at billing, which is why our pre-service benefit checks run 48 to 72 hours ahead of the appointment.

What Supervision Level Applies to a PFT

Many pulmonary function services are billed as diagnostic tests, which brings them under the supervision requirements in 42 CFR 410.32. The technical component isn’t covered unless the test ran under the required supervision level for that setting.

CMS made virtual direct supervision permanent effective January 1, 2026. A supervising practitioner can be immediately available through real-time two-way audio and video, not audio-only, for many services requiring direct supervision. Procedures carrying 010 or 090 global surgery indicators are excepted. Supervision interacts with enrollment status, and our payer enrollment and credentialing team maps both before a staffing change.

Two conditions gate any staffing change. Direct supervision has to be the applicable requirement, and your state scope-of-practice rules have to permit the arrangement. Confirm both before you rewrite a coverage schedule.

Diagnostic Tests Are Their Own Benefit Category

Diagnostic tests are covered under their own Medicare benefit category and don’t have to meet incident-to requirements. Compliance teams routinely analyze the technical component of a PFT through incident-to logic, and that’s the wrong framework. The analysis runs through the diagnostic test benefit category and the 410.32 supervision rules instead.

What Medicare Pays for Pulmonary Function CPT Codes in 2026

Two things changed in the 2026 fee schedule, and together they make every pulmonary function test cpt code rate published before this year unreliable.

How PFT Payment Is Calculated

Four steps produce the allowed amount for any pft procedure code.

  1. Pull the work RVU, the practice expense RVU for your setting, and the malpractice RVU for the code from the current relative value file.
  2. Apply the work, practice expense, and malpractice geographic practice cost index values for your locality.
  3. Sum the three adjusted RVUs.
  4. Multiply by the conversion factor that applies to your provider.

Run this per code and per locality. The national figure and your locality figure diverge enough to matter across a lab performing several hundred studies a year, and a projection built on the national average will be wrong in a direction you can’t predict. Pull your values from the CMS fee schedule lookup before you build a budget.

The Two 2026 Conversion Factors

The Physician Fee Schedule carries two conversion factors starting in 2026. Clinicians meeting Advanced Alternative Payment Model participation thresholds get $33.5675. Everyone else gets $33.4009. Both are increases over the 2025 factor of $32.3465, at 3.77% and 3.26% respectively, per the CY2026 physician fee schedule final rule.

A practice running one conversion factor across a mixed provider roster will be wrong for part of that roster. The error compounds quietly across a high-volume PFT program and surfaces at reconciliation, which is the worst place to find it.

Why Your 2025 PFT Rates No Longer Apply

CMS applied a 2.5% efficiency adjustment reducing work RVUs and intraservice time for nearly all services that aren’t time-based. Pulmonary function tests are diagnostic procedures rather than time-based services, so the adjustment applies. New CPT codes effective January 1, 2026 are exempt.

One number went up and the other came down, and they don’t offset evenly. The efficiency adjustment hits only the work component, while the conversion factor multiplies the whole sum. Any pft billing codes revenue projection carried over from a 2025 charge master overstates or understates 2026 receipts depending on that code’s RVU mix.

Pull your own per-code amounts from the CMS lookup for your locality and date them. A rate that was right in January 2025 is not a 2026 rate, and several published PFT guides still carry the older figures.

Facility and Non-Facility Rate Differences

The practice expense RVU changes by setting, so the same cpt code pft test pays differently in an office than in a hospital outpatient department. A hospital study splits the technical component onto the facility claim. Our guide to diagnostic chest CT rates works through the same site-of-service math on a thoracic imaging code.

If your PFT revenue projection came off last year’s fee schedule, it’s off, and the gap won’t show until reconciliation. Our full revenue cycle management team recalculates PFT rates against the current conversion factor and the efficiency adjustment, per code and per locality, and shows you what moved.

Why PFT Claims Deny and How to Fix Each One

Six denial patterns account for most of what lands on a pulmonary remit, and each one maps to a specific pulmonary function CPT code combination. Each one has a reason code, a cause, and a workflow stage where the fix belongs.

The Six Denial Patterns on Pulmonary Function Claims

Table 9. PFT Denial Patterns by Reason Code, Cause, and Fix

Denial PatternCausePrevention Control
CO-97, bundled94010 billed with 94060, or 94375 billed with spirometryBuild the exclusion pairs into the claim scrubber
CO-50, not medically necessaryUnspecified diagnosis on an advanced panelRequire a specific diagnosis at coding, not at billing
CO-151, frequencyRepeat testing without documented clinical changeAlert on last test date at scheduling
CO-11, diagnosis inconsistentDiagnosis outside the payer allowed listCheck the allowed list in the payer crosswalk
CO-16, missing informationMissing modifier, missing order, or missing interpretationPre-submission scrub for order and signed report
CO-4, modifier missing or invalid26 or TC omitted where the split appliesConfirm equipment ownership at charge entry

CO-97 shows up more than the rest combined, and it’s usually the edit working as designed rather than a payer error. When 94010 and 94060 both appear on one claim for one session, the bundle is correct and no appeal reverses it. That fix belongs upstream at charge entry.

Reading the Denial Code on a PFT Remit

The claim adjustment reason code names the category. The remark code carries the detail. A medical necessity CARC says the payer rejected the clinical justification. The RARC says whether the problem sat in the diagnosis, the documentation, or the policy. Our guide to clearinghouse rejection patterns covers the CPT and modifier mismatches that never reach the payer at all.

Read the remark code before you choose between a corrected claim and an appeal. The two paths carry different deadlines, and picking wrong can burn the window on both. Denials sitting past the appeal deadline need a different workflow, which is where our aging AR follow-up team picks them up.

Building an Appeal That Wins

A PFT appeal needs four elements, and most appeals carry three.

  • The coverage criterion the payer says went unmet.
  • The record evidence showing it was met.
  • The primary source establishing the criterion.
  • The corrected claim data where a coding error caused the denial.

Appeals skip the third element constantly. An appeal that restates eligibility is an assertion. An appeal quoting the NCCI rule or the CMS billing article and pointing at the chart element that satisfies it is an argument. Payers process those two differently, and the difference shows in your overturn rate.

Fixing the Pattern Instead of the Claim

Denials that repeat instead of appearing once point to a workflow gap firing on every claim.

Pull your PFT denials by reason code and sort them by payer. Bundling denials cluster by code. Medical necessity denials cluster by ordering provider. Frequency denials cluster by scheduling workflow. Each cluster points at a different fix, and the pattern shows up in a sorted report inside an afternoon.

Reworking claims one at a time costs more than fixing the source, and it doesn’t stop the next batch. Our payer-specific appeal workflows work both sides: the queue that’s already denied, and the upstream step that keeps producing it.

Bundling denials cluster by code. Medical necessity denials cluster by provider. Frequency denials cluster by scheduling. If PFT denials keep repeating and nobody has sorted them by reason code and payer yet, that’s the trace ClaimMax RCM runs before touching a single claim.

Documentation That Survives a PFT Chart Review

Auditors read a PFT chart looking for each coverage element on its own. Inference doesn’t count, and that applies to every pulmonary function CPT code on the claim.

What the Record Has to Show

Seven elements support a clean claim for any cpt code for pulmonary function testing.

  • A signed order from the treating provider naming the requested tests.
  • The clinical indication or diagnosis prompting the study.
  • The specific test performed, including the method used for lung volumes.
  • Any medication administered during the test, with the reason.
  • Numeric results, including FVC, FEV1, and the FEV1 to FVC ratio.
  • A physician interpretation and a signed written report.
  • A signature attesting review when the report is computer-generated.

What Auditors Look For

A note describing a patient with longstanding COPD doesn’t establish why testing was needed today. A note recording that spirometry was reviewed doesn’t establish that a separate evaluation and management service happened. Each element stands on its own or it doesn’t count.

The exposure lands differently than most labs expect. A lab performing a study on a referring physician’s order carries audit risk for the medical necessity behind that order, even though someone else wrote it.

Capture the indication at scheduling, in structured fields. Data that exists before the test survives review. Data reconstructed at billing doesn’t.

Test Quality Standards That Support the Claim

Medicare policy references minimum performance standards and community norms. The technical standards come from the American Thoracic Society and the European Respiratory Society: the 2019 spirometry standardization update, the 2022 interpretive strategies standard, and the 2023 lung volumes update. That logic repeats across code families, and our HCPCS and CPT billing framework covers how it applies outside pulmonary.

Those society documents aren’t payment policy. They’re the reference an auditor uses to judge whether a test was technically acceptable. A record showing acceptable maneuvers, documented patient effort, and noted limitations defends the claim. A record showing one unrepeatable maneuver doesn’t.

Five PFT Coding Errors Circulating in Published Guides

Guidance on pulmonary function CPT codes gets copied between sources faster than it gets verified. Five descriptions have been repeated widely enough that they now show up in charge masters and coder training. Below is what the codebook says. Check these against your own reference before your next claim goes out.

Table 10. PFT Coding Errors in Circulation Versus the Current CPT Descriptor

CodeWhat CirculatesWhat the Descriptor Says
94727Gas diffusion testingGas dilution or washout for lung volumes
94728Pressure-volume loopsAirway resistance by impulse oscillometry
94375CapnographyRespiratory flow volume loop. Capnography is 94770.
94011, 94012, 94013General adult spirometry variantsInfants and children through 2 years of age
94729Bronchial provocation testingDiffusing capacity, add-on code

Two of these produce age-inappropriate billing. Two send a coder to the wrong service entirely. One misidentifies the highest-value component in a full panel, which means the practice either loses the charge or defends it in the wrong direction during an audit.

A wrong descriptor sitting inside a charge master or a payer crosswalk repeats on every claim until someone traces the pattern back to its source. Audit your crosswalk against the current codebook once a year and expect to find something.

AI Search Results Carry the Same Errors

As of this writing, at least one major AI search assistant returns 94726 as the diffusing capacity code and 94728 as the plethysmography code. Both are reversed. A coder checking a pft cpt codes question in an AI assistant instead of the codebook can pick up an error the codebook would have prevented.

Verify pulmonary function CPT codes against the CPT codebook and the CMS record. That’s the only reference that settles a descriptor dispute.

Pulmonary Function CPT Code FAQs

Can you bill CPT 94010 and 94060 together?

No. CPT 94060 already includes the baseline spirometry that 94010 describes, so billing both for the same session produces a CO-97 bundling denial. The pair carries a modifier indicator of 0 in the NCCI tables, which means no modifier bypasses the edit. If the technologist ran spirometry, gave a bronchodilator, and repeated the test, that’s one service and one code: 94060. Fix this at charge entry rather than in appeals, because the appeal loses.

Can you bill 94726 and 94729 together?

Yes. CPT 94729 is an add-on code that requires a qualifying primary pulmonary function service in the same session, and 94726 qualifies. Billing lung volumes by plethysmography alongside diffusing capacity is a standard full-panel combination. Add spirometry as a third line when it ran. The rule that catches people is the reverse: a 94729 line submitted with no qualifying primary on the claim denies, because an add-on code can’t stand alone.

What is the difference between 94010 and 94060?

One set of measurements is 94010. Before and after a bronchodilator is 94060. CPT 94010 reports a single baseline spirometry with no drug administered. CPT 94060 reports spirometry performed before and after bronchodilator administration to measure whether the obstruction reverses. The equipment is identical and the billing isn’t. CPT 94060 includes the baseline study and the bronchodilator administration, so neither 94010 nor 94640 gets reported alongside it for the same session.

What is the difference between 94726 and 94727?

The lung volume measurement method separates them. CPT 94726 uses a body plethysmograph, a sealed cabin measuring pressure and volume change, and captures airway resistance when performed. CPT 94727 uses gas dilution or washout, with the patient breathing a helium or nitrogen mixture, and captures distribution of ventilation and closing volumes when performed. They’re alternative methods for the same measurement, so report the one used. CPT 94727 isn’t reported in addition to 94726.

What is the description of CPT code 94728?

CPT 94728 is airway resistance by impulse oscillometry. The test measures how much resistance the airways present to airflow, using sound waves rather than a forced breathing maneuver, which makes it useful for patients who can’t perform reliable spirometry. Several published sources describe 94728 as pressure-volume loops, and that description is wrong. CPT 94728 doesn’t get reported with 94010, 94060, 94070, 94375, or 94726.

Will Medicare pay for a pulmonary function test?

Yes, when the test is reasonable and necessary to diagnose or manage a respiratory condition, quantify severity, assess therapy response, or evaluate symptoms such as dyspnea, cough, or wheeze. Three things have to be in the record: a specific written order from the treating provider, a signed interpretation and written report, and a diagnosis supporting medical necessity. Medicare doesn’t cover PFTs as routine screening in asymptomatic patients, so occupational and wellness screening fall outside the benefit.

What is the medical necessity for CPT 94060?

CPT 94060 needs documented obstruction or suspected reversible airway disease, paired with a specific diagnosis. Asthma codes in the J45 series and COPD codes in the J44 series carry the strongest support, and J45.901 for asthma with acute exacerbation supports same-day reversibility testing directly. A patient whose baseline spirometry reads normal or restrictive isn’t a candidate for a post-bronchodilator study, which means a 94060 claim on that patient will struggle in review even with a valid diagnosis attached.

What are the ICD-10 codes for pulmonary function tests?

The diagnosis on a lung function test cpt code claim follows the condition being evaluated rather than the test performed. Common supporting codes include J44.9, J44.1, and J44.0 for COPD, J45.909 and J45.901 for asthma, J43.9 for emphysema, J84.10 and J84.113 for pulmonary fibrosis, and R06.02 or R05.3 for shortness of breath and chronic cough. Specificity decides payment on advanced panels. A full panel backed only by J44.9 faces medical necessity review far more often than one backed by J44.1 with a documented exacerbation.

How often can a PFT be billed?

No fixed national frequency limit applies to any pulmonary test cpt code. Repeat testing has to be clinically driven, and routine testing at every visit without a change in clinical status isn’t considered reasonable and necessary. Weekly or monthly follow-up testing is appropriate during an acute exacerbation of interstitial lung disease. One code carries a firmer limit: CPT 94664, device demonstration or evaluation, is usually paid once per beneficiary for the same provider or group.

What is the difference between 94640 and 94644?

Treatment duration separates them. CPT 94640 reports a single inhalation treatment for acute airway obstruction, and it’s reported once per episode of care regardless of how many treatments happened inside that episode. CPT 94644 reports continuous inhalation treatment for the first hour, with 94645 covering each additional hour. Neither one gets billed for the bronchodilator given during a 94060 reversibility study, because 94060 already includes that administration.

What is CPT code 94660 billing guidelines?

CPT 94660 reports continuous positive airway pressure ventilation initiation and management. It’s a therapeutic service rather than a diagnostic pulmonary function test, so it sits outside the 94010 to 94729 testing family. Bill it once per date of service. Documentation needs the clinical indication, the pressure settings, the time spent on initiation or management, and the patient’s response. Practices billing sleep medicine alongside pulmonary testing hit this code most often.

What CPT code is used for a complete pulmonary function test?

No single code covers a complete pulmonary function test, which is why the cpt code for pft complete search returns a combination rather than one number. A full panel bills spirometry plus one lung volume method plus diffusing capacity: 94010 or 94060, then 94726 or 94727, then 94729. Spirometry is reported separately in addition to the lung volume code rather than bundled into it. Bill only the components that ran and that the report documents, because a full panel submitted without documentation for each part invites payer review.

What is CPT code 14060 used for?

If you’re searching 14060, you probably mean 94060. CPT 14060 is an adjacent tissue transfer or rearrangement code for the eyelids, nose, ears, or lips, and it has no pulmonary application. CPT 94060 reports spirometry performed before and after bronchodilator administration. The digits transpose easily, and a 14060 line on a pulmonary claim denies as a procedure-to-diagnosis mismatch rather than as a typo.

Does a PFT require a modifier?

Not when one entity owns the equipment and employs the interpreting physician. That claim bills globally with no modifier. Modifier 26 reports the physician interpretation alone, and modifier TC reports the equipment and technologist component alone, which applies when a hospital performs the study and an outside physician reads it. Check the PC/TC indicator in the relative value file first, because only codes carrying an indicator of 1 support the split.

Getting PFT Claims Paid the First Time

Three failure points produce most pulmonary function CPT codes denials: the bundling pair sitting on the claim, the specificity of the diagnosis, and the modifier matching the equipment arrangement. Your team catches each one at charge entry or coding, and each one costs less to prevent than to appeal.

None of this holds still. CPT changes every January 1. ICD-10 changes every October 1. Fee schedule values move each year, and MAC articles get revised without notice. A pft cpt code program that ran clean last year isn’t clean this year, and payer rules vary enough by specialty that specialty-matched billing coverage matters more than a general billing process.

Denials that repeat instead of appearing once point to a workflow gap firing on every claim. Sorting a PFT denial report by reason code and payer identifies which of the three failure points is producing them, and that takes an afternoon.

If PFT claims are denying and nobody has traced the pattern, ClaimMax RCM runs a free revenue cycle analysis that pulls your actual billing data and identifies where the revenue is leaking. Custom report, no obligation.

About the Author

Mateo Vargas

Mateo leads editorial standards at ClaimMax RCM and has spent 14 years inside medical billing operations across cardiology, surgical specialties, behavioral health, and physician group practices. He writes about provider credentialing, payer enrollment, specialty coding, modifier discipline, payer-rule shifts, denial root-causes, and the operational side of revenue cycle management. AAPC-certified. HIPAA-trained. Editorially accountable.

Email: info@claimmaxrcm.com

Phone: +1 (916) 299-5335