Feedback

Especially worth telling me: a figure that disagrees with the current Orton chart, a firing case this does not handle, or anything that broke.

ICD-10 code checker

Paste a claim's worth of codes at once. It says which will deny because they are category headers rather than billable codes, and what to send instead.

Paste as many as you like, separated by anything. Dots optional.

98,403 entries in FY2027, of which 74,879 are billable and 23,524 are category headers. FY2026 is the set in force until 2026-10-01.

A real code that denies every time

Of the 98,403 entries in ICD-10-CM, only 74,879 can actually go on a claim. The other 23,524 are category headers: real, correctly spelled, published codes that exist to group the ones beneath them, and that deny on sight.

Nothing about a header looks wrong. E11 is Type 2 diabetes mellitus. It is in every code book. It is exactly the condition on the chart. And it will be rejected, because the payer wants E11.9, or E11.65, or whichever of the 87 billable codes beneath it matches what was actually treated.

The same thing wearing a different hat

The 7th character rule looks like a separate problem and is really the same one. S72.001, a fracture of the neck of the right femur, is a header. S72.001A, the same fracture at the initial encounter, is billable. The missing character is what makes the code specific enough to submit.

This checker needs no special case for that, because the published file marks both with the same flag. A hand-written rule list would drift away from the code set every October. A flag that ships with the data cannot.

Why in bulk

Every ICD-10 reference is a search box that takes one code. But a claim carries several, and the question is never "what is this code", it is "will any of these bounce".

So this takes the whole list, in whatever shape it came out of the spreadsheet or the email, and sorts the answers with the problems first. If everything is clean it says so in one line and you move on.

Two fiscal years, because a code set is not a constant

ICD-10-CM changes every 1 October, and around the changeover a lookup that knows only one year gives confidently wrong answers in three different directions: a code that is fine now and gone next month, a code that does not exist yet, and the quiet one, a code that stays valid but stops being billable.

15 codes change billable status this year. They are not deleted. They will not look wrong. They will simply start denying on 2026-10-01. This checker knows both years and says which side of the line you are on.

What it does not do

It does not find a code from a diagnosis. That needs the alphabetical index and is well served elsewhere. It does not check medical necessity, coverage, bundling edits, modifiers or place of service, all of which can deny a claim carrying a perfectly valid code.

And a failed lookup is never reported as an invalid code. If the code set cannot be reached, it says could not be determined and leaves the code unjudged, because telling a biller that a good code is bad is worse than telling them nothing at all.

Questions billers actually ask

Why was my ICD-10 code denied when it is a real code?

Almost always because it is a category header rather than a billable code.

ICD-10-CM is a tree. E11 is "Type 2 diabetes mellitus" and it is a real, correct, published code, but it exists to group the 87 billable codes underneath it. It is not valid for submission. E11.9, "without complications", is.

The published code file carries a flag on every single row saying which one it is, so this is a fact rather than an opinion. Paste your codes above and the header ones are marked, with the billable codes beneath them listed so you can pick the right one.

What is the 7th character, and why does my injury code deny without it?

Injury and external cause codes need a final character saying which encounter this is: A for initial, D for subsequent, S for sequela, with more letters for fractures.

S72.001, "fracture of unspecified part of neck of right femur", is a header and denies. S72.001A, the same fracture at the initial encounter, is billable.

This checker needs no special rule for that, because it is the same billable flag as everything else. A rule list maintained by hand would drift away from the code set. The flag cannot.

What changes on 2026-10-01?

ICD-10-CM is revised every year and the new set takes effect on 1 October. For FY2027 that is 238 new codes, 21 deleted, 4 reworded and 15 whose billable status changes.

That last group is the one that catches people. Those codes are not deleted and they do not look wrong. They simply stop being billable, so a claim carrying one still looks correct and denies anyway. I42.0, dilated cardiomyopathy, is one of them.

This checker knows both fiscal years, so it will tell you if a code is fine today and not fine after 1 October. The full list of changes is on its own page.

Does it tell me the code for a condition?

No, and that is deliberate. This checks codes you already have.

Searching by condition needs the alphabetical index, which is a different and much larger job, and it is well served by the existing reference sites. What none of them do well is check a whole claim at once and lead with the billable distinction, so that is what this does.

If you need to find a code from a diagnosis, use your encoder or the index. Then paste the result here before it goes out.

Is my data sent anywhere?

No. The codes you paste never leave your browser.

The code set is published as static files on this site and the page fetches only the small slices it needs, keyed on the first two characters of each code. So the lookup happens on your machine, and nothing about your claim is transmitted, logged or stored.

Where do these codes come from, and how current are they?

Directly from the National Center for Health Statistics, which publishes ICD-10-CM. Snapshot taken 2026-08-31, covering FY2026 (98,186 entries) and FY2027 (98,403 entries).

Nothing is transcribed by hand. The files are parsed by a script and the billable flag, the descriptions and the year-over-year differences all come straight out of them.

ICD-10-CM is a work of the United States federal government and is not subject to copyright, so it can be republished freely. That is unlike CPT, which is licensed by the AMA, and it is the reason this tool can exist while a CPT equivalent cannot.

Does a billable code mean the claim will be paid?

No. It means the code itself is valid for submission. That is necessary and it is nowhere near sufficient.

A claim can still be denied for medical necessity, for a coverage rule, for a bundling edit under NCCI, for a payer-specific policy, for the place of service, for the modifier, or for a dozen other reasons that have nothing to do with whether the diagnosis code is well formed.

This tool checks one thing carefully rather than everything vaguely. For what comes back on a denial, see the CARC and RARC decoder.

Notes and sources

Source: the National Center for Health Statistics, which maintains ICD-10-CM. Both fiscal years are taken from the published order files at ftp.cdc.gov/pub/Health_Statistics/NCHS/Publications/ICD10CM/, snapshot 2026-08-31. FY2026 carries 98,186 entries and FY2027 carries 98,403.

Nothing here is transcribed by hand. A script parses the fixed-width order files, and the billable flag, the descriptions and every year-over-year difference come straight out of them. The chapter ranges are the one exception: those are read from the FY2027 Official Guidelines, because chapters live in the guidelines rather than in the code file.

Licensing. ICD-10-CM is a work of the United States federal government and is not subject to copyright under 17 U.S.C. 105. NCHS publishes it with no registration and no licence agreement. WHO holds copyright on the underlying ICD-10, but its own licensing FAQ states that WHO is not responsible for national modifications and directs enquiries about the US Clinical Modification to NCHS.

This is not coding advice and a billable code is not a payable claim. Verify against your encoder and your payer's policy. Tell me if a result here disagrees with your code book, and say which fiscal year you are checking against.