ICD code M15.1 – Heberden's nodes with arthropathy
Billable Code Specific Code
M15.1 is the billable ICD-10-CM code for Heberden's nodes (with arthropathy). It reports bony enlargement of the distal interphalangeal finger joints with active joint disease.
The code sits under the polyosteoarthritis parent M15, not the single-joint categories M16-M19. Assignment turns on how many joint sites the note documents. One joint affected on both sides belongs in M16-M19 instead.
- Chapter
- M00-M99 Diseases of the musculoskeletal system and connective tissue
- Category
- M15 Polyosteoarthritis
- Group
- M15.1 Heberden's nodes (with arthropathy)
- Billable
- Yes
- Code also known as
- Heberden nodes, DIP joint osteoarthritis, distal interphalangeal arthritis, polyosteoarthritis of the fingers, degenerative DIP joint disease
Let Pabau's smart automation suggest the right codes, reduce claim denials, and keep your practice compliant—effortlessly.
- AI-powered code suggestions
- Real-time compliance checks
- Faster claims, fewer denials
Automate repetitive tasks and focus on what matters most—your patients.
Reduce coding errors and ensure compliance with the latest regulations.
Clean claims, fewer denials, and faster reimbursements.
Powerful insights and reporting to help your practice thrive.
HIPAA compliant SOC 2 certified GDPR-compliant Trusted by 4,000+ clinics worldwide
Key takeaways
M15.1 codes Heberden’s nodes with arthropathy at the DIP joints. It sits under the polyosteoarthritis parent M15, not the single-joint M16-M19 group.
The code is billable and valid for FY2026 (effective October 1, 2025 through September 30, 2026) for Medicare and commercial payer claims.
Excludes1 under M15: bilateral involvement of a single joint is coded to M16-M19. Reaching for M15.1 there is the most common denial trigger.
Excludes2 under M15-M19 sends osteoarthritis of the spine to M47, so a spinal site never supports M15.1 on its own.
Hand osteoarthritis without a multi-joint pattern needs a laterality digit: M19.041, M19.042 or M19.049, never the parent M19.04.
Pabau’s claims management software integrates with the Claim.MD clearinghouse to validate ICD-10-CM codes before submission, reducing preventable denials on musculoskeletal claims.
ICD-10 code M15.1: Definition, billable status, and effective dates
ICD-10 code M15.1 is a billable, specific ICD-10-CM diagnosis code designating Heberden’s nodes with arthropathy. It is valid on claims with dates of service inside FY2026, which runs from October 1, 2025 through September 30, 2026. The CDC/NCHS ICD-10-CM official tool confirms that status. The code has been in the tabular list since the US adoption of ICD-10, and each annual edition has reaffirmed it.
Clinical description: Heberden’s nodes and polyosteoarthritis
Heberden’s nodes are bony enlargements of the distal interphalangeal joints, caused by osteophyte formation secondary to degenerative joint disease. They are a hallmark of primary polyosteoarthritis, the condition coded under the M15 parent category. Patients typically present with finger-joint stiffness and visible swelling at the DIP joints. Where arthropathy is documented, pain and functional limitation are recorded too, and that is what justifies the “with arthropathy” qualifier in M15.1.
- Polyosteoarthritis (M15): osteoarthritis affecting multiple joint sites at once, the criterion that separates M15 from the single-joint codes M16-M19
- Heberden’s nodes (M15.1): bony DIP-joint enlargements with arthropathy, the most anatomically specific subcategory under M15
- Degenerative joint disease (DJD): a lay-clinical synonym for osteoarthritis. DJD of multiple sites maps to M15, not to M19
- “With arthropathy” qualifier: the documentation must describe active joint disease, not only the presence of nodes
The anatomical precision of M15.1 matters at the payer level. Rheumatology and orthopedic coders who fall back on M15.9 (polyosteoarthritis, unspecified) after the provider has documented Heberden’s nodes give away specificity they already had. Medicare Administrative Contractors (MACs) scrutinize musculoskeletal claims for code specificity, and a downgrade from M15.1 to M15.9 can flag a record for medical necessity review.
Applicable to and includes notes for M15.1
The M15 parent code carries official CMS Includes notes that define the scope of polyosteoarthritis coding. Reading them prevents both over-coding and undercoding on multi-joint arthritis claims. Per the CMS ICD-10-CM codes page, the M15 category includes:
- Arthritis of multiple sites
- Polyarthritis (osteoarthritic)
For M15.1 specifically, the Applicable To note designates the code for use when the provider documents Heberden’s nodes with arthropathy at the DIP joints. The “with arthropathy” component is not optional. Where the clinical note records Heberden’s nodes without any joint disease findings, query the provider before assigning M15.1.
Excludes1 and Excludes2 notes for M15.1
The exclusion notes around M15 are the most common source of claim denials on polyosteoarthritis cases. Excludes1 marks a condition that cannot be coded alongside M15.1, because the two are mutually exclusive by definition. Excludes2 works the other way. The excluded condition is not part of M15.1, so it takes its own code, and both may appear on the same claim.
In practice: A patient with bilateral knee osteoarthritis is coded to M17.0-M17.9, not M15. M15.1 applies when the DIP-joint arthropathy is part of a multi-joint polyosteoarthritic pattern. Where the encounter documentation supports only one joint site bilaterally, use the appropriate M16-M19 subcategory instead. Misapplying M15.1 to bilateral single-joint disease is the denial scenario practices meet most often. The denial codes in billing name which variety of it you are looking at.
The Excludes2 note runs across M15-M19 and sends spinal osteoarthritis to M47. A note describing degenerative change in the cervical or lumbar spine never supports M15.1 on its own. Where the same patient has both spinal and DIP-joint disease, code both. The decision below turns on how many joint sites the note names.

