Osteoporosis ICD-10 codes fall under two main categories: M80 (osteoporosis with current pathological fracture) and M81 (osteoporosis without fracture). The correct code depends on fracture status, location, and encounter type. Getting these right matters because one small coding miss can change reimbursement, trigger denials, or delay payment.

Osteoporosis ICD-10 Codes List (Quick Reference)

ConditionICD-10 Code
Osteoporosis with fractureM80
Osteoporosis without fractureM81
Age-related osteoporosisM81.0
Osteoporosis unspecifiedM81.9

What Is Osteoporosis in ICD-10 Coding?

In clinical and coding terms, osteoporosis refers to a gradual loss of bone density that makes bones weak and more likely to break. It often progresses silently until a fracture occurs.

From a coding perspective, you are not just labeling a condition. You are capturing a chronic disease state, its complications, and its impact on patient care.

Here is how it fits into the ICD-10 classification:

  • It falls under chronic musculoskeletal conditions 
  • It often links with fragility fractures, especially in the hip, spine, and wrist 
  • It requires documentation of bone density loss, usually supported by a DXA scan 
  • It influences long-term treatment plans, which impacts billing and reimbursement 

Coders must always check whether a fracture exists because that single detail determines whether you use M80 or M81.

ICD-10 Codes for Osteoporosis With Fracture (M80 Series)

The M80 category covers osteoporosis cases where a current pathological fracture is present. A pathological fracture occurs when weakened bone breaks under minimal stress, not trauma.

M80.0: Age-related osteoporosis with fracture

Use this when the provider documents age-related bone loss along with a fracture.

M80.8: Other osteoporosis with fracture

Use for secondary causes like medication-induced osteoporosis or endocrine disorders.

M80.9: Unspecified osteoporosis with fracture

Use only when documentation lacks detail about the type.

Coding Elements for M80

You must include:

  • Fracture location
    Example: lumbar spine, hip, radius 
  • Encounter type
    Initial encounter, active treatment
    Subsequent encounter, healing phase
    Sequela, complications, or late effects 
  • Laterality when applicable 

For Example:

A 72-year-old patient presents with a vertebral fracture due to osteoporosis. You code from the M80 series and specify lumbar spine plus encounter type.

ICD-10 Codes for Osteoporosis Without Fracture (M81 Series)

The M81 category applies when osteoporosis exists without any current fracture.

M81.0: Age-related osteoporosis

Most common in elderly patients, especially postmenopausal women.

M81.8: Other osteoporosis

Use when linked to conditions like long-term steroid use.

M81.9: Unspecified

Use only when the provider does not define the type.

When to Use M81 vs M80

  • Use M80 if there is a current pathological fracture 
  • Use M81 if there is no fracture, even if the patient had one in the past 

Example: A patient diagnosed through a DXA scan with low bone density but no fractures gets an M81 code.

ICD-10 Code for Osteoporosis With Pathological Fracture

When documentation clearly states osteoporosis with a fracture caused by bone weakness, always code from the M80 category. This reflects both the disease and the complication in one code set.

Do not code the fracture separately unless guidelines require additional specificity. Always follow CMS coding rules.

ICD-10 Code for Osteoporosis Screening

Screening cases use a completely different code set.

  • Z13.820: Screening for osteoporosis 

Use this when a patient undergoes preventive testing, often with a DXA scan, without confirmed disease.

Common use case:
A 65-year-old patient comes in for routine bone density screening. You assign Z13.820, not M80 or M81.

ICD-10 Code for Osteoporosis Unspecified

  • M81.9: Osteoporosis unspecified 

Use this when documentation does not clarify the type or cause. This code works as a fallback but reduces coding precision.

Payers often question unspecified codes, so use them only when documentation leaves no other option.

How to Code Osteoporosis Correctly for Medical Billing

Accurate coding starts with solid documentation. If the chart feels vague, the claim will not survive payer scrutiny. Every detail you capture upfront saves time later and protects revenue.

Here is what you need, plus how to get it right in real workflows:

Clear diagnosis documentation

The provider must confirm osteoporosis and clearly state the type, such as age related or secondary.

  • Train providers to document the cause when known, for example steroid induced or postmenopausal 
  • Add EHR prompts that force selection of type instead of free text 
  • Run pre submission chart audits for missing specificity 

Fracture confirmation

If a fracture exists, it must appear in imaging reports or clinical notes. This determines whether you code from M80 instead of M81.

  • Cross check radiology reports before final coding 
  • Confirm if the fracture is pathological, not traumatic 
  • Document exact site such as lumbar spine, hip, or wrist 

Diagnostic support

