top of page
Sirius Solutions Global website header with navigation menu: Home, Services, Specialties, Our Expertise, Resources, and Contact Us.
"Sirius Solutions Global Logo"

Pulmonary Function Test (PFT) Coding: The Revenue Leaks Most Pulmonology Practices Don't Even Know They Have

Doctor reviews X-ray on tablet while holding a clipboard. Text: "Pulmonary Function Test (PFT) Coding," "Sirius Solutions Global."

Three weeks ago, we got a call from a pulmonologist in Ohio who sounded exhausted. "We are busy," he said. "Seeing 30-40 patients daily, running PFTs on at least half of them. But our collections keep dropping. I don't understand what's happening."

We ran a billing audit. Within an hour, we found the problem: his medical assistant had been documenting bronchodilator administration correctly albuterol, wait time, repeat spirometry but the billing team kept using CPT 94010 for basic spirometry instead of 94060 for bronchodilator studies. For six months.

The lost revenue? About $4,200. Not practice-ending money, but think about this: that's $4,200 they worked for, provided legitimate services for, documented correctly and just left on the table because nobody connected the dots between clinical documentation and billing codes.

This isn't about fraud or upcoding. This is about getting paid fairly for the work you actually do. And in pulmonology practices across the country, PFT coding mistakes are quietly bleeding revenue every single day.


