Editorial policy & methodology
Every statement on this site is either reproduced from the official release or derived from it by a stated rule. This page documents which is which.
The two kinds of statement
A page on this site never mixes the official record with our interpretation without saying so. Statements fall into exactly two categories.
Reproduced — printed exactly as published
- Code descriptions, long and short
- Instructional notes: Includes, inclusion terms, Excludes1, Excludes2, Code First, Code Also, Use Additional Code
- 7th-character definitions
- Chapter and section titles and their notes
- Billable status, taken from the flag in the official order file
None of this is paraphrased, summarised or reworded. Where a note is shown on a code that did not itself declare it, the ancestor that did is named.
Derived — computed by us from the official data
Each derived signal and the exact rule behind it:
- Subdivided vs retired. The official addenda records both as “deletions”. We classify a deletion as a subdivision when the same code is re-added in the same release as a non-billable header, and as a retirement otherwise. The distinction matters because a subdivided code still exists but can no longer be submitted.
- Unspecified. A code is flagged unspecified when its description contains “unspecified”, “other specified”, “not elsewhere classified”, NEC or NOS. This is a text heuristic and it is imperfect — a description may be unspecified on one axis while being specific on another.
- More specific alternatives. Sibling codes that are not themselves flagged unspecified. For codes carrying a 7th character, siblings differ only by encounter type, so we instead walk up to the nearest specific ancestor and match the same 7th character.
- Note inheritance. Excludes1, Excludes2, Code First, Code Also and Use Additional notes are shown on descendant codes, attributed to the ancestor that declared them. Includes and inclusion terms are not inherited, because they describe the content of the ancestor rather than constraining the descendant.
How a release is processed
The site is rebuilt from the official files for each release. The pipeline is deterministic: the same input files always produce the same pages, and no step involves manual editing of code data.
- The official archives are downloaded from the CDC mirror.
- The order file is parsed as the authoritative code list, because it includes the non-billable header codes that the codes file omits.
- The tabular XML is parsed for chapters, sections and instructional notes, tracking which ancestor declared each note.
- The addenda is parsed and each change is classified by the rule above.
- Derived totals are reconciled against the tallies CMS publishes in the addenda itself. A release is not published if they disagree.
For fiscal year 2027 the reconciliation is: 190 additions, 30 billable deletions (15 subdivided, 15 retired), 6 header deletions, 4 revisions — matching the official summary exactly.
Update cadence
ICD-10-CM is updated twice a year. The October 1 update defines the fiscal year; a secondary update may take effect on April 1. Both are ingested. Because code selection is driven by date of service, codes from a prior fiscal year remain correct for encounters within that year, and are not deleted from the site when superseded.
What we do not publish
- CPT codes — copyrighted by the American Medical Association and licensed separately.
- The Official Guidelines text — linked to the CMS PDF rather than reproduced, so readers always get the authoritative current version.
- ICD-9 crosswalks — the General Equivalence Mappings were frozen in 2018 and CMS publishes no current file. Presenting stale mappings as guidance would mislead.
- Payer coverage policy — outside the classification and specific to each payer.
- AI-generated clinical commentary. No code page contains generated prose about a condition. Everything is source data or a documented derivation.
Corrections policy
If the site disagrees with the official release, the official release wins. Reported data errors are triaged ahead of feature work, and material corrections are recorded on the changelog rather than changed silently.