ICD-10-CM has 98,186 diagnosis codes. Finding the right one isn't guesswork — it's a repeatable process. Whether you're coding for a large practice or handling billing solo, the coders who have the lowest denial rates follow a consistent lookup workflow. This guide breaks it down step by step.

Why "Good Enough" Codes Cost You

The jump from ICD-9 to ICD-10 wasn't just about code syntax — it was a fundamental shift toward clinical specificity. Where ICD-9 had about 14,000 codes, ICD-10-CM has nearly seven times more. That granularity exists for a reason: payers expect it.

When you code M79.3 (Panniculitis, unspecified) instead of the more specific M79.31 (Panniculitis of right shoulder), you're leaving clinical detail on the table that the payer expects to see. On high-complexity claims, that mismatch triggers a denial — or worse, a medical necessity audit.

⚠ Common Mistake

Using a non-billable "header" code when a more specific child code is required. ICD-10-CM flags these as "not valid for submission" — but many lookup tools don't warn you. MedDex marks non-billable codes clearly so you never submit one by accident.

The 5-Step Lookup Workflow

Follow these steps in order. The process works whether you're using a physical codebook, the CDC browser, or a digital tool like MedDex.

1

Start with the clinical condition — not the code

Read the documentation first. Identify the main term — the condition, disease, or symptom the provider documented. Resist the urge to type a code number you already know. Start with the diagnosis in plain language.

2

Search by symptom or condition, not code structure

Natural language search surfaces the right hierarchy faster than browsing category codes. Type "type 2 diabetes with diabetic kidney disease" instead of hunting through E11. A good search tool maps clinical language directly to the correct code family.

3

Drill down to the most specific billable code

Once you're in the right family, go as specific as the documentation allows. Check laterality (left/right/bilateral), encounter type (initial, subsequent, sequela), causative factors, and comorbidities. Never stop at a 3-character code if a 7-character exists.

4

Check the Includes, Excludes1, and Excludes2 notes

These instructional notes live at the category level and change what you can and can't bill together. Excludes1 means "never code both" — the conditions are mutually exclusive. Excludes2 means "not included here, but a patient can have both." Missing an Excludes1 violation is a fast track to a denial.

5

Verify the code is billable before submitting

Confirm the selected code has a "billable" designation — meaning it's valid for claim submission. Non-billable codes (category headers without a specific 4th, 5th, 6th, or 7th character) will reject at the clearinghouse. MedDex's Billable Only filter makes this instant.

Anatomy of an ICD-10-CM Code

Understanding the structure helps you navigate faster and spot when you've landed at the right specificity level.

Code Structure
S52.501A
S = Injury/poisoning category
S52 = Fracture of forearm
S52.5 = Fracture of lower end of radius
S52.50 = Unspecified fracture of lower end of right radius
S52.501 = Unspecified fracture, lower end, right radius — displac.
A = Initial encounter (A/D/S 7th character extension)

ICD-10-CM codes are 3–7 characters. The more characters, the more specific the diagnosis. Category codes (3 characters) are almost never billable on their own — they're organizational headers. Billable codes start at 4 characters and go up to 7.

High-Specificity Areas That Trip Up Coders

Laterality

ICD-10 requires left vs. right vs. bilateral for most musculoskeletal, ophthalmologic, and otologic conditions. H40.11 (Primary open-angle glaucoma) requires a 6th character for laterality and a 7th for severity stage. Document it, or leave it blank in the chart and you'll be guessing.

Encounter type

Injuries use 7th character extensions: A (initial encounter), D (subsequent encounter), and S (sequela). "Initial" means the patient is actively receiving treatment — not just the first time they came in. A patient in active cast management at visit 4 is still coded with A. This is one of the most commonly miscoded fields in orthopedic practices.

Diabetes with complications

Type 2 diabetes with complications uses the E11 category with combination codes. E11.65 (Type 2 diabetes mellitus with hyperglycemia) is a single code — you don't separately code the hyperglycemia. The combination code structure in E10–E13 eliminates many of the extra codes you needed under ICD-9. Know which complications have combination codes and which require additional codes.

Mental health

The F codes require documentation of severity (mild, moderate, severe) for conditions like major depressive disorder. F33.0 (Major depressive disorder, recurrent, mild) vs. F33.1 (moderate) vs. F33.2 (severe without psychotic features) — the payer distinction matters for behavioral health coverage.

💡 Pro Tip

When you're not sure how specific to go, ask: "What is the most precise clinical description that is documented?" Only code what's documented. Guessing at specificity to avoid an "unspecified" code is just as problematic as coding too broadly — if it's not in the chart, it shouldn't be in the claim.

The Billable-Only Filter: Your Fastest Quality Check

One of the fastest ways to cut submission errors is to filter your search results to billable codes only. This eliminates header codes from view entirely, so every result you're choosing between is a valid submission candidate.

MedDex's search includes a Billable Only toggle that filters all 98,186 codes down to the 74,719 that are valid for claim submission. Use it for every search — it removes an entire class of coding error with a single click. Try it free.

When to Use "Unspecified" — and When Not To

Unspecified codes exist for a reason: sometimes clinical documentation genuinely doesn't contain the specificity required for a more precise code. That's legitimate. What's not legitimate is using an unspecified code because you didn't look far enough.

Use unspecified codes when:

Don't use unspecified codes when:

Building a Lookup Habit That Scales

The coders who are fastest aren't faster because they've memorized codes — they're faster because they've internalized the structure. They know that diabetes complications live in E10–E13, that mental health is F01–F99, that musculoskeletal is M00–M99. That topographic knowledge speeds up every search.

Use a tool that supports natural language search (not just code browsing), shows you the full code hierarchy, and distinguishes billable from non-billable codes. The time you spend looking up the wrong code is always more than the time a good tool would have saved you.

Search 98,186 ICD-10-CM Codes Free

Natural language search. Billable-only filter. Full code hierarchy. No login required for your first searches.

Try MedDex Free →

Pro plan at $9.99/mo unlocks unlimited searches + iOS app