Why PFT Billing Feels Like It Should Be Simple (But Isn't)

Here's what makes pulmonary function testing such a billing headache: the tests themselves are straightforward clinical procedures, but the coding rules are anything but straightforward.

A patient blows into a spirometer. You measure their lung function. Maybe you give them albuterol and test again. Maybe you add lung volume measurements or diffusion capacity. All pretty basic clinical decisions.

Then you have to translate that into CPT codes. And suddenly you're dealing with questions like: Do I bill 94010 or 94060? Can I bill both if I did spirometry before deciding to add bronchodilator? What if we did lung volumes and DLCO too—are those separate codes or is there a package code? Does the flow-volume loop get billed separately?

Most pulmonology practices wing it. They pick the codes that seem right, submit claims, and hope for the best. Sometimes it works. Sometimes it doesn't. Either way, they have no idea if they're maximizing revenue or leaving money on the table.


The CPT Codes That Actually Matter for PFT Billing

Let's cut through the confusion. Here are the codes you'll use most often, explained in plain English.

CPT 94010 – Basic Spirometry

What it covers: Patient breathes into the spirometer, you measure FEV1 and FVC, done. No bronchodilator, no extra testing.

When you use it: Pre-op clearance, COPD monitoring (when you're not testing bronchodilator response), occupational medicine screening, follow-up visits where you're just checking if lung function is stable.

What Medicare pays: Around $26-28 nationally (your locality might differ)

The gotcha: If your MA gives ANY bronchodilator during the session even if you weren't planning to initially you can't bill 94010. You have to use 94060. This trips up practices constantly.

CPT 94060 – Spirometry With Bronchodilator

What it covers: Complete pre-bronchodilator spirometry, give albuterol (or another bronchodilator), wait the appropriate time, repeat spirometry, compare results.

When you use it: Suspected asthma, COPD reversibility testing, anyone where you're checking if their airways respond to bronchodilators.

What Medicare pays: Around $42-45

Why this code exists: Because testing bronchodilator response takes extra time, extra medication, and provides clinically distinct information. That's worth more than basic spirometry.

The trap: Don't bill BOTH 94010 and 94060 on the same date. The 94060 code already includes the pre-bronchodilator testing. Billing both is duplicate billing and will get denied (or worse, flagged as potential fraud).

CPT 94726 – Lung Volume Determination

What it covers: Measuring total lung capacity, residual volume, functional residual capacity usually via body plethysmography but could be gas dilution or nitrogen washout.

When you use it: Distinguishing restrictive from obstructive disease, quantifying hyperinflation, pre-surgical evaluation, interstitial lung disease workup.

What Medicare pays: Around $28-30

Key point: This is a completely separate test from spirometry. You can (and should) bill it in addition to 94010 or 94060 when you perform lung volume measurements.

CPT 94729 – Diffusion Capacity (DLCO)

What it covers: Testing how well gas transfers from the lungs into the bloodstream using carbon monoxide.

When you use it: Evaluating interstitial lung disease, emphysema, pulmonary vascular disease, monitoring patients on drugs with potential pulmonary toxicity.

What Medicare pays: Around $34-36

Why it matters: DLCO provides information you can't get from spirometry or lung volumes alone. It's billable separately when performed.

The "Complete PFT" Reality

When practices do a "complete PFT" spirometry with bronchodilator, lung volumes, and diffusion capacity you are billing three separate codes:

  • 94060 ($42-45)

  • 94726 ($28-30)

  • 94729 ($34-36)

Total reimbursement: $104-111 from Medicare

That's real money. And practices that don't understand they should be billing all three components leave 30-40% of their PFT revenue uncaptured.


The Documentation That Actually Protects Your PFT Claims

Here's the truth about PFT denials: most don't happen because of coding errors. They happen because of documentation failures.

Medicare doesn't just want to know WHAT test you did. They want to know WHY it was medically necessary. And they want proof you actually did what you're billing for.

What Your Medical Record Must Show

Clinical indication: Not just "SOB" or "cough." You need specifics. "Progressive dyspnea on exertion over 3 months, unable to walk one block without stopping, former 30-pack-year smoker, now presents for PFT to evaluate for COPD vs restrictive disease vs cardiac cause."

See the difference? The second version establishes why PFT testing is medically necessary, not just routine screening.

Test quality documentation: ATS standards require at least three acceptable spirometry efforts. Your records should show:

  • How many attempts the patient made

  • Which ones were acceptable

  • Any factors affecting quality (poor effort, coughing, early termination)

Physician interpretation: This is non-negotiable. Computer-generated interpretations are fine as a starting point, but a physician must review, interpret, and document findings. That interpretation needs to be in the medical record, signed and dated.

Diagnosis codes that make sense: Don't just slap J44.9 (COPD) on every PFT. Use diagnosis codes that actually match the clinical scenario:

  • R06.02 (Shortness of breath) for dyspnea evaluation

  • R05.9 (Cough) for chronic cough workup

  • J45.909 (Asthma, unspecified) when asthma is suspected

  • Z87.891 (Personal history of nicotine dependence) for smoking-related screening

Payers look at diagnosis codes. If the diagnosis doesn't support PFT testing, they'll deny for lack of medical necessity.


The Mistakes That Cost Practices Real Money

Let me walk you through the actual errors we see costing pulmonology practices revenue:

Mistake #1: The Bronchodilator Blind Spot

Your staff does pre-bronchodilator spirometry. Patient's FEV1 is low. You give albuterol, wait 15 minutes, repeat spirometry. Clinically appropriate, perfectly executed.

But your biller codes it 94010 because that's the "default spirometry code." You just lost $15-17 in reimbursement. Multiply that by 10-15 bronchodilator tests weekly, and you're leaving $8,000-$13,000 on the table annually.

Fix: Create a simple checkbox on your PFT order form: "Bronchodilator administered: YES / NO." Give it to your billing team with every PFT result.

Mistake #2: Not Billing Complete PFTs Completely

A patient gets full PFT spirometry with bronchodilator, lung volumes, and DLCO. All documented. All performed correctly.

Your billing team only bills 94060. Why? Because they see "PFT" on the superbill and default to spirometry only. They don't realize lung volumes and DLCO are separate billable codes.

You just left $62-66 uncollected. Do that twice a week, and you've lost $6,400-$6,900 annually.

Fix: Train your billing team that "complete PFT" means billing three codes. Better yet, have your PFT tech check boxes on a billing sheet: Spirometry ☐ Lung Volumes ☐ DLCO ☐

Mistake #3: Missing the Medical Necessity Narrative

Your documentation says "PFT ordered." That's it. Test gets performed, billed, and denied for "lack of medical necessity."

Why? Because Medicare (and most commercial payers) need to know WHY you ordered the test. "Patient has COPD" isn't enough you had to have a reason to test TODAY.

Fix: Your order should include brief clinical reasoning: "PFT ordered to assess treatment response after 3 months on new inhaler" or "PFT to evaluate progressive dyspnea despite current COPD management."


How Sirius Solutions Global Gets PFT Billing Right

After seeing these patterns across dozens of pulmonology practices, we built our approach around what actually works:

We Connect Clinical and Billing Teams

Our system requires clinical staff to complete a structured PFT billing worksheet for every test: bronchodilator yes/no, lung volumes performed yes/no, DLCO performed yes/no. That worksheet goes to our coders, who have specific pulmonology training.

No guessing. No assumptions. Just accurate coding based on what was actually done.

We Verify Medical Necessity Before Claims Go Out

Our team reviews documentation before submitting PFT claims. If the medical record doesn't clearly establish medical necessity, we flag it for enhancement rather than submitting a claim that'll get denied.

That proactive review catches problems while they're still fixable.

We Track Your PFT Revenue Specifically

Most billing companies lump PFT revenue into general "procedure revenue." We track it separately: How many of each PFT code did you bill? What's your average reimbursement per PFT? Are you billing complete PFTs as complete, or are components getting missed?

That visibility lets you see exactly where revenue opportunities exist.

The Results Our Pulmonology Clients See:

  • 15-25% increase in PFT revenue within 3 months (just from coding what was already being done correctly)

  • Clean claim rates above 98% for PFT procedures

  • Denial rates under 3% (industry average is 10-15%)

  • Collections within 25-30 days

If you're running PFTs and wondering whether you're capturing all the revenue you should be, schedule a complimentary PFT billing analysis: (469) 694-5375 | Info@siriussolutionsglobal.com

We'll review 3 months of your PFT claims and show you exactly where revenue is being left behind no obligation, no sales pitch, just data.



bottom of page