A curated, machine-readable dataset of the ICD-10-CM diagnosis codes most commonly used in chiropractic practice in the United States — with Medicare-coverage flags, AT-modifier requirements, billable status, and clinical-usage notes.
Built and maintained by the team at ChiroScribe. Used in production for AI-assisted SOAP-note generation, treatment plans, and superbill creation.
Currently includes 80+ codes across spine dysfunction, pain, radiculopathy, disc disorders, syndromes, sprains/strains (with initial/subsequent/sequela encounter codes for MVA and PI cases), headaches, joint pain, tendinitis, neuropathies, and chronic pain.
npm install @chiroscribe/icd10-chiropracticOr download the raw JSON:
curl -O https://raw.githubusercontent.com/chiroscribe/icd10-chiropractic/main/src/data/codes.jsonimport { codes, getByCode, getByRegion, getMedicareCovered } from '@chiroscribe/icd10-chiropractic'
const lumbar = getByCode('M99.03')
// {
// code: 'M99.03',
// description: 'Segmental and somatic dysfunction of lumbar region',
// category: 'spine_dysfunction',
// region: 'lumbar',
// medicareCovered: true,
// atModifierRequired: true,
// billable: true,
// notes: 'Medicare-covered. AT modifier required. Most commonly billed chiropractic Medicare code.'
// }
const cervicalCodes = getByRegion('cervical')
const medicareCovered = getMedicareCovered()import json, urllib.request
url = 'https://raw.githubusercontent.com/chiroscribe/icd10-chiropractic/main/src/data/codes.json'
codes = json.loads(urllib.request.urlopen(url).read())
lumbar = [c for c in codes if c['region'] == 'lumbar']Each code entry has the following shape:
type ChiroIcd10Code = {
/** The ICD-10-CM code (e.g. "M99.03", "S33.5XXA"). */
code: string
/** Full official description from ICD-10-CM. */
description: string
/** Loose category for grouping (e.g. "spine_dysfunction", "injury_sprain"). */
category: string
/** Anatomic region (e.g. "lumbar", "cervical"). */
region: string
/** True if Medicare reimburses for chiropractic care under this diagnosis. */
medicareCovered: boolean
/** True if Medicare requires the AT (active treatment) modifier on CPT codes when billing this diagnosis. */
atModifierRequired: boolean
/** True if this is a billable code (some parent codes are not). */
billable: boolean
/** Optional clinical or billing notes. */
notes?: string
}ICD-10 reference tables are widely available but rarely curated for a specific specialty. Chiropractors need to know not just what a code means, but:
- Whether Medicare covers it for chiropractic services (most codes outside M99.0x are supportive diagnoses, not primary)
- Whether the AT modifier is required to bill active treatment (Medicare requires AT for M99.01–M99.05; without it, claims deny)
- Which encounter suffix to use for trauma (S-series): A (initial), D (subsequent), S (sequela) — critical for MVA / PI cases
- The maintenance vs. active care distinction (M99.10–M99.15 = maintenance, NOT covered by Medicare; document patient-pay)
This dataset bakes that domain knowledge into the data so downstream tools (EHRs, scribes, AI assistants) don't have to re-derive it every time.
You're welcome to use, modify, and redistribute under the MIT license below. If you build something on top of it, a link back to this repo or to https://chiroscribe.io is appreciated but not required.
For academic citation:
ChiroScribe LLC (2026). ICD-10 codes for chiropractic practice (icd10-chiropractic, v0.1.0). GitHub. https://github.com/chiroscribe/icd10-chiropractic
- Codes are drawn from the FY2026 ICD-10-CM official update.
- "Medicare covered" flags reflect CMS national coverage policy as of 2026. Local MAC (Medicare Administrative Contractor) policies may differ; verify with your MAC for specific cases.
- "AT modifier required" reflects Medicare's coverage policy for chiropractic manipulative treatment (CPT 98940-98942). It does NOT apply to non-Medicare payers.
- Clinical-usage notes are guidance, not a substitute for current coding training or auditor-grade compliance review.
- This dataset is curated by chiropractic-software practitioners, not by certified medical coders. For audit-critical billing decisions, consult a CPC-certified coder.
PRs welcome. Open an issue first for additions outside the existing categories so we can discuss whether the code belongs in the chiropractic-focused subset.
- @chiroscribe/soap-note-validator — structural completeness check for chiropractic SOAP notes (consumes this dataset).
- ChiroScribe — the full AI clinical-documentation platform this dataset was built for.
MIT — see LICENSE for details.
Maintained by ChiroScribe LLC. Issues, PRs, and corrections welcome.