Pabau Engage inbox

Pabau Engage is here: every patient conversation in one inbox.

Learn more
CPT Code

CPT code 94618 – Pulmonary stress test


Code Definition

94618 is the CPT code for pulmonary stress testing (e.g., 6-minute walk test), including measurement of heart rate, oximetry, and oxygen titration, when performed. It applies when the clinical question is whether a patient desaturates on exertion and how much oxygen they need.

Coders often confuse 94618 with CPT 94617 because both tests involve exercise. 94618 requires oximetry, plus oxygen titration when performed, while 94617 requires spirometry before and after exercise with ECG recording.

Section
90281-99199 Medicine
Subsection
94002-94799 Pulmonary
Code range
94010-94799 Pulmonary diagnostic testing and therapies
Billable
No
Code also known as
six-minute walk test, 6MWT, exercise oxygenation test, pulmonary exercise testing
Save time. Improve accuracy. Get paid faster.
Automate coding with Pabau

Let Pabau's smart automation suggest the right codes, reduce claim denials, and keep your practice compliant—effortlessly.

  • AI-powered code suggestions
  • Real-time compliance checks
  • Faster claims, fewer denials
Why practices choose Pabau
Save hours every week

Automate repetitive tasks and focus on what matters most—your patients.

Improve accuracy

Reduce coding errors and ensure compliance with the latest regulations.

Get paid faster

Clean claims, fewer denials, and faster reimbursements.

Grow with confidence

Powerful insights and reporting to help your practice thrive.

HIPAA compliant SOC 2 certified GDPR-compliant Trusted by 4,000+ clinics worldwide

Key takeaways

Key takeaways

CPT code 94618 covers pulmonary stress testing, typically the six-minute walk test, with heart rate, oxygen saturation (SpO2), and oxygen titration when performed.

94617 tests for exercise-induced bronchospasm with spirometry and ECG recording, while 94618 measures how much oxygen a patient needs during exertion.

Common denial triggers include a non-covered ICD-10 diagnosis, missing pre- and post-test SpO2 and heart rate values, and billing 94617 when 94618 applies.

Medicare pays about $37 nationally in 2026 in both facility and non-facility settings, and 94618 takes no -26 or TC modifier.

Pabau, the practice software we build, routes claims to thousands of US payers through Claim.MD, so your team can submit and track every claim.

CPT code 94618: official descriptor and procedure overview

CPT code 94618 describes pulmonary stress testing that includes measurement of heart rate, oximetry, and oxygen titration when performed. The six-minute walk test is the most commonly used exercise protocol. The American Medical Association, which maintains the CPT code set, introduced 94618 and 94617 in 2018 to replace the deleted code 94620.

The complete official descriptor reads: “Pulmonary stress testing (e.g., 6-minute walk test), including measurement of heart rate, oximetry, and oxygen titration, when performed.” Every element of that descriptor carries a billing implication.

Descriptor elementWhat it means for billing
Pulmonary stress testingThe test must involve physical exertion. Rest-only oximetry does not qualify.
e.g., 6-minute walk test“e.g.” means other exercise protocols can qualify, but the 6MWT is the standard. Document the protocol used.
Measurement of heart rateRecord heart rate at least at the pre-test baseline and after the test. Continuous monitoring is preferred.
OximetrySpO2 must be monitored and documented. Do not bill a separate oximetry code alongside 94618.
Oxygen titration, when performedTitration is not required to use the code, but it is bundled when performed. Document any adjustments made.

What procedure does CPT 94618 cover?

CPT 94618 covers the complete pulmonary stress test encounter, from the pre-test baseline through the walk to the post-exercise recovery check. In the six-minute walk test, the patient walks at a self-selected pace on a flat surface for six minutes. The supervising clinician monitors SpO2 and heart rate, adjusts supplemental oxygen if the patient desaturates, and records distance, symptoms, and Borg dyspnea scores.

  • Pre-test: Baseline SpO2, heart rate, blood pressure, and dyspnea score documented before the patient begins walking
  • During the test: Continuous or frequent SpO2 and heart rate monitoring. Note any supplemental oxygen adjustments in real time, with the flow rate and trigger saturation.
  • Post-test: Immediate post-exercise SpO2, heart rate, distance walked, Borg score, and recovery time to return to baseline
  • Report: A physician must review and sign the completed test report, and the supervising clinician’s credentials must be documented

94618 does not include formal cardiopulmonary exercise testing (CPET) with metabolic measurement, which is CPT 94621. It also excludes bronchodilation responsiveness spirometry (94060) and standalone pulse oximetry (CPT 94760/94761). Billing any of those alongside 94618 for the same session can trigger a bundling edit.

