Skip to content
explainer

CPT Codes, HCPCS, ICD-10, and Modifiers: A Plain-Language Guide to Medical Billing Codes

Everything you need to know about the codes on your medical bill - and how errors happen

NilesAI Research Team 10 min read

Why Billing Codes Matter to You

Every single charge on your medical bill is tied to a code. When your doctor examines you, that is a code. When the lab runs your bloodwork, that is another code. When the hospital charges for the IV tubing used during your infusion, that is yet another code. These codes are the language of medical billing - and understanding them is the first step toward understanding your bill.

The problem is that most patients never see these codes, and when they do, the strings of letters and numbers are unintelligible. Yet these codes determine exactly how much you are charged, what your insurance covers, and what you owe out of pocket. A single wrong digit in a code can mean the difference between a $150 office visit and a $500 one. A missing two-character modifier can cause your insurer to deny an otherwise covered claim.

According to a 2023 analysis published by the American Medical Association, there are over 10,000 CPT codes in active use - and that is only one of several coding systems on your bill. When you add HCPCS codes, ICD-10 diagnosis codes, modifiers, and revenue codes to the mix, the complexity is staggering. Billing offices process millions of these codes daily, and errors are inevitable.

This guide will break down each coding system in plain language, show you the codes you are most likely to encounter, and explain exactly how coding errors lead to overbilling. If you have already read our guide on common medical billing errors, consider this the deeper dive into the coding layer underneath those errors. And if you want to understand the document where these codes appear, start with our guide to reading your Explanation of Benefits.

CPT Codes: The Foundation of Procedure Billing

CPT stands for Current Procedural Terminology. Maintained exclusively by the American Medical Association (AMA), CPT codes are the primary system used to describe medical, surgical, and diagnostic services performed by healthcare providers. Every time a provider performs a service - an office visit, a surgery, a blood draw, an X-ray - that service is assigned a five-digit CPT code.

The CPT code set is organized into three categories:

Category I codes are the most common. These are five-digit numeric codes (e.g., 99213) that describe widely performed procedures and services. Category I is further divided into six sections:

  • Evaluation and Management (E&M): 99201–99499 - Office visits, hospital visits, consultations, and other encounters where a provider evaluates your condition and makes medical decisions.
  • Anesthesia: 00100–01999 - Services related to administering anesthesia during procedures.
  • Surgery: 10004–69990 - All surgical procedures, from minor skin biopsies to complex cardiac operations.
  • Radiology: 70010–79999 - Imaging services including X-rays, CT scans, MRIs, and ultrasounds.
  • Pathology and Laboratory: 80047–89398 - Lab tests, blood panels, tissue analysis, and other diagnostic testing.
  • Medicine: 90281–99607 - A broad category covering vaccines, infusions, physical therapy, psychiatric services, and more.

Category II codes are supplemental tracking codes used for performance measurement and quality reporting. They are five digits followed by the letter F (e.g., 1234F). You will rarely see these on a patient bill.

Category III codes are temporary codes for emerging technologies and services that do not yet have a Category I code. They are five digits followed by the letter T (e.g., 0505T). These appear when your provider uses a newer procedure.

The CPT Codes Patients See Most Often

The codes you are most likely to encounter on your bills are Evaluation and Management (E&M) codes. These describe office visits and are also the codes most frequently involved in billing errors.

10 Most Common CPT Codes Patients See

CodeDescription
99213Office visit, established patient, low complexity
99214Office visit, established patient, moderate complexity
99203Office visit, new patient, low complexity
99204Office visit, new patient, moderate complexity
99215Office visit, established patient, high complexity
99385Preventive visit, new patient, 18–39 years
99395Preventive visit, established patient, 18–39 years
36415Routine venipuncture (blood draw)
85025Complete blood count (CBC), automated
80053Complete metabolic panel

The difference between a 99213 and a 99215, for example, can be hundreds of dollars - yet both describe an office visit with an established patient. The distinction lies in the complexity of medical decision-making, the number of problems addressed, and the amount and complexity of data reviewed. When a provider bills a higher-level code than the documentation supports, that is called upcoding - one of the most common billing errors we document in our medical billing errors whitepaper. Upcoding is particularly prevalent in surgical settings - see our guide to surgery billing errors for the specific CPT codes and patterns to watch for after any procedure.