Parent code M15 polyosteoarthritis: Full subcategory breakdown
M15.1 sits within the M15 subcategory, which covers polyosteoarthritis across several anatomical sub-types. Match the documented clinical presentation when you choose between them, rather than defaulting to M15.9 while a more specific code exists. Per the WHO ICD-10 browser, the international classification underpinning M15 groups multiple-site joint disease together under this block.
M15.5 and M15.6 are not present in ICD-10-CM. The subcategory jumps from M15.4 straight to M15.8, so neither code can be assigned from the US tabular list.
Pro Tip
Run a specificity audit on your M15 claim volume quarterly. Filter for M15.9 (unspecified) claims where the provider’s note mentions either Heberden’s or Bouchard’s nodes. Each one that should have been M15.1 or M15.2 understates the record and invites payer scrutiny at the next audit.
M15.1 vs related codes: Choosing the right code
The most common miscoding scenario around M15.1 involves confusing it with M15.2, M15.0, and the M19.04 hand codes. Each describes a distinct clinical presentation, and payers do deny claims where the coded condition does not match the documented one. Before assigning any of them, check that the provider’s note confirms which joints are involved and whether the presentation is bilateral-one-joint or multi-joint.
M19.04 deserves its own warning. It is a parent code that needs a fifth character for laterality, so it is not reportable as written. Assign M19.041 for the right hand, M19.042 for the left, or M19.049 where the note does not say. A claim carrying the bare M19.04 is rejected before it reaches medical review.
Bouchard’s nodes vs Heberden’s nodes: Coding differences
M15.2 (Bouchard’s nodes) codes polyosteoarthritis at the proximal interphalangeal (PIP) joints, the middle knuckles. M15.1 codes the distal interphalangeal joints, the fingertip knuckles. The two sites are anatomically adjacent but separate in both clinical and coding terms. A patient can have both at once, in which case M15.1 and M15.2 may both be assigned in the same encounter. The documentation has to name both joint levels explicitly. Assigning only M15.1 where the note also records PIP involvement misses M15.2 and understates the clinical picture.
Associated CPT codes for Heberden’s nodes billing
M15.1 pairs with several CPT procedure codes, depending on the encounter type. The table below lists the pairings that come up most often when M15.1 is the primary or secondary diagnosis on a musculoskeletal claim.
For joint injection encounters (CPT 20600), the documentation must name the DIP joint as the injection site. It must also record the arthropathic findings that justify the procedure. Payers may request operative or procedure notes for small-joint injections coded with M15.1, particularly on Medicare claims.
Clinical documentation requirements for M15.1
Accurate M15.1 claims depend on documentation that covers three elements: multi-joint involvement, DIP-joint localization, and the arthropathic component. Structured note templates prompt the provider for each one at the point of care. That beats chasing an addendum after the claim has already gone out.