94618 and its nearest neighbors look alike on paper. CPT 94617 and 94618 sit in the same pulmonary stress testing family and share similar clinical contexts. What separates them is the clinical question the test answers. Diffusing capacity is a different case again: 94729 is an add-on code that never stands alone.

CodeShort descriptorClinical intentKey differentiator from 94618
94618Pulmonary stress test with oximetry and O2 titrationAssess exercise capacity and oxygen needThe code being defined
94617Exercise test for bronchospasm, including pre- and post-spirometry, pulse oximetry, and electrocardiographic recording(s)Provoke and measure airway obstruction via exerciseRequires pre- and post-exercise spirometry plus ECG recording. It diagnoses bronchospasm rather than titrating oxygen.
94060Bronchodilation responsiveness, spirometryMeasure airflow before and after a bronchodilatorSpirometry-based and done at rest, with pre- and post-bronchodilator FEV1/FVC. Bronchoprovocation is a separate code, 94070.
94726PlethysmographyMeasure lung volumes at restStatic lung volume measurement with no exercise component
94729Diffusing capacity (DLCO), add-on codeMeasure gas transfer efficiency at restReported only with 94010-94070, 94375, or 94726. It is a resting measurement, not an exercise test.

The 94617 vs 94618 call: If the ordering physician wanted to know whether exercise triggers bronchoconstriction, use 94617. If the goal was to find out whether the patient desaturates during exertion and how much supplemental oxygen they need, use 94618. Because both tests involve exercise, the pair is a frequent source of confusion, and the chart below maps the order’s question to the right code.

Decision chart for pulmonary exercise and function testing codes
Start from the clinical question on the order, then check that the chart documents every component the code requires. Descriptors are summarized from the AMA CPT code set.

ICD-10 diagnosis codes that support CPT 94618

Payers compare the submitted diagnosis against their local coverage determination (LCD) or policy for respiratory care before paying for 94618. Confirm a covered ICD-10 code before the test is scheduled. Medicare contractors and most major commercial payers recognize a defined list of diagnoses as medically necessary indications for pulmonary stress testing.

  • J44.9 – Chronic obstructive pulmonary disease (COPD), unspecified, a common indication for the 6MWT in stable COPD
  • J84.10, J84.112, J84.9 – Interstitial lung disease and pulmonary fibrosis
  • I27.0, I27.20, I27.29 – Pulmonary hypertension (primary and secondary)
  • I50.20, I50.30, I50.9 – Heart failure, when respiratory limitation to exercise is the clinical question
  • J96.10, J96.11, J96.12 – Chronic respiratory failure, unspecified, with hypoxia, or with hypercapnia

This is not an exhaustive list. MAC-specific LCDs vary, and commercial payers maintain their own medical policy documents. Before billing 94618, confirm the submitted diagnosis appears on the applicable LCD. Some payers won’t accept a diagnosis of dyspnea alone (R06.09) as medical necessity unless an underlying cardiopulmonary condition is also listed.

Pro Tip

Run an eligibility check before every 94618 encounter. Confirm the patient has an active covered diagnosis, and check whether the payer requires prior authorization for pulmonary function testing. Settling coverage before the test saves a retrospective prior auth request or a medical necessity appeal.

Documentation requirements for CPT 94618

Incomplete documentation is a common reason 94618 claims deny. In Noridian jurisdictions JE and JF, billing and coding article A57224 sets the documentation floor for respiratory care billing. Other MACs publish their own respiratory care LCDs and articles. The chart note must contain all of the following to withstand a post-payment audit.

  • Ordering physician’s name and the clinical indication (diagnosis code and a one-sentence rationale linking the test to the patient’s condition)
  • Pre-test baseline: SpO2, heart rate, blood pressure, and Borg dyspnea score
  • Test protocol: six-minute walk or alternative exercise protocol clearly named
  • Intra-test data: SpO2 and heart rate at regular intervals, plus any supplemental oxygen flow rate adjustments with the SpO2 value that triggered the change
  • Post-test data: immediate post-exercise SpO2, heart rate, distance walked in meters or feet, and Borg score
  • Recovery to baseline: time and values documented
  • Supervising clinician credentials (RRT, RN, MD, or other qualified provider depending on state and payer rules)
  • Physician review and signature on the final report

Good medical billing compliance practice means storing this documentation in a retrievable format. You should be able to produce it within the payer’s requested audit turnaround, typically 30 to 45 days.

Medicare reimbursement for CPT 94618

Medicare pays 94618 under the Physician Fee Schedule at about $37 nationally in 2026, before geographic adjustment. The code carries 1.11 total RVUs in both facility and non-facility settings, which works out to about $37.07 at the $33.4009 conversion factor. The CMS Physician Fee Schedule lookup tool is the authoritative source for current-year rates, so verify before billing because rates update each January.