HCPCS Codes: Beyond Physician Services

HCPCS stands for the Healthcare Common Procedure Coding System, maintained by the Centers for Medicare & Medicaid Services (CMS). HCPCS is organized into two levels:

Level I is simply the CPT code set described above. When people refer to “HCPCS Level I codes,” they mean CPT codes.

Level II codes fill the gap. While CPT covers procedures and services performed by providers, HCPCS Level II covers products, supplies, and services that CPT does not - think ambulance rides, durable medical equipment (wheelchairs, CPAP machines), prosthetics, orthotics, and drugs administered in a clinical setting.

Level II codes are alphanumeric, starting with a letter followed by four digits. The letter indicates the category:

Letter RangeCategory
A0000–A0999Ambulance and transportation
A4000–A8999Medical and surgical supplies
E0100–E9999Durable medical equipment (DME)
J0000–J9999Drugs administered by injection or infusion
K0000–K9999Temporary DME codes
L0000–L9999Orthotics and prosthetics

For example, if you receive a knee brace after surgery, the brace itself is billed with an HCPCS Level II code (such as L1832), while the surgery to repair your knee is billed with a CPT code. If you receive a chemotherapy drug via infusion, the administration of the infusion uses a CPT code, while the drug itself uses a J-code (such as J9271 for pembrolizumab).

Understanding the distinction matters because HCPCS Level II items are a frequent source of overcharges. A 2022 report from the Office of Inspector General (OIG) found that durable medical equipment claims accounted for a disproportionate share of Medicare billing errors, with error rates exceeding 30% in some DME categories. Laboratory and imaging studies - which use both CPT and HCPCS Level II codes - are among the highest-risk categories for overcharges; our guide to imaging and lab overcharges walks through the most common code-level errors in those service categories.

ICD-10 Codes: Why You Were Treated

If CPT codes describe what was done, ICD-10 codes describe why it was done. ICD stands for the International Classification of Diseases, and the current version - ICD-10 - is maintained globally by the World Health Organization (WHO) and adapted for clinical use in the United States by CMS.

ICD-10 codes are the diagnosis codes on your bill. Every procedure billed to insurance must be paired with at least one ICD-10 code that establishes medical necessity - proof that the service was required to diagnose or treat a specific condition. Without a valid ICD-10 code, your insurer can deny the claim entirely.

The structure of an ICD-10-CM (Clinical Modification) code is logical once you understand the pattern. Each code starts with a letter, followed by two digits, a decimal point, and then up to four additional characters. For example:

  • M54.5 - Low back pain
  • E11.9 - Type 2 diabetes mellitus without complications
  • J06.9 - Acute upper respiratory infection, unspecified
  • Z23 - Encounter for immunization
  • S82.001A - Fracture of right patella, initial encounter

The first three characters identify the category of disease or condition. Characters after the decimal point add specificity - laterality (left vs. right), severity, episode of care (initial vs. subsequent), and other clinical detail. The ICD-10-CM code set contains over 72,000 codes, which is why the potential for miscoding is enormous.

ICD-10 coding errors affect patients in two primary ways. First, if the wrong diagnosis code is used, your insurer may determine the procedure was not medically necessary and deny the claim - leaving you with the full bill. Second, incorrect diagnosis codes can become part of your permanent medical record, potentially affecting future insurance coverage, life insurance applications, and even employment in some fields. If you spot an unfamiliar diagnosis code on your EOB, verify it with your provider.

Modifiers: The Fine Print That Changes Everything

Modifiers are two-character suffixes appended to CPT or HCPCS codes that provide additional information about how a service was performed. They do not change the base procedure - instead, they add context that can affect reimbursement. A missing or incorrect modifier is one of the most common causes of claim denials and overbilling.

Here are the modifiers you will encounter most frequently:

5 Most Important Modifiers to Know

