Cardiology CPT Codes: The Complete Guide to ECG, Stress Test and Cardiac Catheterization Billing
Cardiology is one of the most code-dense specialties in medicine. A single patient visit can involve an EKG, an echocardiogram, a stress test, and a catheterization, and each of those services has its own family of procedure codes, modifiers, and bundling rules. A wrong digit or a missing modifier is enough to trigger a denial, an underpayment, or a compliance flag.
This guide walks through the cardiology CPT codes that practices, coders, and even curious patients run into most often. You will find the 93000 CPT code, the 93015 CPT code, CPT 93018, the stress test CPT code family, the stress echocardiogram CPT codes, and the full set of cardiac catheterization CPT codes, including the left heart catheterization CPT code, the CPT code for right heart catheterization, and the coronary angiography CPT code.
Quick note: CPT® codes are published and updated every year by the American Medical Association (AMA). Descriptions below are simplified for readability. Always confirm the current code descriptor, guidelines, and payer policy before you bill.
What Are Cardiology CPT Codes?
CPT stands for Current Procedural Terminology. It is the standardized code set used in the United States to describe medical, surgical, and diagnostic services to insurers. In cardiology, most procedure codes live in the Medicine section (90000–99999), particularly the cardiovascular range 92920–93799, while some imaging codes sit in the Radiology section (for example nuclear cardiology in the 78000s).
Cardiology CPT codes generally fall into these groups:
- Evaluation and management (E/M): office visits, consults, hospital visits (99202–99499).
- Electrocardiography: resting EKG codes such as 93000, 93005, 93010.
- Stress testing: 93015–93018, plus stress echo and nuclear stress codes.
- Echocardiography: transthoracic, transesophageal, and Doppler studies.
- Ambulatory monitoring: Holter monitors, event monitors, and mobile cardiac telemetry.
- Cardiac catheterization: right heart, left heart, and coronary angiography (93451–93461).
- Interventions: angioplasty, stents, and atherectomy (92920–92944).
- Electrophysiology and devices: ablation, pacemaker, ICD, and device interrogation codes.
Understanding how these families connect is the foundation of accurate cardiology billing.
Why Accurate Cardiology CPT Coding Matters
Cardiology services are high value, and payers scrutinize them closely. Accurate coding matters for four reasons:
- Reimbursement: The wrong code, or a code without the right modifier, can mean lost revenue on a procedure that took significant physician time.
- Compliance: Unbundling, upcoding, or billing both global and component codes can create audit risk.
- Medical necessity: Each code must be supported by documentation and linked to a valid ICD-10-CM diagnosis (chest pain, angina, atrial fibrillation, heart failure, and so on).
- Cash flow: Clean claims get paid faster. Denials and rework slow the whole revenue cycle.
Understanding Global, Technical, and Professional Components
Before diving into individual codes, you need one concept that runs through almost every diagnostic cardiology service: the global, technical, and professional split.
- Global service: The practice owns the equipment, performs the test, and the physician interprets it. You bill one code with no modifier.
- Technical component (modifier -TC): The equipment, supplies, and staff who performed the test. Billed by the facility or the practice that owns the equipment.
- Professional component (modifier -26): The physician’s interpretation and written report.
Some CPT codes are already split into separate component codes, which is exactly what you see with EKGs and stress tests. Others use modifiers -26 and -TC with a single code, which is how many echocardiography and nuclear cardiology services are handled.
EKG Codes: The 93000 CPT Code Family
The most frequently billed cardiology code is the 93000 CPT code.
| CPT Code | Description (simplified) | What it covers |
|---|---|---|
| 93000 | Routine ECG with at least 12 leads; with interpretation and report | Complete service: tracing + interpretation |
| 93005 | Routine ECG with at least 12 leads; tracing only, without interpretation and report | Technical component |
| 93010 | Routine ECG with at least 12 leads; interpretation and report only | Professional component |
When to use the 93000 CPT code
Use 93000 when your practice performs the 12-lead EKG in-office and the billing provider interprets it and documents a written report. If you only record the tracing and an outside physician reads it, you would bill 93005. If you only read a tracing taken elsewhere, you would bill 93010.
Common EKG billing tips
- A signed interpretation is required. A tracing with no documented interpretation and report does not support 93000 or 93010.
- Medical necessity matters. Routine screening EKGs are covered only in limited situations, such as the one-time screening EKG referral under the Welcome to Medicare visit. A symptom or diagnosis code (chest pain, palpitations, syncope, dyspnea) should accompany diagnostic EKGs.
- Use modifier 25 on the E/M when a significant, separately identifiable office visit occurs on the same day as the EKG.
- Do not bill 93000 with a stress test. The stress test codes already include the continuous EKG monitoring, so a separate resting EKG is generally not reported for the same encounter unless it is a distinct, medically necessary service.
Stress Test CPT Codes: 93015, 93016, 93017, and CPT 93018
A cardiovascular stress test evaluates how the heart responds to exertion, whether through treadmill, bicycle, or pharmacologic stress. The core stress test CPT code family is:
| CPT Code | Description (simplified) | Component |
|---|---|---|
| 93015 | Cardiovascular stress test using maximal or submaximal treadmill or bicycle exercise, continuous ECG monitoring; with supervision, interpretation and report | Global |
| 93016 | Supervision only, without interpretation and report | Professional (supervision) |
| 93017 | Tracing only, without interpretation and report | Technical |
| 93018 | Interpretation and report only | Professional (interpretation) |
What is the 93015 CPT code?
The 93015 CPT code is the global stress test code. It covers the complete service: the physician supervises the exercise, the test is performed with continuous EKG monitoring, and the physician provides a written interpretation. A cardiology practice that owns the treadmill, uses its own staff, and has its own physician supervise and read the test would bill 93015.
What is CPT 93018?
CPT 93018 is used only for the physician’s interpretation and report. It is typically billed by a cardiologist who reads the test but does not own the equipment, for example when the test is performed at a hospital or imaging center. In that scenario:
- The facility or technical provider bills 93017 (tracing only).
- The physician who supervises in person bills 93016.
- The cardiologist who reviews the data and writes the report bills 93018.
Because one provider can perform several roles, there are really three common billing patterns:
- One physician does everything in an office-based practice: bill 93015.
- Different parties split the work: bill 93016, 93017, and 93018 as appropriate.
- Physician supervises and reads, but the facility owns the equipment: physician bills 93016 + 93018, facility bills 93017.
Stress test billing tips
- Document the exercise level, symptoms, ECG changes, blood pressure response, and stop reason. Payers look for target heart rate, METs achieved, and any ischemic changes.
- Link a valid diagnosis. Chest pain, suspected coronary artery disease, abnormal EKG, or evaluation before certain procedures are common indications.
- Frequency limits. Many payers limit how often repeat stress tests are covered in asymptomatic patients. Confirm local coverage determinations (LCDs) before scheduling.
- Do not unbundle. Do not report 93015 together with 93016, 93017, or 93018 for the same session.
Stress Echocardiogram CPT Codes
A stress echocardiogram combines a stress test with ultrasound imaging of the heart before and after (or during) stress. Because it involves both the stress component and the imaging component, coding requires care. The stress echocardiogram CPT codes are:
| CPT Code | Description (simplified) |
|---|---|
| 93350 | Echocardiography, transthoracic, real-time with image documentation (2D), includes M-mode and Doppler when performed, during rest and cardiovascular stress test using treadmill, bicycle exercise, and/or pharmacologic stress; with interpretation and report |
| 93351 | Same as 93350, including performance of continuous ECG monitoring, with supervision by a physician or other qualified health care professional |
| +93352 | Add-on code for use of an ultrasound enhancing agent (contrast) |
How the stress echo codes work
- 93350 covers the echocardiography component. Because it does not include ECG monitoring and supervision, you add the stress test component codes 93016 (supervision), 93017 (tracing), and/or 93018 (interpretation) separately, depending on who did what.
- 93351 is the code to use when the stress echo service includes the ECG monitoring and physician supervision in one package.
- +93352 is an add-on and can only be reported along with 93350 or 93351 when an ultrasound enhancing agent is used and documented.
- The contrast agent supply itself (for example, a Q-code or J-code, depending on the product) is billed separately by the party who purchased it.
Tip: Never bill a resting echo code like 93306 on the same day for the same views captured during a stress echo. The rest images are already part of 93350 and 93351.
Nuclear stress tests and other imaging
If your practice also performs nuclear myocardial perfusion imaging, the imaging codes are different. SPECT imaging is reported with 78451 (single study) or 78452 (multiple studies), planar imaging with 78453 or 78454, and the stress component with 93015–93018. The radiopharmaceutical is billed with a separate HCPCS supply code.
Echocardiography Codes at a Glance
Because echocardiograms often accompany stress testing and cath planning, here are the most common resting echo codes:
| CPT Code | Description (simplified) |
|---|---|
| 93306 | TTE, complete, with spectral and color flow Doppler |
| 93307 | TTE, complete, without Doppler |
| 93308 | TTE, limited or follow-up |
| 93312 | Transesophageal echocardiography (TEE), including probe placement, image acquisition, interpretation and report |
| 93320 / 93325 | Add-on Doppler codes (spectral / color flow) used with certain echo codes |
Most echo codes can be billed globally or split with modifiers -26 and -TC.
Cardiac Catheterization CPT Codes: An Overview
Cardiac catheterization is where cardiology coding gets complex. In 2011, the AMA revised the cath family into a bundled structure that reports the whole procedure in one code, including the catheter placement, injection of contrast, imaging supervision, and interpretation. Those are the 93451–93461 codes.
Here is the complete picture of the CPT code cardiac catheterization family:
| CPT Code | Procedure |
|---|---|
| 93451 | Right heart catheterization, including measurement of oxygen saturation and cardiac output, when performed |
| 93452 | Left heart catheterization, including intraprocedural injection(s) for left ventriculography, imaging supervision and interpretation, when performed |
| 93453 | Combined right and left heart catheterization, including left ventriculography |
| 93454 | Catheter placement in coronary artery(s) for coronary angiography, including intraprocedural injection(s) for coronary angiography, imaging supervision and interpretation |
| 93455 | Same as 93454, with catheter placement in bypass graft(s) |
| 93456 | Coronary angiography with right heart catheterization |
| 93457 | Coronary angiography with bypass graft angiography and right heart catheterization |
| 93458 | Left heart catheterization with coronary angiography, with or without left ventriculography |
| 93459 | Left heart catheterization with coronary angiography and bypass graft angiography |
| 93460 | Right and left heart catheterization with coronary angiography |
| 93461 | Right and left heart catheterization with coronary angiography and bypass graft angiography |
There are also add-on codes that can be reported with the base codes:
- +93462: Left heart catheterization by transseptal puncture through intact septum or by transapical puncture.
- +93463: Pharmacologic agent administration (for example, nitroglycerin or vasospastic agents) with hemodynamic measurement.
- +93464: Physiologic exercise study with hemodynamic measurement during cath.
- +93571 and +93572: Intravascular Doppler velocity and/or pressure derived coronary flow reserve measurement (such as FFR).
- +92978 and +92979: Intravascular ultrasound (IVUS) during diagnostic evaluation and/or therapeutic intervention.
Left Heart Catheterization CPT Code
The left heart catheterization CPT code depends on what else is performed in the same session, because the modern cath codes are “bundled” combinations.
- 93452: Left heart cath with ventriculography only (no coronary angiography).
- 93458: Left heart cath with coronary angiography, with or without left ventriculography. This is the most commonly billed diagnostic cath code.
- 93459: Left heart cath with coronary angiography and bypass graft angiography.
- 93453, 93460, 93461: Combined right and left heart cath variations.
Left heart cath billing tips
- Choose the code that matches the whole procedure. Do not bill 93452 and 93454 separately; use 93458, which already combines them.
- Do not bill separate injection or imaging supervision codes (the older 93543 to 93545 and 93555 to 93556 style codes) for the same session. They are included in the new structure.
- Report only what was actually performed. If the operator documents LV gram but no coronary angiography, 93452 applies. If both were done, 93458 applies.
- Document indications and findings. Include symptoms or non-invasive test results, vessels engaged, grafts studied, hemodynamics, and complications.
CPT Code for Right Heart Catheterization
The CPT code for right heart catheterization is 93451. This code covers placement of a catheter in the right atrium, right ventricle, and pulmonary artery, with measurement of pressures, plus oxygen saturation and cardiac output measurement when performed.
Right heart catheterization is commonly used to evaluate pulmonary hypertension, heart failure, valvular disease, shunts, and transplant candidacy.
When 93451 is not the right choice
- If coronary angiography is performed in the same session, use 93456 (coronary angiography with right heart cath) or 93457 (with bypass graft).
- If a left heart cath is also performed, use 93453 (with left ventriculography), 93460 (with coronary angiography), or 93461 (with coronary angiography and bypass graft angiography).
- If a Swan-Ganz catheter is placed at the bedside for hemodynamic monitoring rather than as a diagnostic cath, a different code (such as 93503) is typically used.
Coronary Angiography CPT Code
The coronary angiography CPT code is 93454 when angiography is the only component. It reports catheter placement in the coronary arteries, injection of contrast, and the imaging supervision and interpretation.
You will more often see coronary angiography reported as part of a combination:
| Scenario | CPT Code |
|---|---|
| Coronary angiography only | 93454 |
| Coronary angiography with bypass graft(s) | 93455 |
| Coronary angiography with right heart cath | 93456 |
| Coronary angiography, bypass grafts, and right heart cath | 93457 |
| Left heart cath with coronary angiography | 93458 |
| Left heart cath with coronary angiography and bypass grafts | 93459 |
| Right and left heart cath with coronary angiography | 93460 |
| Right and left heart cath, coronary angiography and bypass grafts | 93461 |
Coronary angiography and PCI
When a diagnostic cath is followed by a percutaneous coronary intervention (PCI) such as stenting, the rules change. The PCI codes (92920–92944) include the work of accessing the vessel and the imaging directly related to the intervention. Diagnostic angiography is generally reported separately only if no prior study was available or the patient’s condition changed, and it must be documented as a distinct, medically necessary service, often with an appropriate modifier. This is an area where payers audit frequently, so make sure your documentation clearly shows why the diagnostic work was needed.
Essential Modifiers for Cardiology CPT Codes
Modifiers tell the payer exactly how a service was performed. The most important ones in cardiology are:
| Modifier | Use in cardiology |
|---|---|
| 26 | Professional component only (physician interpretation) |
| TC | Technical component only |
| 25 | Significant, separately identifiable E/M on the same day as a procedure |
| 59 / XS, XE, XP, XU | Distinct procedural service, used to bypass an NCCI edit when documentation supports it |
| 51 | Multiple procedures (many payers apply this automatically) |
| 76 / 77 | Repeat procedure by same or different physician |
| LT / RT / LC / LD / RC | Laterality or coronary artery identifiers for PCI and some other services |
| 53 | Discontinued procedure (for example, a test stopped early for patient safety) |
Use modifiers only when the documentation supports them. Applying -59 as a habit to push claims past edits is a classic audit trigger.
Common Cardiology CPT Coding Mistakes
These errors show up repeatedly in denial reports:
- Billing global and component codes together: For example, 93000 with 93010, or 93015 with 93018.
- Unbundling cath codes: Reporting 93452, 93454, and 93451 separately when 93460 captures the whole procedure.
- Missing documentation of interpretation: A tracing without a signed report cannot support the interpretation codes.
- Wrong place-of-service assumptions: Technical component billing by a physician when the test was done in a hospital outpatient department.
- No linkage to medical necessity: Diagnosis codes that do not match the payer’s LCD or NCD.
- Ignoring annual code updates: Using outdated descriptors or deleted codes.
- Missing prior authorization: Many payers require authorization for stress imaging, nuclear studies, and elective caths.
- Billing for incomplete services: Reporting a full stress test when the patient could not exercise adequately and the test was stopped without a diagnostic result, without modifier 53 or appropriate documentation.
Best Practices for Accurate Cardiology Billing
- Build a code cheat sheet for your most common services (93000, 93015, 93306, 93350, 93458, 93451) and attach payer-specific notes.
- Use charge capture tied to the procedure note, not memory. Cath lab and stress lab reports should feed the superbill directly.
- Review NCCI edits quarterly and track Medicare Physician Fee Schedule changes.
- Educate providers on documentation. Include indications, vessels studied, hemodynamics, findings, and a clear impression.
- Audit regularly. A sample of cath and stress claims each quarter will reveal patterns before payers do.
- Work denials by root cause, not only by claim. If 93015 keeps denying for frequency, fix the scheduling workflow.
Simplify Your Cardiology Billing with MediFlows Billing Solutions
Between global and component codes, bundled cath structures, add-on codes, and shifting payer rules, cardiology is one of the hardest specialties to bill correctly. Every missed modifier or mismatched code is revenue left on the table.
MediFlows Billing Solutions supports practices with end-to-end revenue cycle management, including cardiology billing services, medical coding, denial management, credentialing, and MIPS reporting. Our team works with the major EHR and practice management platforms your practice already uses, including eClinicalWorks, AdvancedMD, Kareo, CureMD, and Allscripts.
Want to see where your cardiology claims are leaking revenue?
- Get your free 7-day revenue audit
- Explore all our billing services
- Call 888-305-4084 or email info@mediflowsbillingsolutions.com
Conclusion
Mastering cardiology CPT codes comes down to knowing the code families and how they fit together. For EKGs, remember the 93000, 93005, 93010 trio. For stress testing, know when to use 93015 versus 93016, 93017, and CPT 93018, and how stress echo codes 93350 and 93351 differ. For cath lab services, rely on the bundled 93451–93461 structure to pick the correct left heart catheterization, right heart catheterization, and coronary angiography code.
Pair accurate code selection with strong documentation, correct modifiers, and a regular audit routine, and your practice will see fewer denials and faster payments.