SettingApproximate national rateNotes
Non-facility (physician office)About $37 (2026 national, before GPCI)Global period XXX. Bill 94618 with no -26 or TC modifier.
Facility (hospital outpatient, SNF)About $37 (2026 national, before GPCI)Facility and non-facility RVUs are identical. The code has no professional/technical split, so no -26 or TC modifier applies.

Geographic adjustment applies through the GPCI multiplier. A practice in San Francisco receives a different payment than one in rural Alabama for the same code. Use the FastRVU lookup tool to calculate locality-adjusted rates before setting patient cost estimates.

Medicaid and commercial payer coverage for CPT 94618

Medicaid coverage for 94618 varies by state. Covered codes, rates, and prior authorization thresholds differ from one state program to the next. Check the state Medicaid provider manual and fee schedule for the relevant state before billing a Medicaid beneficiary for this service.

Commercial payers typically align with Medicare coverage criteria but add their own layers. Many publish a pulmonary function testing medical policy that sets the criteria a patient must meet before the service is authorized. Blue Cross Blue Shield plans often require the ordering physician to document that the test informs a specific clinical decision rather than routine monitoring.

Prior authorization requirements also vary. Some payers require PA for any pulmonary function test, others only in outpatient facility settings, and others not at all in the non-facility setting.

Prior authorization and medical necessity criteria for CPT 94618

Prior authorization for 94618 is payer-specific, so never assume it isn’t needed. Most payers apply similar clinical criteria:

  • The patient has a documented cardiopulmonary condition.
  • The ordering physician has documented the clinical decision the test will inform, such as an oxygen prescription, transplant evaluation, or rehabilitation candidacy.
  • The test is more than a routine check-in for a stable patient.
  • Check payer PA requirements before scheduling: use the payer’s portal or call provider services, and don’t rely on a previous authorization for the same patient
  • Document the clinical decision the test will inform: “to titrate supplemental oxygen for home use” is a stronger medical necessity statement than “evaluate exercise tolerance”
  • Include the ordering diagnosis and any relevant test history: payers check whether the patient had the same test recently. A repeat test needs a documented clinical change.
  • Track PA numbers: the authorization number must appear on the claim, and a claim that required one but omits it is typically denied

Common claim denial reasons for CPT 94618 and how to avoid them

Each of the six denial causes below can be caught before the claim leaves the practice. Effective denial management workflows start with knowing which edit is likely to fire.

Denial reasonWhy it happensCorrective action
Non-covered diagnosisSubmitted ICD-10 code not on the payer’s LCD covered-diagnosis listCross-reference the LCD before billing, and add a secondary covered diagnosis if clinically supported
Wrong code: 94617 vs 94618Code chosen from the procedure name rather than clinical intent, such as 94617 billed for a 6MWTReview the order. Use 94617 for bronchospasm and 94618 for oxygen titration and exercise capacity.
Duplicate oximetry code94760 or 94761 billed alongside 94618 for the same session, although oximetry is bundled into 94618Remove standalone oximetry codes when 94618 is on the claim, because the pair is bundled under NCCI edits
Missing physician orderNo documented ordering physician, or the order does not specify the test type and indicationRequire a signed order in the chart before the test, and verify it names 94618 or the equivalent procedure
Incomplete documentationChart note missing pre- and post-test SpO2, heart rate values, distance walked, or the physician’s signatureUse a structured 6MWT reporting template that captures all required data points before the note is closed
Missing or expired prior authorizationPayer required PA, but it was not obtained or the authorization number was left off the claimVerify PA requirements per payer before scheduling, and include the PA number in box 23 of the CMS-1500

Knowing the denial codes that come back on the remittance speeds up the appeal. CARC 4 means the procedure code is inconsistent with the modifier used, or a required modifier is missing. CARC 97 means the benefit is included in the payment for another service, which is typical when standalone oximetry is billed with 94618.

Billing tips and coding best practices for CPT 94618

Clean claim submission for 94618 comes down to a few workflow habits that billing staff can build into every encounter.

  • Verify the LCD before billing: MAC-specific respiratory care LCDs may restrict which diagnoses qualify. Confirm your MAC’s active LCD or article covers the submitted diagnosis, such as A57224 in Noridian jurisdictions JE and JF.
  • Leave off modifiers -26 and TC: 94618 has no professional/technical split, so the global service is billed with no modifier in every setting
  • Use the correct place of service code: report POS 11 (office), 22 (outpatient hospital), or 31/32 (nursing facility) to match where the test took place
  • Do not unbundle oximetry: NCCI edits bundle CPT 94760 and 94761 into 94618. Billing them together on the same date leads to the standalone oximetry code being denied.
  • Batch denial reviews weekly: tracking which edit fires most often for 94618 lets you fix the front-end workflow instead of appealing the same denial repeatedly

