A pediatrician who owned a two-provider practice called us about a denial she could not read. The remittance line said CO-11, "diagnosis inconsistent with procedure", on a claim with 99214, 96372, J0696 and J02.0. She knew every one of those codes meant something. She did not know that they came from three different code sets, maintained by three different organizations, updated on three different calendars, and that the denial was about the relationship between two of them: the payer's edit did not think a ceftriaxone injection was supported by a diagnosis of strep pharyngitis without a reason the oral antibiotic failed. The coding was arguable. The understanding was missing.
Most practice owners are in her position. They sign off on claims written in a language they can half read, and when something goes wrong they cannot tell whether the problem is the procedure code, the diagnosis code, the supply code or the way the three were combined. This explainer is for them, and for the office manager who has to translate.
The three code sets each answer one question on a claim. CPT (Current Procedural Terminology, owned by the American Medical Association) answers what the provider did. ICD-10-CM (the clinical modification of the International Classification of Diseases, maintained by the National Center for Health Statistics with CMS) answers why, the diagnosis or reason for the visit. HCPCS Level II (the Healthcare Common Procedure Coding System, maintained by CMS) answers what was supplied: drugs, equipment, supplies and a set of services CPT does not describe. A payable claim line needs a CPT or HCPCS code, at least one ICD-10-CM code pointed at it, and any modifiers that change the meaning of either.
What is CPT and how is it organized?
CPT is the procedure vocabulary for professional services in the United States. Every code is five characters. Category I codes, the ones practices use daily, are five digits and are grouped into sections: Evaluation and Management (99202 to 99499), Anesthesia, Surgery, Radiology, Pathology and Laboratory, and Medicine. Category II codes end in F and are optional performance-tracking codes (3074F reports a systolic blood pressure under 130, for example); they pay nothing and exist for quality programs. Category III codes end in T and are temporary codes for emerging technology; payers often treat them as experimental.
The AMA owns the copyright, which is why your practice management system pays a license to display code descriptions, and why the full descriptors are not posted free on a government site. The CPT Editorial Panel meets through the year and the main code set changes once a year, effective January 1. Category III codes, proprietary laboratory analyses and vaccine codes are released on a faster cycle, so a coder who only updates in January can still miss a change. Modifiers are two characters added to a CPT code that change its meaning without changing the code: modifier 25 marks a significant, separately identifiable E/M visit on the same day as a procedure, modifier 59 (or the X modifiers Medicare prefers) marks a distinct procedural service, modifier 50 marks a bilateral procedure, and modifiers 76 and 77 mark a repeat procedure by the same or a different provider.
The thing to understand as an owner is that the CPT descriptor is a contract. If the descriptor for 99214 says moderate medical decision making or 30 to 39 minutes total time, the note must show one of those or the code is not supported, no matter how busy the visit felt. Under-coding is as real a problem as over-coding: an office that bills every visit as 99213 because it feels safe is leaving money on the table every day and would look just as odd to an auditor as an office that bills everything at 99215.
What is ICD-10-CM and how is a code built?
ICD-10-CM is the diagnosis code set. It is maintained by the National Center for Health Statistics, part of the CDC, with CMS, through the ICD-10 Coordination and Maintenance Committee, and HIPAA requires every covered entity to use it for diagnoses. A code has three to seven characters. The first is a letter, the second and third are digits, and together they form the category: E11 is type 2 diabetes mellitus, M17 is osteoarthritis of the knee, S52 is a fracture of the forearm. Characters four through six add detail: cause, site, severity, laterality. E11.65 is type 2 diabetes with hyperglycemia; M17.11 is unilateral primary osteoarthritis of the right knee.
The seventh character is where new coders stumble. In the injury chapters it tells the payer which encounter this is: A for the initial encounter while the patient is receiving active treatment, D for a subsequent encounter during routine healing, S for a sequela. S52.501A is an unspecified fracture of the lower end of the right radius at the initial encounter; S52.501D is the same fracture at a routine follow-up. If a code needs a seventh character and has fewer than seven, the placeholder X fills the gap (T36.0X5A, adverse effect of penicillin, initial encounter). A code billed without its required seventh character is invalid, and the claim rejects before it is adjudicated.
Two more rules decide whether a diagnosis supports a claim. Code to the highest specificity the documentation allows: an "unspecified" code is legal, but payers increasingly deny them for services that need a precise reason (CO-50 and CO-11 both show up). And respect the Excludes1 notes in the code book: two codes under an Excludes1 note cannot be reported together because they describe conditions that cannot coexist. The code set is updated every October 1, with a smaller April 1 update, and the change list each year runs to hundreds of new, deleted and revised codes. ICD-10-PCS, the procedure half of ICD-10, is used only by hospitals for inpatient facility claims; a physician practice never bills it.
What is HCPCS Level II and why does it exist?
HCPCS is pronounced "hick-picks", and the naming trips everyone up. HCPCS Level I is simply CPT. HCPCS Level II is the set CMS maintains for everything CPT does not describe: drugs administered in the office, durable medical equipment, prosthetics, orthotics, supplies, ambulance services, and a group of services Medicare pays for that have no CPT equivalent. A Level II code is a letter followed by four digits. The letter tells you the family: J codes are drugs (J3301 is triamcinolone acetonide, 10 mg), E codes are durable medical equipment (E0601 is a CPAP device), A codes are supplies and ambulance, L codes are orthotics and prosthetics, and G codes are Medicare's temporary professional service codes (G0439 is the subsequent annual wellness visit).
Two features of Level II cause most of the trouble. First, drug codes are defined per unit of a specific dose, so the billed units are a conversion, not a count: 40 mg of triamcinolone under J3301 (10 mg per unit) is four units, and billing one unit leaves three quarters of the drug unpaid. Second, Level II has its own modifiers, and payers care about them: LT and RT for side, RR for rental and NU for a new purchase, KX to attest that a coverage policy's requirements are met, GA to say an advance beneficiary notice is on file, and JW and JZ to report drug wastage or the absence of it. CMS updates Level II quarterly, in January, April, July and October, and publishes the changes on its HCPCS quarterly update page; a practice that buys a new injectable should check that page before the first dose is billed.
How the three code sets compare
| Feature | CPT (HCPCS Level I) | ICD-10-CM | HCPCS Level II |
|---|---|---|---|
| Question it answers | What service or procedure was performed | Why: the diagnosis, symptom or reason for the encounter | What drug, supply, equipment or non-CPT service was provided |
| Who maintains it | American Medical Association, CPT Editorial Panel | National Center for Health Statistics (CDC) with CMS, via the Coordination and Maintenance Committee | CMS, HCPCS Workgroup |
| Format | Five characters: five digits (Category I), four digits plus F (Category II) or T (Category III) | Three to seven characters, letter first, decimal after the third character, X placeholder where needed | One letter plus four digits |
| Approximate size | More than ten thousand codes | More than seventy thousand codes | Several thousand codes |
| Update cycle | Main set effective January 1 each year; Category III, PLA and vaccine codes released more often | October 1 each year, with a smaller April 1 update | Quarterly: January, April, July, October |
| Modifiers | Two-digit numeric (25, 59, 50, 76, 95) plus anesthesia physical status modifiers | None; detail is built into the code characters | Two-character alphanumeric (LT, RT, KX, GA, RR, NU, JW, JZ) |
| Where it appears on the CMS-1500 | Item 24D | Item 21 (A to L) with pointers in 24E | Item 24D, same column as CPT |
| Where to check the current version | AMA CPT resources and the licensed code book or software | CMS ICD-10 page and the NCHS ICD-10-CM files | CMS HCPCS page and the quarterly update files |
| Typical example | 99214, 20610, 36415 | E11.65, M17.11, S52.501D | J3301, E0601, G0439 |
| Most common mistake we see | Level of service not supported by the note; missing modifier 25 | Unspecified code when the note is specific; missing seventh character | Wrong unit conversion on a J code; missing KX or RT/LT |
Worked examples: how the three sets meet on one claim
The clearest way to see the division of labor is to read a few claims line by line. Each line below is one row of item 24 on a CMS-1500 or one SV1 segment in the 837P. The diagnosis pointer letters refer to the codes listed in item 21.
Example 1: an office visit with a knee injection
A 68-year-old established patient with osteoarthritis of the right knee comes in for pain. The provider evaluates two other chronic problems, then injects 40 mg of triamcinolone into the knee.
| Line | Code | Modifier | Diagnosis pointer | Units | What it says |
|---|---|---|---|---|---|
| 1 | 99214 (CPT) | 25 | A, B, C | 1 | A separately identifiable established-patient visit of moderate complexity |
| 2 | 20610 (CPT) | RT | A | 1 | Arthrocentesis or injection of a major joint, right side |
| 3 | J3301 (HCPCS II) | A | 4 | Triamcinolone acetonide, 10 mg per unit, 40 mg given |
Item 21 lists A: M17.11 (unilateral primary osteoarthritis, right knee), B: I10 (essential hypertension), C: E78.5 (hyperlipidemia, unspecified). Without modifier 25 the payer bundles the visit into the injection (CO-97). With one unit instead of four on J3301, the practice is paid for a quarter of the drug and nobody notices. Whether 99214 is justified depends on the note showing the two chronic problems were addressed, not just listed.
Example 2: a Medicare annual wellness visit with a problem addressed
A Medicare patient comes in for the annual wellness visit and also needs her blood pressure medication adjusted.
| Line | Code | Modifier | Diagnosis pointer | Units | What it says |
|---|---|---|---|---|---|
| 1 | G0439 (HCPCS II) | A | 1 | Annual wellness visit, subsequent | |
| 2 | 99213 (CPT) | 25 | B | 1 | Problem-oriented visit, low complexity, separately identifiable |
Item 21 lists A: Z00.00 (encounter for general adult medical examination without abnormal findings) and B: I10. The wellness visit has no CPT code; it is a Medicare benefit and lives in HCPCS Level II. The problem visit is CPT and needs its own diagnosis pointer and modifier 25, and the note needs two distinct sections so an auditor can see that the problem work was not part of the wellness visit.
Example 3: fracture follow-up with an X-ray
A patient returns three weeks after a wrist fracture was set. The provider examines the wrist and takes two X-ray views.
| Line | Code | Modifier | Diagnosis pointer | Units | What it says |
|---|---|---|---|---|---|
| 1 | 99213 (CPT) | A | 1 | Established-patient visit (if not inside a global fracture care period) | |
| 2 | 73100 (CPT) | RT | A | 1 | Radiologic examination, wrist, two views, right |
Item 21 lists A: S52.501D, the same fracture code used at the first visit but with the seventh character changed from A to D because this is a subsequent encounter with routine healing. Billing S52.501A again at the follow-up is one of the most common ICD-10-CM errors we see, and it is also the kind of error that makes a visit look like a new injury on the payer's side.
Example 4: equipment ordered for sleep apnea
A supplier bills the first month of a CPAP rental for a patient diagnosed with obstructive sleep apnea.
| Line | Code | Modifier | Diagnosis pointer | Units | What it says |
|---|---|---|---|---|---|
| 1 | E0601 (HCPCS II) | RR, KX | A | 1 | CPAP device, rental, coverage criteria met and documented |
Item 21 lists A: G47.33 (obstructive sleep apnea). There is no CPT code on this claim at all. The KX modifier is the supplier's statement that the sleep study results and the face-to-face evaluation required by the coverage policy are in the file, and leaving it off produces an automatic denial.
The mistakes we see most often
When we audit a sample of claims, the same handful of errors account for most of the preventable denials and most of the lost revenue.
- Mixing up which set a code comes from. Staff search for "wellness visit" in the CPT book and never find G0439, or they look for a flu vaccine administration code in HCPCS when it is CPT 90471 for commercial plans and G0008 for Medicare.
- Billing the drug by vial count instead of units. J codes are dose-based. Every new injectable needs a written conversion (milligrams given divided by milligrams per unit) taped to the charge sheet.
- Dropping or reusing the seventh character. Injury codes change from A to D after active treatment ends. Templates that carry the initial code forward cause this.
- Unspecified diagnosis codes on specific procedures. M17.9 (osteoarthritis of knee, unspecified) on a right-knee injection invites a denial when M17.11 was in the note.
- Diagnosis pointers that do not match the line. The 837P allows up to four pointers per line. Pointing every line at every diagnosis, which some systems do by default, is how CO-11 denials are born.
- Modifier 25 and 59 used as a reflex. They should be the exception that the note justifies, not an automatic addition. Payers track their frequency per provider.
- Never checking the update files. A deleted code billed after its deletion date rejects every time. January (CPT), October (ICD-10-CM) and every quarter (HCPCS) need a calendar entry and a review of the practice's top 50 codes.
Most of these are process problems, not knowledge problems, which is why we treat coding review as part of the coding service rather than a one-time training. Staff who want the full grounding can take the coding modules in our RCM training program, and the denial codes tool explains what each CARC means when the payer disagrees with a code choice.
Where to check the current codes
Because all three sets change on fixed schedules, any list in an article goes stale. The habit that keeps a practice current is knowing the primary source for each set. For CPT, the AMA publishes the annual code book and licensed data files, and your practice management vendor loads the update in late December; ask them for the release note. For ICD-10-CM, CMS posts the new fiscal year's code tables, index and guidelines on its ICD-10 page each summer, ahead of the October 1 effective date, and the NCHS posts the same files. For HCPCS Level II, CMS posts quarterly update files with the new, revised and deleted codes and their effective dates. The National Correct Coding Initiative tables, also from CMS, tell you which code pairs are bundled and which can be unbundled with a modifier; they change quarterly too.
Questions we hear
What is the difference between CPT and HCPCS?
CPT is HCPCS Level I; they are the same thing. When people say "HCPCS" without a level they almost always mean HCPCS Level II, the CMS-maintained set of alphanumeric codes for drugs, supplies, equipment and Medicare-specific services. The practical rule: if a service is performed by a clinician, look in CPT first; if it is a thing supplied or administered, or a Medicare benefit with no CPT equivalent, look in Level II.
Can a claim have a diagnosis code but no procedure code, or the other way around?
No. Every claim line needs a procedure or supply code (CPT or HCPCS Level II) and every claim needs at least one diagnosis code with each line pointed at one to four of them. A diagnosis alone is not billable; a procedure without a diagnosis rejects as incomplete (CO-16 with a remark code asking for the diagnosis).
How many diagnosis codes can go on a claim?
The CMS-1500 and the 837P allow twelve diagnosis codes per claim (items 21A through 21L), and each service line can point to up to four of them. The first-listed diagnosis is the main reason for the visit. Listing every chronic condition the patient has is not helpful; list the ones the provider addressed or that affected the care, in the order the note supports.
Who is allowed to assign codes, the provider or a coder?
Either, as long as the codes reflect the documentation and the rendering provider stands behind them; the provider's signature on the claim (item 31) is an attestation that the services were performed as billed. In small practices the provider selects codes in the EHR and a trained biller reviews them. In procedural specialties, certified coders assign codes from the operative note. What does not work is a coder changing codes without a documented query to the provider, or a provider who refuses to be questioned.
Do payers all use the same code sets?
Yes for the sets themselves, because HIPAA names CPT, HCPCS Level II and ICD-10-CM as the standard code sets every health plan must accept. No for the rules about combining them. Medicare uses G codes where commercial plans use CPT (G0008 versus 90471 for flu vaccine administration is the classic case), payers differ on which modifiers they recognize, and each has its own medical policies about which diagnoses support which procedures. The code is national; the edit is local.
Sources and references
- CPT Codes: Current Procedural Terminology, AAPC: how the CPT code set is structured, the three categories, modifiers and the annual update.
- What Is ICD-10?, AAPC: the structure of ICD-10-CM codes, the seventh character and the difference between ICD-10-CM and ICD-10-PCS.
- HCPCS Codes: HCPCS Level II Coding, AAPC: the Level II code families, their modifiers and how they relate to CPT.
- ICD-10, CMS: the current fiscal year code tables, official guidelines and update files for ICD-10-CM and ICD-10-PCS.
- Healthcare Common Procedure Coding System (HCPCS), CMS: the Level II program page, how codes are requested and the link to the quarterly update files.
- NCCI for Medicare, CMS: the National Correct Coding Initiative procedure-to-procedure edits, medically unlikely edits and the policy manual that governs code pairs.
- Code Sets Overview, CMS: the HIPAA-adopted standard code sets (CPT, HCPCS, ICD-10-CM, ICD-10-PCS, CDT, NDC) and who must use them.
