Osteoporosis ICD-10 Codes: 2024–2025 Guide

Hands of a healthcare professional typing on a laptop displaying ICD-10 medical codes.

Osteoporosis ICD-10 Codes: The 2024–2025 Complete Guide

Fast answer
• Osteoporosis with a current pathologic fracture → ICD-10 chapter M80
• Osteoporosis without a current fracture → ICD-10 chapter M81
• M80 codes require specification for fracture site (5th char), laterality (6th char), and encounter type (7th char), using X placeholders if a site or laterality character doesn’t apply (e.g., M80.9XXA).
M81 codes do not include site-specific or laterality characters by design.

Choosing between M80.051A and M81.0 during a 10-minute chart scrub can feel anything but simple. This guide breaks down every osteoporosis ICD-10-CM code, summarizes the latest guideline notes, and walks through real-world scenarios so you can code confidently—and avoid costly claim denials.


Table of contents

  1. Osteoporosis coding basics
  2. What’s new for 2024–2025?
  3. Difference between M80 and M81
  4. M80 code list (with fracture)
  5. M81 code list (without fracture)
  6. 7th-character refresher & denial traps
  7. Real-world coding scenarios
  8. FAQ
  9. Using BodySpec DXA scans for early bone-health insight

Osteoporosis coding basics

Osteoporosis is a skeletal disorder characterized by low bone mineral density (BMD) and micro-architectural deterioration of bone tissue.

A DEXA scan T-score of ≤ –2.5 meets the World Health Organization threshold for a diagnostic osteoporosis finding.

Accurate ICD-10-CM coding is essential for quality reporting, reimbursement, and population-health analytics.

Key reminders:

  • Pathologic fracture present? Choose an M80 code.
  • No current fracture? Choose an M81 code.
  • Specify the anatomic site (5th character) and laterality (6th character) for M80.
  • Append the correct 7th character (A, D, G, or S)—skipping it is a frequent claim-denial trigger (AAPC).

What’s new for 2024–2025?

Good news: No osteoporosis codes were added or deleted for FY 2024 or FY 2025. However, the FY 2025 ICD-10-CM Official Guidelines for Coding and Reporting include two clarifications that affect osteoporosis claims (Guidelines, Section I.C.13):

  1. Sequencing for adverse-effect coding – When osteoporosis is drug-induced, code the osteoporosis (M80.4- / M81.4) first, followed by T38.0X5- with the appropriate 7th character (A, D, or S) to identify glucocorticoids as the causal drug.
  2. 7th-character emphasis – CMS reiterates that all pathological fracture codes in chapter M80 must include the correct 7th character—even on problem lists carried forward to subsequent encounters.

M80 vs M81—what’s the difference?

Split image comparing an X-ray of a healthy bone with dense structure to an X-ray of an osteoporotic bone showing a fracture and less dense, porous structure.
ChapterDescriptionWhen to use
M80Osteoporosis with current pathologic fractureConfirmed fracture caused by the underlying osteoporosis. Requires 5th (site), 6th (laterality), and 7th (encounter) characters.
M81Osteoporosis without current pathologic fractureOsteoporosis documented, no active fracture at this encounter. Site/laterality characters not used.

Tip: If an osteoporotic fracture is healed and today’s visit is routine follow-up, code the osteoporosis with M81 and add Z87.312 (“Personal history of healed osteoporosis fracture”).

M80 codes (osteoporosis with fracture)

ICD-10-CM structures M80 by cause (age-related, drug-induced, other, unspecified) and site (5th character). The 6th character shows laterality for paired bones (1 = right, 2 = left, 9 = unspecified). Below is a quick-reference snapshot of high-volume combinations. Refer to the official tabular list for the full hierarchy.

Base CodeEtiologyExample 5th Character (Site)Example 6th Character (Laterality)Sample Full Code7th Char Req’d
M80.0Age-related osteoporosis with FX1 = shoulder; 5 = femur; 8 = vertebra1 = right, 2 = left, 9 = unspecified; X for midline sites like vertebraM80.051A (age-related, right femur, initial)Yes
M80.4Drug-induced osteoporosis with FXSame site digitsSame laterality digits or X for midlineM80.48XD (drug-induced, vertebra, subsequent)Yes
M80.8Other osteoporosis with FXSame site digitsSame laterality digitsM80.88XS (other, vertebra, sequela)Yes
M80.9Unspecified osteoporosis with FXSite intrinsically unspecifiedLaterality N/AM80.9XXAYes

Note on X placeholders: If a required 5th or 6th character is missing (e.g., base code M80.8), insert X for each empty slot up to the 6th position before adding the 7th. Example: M80.8XXA represents “other osteoporosis with fracture, site and laterality unspecified, initial encounter.”

An illustration explaining the use of 'X' placeholders in ICD-10 codes. The example provided is 'M80.9XXA', with a note stating that 'X' characters are used as fillers for unspecified site or laterality positions.

Required 7th characters for M80 codes

7th characterMeaning
AInitial encounter—active treatment
DSubsequent encounter—routine healing
GSubsequent encounter—delayed healing
KSubsequent encounter—nonunion
PSubsequent encounter—malunion
SSequela (late effect)

In outpatient claims, A, D, G, and S are the most frequently used values.

M81 codes (osteoporosis without fracture)

ICD-10-CMDescription
M81.0Age-related osteoporosis without current pathologic fracture
M81.4Drug-induced osteoporosis without fracture
M81.6Localized osteoporosis [Lequesne] without fracture
M81.8Other osteoporosis without fracture
M81.9Osteoporosis, unspecified