- Multi-joint pattern: the note must reference more than one joint site, such as the DIP joints plus another affected site
- DIP joint identification: the provider must name the distal interphalangeal joint or joints. “Finger joints” alone is not enough for M15.1 specificity
- Arthropathy documentation: active joint disease findings are required, such as pain, functional limitation, crepitus or reduced range of motion
- Radiographic support: imaging findings noting osteophytes, joint space narrowing or subchondral change strengthen the claim, and are often required for injections (CPT 20600)
- Laterality: record which fingers and which hands are involved. Where bilateral DIP involvement is noted, confirm the multi-joint pattern to avoid an Excludes1 conflict
An EHR template that flags a missing documentation element before submission heads off the most common denial reason on M15 claims. That reason is vague multi-joint language, which leaves the payer unable to tell bilateral single-joint disease from polyosteoarthritis.
ICD-10 code M15.1 for Medicare and insurance reimbursement
M15.1 is accepted by CMS for Medicare reimbursement where the documentation supports the code assignment. Pabau routes electronic claims through the Claim.MD clearinghouse, which validates ICD-10-CM codes before they reach the payer. That check catches format errors and missing required elements, so a whole batch is less likely to be rejected on MAC formatting rules.
Key reimbursement considerations for M15.1:
- CMS accepts M15.1 as a primary or secondary diagnosis on CMS-1500 and 837P claims for FY2026
- MAC-specific LCD policies may apply to certain procedure codes paired with M15.1. Verify local coverage determinations before submitting joint injections (CPT 20600) under this diagnosis
- No National Coverage Determination restricts M15.1 directly, though procedure-level NCDs may apply where M15.1 is paired with imaging or therapy codes
- A clearinghouse validates ICD-10-CM codes against the current FY tables before submission, which reduces rejections when the code set turns over each October
For practices managing high volumes of musculoskeletal claims, electronic remittance advice (ERA) is where denial patterns by diagnosis code become visible. Read the claim adjustment reason code (CARC) on the line before reworking anything. CARC 4 means the procedure code is inconsistent with the modifier used, or that a required modifier is missing. Late filing is CARC 29. CARC 97 means the benefit was bundled into another service that has already been adjudicated. CARC 16 means the claim lacks information required for adjudication. Each one points at a different fix.
ICD-10 code history and annual FY validity
M15.1 has been a stable code since US adoption of ICD-10-CM on October 1, 2015. It has not been revised, replaced or deleted in any annual update through FY2026. To verify current status, check the AAPC ICD-10-CM lookup or the official CDC tool against the claim’s date of service. Treat each FY update as a checkpoint, because even a stable code should be checked against the new tabular list every October 1.
The FY2026 edition took effect October 1, 2025. Claims with dates of service from that date onward use the FY2026 code set, and earlier claims use the FY2025 edition. M15.1 was valid under FY2025 too, with the same descriptor and the same Excludes1 note. Payers reject claims where the code-set edition does not match the date of service. Never apply FY2026 codes retroactively to a late pre-FY2026 claim.
Pro Tip
Set a calendar reminder for September 15 each year to review the upcoming ICD-10-CM FY update files published by CMS. Musculoskeletal codes in the M15-M19 range occasionally gain new subcategories or change laterality conventions. Catching those changes before October 1 prevents a first-month wave of claim rejections.
How Pabau keeps M15.1 claims clean before they leave the practice
An M15 denial is usually settled long before the claim exists, in how the encounter was written up. A coder reading “bilateral finger joint pain” cannot tell whether M15.1 or an M16-M19 code applies. The claim then goes out on the coder’s best reading of an ambiguous note, and the remittance arrives three weeks later.
Pabau is practice management software that keeps charting, coding and billing in one patient record. Its claims software for coders validates each ICD-10-CM code against the current FY tables before submission. It also flags a parent code such as M19.04 that is missing its laterality digit. Structured note templates prompt the provider for the DIP site and the arthropathic findings while the patient is still in the chair.
The outcome is fewer reworked claims and a shorter path from encounter to payment. The note, the code and the invoice sit in one record. A coder answering a payer query has the supporting documentation in front of them, rather than in three systems.
Reduce M15.1 claim denials with Pabau
Pabau integrates with the Claim.MD clearinghouse to validate ICD-10-CM codes before submission. Build structured documentation templates that capture multi-joint evidence, DIP localization, and arthropathy findings at the point of care.
Conclusion
M15.1 is a precise, billable code for a well-defined condition, and almost every denial on it traces back to the note rather than the code. Two elements decide the outcome. The Excludes1 boundary sends bilateral single-joint disease to M16-M19, and the “with arthropathy” qualifier needs active joint disease findings, not nodes alone.
So the work belongs at the point of care, not in the appeals queue. Get the joint count and the arthropathic findings into the note while the patient is in front of you, and the coding decision makes itself. Audit your M15.9 volume once a quarter and you will find the claims where that did not happen.
Book a demo to see how Pabau validates ICD-10-CM codes and prompts for the documentation an M15.1 claim needs.
Continue your research
Managing high-volume ICD-10-CM claim submissions? Claim.MD clearinghouse overview explains how electronic claim routing and real-time validation reduce rejection rates on musculoskeletal diagnosis codes.
Need to understand how denials are categorized and resolved? Denial codes in medical billing covers CARC and RARC reason codes with guidance on the correct response for each denial type.
Coding nodes at the middle knuckles instead? M15.2 covers Bouchard’s nodes with arthropathy at the PIP joints, including the encounters where both codes belong on one claim.
Note says generalized osteoarthritis with no nodal site? M15.0 is the subcategory for primary generalized osteoarthritis under the same M15 parent.
Frequently asked questions
What is ICD-10 code M15.1 used for?
ICD-10 code M15.1 reports Heberden’s nodes with arthropathy, the bony enlargements of the distal interphalangeal (DIP) finger joints that occur as part of polyosteoarthritis. Assign it when the provider’s documentation confirms multi-joint disease with DIP nodal involvement and active arthropathic changes. Do not use M15.1 for single-joint bilateral osteoarthritis, which is coded to M16-M19.
Is M15.1 a billable ICD-10-CM code?
Yes. M15.1 is a billable, specific ICD-10-CM code valid for FY2026 (October 1, 2025 through September 30, 2026). CMS accepts it for Medicare and Medicaid reimbursement. Most commercial payers recognize it as a valid primary or secondary diagnosis code on CMS-1500 and electronic 837P claims.
What is the difference between M15.1 and M15.2?
M15.1 codes Heberden’s nodes at the distal interphalangeal (DIP) joints, the fingertip knuckles. M15.2 codes Bouchard’s nodes at the proximal interphalangeal (PIP) joints, the middle knuckles. A patient may have both DIP and PIP nodal disease within a polyosteoarthritic pattern. M15.1 and M15.2 are then both assigned in the same encounter, provided the note names both joint levels.
When should I use M15.1 vs M19.04?
Use M15.1 when the encounter involves multi-joint polyosteoarthritis with documented Heberden’s nodes at the DIP joints. M19.04 covers primary osteoarthritis of the hand, but it is a non-billable parent that needs a laterality digit. Assign M19.041 for the right hand, M19.042 for the left hand, or M19.049 where the note does not specify. Use them only when the documentation shows no polyosteoarthritic pattern across multiple joint sites.
Does the Excludes2 note under M15 affect spinal osteoarthritis?
Yes. The Excludes2 note across M15-M19 excludes osteoarthritis of the spine, which is coded to M47. Because it is an Excludes2 rather than an Excludes1, the two conditions can coexist. A patient with both lumbar spondylosis and DIP-joint polyosteoarthritis carries a code from M47 alongside M15.1 on the same claim.
What CPT codes are commonly paired with M15.1?
Common CPT codes paired with M15.1 include 99213 and 99214 for office visits covering ongoing management. Others are 20600 for a small joint injection, 73140 for a finger X-ray, and 97110 for therapeutic exercises. Procedure-specific documentation is required for each pairing, particularly for joint injections subject to local coverage determinations.
Is M15.1 valid for Medicare reimbursement in 2026?
Yes. CMS accepts M15.1 for Medicare reimbursement on FY2026 claims, meaning dates of service from October 1, 2025 onward. MAC-specific local coverage determinations may impose extra documentation requirements where M15.1 is paired with certain procedure codes, particularly joint injections. Verify the applicable LCDs through the MAC covering your jurisdiction before submitting injection claims.