Submitting a clean claim on the first pass avoids rework costs. The Medical Group Management Association puts the cost of reworking a denied claim at about $25.

Pro Tip

Build a 94618 billing checklist into your respiratory care workflow. Confirm an LCD-covered diagnosis, verify any PA requirement, and document pre- and post-test SpO2 and heart rate. Record the distance walked and any oxygen adjustments, then get the physician’s signature before closing the note.

How Pabau supports clean claims for CPT 94618

Many respiratory care teams record the walk test in one system and build the claim in another. Every retyped SpO2 value or code is a chance for the claim to go out incomplete or wrong.

Pabau keeps the test note, the diagnosis, and the claim against the same patient record. Its claims management software routes claims to thousands of US payers through the Claim.MD clearinghouse integration. Your team can submit and track every 94618 claim without switching systems.

The result is less retyping, fewer claims sent back for missing data, and one place to see where each claim stands.

Pabau claims management screen used to submit and track insurance claims
Pabau’s claims management screen shows the status of each submitted claim, so your team can follow every 94618 claim through to payment.

Submit and track 94618 claims in one place

Pabau’s claims management tools help respiratory care teams submit claims through Claim.MD and track each one to payment. The walk-test note, diagnosis, and claim stay on the same patient record.

Pabau claims management dashboard

Conclusion

Code 94618 from the order, not from the procedure name. If the physician asked whether the patient desaturates and how much oxygen they need, the answer is 94618. The chart then has to prove it with pre- and post-test values.

Before you submit, check the diagnosis against your MAC’s respiratory care LCD, strip any standalone oximetry code, and leave modifier -26 off. Those checks take a minute per claim and stop the avoidable denials described above.

Pabau’s revenue cycle management tools keep that workflow in one system, from the walk-test note to the submitted claim. Book a demo to see how Pabau handles pulmonary function claims for respiratory care practices.

Continue your research

Continue your research

Need to understand how clearinghouse validation works before claims reach the payer? Medical claims clearinghouse guide explains the 837P submission path and where edits fire.

Want to reduce the time it takes to work denied 94618 claims? Electronic remittance advice (ERA) covers how 835 files carry CARC codes and how to action them faster.

Billing spirometry for the same patient? CPT code 94010 covers the spirometry descriptor, documentation, and reimbursement.

Ordering lung volumes as part of a full PFT workup? CPT code 94726 explains plethysmography billing and the add-on codes that pair with it.

Credentialing with a new payer before billing pulmonary codes? How to get credentialed with insurance companies walks through the provider enrollment process step by step.

Frequently asked questions

What does CPT code 94618 cover?

CPT code 94618 covers pulmonary stress testing with heart rate monitoring, oxygen saturation measurement, and oxygen titration during exercise such as the six-minute walk test. The code bundles the exercise challenge, continuous oximetry, and any supplemental oxygen adjustments performed during the test into a single billable service.

What is the difference between CPT 94618 and CPT 94617?

CPT 94617 tests for exercise-induced bronchospasm and includes pre- and post-exercise spirometry, pulse oximetry, and ECG recording. CPT 94618 assesses exercise capacity and oxygen need, with SpO2 monitoring and oxygen titration during a walk test. In short, 94617 is a bronchoprovocation test and 94618 is an exercise oxygenation assessment.

Is CPT 94618 covered by Medicare?

Yes. Medicare covers CPT 94618 under the Physician Fee Schedule when the ICD-10 diagnosis meets the applicable MAC’s respiratory care criteria. Noridian jurisdictions JE and JF publish that guidance in article A57224, and other MACs have their own. Medicare pays about $37 (2026 national, before GPCI) in both facility and non-facility settings.

What documentation is required for CPT code 94618?

The chart note must include the ordering physician and clinical indication, pre- and post-test SpO2 and heart rate values, and the exercise protocol used. It also needs the distance walked, any oxygen adjustments made during the test, supervising clinician credentials, and a physician-signed final report.

Does CPT 94618 require a diagnosis code, and which ones are covered?

Yes, a covered ICD-10 diagnosis is required for medical necessity. Commonly covered diagnoses include COPD (J44.9), interstitial lung disease (J84.x), pulmonary hypertension (I27.x), and chronic respiratory failure (J96.1x). The exact covered-diagnosis list depends on the applicable MAC LCD and the commercial payer’s medical policy.

Avatar photo
Despina Petrushevska
Content Writer

Despina Petrushevska is a content writer covering aesthetics, dermatology, and clinic operations, known for making detailed clinical concepts clear and engaging. Outside of work, she enjoys photography, weekend getaways, and finding inspiration in everyday experiences.
×