A DXA scan strengthens medical necessity and supports diagnosis.

  • Link DXA results directly in the assessment section of the note 
  • Avoid coding osteoporosis without clinical or diagnostic support 
  • Ensure bone density scores align with diagnosis 

Link to treatment

The diagnosis must connect to active treatment such as medications, monitoring, or therapy.

  • Match diagnosis codes with treatment plans and orders 
  • Align diagnosis with relevant CPT codes for imaging or injections 
  • Avoid “diagnosis only” claims without supporting services 

When you follow these steps, you improve clean claims rate and reduce rework. Coders, billers, and providers need to stay aligned at every stage.

Common Osteoporosis Coding Mistakes

ICD-10 Code for Osteoporosis

Even experienced coders slip up here. These errors show up in audits again and again, and each one ties back to missing details or rushed review.

Using M81 when a fracture exists instead of M80

Coders sometimes default to M81 because it feels safer or quicker. The problem starts when the documentation clearly shows a fracture.

Why this happens:

  • Fracture detail sits buried in radiology notes 
  • Provider mentions fracture indirectly 
  • Coder reviews only the assessment section 

Missing fracture details like location or encounter type

A fracture alone is not enough. ICD-10 requires site-specific detail and encounter type for full coding accuracy.

Why this happens?

  • Incomplete provider documentation 
  • Lack of structured templates 
  • Coders skip follow-up queries 

Incorrect encounter selection

Choosing the wrong encounter type changes how the claim gets processed and reimbursed.

Why this happens?

  • Confusion between active treatment and follow-up care 
  • Lack of training on encounter definitions 
  • Assumptions instead of verification 

Overusing unspecified codes

Codes like M81.9 look convenient but reduce coding precision and increase payer scrutiny.

Why this happens:

  • Time pressure 
  • Missing documentation 
  • Lack of provider clarification 

   

A DXA scan confirms bone density loss, but many claims fail because coders do not connect the result with the diagnosis.

Why this happens:

  • Diagnostic reports stay separate from clinical notes 
  • Lack of coordination between departments 
  • Poor documentation flow 

How Osteoporosis Coding Affects Reimbursement

Coding directly shapes financial outcomes. Small errors can quietly drain revenue over time.

Undercoding leads to revenue loss

If you miss fracture details, you assign a lower value code. That means less reimbursement for the same clinical work.

Incorrect coding increases denial risk

Payers quickly flag inconsistencies between diagnosis, imaging, and treatment. One mismatch can stop the entire claim.

Documentation gaps delay payments

Incomplete records force payers to request additional documentation. That slows down cash flow and increases admin work.

Struggling With Osteoporosis Coding and Billing?

If your team sees frequent denials or inconsistent coding, the issue often sits in documentation gaps or coding workflows.

Partner with Medhasty Medical Billing Services in the USA to improve billing and coding accuracy and your practice’s reimbursements. 

We help providers across the USA to:

  • Improve coding accuracy with certified coders 
  • Reduce denials through proactive review 
  • Optimize claims before submission 
  • Strengthen follow-up with denial management workflows 

If you want better results, look into:

  • medical billing services 
  • denial management 
  • coding services 

Conclusion

Osteoporosis coding looks simple at first glance, but small details change everything. The difference between M80 and M81 depends on one key factor, fracture status, yet that single decision affects coding accuracy, reimbursement, and denial risk.

When you treat osteoporosis as more than just a diagnosis and start coding it as a condition with clinical depth, your entire workflow improves. Clear documentation, confirmed fractures, proper use of a DXA scan, and correct encounter selection all work together to support clean claims.

Practices that focus on detail consistently see better outcomes. Fewer denials, faster payments, and stronger compliance with CMS guidelines become the norm, not the exception.

FAQs

What is the ICD-10 code for osteoporosis?

The ICD-10 system uses two main categories. M80 covers osteoporosis with a current pathological fracture. M81 covers osteoporosis without a fracture. The exact code depends on documentation, type, and clinical details.

What is the difference between M80 and M81?

M80 includes cases where a fracture exists due to weak bones. M81 applies when no fracture is present. This distinction affects reimbursement and clinical classification.

What is the ICD-10 code for osteoporosis with fracture?

Codes fall under the M80 category. You must also specify the fracture location and encounter type to complete the code correctly.

What is the ICD-10 code for osteoporosis screening?

Z13.820 is used for screening cases. It applies when a patient undergoes preventive testing without confirmed osteoporosis.

Can osteoporosis be coded without a fracture?

Yes, coders use the M81 category when no current fracture exists. This includes early diagnosis cases confirmed through a DXA scan.