Shoulder Pain ICD-10 Codes: M25.511, M25.512

Table of Contents

Pains get more painful if not treated. Before treatment, the diagnosis is required. Shoulder pain is one of those pains that halt your daily activities. In this article, we are going to discuss shoulder pain ICD 10 code used for diagnosis. It is one code M25.51 and three codes lie under it which are M25.511 for right shoulder, M25.512 for left shoulder, and M25.519 for unspecified. These codes are symptom codes and primarily based on which side, left or right. 

What “Pain in Shoulder” Means in ICD-10-CM

There is a broader category of “Pain in joint” which is M25.5 and “Pain in shoulder” is its subcategory. As mentioned in the introduction, it has three codes, six characters, and there is no 7th character. Now, we discuss which codes are billable. M25.51 is a subcategory and it is not billable. M25.511 is pain in the right shoulder and it is billable. The same is the case with the left shoulder code M25.512 which is billable too. M25.519 is the pain in the unspecified shoulder and it is billable. All these three codes do not have the 7th character. All three are unchanged in the FY 2027 ICD-10-CM code set. 

Left, Right or Unspecified: The Laterality Rule  

As already discussed, the right shoulder pain ICD 10 code is M25.511, the left shoulder pain ICD 10 code is M25.512. The important thing to understand here is the laterality specificity. Is there any bilateral code for shoulder pain? No, there is not. Which side is the diagnosis? It can be taken from the documentation of other clinicians, like nurses or radiology. For bilateral cases, two codes are used: M25.511 + M25.512. Another crucial thing to discuss here is M25.519 unspecified risk. If the record shows a side, for example right shoulder, M25.519 is a specificity failure that is caught by auditors and should be avoided.

Record says Code(s)
Pain, right shoulder M25.511
Pain, left shoulder M25.512
Pain, both shoulders M25.511 + M25.512
“Shoulder pain,” side nowhere in the record, provider unreachable M25.519
Provider note silent on side; PT note says left M25.512 (I.B.13: other clinicians’ documentation)
Note says right; imaging order says left Query the provider before coding

Symptom Code vs. Definitive Diagnosis

Not a great thing to mention the same thing again, but the importance demands it. M25.511 and M25.512 are symptom codes. All the information these codes provide is where the pain is. They tell nothing else except where it hurts. According to the guidelines (I.C.18.a), the symptom codes are acceptable “when a related definitive diagnosis has not been established (confirmed) by the provider.” What if the provider confirms the cause of pain? The symptom codes are no longer correct and the code of the cause takes the place. So, it is essential where symptom vs. definitive dx is decided.

Rule out rotator cuff tear is not a confirmed diagnosis if we consider the office setting. There is a ruling under IV.H that uncertain terms like “probable”, “suspected”, “rule out”, “consistent with”, are not coded as if confirmed. Consider a first visit with the pain in the left shoulder with an MRI ordered, is M25.512, not M75.102. There is a flip side to it when the MRI report says that it is a full thickness tear, now M25.512 cannot be used with M75.122. The reason behind it is that the pain is associated with a tear (I.C.18.b).

This scenario can be understood in the representation below:

From Structure to Code: The Shoulder Map

A patient on the first visit tells the provider about the shoulder pain, the code is M25.51- (pain, side). The exam and imaging give more clarity and the provider knows which part of the shoulder is the problem. The parts of the shoulder, like the rotator cuff (M75.100/101/102), the bursa, the labrum/SLAP, the AC joint, impingement (M75.40/41/42), and so on. Every structure has its own group of codes in the ICD-10-CM. The coding teams need to find the structure to reach the code. There are two code families, non-traumatic lesions that are placed in M75 and these do not take the 7th character. The injuries live in S43 and S46 and require a 7th character. One word in the history of the patient decides the code, and that is trauma or none. The table below shows the details:

Structure in the note Non-traumatic (M, no 7th) Traumatic (S, 7th character)
Glenohumeral joint M19.011 / M19.012 primary osteoarthritis, shoulder; M75.01 / M75.02 adhesive capsulitis; M24.411 / M24.412 recurrent dislocation S43.401A / S43.402A sprain of shoulder joint
Rotator cuff M75.100 / M75.101 / M75.102 unspecified tear; M75.111 / M75.112 incomplete; M75.121 / M75.122 complete S46.011A / S46.012A strain of rotator cuff
Subacromial bursa M75.51 / M75.52 bursitis of shoulder —
Impingement M75.40 / M75.41 / M75.42 impingement syndrome —
Labrum / SLAP — (SLAP lesion is an injury code) S43.431A / S43.432A superior glenoid labrum lesion
AC joint M19.011 / M19.012 (shoulder OA covers AC) S43.51XA / S43.52XA sprain of AC joint; S43.1- dislocation of AC joint
Biceps tendon M75.21 / M75.22 bicipital tendinitis S46.111A / S46.112A injury of long head of biceps
Range of motion loss, no cause named M25.611 / M25.612 stiffness of shoulder, NEC —

