CPT Codes

About a month or so ago I was corresponding with the manager of a small PFT lab and in response to one of their questions I had mentioned that there were no CPT codes for MIP/MEP. They responded with “what’s a CPT code?” so I guess this means that CPT codes aren’t as well known as I thought they were.

CPT stands for Current Procedural Terminology and is managed by the American Medical Association. CPT codes are a relatively universal way to classify and describe all medical tests and procedures. They are also used by all insurance companies for medical billing so one downside to this is if there isn’t a CPT code for a test or a procedure, you can’t bill for it. CPT codes also include conditions that limit performing (or at least billing for) some tests in various combinations and to some extent this drives the way PFT tests are ordered and performed.

The CPT codes are reviewed, revised and updated annually. There have been a number of additions and changes to PFT CPT codes during the last five to ten years, and I’d say that with a few notable exceptions, most current PFT testing is adequately covered by the CPT codes. The current PFT CPT codes are:

CPT: Description: Exclusions:
94010 Spirometry, including graphic record, total and timed vital capacity, expiratory flow measurement(s), with or without maximum voluntary ventilation. Do not report in conjunction with 94150, 94200, 94375, 94728.
94011 Measurement of spirometry forced expiratory flows in an infant or child through 2 years of age
94012 Measurement of spirometry forced expiratory flows, before and after bronchodilator, in an infant or child through 2 years of age.
94013 Measurement of lung volumes (i.e., functional residual capacity (FRC); forced vital capacity (FVC), and expiratory reserve volume (ERV) in an infant or child through 2 years of age.
94014 Patient-initiated spirometry recording per 30 day period of time; includes reinforced education, transmission of spirometry tracing, data capture, analysis of transmitted data, periodic recalibration and review and interpretation by a physician or other qualified health professional.
94015 [patient-initiated spirometry] recording (includes hook-up, reinforced education, data transmission, data capture, trend analysis, and periodic recalibration).
94016 [patient-initiated spirometry] review and interpretation only by a physician or other qualified health professional.
94060 Bronchodilator responsiveness, spirometry as in 94010, pre- and post-bronchodilator administration. Do not report in conjunction with 94150, 94200, 94375, 94728. For prolonged exercise test for bronchospasm with pre- and post-spirometry use 94620.
94070 Bronchspasm provocation evaluation, multiple spirometric determination s as in 94010, with administered agents (eg. antigen(s), cold air, methacholine).

CPT: Description: Exclusions:
94150 Vital capacity, total (separate procedure). Do not report in conjunction with 94010, 94060, 94728.
94200 Maximum breathing capacity, maximum voluntary ventilation. Do not report in conjunction with 94010, 94060.
94250 Expired gas collection, quantitative, single procedure (separate procedure).
94375 Respiratory flow volume loop Do not report in conjunction with 94010, 94060, 94728.
94400 Breathing response to CO2 (CO2 response curve).
94450 Breathing response to hypoxia (hypoxia response curve). For high altitude simulation test (HAST) see 94452, 94453.
94452 High altitude simulation test (HAST) with interpretation and report by a physician or other qualified health professional. Do not report in conjunction with 94453, 94760, 94761.
94453 [HAST] with supplemental oxygen titration. Do not report in conjunction with 94452, 94760, 94761.
94620 Pulmonary stress test simple (eg. 6-minute walk test, [or] prolonged exercise test with pre- and post- spirometry and oximetry.
94621 Pulmonary stress test, complex (including measurement if CO2 production, O2 uptake, and electocardiographic recordings).
94680 Oxygen uptake, expired gas analysis, rest and exercise, direct, simple
94681 [Oxygen uptake] including CO2 output, percentage oxygen extracted.
94690 [Oxygen uptake] rest, indirect (separate procedure).
94726 Plethysmography for determination of lung volumes and when performed, airway resistance. Do not report in conjunction with 94727.
94727 Gas dilution or washout for determination of lung volumes, and when performed distribution of ventilation and closing volume. Do not report in conjunction with 94726.
94728 Airway resistance by impulse oscillometry Do not report in conjunction with 94010, 94060, 94070, 94375, 94726.
94729 Diffusing capacity (eg. Carbon monoxide, membrane). Must be reported in conjunction with 94010, 94060, 94070, 94375, 94726, 94727 or 94728.
94750 Pulmonary compliance study (eg. Plethysmography, volume and pressure measurements).
94760 Noninvasive or pulse oximetry for oxygen saturation, single determination.
94761 [Oximetry] multiple determinations (eg. During exercise).
94762 [Oximetry] by continuous overnight monitoring (separate procedure).
94799 Unlisted pulmonary service or procedure.
95012 Nitric oxide expired gas determination.
95070 Inhalation bronchial challenge testing (not including necessary pulmonary function tests); with histamine, methacholine or similar compounds. For pulmonary function tests see 94060, 94070
95071 For pulmonary function tests see 94060, 94070 For pulmonary function tests see 94060, 94070

ABG associated CPT codes:

CPT: Description:
36600 Arterial puncture, withdrawal of blood for diagnosis
36620 Arterial catheterization or cannulation for sampling, monitoring or transfusion (separate procedure), percutaneous.
82375 [Blood] Carboxyhemoglobin, quantitative
82800 [Blood] gases, pH only
82803 [Blood] gases, any combination of pH, pCO2, pO2, CO2, HCO3 (including calculated O2 saturation).
82805 [Blood] with O2 saturation, by direct measurement, except pulse oximetry.
82820 [Blood] Hemoglobin-oxygen affinity (pO2 for 50% hemoglobin saturation with oxygen).

Hgb Finger stick CPT codes:

CPT: Description:
88738 Hemoglobin (Hgb), quantitative, transcutaneous.
88740 Hemoglobin, quantitative, transcutaneous, per day, carboxyhemoglbin
88741 [Hemoglobin, transcutaneous] methemoglobin.

There are a number of exclusions for different CPT codes and since a number of CPT codes contain combinations of other CPT codes much of this makes sense. You shouldn’t, for example, bill for spirometry (94010) when you’re also billing for pre- and post-BD spirometry (94060).

The exclusion for diffusing capacity (94729) however, is unusual in that it requires that a DLCO test be performed along with spirometry (which includes pre & post bronchodilator and challenge tests), lung volumes or impulse oscillometry. To some extent I understand this since the quality of a DLCO test depends on inspired volume (VC from spirometry) and VA (TLC from lung volumes) but I don’t quite get the connection with impulse oscillometry.

Interestingly, you can’t bill for impulse oscillometry (94728) if you perform any form of spirometry (94010, 94060, 94070, 94375) or plethysmography (94726). I can see why this might be the case for plethysmography since that CPT code includes airway resistance measurements (RAW) which could be considered a duplication, but it’s not as clear why any form of spirometry would be a duplication as well.

You can bill for an SVC (94150) or an MVV (94200) if they are performed by themselves but if you perform plain spirometry (94010) along with an SVC or an MVV you will only be reimbursed for the spirometry.

On the other hand, for a methacholine challenge test you can bill using both 94070 (spirometry testing) and 95070 (administration of methacholine). Similarly a cold air challenge (and probably a Eucapnic Voluntary Hyperventilation Challenge) could be billed using 94070 (spirometry) and 95071 (administration).

Based on some correspondence I’ve had in the past, there is a bit of confusion regarding 94620. The wording for this code could have been clearer since it used for either for a 6-minute walk test or for a simple exercise test (usually a bronchspasm evaluation for EIB) with pre- and post-exercise spirometry. Unfortunately 94620 has been read by a number of people as saying that a 6-minute walk test requires pre- and post-spirometry and for this reason I don’t know why separate CPT codes weren’t assigned to the 6-minute walk and the exercise challenge test.

There are a number of common pulmonary function tests however, that have no CPT code or cannot be billed because of exclusions. Most notoriously, as already mentioned, there is no CPT code for MIP or MEP and the best you can do is to charge it under 94799 (unlisted pulmonary service or procedure). This is hard to understand given that the ATS released standards for respiratory muscle testing in 2002 and that MIP and MEP were a significant part of that, but despite this there is still no CPT code for respiratory pressure measurements (MIP, MEP, NIF and SNIP).

There is also no CPT code for upright and supine spirometry. For that matter, if you perform a complex CPET (94621) pre- and post-exercise spirometry is not included with that CPT code (even though it is for 94620) but you can only bill for simple spirometry (94010).

There are a couple of somewhat leading edge tests for which equipment is being sold that have no CPT codes. Admittedly some of these tests could be considered to be more in the research arena than in clinical testing, but the lack of a CPT code is also an impediment towards the widespread adoption of the tests, even when they have been shown to be clinically useful.

As an example, even though the ERS/ATS has released standards for DLNO testing you can bill for it using the diffusing capacity CPT code (94729) only if you simultaneously perform a DLCO since the code explicitly mentions carbon monoxide and not nitric oxide. This also means that despite the extra cost of performing combined DLCO and DLNO testing, you really aren’t able to bill for it.

If you wanted to perform Lung Clearance Index (LCI) testing you would probably be able use 94727 (gas dilution or washout for determination of lung volumes) because it includes the phrase “… and when performed, distribution of ventilation …” and because FRC is also measured (although not TLC and RV) as part of the test. But that means that if you use this code for LCI you can’t bill for separate lung volume measurement even if you do so by plethysmograph (94726).

You couldn’t however, use 94727 if you wanted to perform a dual-tracer gas single breath washout (DTG-SBW) or a Closing Volume (for the phase III slope) since there is no lung volume measurement included in these tests and that is a required part of 94727.

Overall the CPT codes work relatively well for most common PFT testing situation but I still have a couple concerns. First, some of the descriptions are either ambiguous, poorly worded or rely on somewhat outdated terminology which makes it difficult at times to determine how the codes should be applied to certain situations.

Second, CPT codes are acting as an arbiter forwhich tests can be performed. A particular example is the lack of CPT codes for MIP/MEP as well as other tests that are in the process of advancing into routine clinical testing, such as DLNO, LCI and DTG-SBW. There are ATS/ERS standardization statements that have touched on most of these tests (MIP/MEP 2002, LCI 2013, DLNO 2017) but realistically it is the presence or absence of CPT codes that is determining what is and isn’t clinically relevant.

Third, CPT codes are also acting as an arbiter about how testing is performed. Although I understand and in general agree with many of the exclusions, they also limit what tests can be performed within a single testing session. There are likely legitimate clinical reasons why you’d want to perform impulse oscillometry (for airway resistance) and plethysmography (for lung volumes) but the exclusions for 94726 and 94728limits reimbursement if they are performed in the same day.

CPT exclusions can also be a dis-incentive towards performing more comprehensive patient testing. SVC testing should be performed as part of routine spirometry whenever there is any question that the FVC is being underestimated but if you do this you have to accept that you won’t be reimbursed for the extra time and effort. Ditto for upright and supine spirometry. Ditto for post-exercise spirometry for CPETs.

To its credit, the procedure for revising CPT codes is a consensus-based, evidence-driven process. But this also means that it is often slow and requires a significant time commitment for anybody requesting a change. Instructions for requesting an update to the CPT codes are on the AMA website (Applying for CPT codes). Notably, the application for requesting a new code or a revision of an older code is about 20 pages long and more than somewhat formidable in that it requires extensive knowledge and documentation concerning the subject in question.

CPT codes are a fact of life and if they didn’t already exist we’d probably re-invent them sooner rather than later. Since the way we are reimbursed for testing is determined by CPT codes and their exclusions we generally have to work within the framework they have created. This doesn’t mean that they are always right however, nor should they be taken as the final word about what is clinically relevant.


Abraham M et al.  Current Procedural Terminology CPT 2015.  Published by the American Medical Association, 2014.

ATS/ERS statement on respiratory muscle testing. Amer J Respir Crit Care Med 2002; 166(4): 518-624.

Birnbaum, S. Pulse oximetry. Identifying its applications, coding and reimbursement. Chest 2009; 135(3): 838-841.

Flesch JD, Dine CJ. Lung volumes. Measurement, clinical use and coding. Chest 2012; 142(2): 506-510.

Lange NE, Mulholland M, Kreider ME. Spirometry. Don’t blow it! Chest 2009; 136(2): 608-614.

Robinson PD et al. ERS/ATS consensus statement. Consensus statement for inert gas washout measurement using multiple- and single-breath tests. Eur Respir J 2013; 41(3): 507-522.

Salzman, SH. The 6-min walk test. Clinical and research role, technique, coding and reimbursement. Chest 2009; 135(5): 1345-1352.

Zavorsky GS et al. Standardisation and application of the nitric oxide single-breath determination of nitric oxide uptake in the lung. Eur Respir J 2017; 49: n1600962.

Creative Commons License
PFT Blog by Richard Johnston is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License

13 thoughts on “CPT Codes

  1. Richard,
    I would echo your comments and frustrations. I know it’s a whole subject in and of its self, but we do have modifiers to use in some instances. For instance, if performing a Spirometry and a 6MWT same day you will not get paid for the spirometry because it is included in the 6MWT under the “Pre and/or Post spirometry” unless you use a 59 modifier on the Spirometry (94010-59). I have heard others say they have successfully used the 76 or 77 modifier with this code as well.
    Any plans to address modifiers in a blog?

    • Ralph –

      I don’t know enough about CPT modifiers to be able to write about them. Happy to work with somebody that does since it seems to be important information that many of us are missing.

      Regards, Richard

  2. Hello!
    Question regarding home spirometry measurements, 94014, 94015, 94016. What are the requirements to bill this procedure? Is there specific use case or diagnosis to get reimbursement for it? I’ve read that some insurance companies deemed this medically unnecessary, and that it only reimbhrses for lung transplant patients, and FEV1 of 40% less post bronchodilator, with more than 3 hospital admissions within 90 days. Is this true? Or can it be billed for GOLD class 2+ like pulmonary rehab.

    • Emin –

      I’m sorry but I don’t have an answer for you. You’d need to talk to a billing specialist. From what I’ve seen most insurance companies will only reimburse home spirometry for lung transplant patients but there may be exceptions to this.

      – Richard

    • Rosa –

      There’s no single CPT code for “complete” PFTs. You have to use the individual CPT codes for spirometry, lung volumes and DLCO which need to be specific to what you measure and how you measure it.

      Regards, Richard

  3. Great Useful information. Do you know if there is a CPT code for when patients bring PFT tests from other labs, read by other physicians, and then our pulmonologist reviews it as well and submits a charge for that? If so, is there a single charge for any pulmonary function testing conducted or separate ones for spirometry, lung volumes, DLCO, etc? I am being asked this because our physicians want to add it on to an “orderable list” but it seems its just a one time charge since no test is actually performed.

    • Janet –

      I would have concerns about billing for the interpretation of a PFT test that has already been interpreted elsewhere. Comparing results as part of an office visit may not be billable as a separate item either. I passed this question along to an acquaintance that specializes in CPT codes and billing and in general they agreed and said:

      “There is no second opinion for an E/M, 99499 unlisted evaluation and management code and have all documentation going out with the claim. My doctors compare reports all day long on patients but that is with the level of E/M we bill when the doctor is with the patient.”

      I am having trouble seeing a reason that this should be included on a billing slip, most particularly for a PFT Lab. If your physicians are insistent about billing for this practice I would refer them to your hospital/clinic billing specialists.

      Regards, Richard

      • This is something new they asked to be built into a list of “Procedures” and our IT department asked me to confirm exactly what this is meant to be. It would not be part of the PFT lab per se, its when they see patients in their clinic and review results of the tests the patient brings from other facilities. I agree that it certainly seems to be an ordinary part of a medical evaluation and I wouldn’t expect it to be a billable item. Thank you so much for your fast response and input.

  4. I am looking at CPT 94750, Pulmonary compliance study (eg. plethysmography, volume and pressure measurements).
    Since a Plethysmography has to be established prior to doing the MIP/MEP and we are establishing volumes and pressure measurements, can we use this CPT code for the MIP/MEP?

      • Thank you for getting back.
        The office I work for has been using 95831 Muscle and range of motion testing. I haven’t heard of them not getting paid. However, I do think this is a wrong code for it. Any thoughts?

        • Diane –

          I’m not a coding expert so maybe it’ll get by but I think it’s an improper use of that CPT code and if the office is ever audited it will probably cause problems.

          Regards, Richard

Leave a Reply

Your email address will not be published. Required fields are marked *