US Medical Billing Β· 9 min read
CPT, HCPCS, ICD-10, DRG and Revenue Codes Explained
Almost every billing dispute traces back to a code. Five systems appear on US bills, each answering a different question β what was done, with what, why, in which department, and under which payment bundle. Once you can read them, you can audit your own bill.
The five systems at a glance
| System | Format | Answers | Notes |
|---|---|---|---|
| CPT | 5 digits (e.g. 99213) | What the clinician did | AMA-maintained procedure and service codes |
| HCPCS Level II | Letter + 4 digits (e.g. J1885) | Drugs, supplies, equipment, ambulance | CMS-maintained, used where CPT has no code |
| ICD-10-CM | Letter + digits (e.g. E11.9) | Why it was done β the diagnosis | Justifies medical necessity of the CPT code |
| MS-DRG | 3 digits (e.g. 470) | How an inpatient stay is paid | One bundled payment for the whole admission |
| Revenue code | 4 digits (e.g. 0450) | Where in the hospital it happened | Department/cost centre on a UB-04 hospital bill |
CPT: what was done
Current Procedural Terminology codes are maintained by the American Medical Association and describe procedures and services.[1] Ranges worth recognizing:
- 99202β99215 β office visits, new and established patients.
- 99281β99285 β emergency department visit levels 1β5.
- 10004β69990 β surgery.
- 70010β79999 β radiology.
- 80047β89398 β pathology and laboratory.
- 90281β99607 β medicine, vaccines, infusions.
Office and ER visit levels are driven by complexity and time. A level 4 or 5 attached to a ten-minute visit is the single most checkable error on a bill.
Modifiers change everything
Two-character suffixes attached to a CPT code alter how it's paid:
- -25 β a separate, significant E/M service on the same day as a procedure. Heavily abused; it converts one visit into two charges.
- -59 β distinct procedural service, used to bypass bundling rules.
- -26 / -TC β professional vs. technical component (the radiologist vs. the machine).
- -50 β bilateral procedure.
- -76 / -77 β repeat procedure by same or different provider.
- -GA β a waiver of liability notice is on file.
If you see modifier -25 or -59 on your bill, ask the provider to explain in writing what separate service it represents.
HCPCS Level II: drugs, supplies and equipment
CMS maintains HCPCS Level II for items CPT doesn't cover: injectable drugs (J-codes), durable medical equipment (E-codes), ambulance (A-codes), and supplies.[2] Drug codes are billed by unit, and unit errors are a classic overcharge β verify the dose you received against the units billed.
ICD-10-CM: why it was done
Diagnosis codes justify the procedure. If the ICD-10 code doesn't support the CPT code, the claim is denied as not medically necessary β and the fix is usually a corrected code, not an appeal about the treatment.[3] Check the diagnosis on your EOB: a wrong diagnosis code can also follow you into future underwriting and records.
DRG: how inpatient stays are paid
For an admitted patient, Medicare and many commercial payers pay a single bundled amount based on the Medicare Severity Diagnosis Related Group, derived from the principal diagnosis, procedures, complications and comorbidities.[4] Two consequences matter to patients: the itemized charges may total far more than the hospital is actually paid, and "DRG creep" β coding a stay into a higher-severity group β inflates cost sharing on percentage-based plans.
Also check your admission status. "Observation" is outpatient even after an overnight stay, and it is billed under different rules than inpatient admission.
Revenue codes: where it happened
Hospital bills (form UB-04) group charges by four-digit revenue code β 0250 pharmacy, 0300 laboratory, 0320 radiology, 0360 operating room, 0450 emergency room, 0636 drugs requiring detailed coding. Revenue codes tell you which department generated a charge, which is how you catch a lab charge on a date you weren't in the hospital.
How to check a code yourself
- Request the fully itemized bill β summary bills hide codes.
- Look up each CPT/HCPCS code's descriptor and confirm it matches what happened.
- Compare the charge to Medicare's rate for the same code and locality using the CMS Physician Fee Schedule lookup β a defensible benchmark in any negotiation.[5]
- Check units and dates on every drug and supply line.
- Match the codes on the bill to the codes on your EOB; they must agree.
Coding errors worth hunting
- Upcoding β a higher-level visit or severity than documented.
- Unbundling β billing components separately that have a single combined code.
- Duplicate lines β the same code and date billed twice without a repeat modifier.
- Unit errors β 100 units of a drug where 10 were given.
- Wrong date of service β charges after discharge.
- Mismatched diagnosis β an ICD-10 code unrelated to your care.
Sources
- [1]American Medical Association β CPT (Current Procedural Terminology) overview
- [2]CMS β HCPCS Level II coding
- [3]CDC / National Center for Health Statistics β ICD-10-CM classification of diseases
- [4]CMS β MS-DRG classification and Inpatient Prospective Payment System
- [5]CMS β Physician Fee Schedule lookup
Not sure what your bill actually says?
Upload it and get a plain-English breakdown of every charge in about 30 seconds.
Analyze my medical billEducational information only. This article is not legal, medical, or financial advice.