The 7th Character: Injury Codes vs. M Codes

Every code that we have discussed so far is complete as written, for example M25.511 and M25.512. If we add a 7th character to this code, it becomes inaccurate and the claim is rejected before anyone reads it. On the contrary, the S43 and S46 codes are valid only if the 7th character is placed. Why do these S codes require the 7th character? The injury chapter needs to know where the patient is in the course of treatment. 

What does A, D and S mean? This is the 7th character for injury codes. “A” is the initial encounter. It means that the patient is still getting active treatment for the injury. This is about the phase of the treatment, it is not related to the number of visits of the patient. “D” is the subsequent encounter. When the active treatment is over, the recovery phase is going on. The sling changes or the follow-up checks, medication adjustment are part of this. “S” is sequela, it is a later problem that exists because there was an old injury.

Where can coding errors occur? If the patient is under an active treatment, sending “D” for a patient who visited another physician during the on-going treatment. The table can show it in a better way:

Code Takes 7th character? Example
M25.511 No —
M75.101 No —
S46.011A Yes — A first visit after fall, active treatment
S46.011D Yes — D 4-week follow-up, healing
S46.011S Yes — S chronic weakness attributed to old tear
S43.52XA Yes — A, with X placeholder AC sprain, left, initial

Shoulder Pain Documentation Requirements 

The provider’s note gives clarity to the coder while mentioning details on the note. Consider a scenario where the coder has to pick the right shoulder code from the physician’s note. What six things the note should entail so that the coder picks the accurate code? 

  • The side is crucial here, which side? Right, left, or both. If the record does not show the side and the provider cannot clarify, M25.519 is the only option left. 
  • How did it start? Did the patient fall, did the patient lift something, get hit by something. Did it just start hurting? This is the word that allows the coder to pick the right family of codes. M list for no injury or the S codes for injury. 
  • Which part of the shoulder is hurt? Rotator cuff, bursa, labrum, AC joint, biceps tendon. The provider names the part and the respective code family is chosen. 
  • The result of the exam should be documented. The range of motion of the arm: how far it moves and where it hurts on pressing. These details back up the part named.
  • Imaging result and date. The MRI or X-ray report clearly shows whether it was a tear or not. The date is when the shift from M25.51- to the real diagnosis was made.
  • How sure the provider is. Phrases like “suspected”, “rule out”, and “probable” mean not sure. The pain is coded in this case. “Confirmed” is where the diagnosis is coded.

Why Shoulder Pain Claims Get Denied 

Most errors in the case of shoulder pain denials are related to pairing, not wrong codes. The two codes cannot sit together in this case and each code is valid. The table below shows what was on the claim, what tends to come back, and the root cause.

What’s on the claim What tends to come back Root cause
M25.519, chart shows “left” Edit / specificity flag Unspecified side with side documented
M25.512 + M75.122, same visit Edit or audit flag Symptom integral to definitive dx (I.C.18.b)
M75.102 + S46.012A Edit Excludes1 pair — pick traumatic or non-traumatic
S46.012 (no 7th character) Rejection — invalid code Injury code incomplete
M75.102 on a “r/o rotator cuff tear” visit Audit exposure Uncertain dx coded as confirmed (IV.H, outpatient)
G89.29 + M25.512, visit was a workup Edit G89 without documented chronic pain / pain-management visit

Getting orthopedic billing services for shoulder pain helps to reduce denials and improve the revenue cycle. 

Jasmine Oliver

Revenue Cycle Management Expert | Content Strategist in Healthcare | MedCare MSO

Jasmin Oliver writes about revenue cycle management, medical billing, and coding compliance. With over 12 years of experience, she turns complex RCM concepts into clear, practical insights that help healthcare providers and billing teams improve accuracy and revenue performance.

Let’s Get in Touch!

Please, fill the form, it won’t take more than 30 seconds

1 Step 1
reCaptcha v3
keyboard_arrow_leftPrevious
Nextkeyboard_arrow_right

Free Revenue Audit

Losing revenue to denials?
Let's find it — free.

See exactly where your practice is leaking revenue. We review 90 days of claims, denials, and aged A/R at no cost.

Request Your Free Demo

🔒 HIPAA-secure. Your information is never shared.

1 Step 1
Let’s Get in Touch

If you’d like to talk to someone now, give us a call at 800-640-6409. ​
To request a call back, just fill out this form. Please let us know your interest so we can be sure to have the best person call you.

reCaptcha v3
keyboard_arrow_leftPrevious
Nextkeyboard_arrow_right