ModifierMeaningWhy It Matters
-25Significant, separately identifiable E&M service on the same day as a procedureAllows billing for both an office visit and a procedure. Frequently overused, leading to overbilling.
-59Distinct procedural serviceIndicates two procedures that normally would be bundled were truly separate. Often misused to bypass bundling rules.
-26Professional component onlySplits the physician’s interpretation from the technical work. Used for radiology reads, pathology, etc.
-TCTechnical component onlyThe counterpart to -26. Covers the equipment and facility costs.
-50Bilateral procedureIndicates a procedure was performed on both sides of the body. Should yield a single line item rather than two separate charges.

Additional modifiers you may see include:

  • -76 - Repeat procedure by the same physician on the same day
  • -77 - Repeat procedure by a different physician on the same day
  • -91 - Repeat clinical diagnostic laboratory test
  • -24 - Unrelated E&M service during a postoperative period
  • -57 - Decision for surgery made during E&M visit

Modifiers -25 and -59 deserve special attention because they are the most commonly abused. The CMS Office of Inspector General has repeatedly flagged modifier -25 overuse, finding that in a significant number of audited claims, the separately billed E&M service did not meet the criteria for a “significant, separately identifiable” evaluation. Similarly, modifier -59 is sometimes used to unbundle services that should be billed as a single code - a practice that inflates your bill.

For a deeper explanation of how NilesAI detects modifier abuse and other coding irregularities, see our scan engines overview.

Revenue Codes: Hospital-Specific Billing

If you have ever received a hospital bill - especially from an emergency room or inpatient stay - you may have noticed four-digit codes that do not look like anything described above. These are revenue codes, and they appear on the UB-04 (also called CMS-1450), which is the standard billing form used by institutional providers such as hospitals, skilled nursing facilities, and home health agencies.

Revenue codes categorize the department or type of service within a facility. Unlike CPT codes, which describe the specific procedure, revenue codes describe where or how the service was delivered. For example:

Revenue CodeDescription
0120Room and board, semi-private
0250Pharmacy, general
0320Radiology, diagnostic
0450Emergency room
0710Recovery room

Revenue codes work alongside CPT and HCPCS codes, not instead of them. A single hospital charge line might include revenue code 0450 (emergency room), CPT code 99284 (ER visit, high severity), and ICD-10 code S52.501A (fracture of lower end of radius). Together, these codes tell the full story: where you were treated, what was done, and why.

Errors in revenue codes can cause charges to be routed to the wrong cost center, resulting in inflated facility fees. If your hospital bill seems unusually high for a routine visit, the revenue codes assigned may be worth examining - particularly the distinction between outpatient observation (revenue code 0762) and inpatient admission (revenue codes 0110–0169), which can result in thousands of dollars of difference in your bill.

How Coding Errors Happen - and How Often

With tens of thousands of codes in use and millions of claims processed daily, coding errors are not occasional anomalies - they are a systemic feature of the billing system. Research from the American Academy of Professional Coders (AAPC) and CMS audit data consistently shows that coding errors appear in a significant percentage of medical claims.

The most common types of coding errors include:

Upcoding - Billing a higher-level code than the documentation supports. For example, billing a 99215 (high-complexity established patient visit) when the notes only support a 99213 (low-complexity visit). The price difference can be $200 or more per visit.

Missing or incorrect modifiers - Failing to append a required modifier (causing a denial) or appending one improperly (causing an overcharge). Modifier -25 is added to E&M codes on the same day as a procedure, but audits show it is frequently added when the E&M service was not truly “significant and separately identifiable.”

Unbundled codes - Billing separate codes for components of a procedure that should be billed as a single complete code. The National Correct Coding Initiative (NCCI) maintains bundling rules that define which codes should not be billed together, but violations remain common.

Wrong ICD-10 pairing - Assigning a diagnosis code that does not support the medical necessity of the procedure. This can cause outright denials or result in a lower reimbursement that shifts more cost to the patient.

Invalid or expired CPT codes - The AMA updates the CPT code set annually. Codes are added, revised, and deleted each January. If a provider bills with a code that has been retired, the claim may be denied or incorrectly processed.

Most Common Coding Errors in Flagged Bills

