Understanding ICD-10 Codes for Pressure Ulcers
Pressure ulcer coding in ICD-10 comes with a few nuances that catch people off guard. The L89 category covers decubitus ulcers, but the specificity required means you need to document three things before you can code accurately: the anatomical location, the stage of the ulcer, and whether the stage is documented or not documented. When you see a claim referencing "history of pressure ulcer," the actual coding changes completely. History is not the same as an active condition. For an active pressure ulcer, you use L89.- codes with stage specification. For healed or resolved pressure ulcers, you use Z87.891 (personal history of pressure ulcer). This distinction matters because payers track these differently, and mixing them up is one of the more common coding errors I see in audit reviews. Here is how the active pressure ulcer codes break down:
- L89.0 for pressure ulcers of the elbow
- L89.1 for pressure ulcers of sacrum
- L89.2 for pressure ulcers of hip
- L89.3 for pressure ulcers of heel
- L89.4 for pressure ulcers of buttock
- L89.5 for pressure ulcers of other part of trunk
- L89.6 for pressure ulcers of lower limb including ankle
- L89.7 for pressure ulcers of upper limb
- L89.8 for pressure ulcers of multiple sites
- L89.9 for pressure ulcer, unspecified site
Each of these can be further specified with a fourth digit for the stage, but only if the clinical documentation supports it. Stage 1 through Stage 4, plus unstageable and deep tissue injury. If the documentation does not state the stage, you do not assign a stage code. That is not an option to make a reasonable assumption about. The stage specification is critical because it affects reimbursement and quality metrics. A Stage 2 sacral pressure ulcer (L89.12) is coded differently than a Stage 3 (L89.13) or Stage 4 (L89.14). Unstageable pressure ulcers get L89.-0, and deep tissue tissue injury gets L89.-1. I ran into a situation last year where a facility had documented a sacral ulcer as "non-healing wound" without specifying the stage in the assessment. The provider did not perform a re-staging exam that admission. I had to flag it back for clarification. We could not code L89.13 or L89.14 without clinical evidence. The final code was L89.10 (unstageable) because the wound had excessive eschar to allow staging. This is the kind of edge case that catches clinics up when they assume "pressure ulcer" is sufficient documentation.
Common Pitfalls in Pressure Ulcer Coding
One issue that comes up repeatedly involves hospital-acquired pressure ulcers. There is a separate code category for this: L97 (non-pressure chronic ulcer) and L89.70-L89.79 with external cause codes from Y63.5 or Y63.6 depending on whether the ulcer developed during treatment. Not all pressure ulcers are hospital-acquired, so you cannot automatically assume the HAC modifier applies. The documentation needs to establish onset timing relative to admission. Another frequent error involves conflating arterial and venous ulcers with pressure ulcers. An arterial insufficiency ulcer of the leg codes to I70.201 or I70.202, not L89. If the chart says "leg ulcer with poor perfusion," that is vascular, not decubitus. These are separate disease processes with separate management pathways. Payors can and will deny claims where the diagnosis does not match the procedure context. Diabetic ulcers present a similar confusion point. A diabetic foot ulcer with peripheral circulatory disorder codes to E11.621 (type 2 diabetes with foot ulcer), not L89. Even if the ulcer is on the heel, if the etiology is diabetic peripheral angiopathy, the L89 code is wrong. The coder needs to read the full clinical picture, not just the anatomic location.
Get the Full Details

External Cause Coding
When a pressure ulcer occurs in an inpatient setting, you should also assign an external cause code from Chapter 20. Y63.5 covers "failure of other medical equipment during surgical and medical care" if a device contributed to the ulcer. Y63.6 covers "misadministration of surgical and medical care." These are optional but recommended for quality tracking purposes. Some payors do not require them, but the CDC and CMS both recommend external cause coding for pressure injuries in the inpatient acute care setting. Once a pressure ulcer has fully epithelialized and the wound is closed, the active L89 code is no longer appropriate. You shift to Z87.891 (personal history of pressure ulcer) as the primary code if there are no ongoing complications. If there are ongoing complications like osteomyelitis at the prior site, you code both Z87.891 and the active complication code (M86.0 for hematogenous osteomyelitis, for example). The transition from active to history code usually happens at discharge. For outpatient follow-up visits on a healed ulcer with no residual symptoms, Z87.891 is the correct code. I have seen clinics continue using L89.12 on follow-up visits weeks after the wound closed, which overstates the patient's current condition and skews quality metrics.
Sequencing and Payer Considerations
For inpatient admissions where a pressure ulcer is the reason for admission, L89.- is the principal diagnosis. If the patient is admitted for another condition and the pressure ulcer is discovered incidentally, the primary condition is principal and the L89 code is secondary. This sequencing affects DRG assignment and case-mix index calculations. Medicare covers pressure ulcer treatment under Part A for inpatient stays and Part B for outpatient wound care. Commercial payers may have additional documentation requirements before authorizing specialized dressings or negative pressure wound therapy. The code alone does not guarantee coverage. You need to pair the L89 code with the appropriate procedure codes (CPT 97597 for debridement, for example) and any requisite modifiers. For long-term care facilities reporting pressure ulcer prevalence, the UB-04 form requires specific fields for stage and location. These data feed into CMS quality reporting and nursing home compare star ratings. Inaccurate staging at the facility level can materially affect public reporting outcomes, which is why precise documentation is worth the extra time.
Practical Coding Workflow
The most reliable approach I use is to follow the documentation from the provider's assessment. First, confirm the diagnosis is pressure ulcer (not vascular, not diabetic, not burn). Second, identify the anatomic site. Third, verify the stage is documented or note it as unstageable. Fourth, check for any external cause factors. Fifth, determine if the ulcer is active or historical. This takes about thirty seconds per case if the documentation is complete, and two to three minutes if clarification is needed. When the documentation is incomplete, do not guess. Return the record to the provider with a specific question rather than assigning a code that might be incorrect. A returned query is better than a denied claim or an audit finding. I prefer a quick follow-up email asking "Can you specify the stage of the sacral ulcer?" over spending hours defending a code later.

Special Considerations for Malignant Pressure Ulcers
There is a rare but important scenario where a pressure ulcer undergoes malignant transformation. Marjolin ulcer describes a squamous cell carcinoma arising in a chronic wound, including chronic pressure ulcers. When this is diagnosed, the L89 code is no longer sufficient. You code the malignancy (C44.- for skin cancer, with the appropriate site specifier) as primary. The pressure ulcer history remains in the record but does not drive the acute coding. This is uncommon but carries significant reimbursement and oncology tracking implications.
Conclusion
Pressure ulcer coding requires attention to site, stage, documentation quality, and temporal status. The L89 category is straightforward when the clinical record is complete, but the edge cases -- unstageable wounds, healed ulcers, hospital-acquired versus community-onset, and differential diagnoses -- demand careful reading of the chart. Taking the time to code correctly on the first pass saves time downstream and keeps your quality metrics accurate.