The Secret Language of Your Medical Bill
Medical billing codes are the language that hospitals, doctors, and insurance companies use to describe and price every medical service. There are over 80,000 diagnosis codes and 10,000 procedure codes in use today. Understanding even a fraction of them gives you an enormous advantage when reviewing your bill — because billing errors almost always involve incorrect codes, and if you can identify the wrong code, you can prove the overcharge.
I think of billing codes as the DNA of your medical bill. Every charge on your itemized statement has a code attached to it, and that code determines what you are being charged for and how much. When I review a client's bill, the codes are the first thing I look at. They tell me whether the bill is accurate, inflated, or outright fraudulent.
You do not need to memorize thousands of codes. You just need to understand the three main coding systems and know how to look up the codes on your own bill.
The Three Main Coding Systems
CPT Codes (Current Procedural Terminology)
CPT codes are the most important codes on your bill. They describe the specific medical procedures and services you received. CPT codes are five-digit numbers maintained by the American Medical Association (AMA).
| CPT Code Range | Category | Examples |
|---|---|---|
| 99201-99499 | Evaluation & Management (E/M) | Office visits, ER visits, hospital stays |
| 10000-69999 | Surgery | All surgical procedures |
| 70000-79999 | Radiology | X-rays, CT scans, MRIs, ultrasounds |
| 80000-89999 | Pathology & Laboratory | Blood tests, urinalysis, biopsies |
| 90000-99199 | Medicine | Injections, immunizations, infusions |
The E/M codes (99201-99499) are where most billing errors occur. These codes describe the complexity of your visit, and they are tiered by level. For example:
99281 — Level 1 ER visit (minor problem, minimal exam)
99282 — Level 2 ER visit (low complexity)
99283 — Level 3 ER visit (moderate complexity)
99284 — Level 4 ER visit (high complexity)
99285 — Level 5 ER visit (critical, life-threatening)
The difference in cost between a Level 3 and Level 5 ER visit can be $2,000 or more. Upcoding — billing for a higher level than warranted — is one of the most common and expensive billing errors.
ICD-10 Codes (International Classification of Diseases, 10th Revision)
ICD-10 codes describe your diagnosis — the medical reason for your visit. These are alphanumeric codes that can be very specific. For example:
J06.9 — Acute upper respiratory infection (common cold)
S93.401A — Sprain of unspecified ligament of right ankle, initial encounter
I21.0 — Acute ST elevation myocardial infarction of anterior wall (heart attack)
W61.33XA — Pecked by a chicken, initial encounter (yes, this is a real code)
ICD-10 codes matter for billing because they justify the medical necessity of the services you received. If the diagnosis code does not match the procedure code, your insurance may deny the claim. For example, if your diagnosis is "common cold" but you were billed for a CT scan of the chest, the insurance company may question whether the CT scan was medically necessary.
How ICD-10 codes affect your bill:
An incorrect diagnosis code can cause your claim to be denied
A more severe diagnosis code can be used to justify higher-level (more expensive) procedure codes
Some diagnosis codes trigger automatic coverage by insurance, while others do not
HCPCS Codes (Healthcare Common Procedure Coding System)
HCPCS codes (pronounced "hick-picks") cover items not included in CPT codes, primarily:
Durable medical equipment — (wheelchairs, crutches, oxygen equipment)
Medications and drugs — administered in a clinical setting
Ambulance services
Medical supplies — (bandages, splints, IV supplies)
HCPCS codes start with a letter followed by four digits (e.g., A4253 for blood glucose test strips, J0129 for an injection of abatacept).
Where HCPCS overcharges hide: Supply and medication markups are often extreme. A hospital might charge $500 for a bag of IV saline (HCPCS code J7050) that costs them about $1. Knowing the HCPCS code allows you to look up the Medicare reimbursement rate and compare it to what you were charged.
How to Use Billing Codes to Check Your Bill
Step 1: Get Your Itemized Bill With Codes
Call the billing department and request an itemized bill that includes all CPT, ICD-10, and HCPCS codes. The summary statement you received does not include this information.
Step 2: Look Up Each CPT Code
You can look up CPT codes on several free resources:
CMS Physician Fee Schedule — (cms.gov) — shows what Medicare pays for each code
Fair Health Consumer — (fairhealthconsumer.org) — shows average costs by ZIP code
AAPC Code Lookup — (aapc.com) — provides code descriptions
For each code on your bill, note:
What the code describes (does it match what you remember?)
What Medicare pays for that code in your area
How your charge compares to the Medicare rate
Step 3: Check for Common Code-Based Errors
Upcoding: Is the E/M level appropriate for your visit? A routine office visit should be Level 2-3 (99212-99213), not Level 4-5 (99214-99215). An ER visit for a minor issue should be Level 2-3 (99282-99283), not Level 4-5 (99284-99285).
Unbundling: Some procedures should be billed together under a single code. If you see multiple codes for what seems like one procedure, check the National Correct Coding Initiative (NCCI) edits to see if those codes should be bundled.
Incorrect modifiers: CPT codes can have two-digit modifiers that change their meaning. For example, modifier -50 indicates a bilateral procedure (performed on both sides). If you had surgery on one knee but the code has a bilateral modifier, you are being charged double.
Wrong code entirely: Sometimes the wrong CPT code is entered due to a typo or clerical error. A code for a complex surgical procedure might be entered when you had a simple office visit. Always verify that the code description matches the service you received.
Step 4: Verify the Diagnosis Codes
Check that the ICD-10 diagnosis codes on your bill match your actual condition. If you went to the doctor for a sore throat and the bill lists a diagnosis code for a cardiac condition, something is wrong. Incorrect diagnosis codes can also affect your medical record and future insurance coverage.
Real-World Example: How Codes Revealed a $6,000 Overcharge
A client came to me with a $9,200 bill for outpatient shoulder surgery. Here is what the itemized bill showed:
| CPT Code | Description | Charge |
|---|---|---|
| 29827 | Arthroscopic rotator cuff repair | $4,500 |
| 29826 | Arthroscopic acromioplasty | $2,200 |
| 29822 | Arthroscopic debridement, limited | $1,800 |
| 99284 | Level 4 E/M (pre-op evaluation) | $700 |
When I looked up these codes, I found two problems:
**Unbundling:** CPT codes 29826 and 29822 are commonly bundled with 29827 when performed during the same surgical session. The NCCI edits confirm that these codes should not be billed separately when the rotator cuff repair is the primary procedure. This was a $4,000 overcharge.
**Upcoding the pre-op evaluation:** A routine pre-operative evaluation for a scheduled surgery is typically Level 2-3, not Level 4. The Level 4 code added approximately $300 to the bill.
After disputing these codes with the hospital, the bill was reduced from $9,200 to $5,100 — a $4,100 reduction based entirely on coding errors.
Resources for Looking Up Codes
CMS Physician Fee Schedule Lookup: — Search for any CPT code and see what Medicare pays in your area
AAPC Code Lookup Tool: — Free descriptions of CPT and ICD-10 codes
Fair Health Consumer: — Cost estimates by ZIP code and procedure
ICD10Data.com: — Searchable database of all ICD-10 diagnosis codes
NCCI Coding Edits: — Check which CPT code pairs should be bundled
Key Takeaways
Three coding systems matter: — CPT (procedures), ICD-10 (diagnoses), and HCPCS (supplies and drugs)
Upcoding is the most common billing error — verify that the E/M level matches the complexity of your visit
Unbundling inflates bills — by charging separately for procedures that should be billed together
Always request an itemized bill with codes — the summary statement does not include this critical information
Look up your CPT codes — on the CMS fee schedule to see what Medicare pays — this is your fair price benchmark
Verify diagnosis codes — match your actual condition — incorrect codes can cause claim denials
You do not need to be a coding expert — just knowing the basics can save you thousands
Coding errors account for a significant portion of the 80% of bills that contain mistakes