The latest publicly available claims dataset (2021, analyzed May 2022) shows M81.0 accounts for approximately 74 % of outpatient osteoporosis diagnoses (Definitive Healthcare).

7th-character refresher & denial traps

A missing or incorrect 7th character is a leading reason osteoporotic fracture claims get rejected (CMS National Provider Call, 2015).

Illustration of a denied medical claim with a magnifying glass highlighting the ICD-10 code M80.051_ which is missing the 7th character.

Common pitfalls:

  1. No 7th character at all. Every M80 code must end in a 7th character—no exceptions.
  2. Wrong placeholder usage. If the 5th and/or 6th positions aren’t defined, plug them with X (e.g., M80.9XXA).
  3. Encounter mismatch. Using A on follow-up visits or D/G on the initial ER visit will trigger audits.

Quick check: If your M80 code is fewer than seven characters, denial is nearly certain.

Real-world coding scenarios

A thoughtful medical professional reviews patient information on a computer at a desk, focusing on ICD-10 coding.
ScenarioCorrect Code(s)Rationale
68-year-old woman, post-menopause, acute compression FX of T12 due to severe osteoporosis.M80.08XAAge-related osteoporosis w/ vertebral fracture, initial encounter.
72-year-old man with known osteoporosis for annual wellness visit; no fractures.M81.0Age-related osteoporosis, no fracture.
Follow-up for previously treated right femoral neck FX healing normally.M80.051D“D” = subsequent encounter, right femur.
Chronic pain from healed osteoporotic vertebral fracture.M80.08XS + M54.5“S” for sequela; separate code for pain.

FAQ

Q: What is the ICD-10 code for postmenopausal osteoporosis?
A: If no fracture is present → M81.0. With a current pathologic fracture → choose the appropriate M80.0- sub-code (e.g., M80.08- for vertebra, M80.05- for femur) and append the proper 7th character.

Q: Do I need a separate fracture code when using M80?
A: No. M80 already bundles the fracture. You may add an external-cause code (e.g., W19 for unspecified fall) if documented.

Q: How do I code osteoporosis due to long-term steroid use?
A: 1. Code the osteoporosis first.
M81.4 for drug-induced osteoporosis without fracture.
M80.4- (+ 7th) for drug-induced osteoporosis with fracture.

  1. Identify the causal drug effect. Assign T38.0X5- with a 7th character based on the encounter for the adverse drug effect: A for initial/active treatment, D for subsequent, or S for sequela.
  2. Capture therapy status. Add Z79.52 (long-term use of systemic steroids) if the patient remains on chronic treatment.
    Sequencing: Osteoporosis → T38.0X5- → Z79.52.

Q: My EHR flags “7th character missing” but the patient has no fracture. Why?
A: You probably selected an M80 code by mistake. Switch to the correct M81 code.

Illustration explaining how an EHR flag for a missing 7th character can be resolved by choosing M81 for no fracture.

Q: Which CPT code pairs with a diagnostic DEXA scan?
A: The most common is CPT 77080 for axial skeleton bone-density measurement—see our full guide: Bone Density Test CPT Codes: Billing and Documentation Guide.

Using BodySpec DXA scans for early bone-health insight

BodySpec offers affordable whole-body DXA scans at both mobile units and convenient storefront locations across the U.S.

Our scans are strictly non-diagnostic and intended for wellness tracking—not to replace a clinical bone-density study ordered by your physician.

What our scan does provide:

  • Non-diagnostic BMD estimate. You’ll see T-scores and Z-scores that can flag low bone density before a formal diagnostic workup is warranted.
  • Actionable trends. Quarterly or annual scans help you spot downward BMD trends early, so you can discuss a diagnostic DEXA with your healthcare provider if needed.
  • Whole-body composition data. Lean mass, fat mass, and visceral-fat insights arrive in the same 10-minute session.

Remember: If your BodySpec results suggest osteopenia or osteoporosis, the next step is a clinical diagnostic DEXA scan (billed under CPT 77080) and consultation with your provider.

Think of BodySpec as the check-engine light that prompts a deeper diagnostic visit—not the full engine rebuild.

Illustration of a 'bone health check-engine light' on a dashboard, symbolizing early wellness screening prompting further checks.

Curious to see your numbers? Find a BodySpec location near you and book a scan in minutes.


Key takeaways

  1. M80 = fracture present; M81 = no fracture.
  2. Include the 5th (site), 6th (laterality), and 7th (encounter) characters on every M80 code.
  3. Use X placeholders to reach seven characters when needed.
  4. Follow updated sequencing guidance for drug-induced osteoporosis.

Sources

Last updated June 2024.

Recommended articles
A woman in jeans and a green shirt lies on a medical machine, smiling slightly. The machine is light gray and has a visible laser warning sticker. This is a DEXA scan for bone density or body composition.
02 Feb
3 mins read
Radiation, DEXA Scans, and You
An overhead view of a healthy Buddha bowl filled with rice, sweet potato chunks, avocado slices, red bell peppers, and cilantro. A glass of water with a lime slice, a half avocado, and a small bowl of chopped red peppers and lime wedges are also on the table.
20 Apr
4 mins read
Healthy Snacks For Every Diet
A couple running on a snowy sidewalk, smiling and looking at each other. The woman is wearing a yellow puffer jacket and the man is wearing a gray hooded jacket.
27 Dec
3 mins read
Impact of Clothing on DEXA Scans