Upcoding (wrong CPT level) 32%
Missing/incorrect modifier 24%
Unbundled codes 20%
Wrong ICD-10 pairing 14%
Invalid/expired CPT 10%

These errors are not always intentional. Many result from the sheer complexity of the coding system, staff turnover in billing departments, outdated software, or simple human mistakes under time pressure. But regardless of intent, the financial impact on patients is real. Our whitepaper on medical billing errors documents these patterns in detail.

How to Look Up Codes Yourself

You do not need a medical coding certification to investigate the codes on your bill. Several free and publicly available resources can help you understand what you are being charged for:

  • CMS HCPCS Code Lookup: The CMS HCPCS page provides searchable access to Level II codes and their descriptions.
  • CMS ICD-10 Code Lookup: The CMS ICD-10 page lets you search diagnosis codes and understand their clinical meaning.
  • AAPC Code Finder: The AAPC offers a free code lookup tool that provides plain-language descriptions of CPT codes.
  • FAIR Health Consumer: FAIR Health lets you estimate the cost of procedures by CPT code and geographic area - an invaluable tool for spotting charges that are far above the norm.
  • Medicare.gov: Medicare.gov provides procedure pricing data for Medicare beneficiaries, but the pricing benchmarks are useful for any patient.
  • Healthcare.gov: Healthcare.gov offers a glossary of insurance and billing terms that can help you decode your EOB alongside the codes.

You can also use the NilesAI cost lookup tool to quickly check whether a billed amount for a given CPT code is within the expected range for your area. For a complete list of billing terms, visit our glossary.

Start by requesting an itemized bill from your provider - not the summary statement, but the detailed line-item version that includes CPT codes, ICD-10 codes, and modifiers. Then pull your EOB from your insurer. Compare the two documents line by line, using the code lookup tools above to verify that each code matches the service you actually received. Our step-by-step guide to reviewing your medical bill walks you through this process in detail.

How NilesAI Validates Codes Automatically

Manually researching every code on a complex medical bill is time-consuming - and for a hospital stay with dozens or hundreds of line items, it is practically impossible for most patients. That is exactly the problem NilesAI was built to solve.

When you upload a bill to NilesAI, our scan engines perform automated validation across every coding dimension described in this guide:

  • CPT code validity: NilesAI checks every CPT code against the current year’s AMA code set, flagging any codes that are expired, deleted, or invalid for the date of service.
  • Modifier validation: Each modifier is evaluated in context - verifying that modifier -25 is supported by documentation of a separately identifiable E&M service, that modifier -59 is not being used to improperly unbundle codes, and that component modifiers (-26 and -TC) are applied correctly.
  • NCCI bundling checks: NilesAI cross-references every code pair against the CMS National Correct Coding Initiative edit tables to detect unbundled charges - cases where two or more codes should have been billed as a single service.
  • ICD-10 medical necessity pairing: NilesAI verifies that each procedure code is paired with a diagnosis code that establishes medical necessity, reducing the risk of inappropriate denials.
  • E&M level validation: For office visits and other E&M services, NilesAI evaluates whether the billed complexity level aligns with the reported services, flagging potential upcoding.

To learn more about how each of these engines works, read our detailed scan engines overview.

Medical billing codes are complex by design - but they should not be a mystery to the patients who are paying the bills. Whether you choose to investigate codes on your own or let NilesAI handle the analysis automatically, the important thing is that you never pay a bill you do not understand. Start by uploading your bill to NilesAI today, and see exactly what those codes mean for your bottom line.

The medical bill review hub brings together every guide, tool, and checklist for reviewing bills in one place.

You can scan a bill for free now to see what NilesAI finds.

Ready to check your medical bills?

NilesAI scans your bills against 16 validation engines and 2.6 million billing rules — free to start.

Share:

Stay informed on medical billing

Get new guides, industry updates, and billing tips delivered to your inbox.

Thanks! You're subscribed.

No spam. Unsubscribe anytime.

Related Articles

Check your bills free Join Free →

Enjoying this article?

Upload your bill and see what NilesAI finds.

Try it free →