ICD-10 Code for Osteoporosis (M80–M81 Explained)
The osteoporosis ICD-10 code isn't one code — M80 covers fracture, M81 covers no fracture, and osteopenia is a separate M85.8- diagnosis.
By Patientary Team

If you're looking for the osteoporosis ICD-10 code, the frustrating truth is that there isn't a single osteoporosis diagnosis code. ICD-10-CM splits it into two main categories depending on whether a fracture is present, plus a separate code family for the related-but-different diagnosis of osteopenia. Get the category wrong and a claim can bounce back, or worse, misrepresent how serious a patient's bone disease actually is. This guide walks through M80, M81, and M85.8-, how they differ, and how to pick the version that matches the documentation in front of you.
TL;DR: M81 covers osteoporosis without a current pathological fracture; M80 covers osteoporosis with one. Osteopenia — low bone density that hasn't crossed into osteoporosis — is a different diagnosis, coded under M85.8-, not a milder version of M81. Every category needs a further, more specific character to be billable; the header codes alone won't clear a claim.
How ICD-10-CM classifies osteoporosis
Osteoporosis sits inside Chapter 13 of ICD-10-CM, "Diseases of the musculoskeletal system and connective tissue" (M00–M99), within the block covering disorders of bone density and structure. CDC/NCHS maintains the code set, revised each fiscal year, and CMS publishes the official coding guidelines that coders are expected to follow.
Within that block, two categories carry the actual osteoporosis diagnosis, split entirely on one clinical question — has a fracture happened yet:
- M80 — Osteoporosis with current pathological fracture.
- M81 — Osteoporosis without current pathological fracture.
A pathological fracture is one caused by bone weakened by disease breaking under normal, everyday stress — a fall from standing height, or sometimes just bending over — rather than major trauma. If that's what happened, M80 applies. If a patient has confirmed osteoporosis but no active fracture, M81 is the correct family.
| Code range | What it covers | Billable note |
|---|---|---|
| M80.- | Osteoporosis with current pathological fracture | Requires a further character for fracture site and a seventh character for encounter type — never billable at the bare M80 level |
| M81.- | Osteoporosis without current pathological fracture | Requires a further character for subtype (age-related, postmenopausal, idiopathic, localized) — not billable as bare M81 |
| M85.8- | Other specified disorders of bone density and structure, including osteopenia | A separate diagnosis from osteoporosis entirely — needs its own site character and should never substitute for M80 or M81 |
Is M81 a billable code? Osteoporosis without pathological fracture
No, not on its own. M81 is a category header, and ICD-10-CM requires categories like this to be carried out to their most specific subcode before a claim is considered valid for submission. Age-related osteoporosis without current pathological fracture, for instance, is coded to M81.0 — a real, usable code — whereas plain "M81" is just an organising label the tabular list sits under.
Postmenopausal osteoporosis, one of the most commonly documented subtypes, is also classified under M81.0 alongside other age-related osteoporosis. ICD-10-CM doesn't carve out a separate standalone code for it, which surprises some coders coming from older systems that treated postmenopausal osteoporosis as its own line item.
Does osteoporosis with a fracture use a different code?
Yes. When osteoporosis has led to an actual break — a compression fracture in a vertebra, a hip fracture, a wrist fracture — the diagnosis moves from M81 to M80. M80 codes are more demanding to complete correctly: coders need the fracture site, plus a seventh character showing whether it's an initial encounter, a subsequent encounter for a fracture still healing, or a sequela. Documentation that only says "osteoporosis" after a fall isn't enough on its own; the record needs to confirm the fracture is pathological, meaning the bone failed under normal load, rather than a straightforward traumatic break, which several payers code differently.
Osteopenia is not osteoporosis
Osteopenia and osteoporosis get used almost interchangeably in casual conversation, and that's exactly where miscoding creeps in. Osteopenia describes bone density that's lower than normal but hasn't dropped far enough to meet the diagnostic threshold for osteoporosis — think of it as the stage before, not a synonym. ICD-10-CM keeps them apart: osteopenia is coded under M85.8- ("other specified disorders of bone density and structure"), an entirely different category from both M80 and M81. Billing M81 for a patient who was actually diagnosed with osteopenia overstates the severity of their bone disease and can trigger a payer query or a corrected claim later on.
A medical biller reviewing a batch of orthopaedics claims once caught exactly this. A DEXA scan report read "osteopenia, lumbar spine," but the encounter had been coded M81.0 — age-related osteoporosis without current pathological fracture. The two conditions share a work-up, the same scan, the same T-score scale, but sit on opposite sides of a diagnostic line. Swapping one for the other wasn't a rounding error; it was a different diagnosis code entirely. Flagging it before submission avoided a rejected claim and, more usefully, kept the patient's chart accurate for whoever read it next.
Coding to the most specific level
Coders are expected to report the most specific code the documentation supports, not default to a category header because it's quicker. M80 and M81 both organise the code set — they aren't valid for submission by themselves. A real claim needs the full code: subtype for M81 (age-related, postmenopausal, idiopathic, localized, or drug-induced), and for M80, the fracture site and encounter character too. Because ICD-10-CM is revised on a fiscal-year cycle, it's worth checking the current version rather than working from a printout that might be a year or two out of date — Patientary's ICD-10 code lookup always reflects the live code set.
This mirrors a pattern across ICD-10-CM generally: plenty of category codes look complete but aren't billable until extended. We cover the general rule in what makes an ICD-10-CM code billable, and the mechanics of how the code set is structured in how ICD-10 codes work.
Osteoporosis codes describe the diagnosis, not the DEXA scan or any treatment given — those are reported separately using CPT and HCPCS codes, which follow entirely different rules and aren't part of ICD-10-CM. If you need the bigger picture of how the systems fit together, see ICD-10 vs CPT vs HCPCS.
Terms that show up in the chart
Charts don't always say "osteoporosis" in so many words. Clinicians and patients alike use low bone density, bone loss, and — informally — brittle bone disease to describe the same underlying process. None of those phrases point to a specific code on their own; the coder still has to work out whether a fracture is present and which subtype applies before choosing between M80 and M81.
Patientary is built to be the reference layer for US healthcare data — for people and AI agents. The same ICD-10-CM data behind this page is available programmatically through Patientary's MCP server, so coding tools and AI agents can verify a code like M81.0 in real time instead of relying on a static list.
None of this is clinical advice — a DEXA scan and a clinician's assessment are what determine whether a patient has osteoporosis or osteopenia in the first place. This is about matching documentation to the right code once that diagnosis is already on the chart.
Look up the current, billable version of any ICD-10-CM code, osteoporosis included.
Search ICD-10 codesFrequently asked questions
Is M81 a billable code?
Not by itself. M81 is a category, and ICD-10-CM requires it to be reported to its full specificity — for example M81.0 for age-related osteoporosis without current pathological fracture — before a claim is valid for submission.
What's the ICD-10 code for osteopenia?
Osteopenia isn't classified as osteoporosis. It falls under M85.8-, "other specified disorders of bone density and structure," extended with a further character for site. It's a separate diagnosis from both M80 and M81.
Does osteoporosis with a fracture use a different code?
Yes. Osteoporosis with a current pathological fracture is coded under M80, not M81. M80 also requires the fracture site and a seventh character marking the encounter type — initial, subsequent, or sequela.
What's the ICD-10 code for postmenopausal osteoporosis?
Postmenopausal osteoporosis without a current fracture is classified under M81.0, alongside other age-related osteoporosis. ICD-10-CM doesn't give it a separate standalone category.
Is osteoporosis the same as osteopenia?
No. Osteopenia is lower-than-normal bone density that hasn't reached the threshold for an osteoporosis diagnosis. They sit on the same spectrum but are coded, and typically treated, differently.
Anything cited above is general reference, not medical, coding or billing advice. To look something up against live data, run a free NPI lookup, or search the ICD-10-CM code set.
More guides
Look it up, then build on it
Search providers and codes free, then get an API key for your software or your AI agent — no card to start.