ICD code I50.20 – Unspecified systolic heart failure
Billable Code Specific Code
I50.20 is the billable ICD-10-CM code for unspecified systolic (congestive) heart failure. It applies when the provider documents systolic heart failure or HFrEF but doesn't say whether it's acute, chronic, or acute on chronic.
It sits in subcategory I50.2 with three acuity-specific siblings: I50.21, I50.22 and I50.23. When no heart failure type is documented at all, I50.9 fits instead.
- Chapter
- I00-I99 Diseases of the circulatory system
- Category
- I50 Heart failure
- Group
- I50.2 Systolic (congestive) heart failure
- Billable
- Yes
- Code also known as
- HFrEF, heart failure with reduced ejection fraction, systolic congestive heart failure, reduced ejection fraction heart failure
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
I50.20 applies when the provider documents systolic heart failure or HFrEF but not its acuity (acute, chronic, or acute on chronic).
HFrEF, heart failure with reduced ejection fraction (typically LVEF 40% or below), is listed under I50.2 in the tabular, so it codes the same way.
If the record states acuity anywhere, I50.21, I50.22 or I50.23 replaces I50.20. If it states no type at all, use I50.9.
Systolic and diastolic heart failure documented together go to a combined I50.4- code, never I50.2- plus I50.3-.
Most I50.20 denials trace back to the chart, so a short pre-submission check catches them before the claim leaves.
ICD-10 code I50.20 covers systolic heart failure with no stated acuity
ICD-10 code I50.20 is the billable ICD-10-CM code for unspecified systolic (congestive) heart failure. It’s listed under subcategory I50.2 in CMS’s FY2027 ICD-10-CM files, beside three siblings that each name an acuity. You assign it when the provider has written “systolic heart failure” or “HFrEF” and nothing about acute or chronic.
It’s valid as a principal or secondary diagnosis and has been in the code set since ICD-10-CM took effect in October 2015.
You can also look the code up in the CDC/NCHS ICD-10-CM web tool. The tabular list changes every October 1, so check you’re coding from the current fiscal year.
“Unspecified” in I50.20 means acuity, not heart failure type
Systolic heart failure is the clinical picture of heart failure with reduced ejection fraction (HFrEF). The left ventricle contracts weakly and can’t pump enough blood forward. The 2022 ACC/AHA/HFSA heart failure guideline defines HFrEF by a left ventricular ejection fraction (LVEF) of 40% or below. When the physician also documents cardiomyopathy without naming its type, I42.9 can be reported alongside I50.20.
The “(congestive)” in the descriptor doesn’t mean the patient must show fluid overload. The index routes “congestive heart failure, systolic” to I50.2-, so either phrasing lands in the same subcategory.
The provider has settled the type. What’s missing is the time course: a new acute episode, a stable chronic condition, or an acute flare on a chronic baseline. Three situations come up again and again:
- Unspecified acuity is correct: the note, discharge summary or problem list says “systolic heart failure” or “HFrEF”. No word like acute, decompensated, new onset or chronic appears.
- Unspecified acuity is a query, not a code: the chart shows an admission for decompensated heart failure, but the attending never wrote the acuity down. Query the provider rather than settling for I50.20.
- The type is what’s unspecified: neither systolic nor diastolic appears in the record. I50.20 doesn’t fit here. Use I50.9 until the type is clarified.
Four I50.2x codes, split only by acuity
Subcategory I50.2 holds four codes, and they differ only in the acuity the provider documents.
The costliest mistake in this block is coding I50.20 on an inpatient stay for decompensated heart failure when the chart supports I50.23. Payers, Medicare included, can recoup inpatient payments where an unspecified code was billed despite documentation that supported a specific one.
One more boundary sits at I50.2 itself. Its Excludes1 note sends combined systolic and diastolic heart failure to I50.4-, so the two types are never coded side by side.
I50.20 vs I50.9: The documented type decides
I50.9 and I50.20 are the two “unspecified” endpoints in category I50, and they sit at different levels of detail. I50.9 means heart failure with no type stated. I50.20 means the type is systolic and only the acuity is missing.
Coding I50.9 when the provider wrote “systolic heart failure” undercodes the record. The guidelines ask for the most specific code the documentation supports, so I50.20 wins whenever the type is on file. Diastolic documentation moves the other way, into I50.3-, starting with I50.30 when acuity is missing there too.
Put together, the whole choice comes down to two questions about the provider’s own words, as the flow below shows.

Pro Tip
Query the provider before settling on I50.20 for an inpatient stay. Elevated BNP, a reduced LVEF on echo and a decompensated presentation may support I50.23 with one line from the attending. Keep the query and the answer in the chart.
Documentation that holds up on an I50.20 audit
Each of these elements gives an auditor or a payer’s additional documentation request (ADR) something to check against:
- Provider statement of type: the attending, cardiologist or another licensed provider writes “systolic heart failure” or “HFrEF”. It can sit in a progress note, discharge summary, consult or problem list. Coders can’t assign the systolic type from lab or imaging results alone.
- Ejection fraction evidence: an echo report showing LVEF at or below 40% is the strongest support. A cardiac MRI or nuclear scan showing reduced EF also works, as long as the provider interprets it in the note.
- No acuity anywhere in the record: words like “acute decompensation”, “new onset”, “chronic” or “stable HFrEF” move you to I50.21, I50.22 or I50.23.
- Biomarkers as backup: an elevated BNP or NT-proBNP supports medical necessity. It can’t establish the systolic type on its own.
- A signed query response: when you query for type or acuity, the answer goes into the record before you code. An unanswered query never lets you assume systolic.
Coding guidelines and excludes notes that shape I50.20
The ICD-10-CM Official Guidelines for Chapter 9, together with AHA Coding Clinic, govern heart failure coding across category I50.
Key guideline rules
- Hypertension changes the sequence: the guidelines presume a link between hypertension and heart failure. Code I11.0 (hypertensive heart disease with heart failure) first, then the I50.2x code.
- Excludes2 notes on I50: I50 carries Excludes2 notes for cardiac arrest (I46.-) and neonatal cardiac failure (P29.0). An Excludes2 means both may be reported together when both are present.
- Code first instructions: I50 tells you to code first an underlying cause where it applies. Examples include hypertensive heart disease (I11.0), hypertensive heart and chronic kidney disease (I13.-) and heart failure following surgery (I97.13-).
- Code also end-stage heart failure: I50.2 adds a “code also” note for end-stage heart failure (I50.84), if documented.
- Principal diagnosis on admission: when the patient is admitted for systolic heart failure, I50.20 goes first unless a hypertensive combination code applies.
The hypertension rule sits in section I.C.9.a.1 of the FY2027 ICD-10-CM Official Guidelines. Because I11.0 already carries the hypertension, you don’t add I10 on the same claim.
Symptoms that come with heart failure aren’t coded separately either. Once the provider documents heart failure, shortness of breath (R06.02) is integral to it and stays off the claim. The same goes for a note that says only dyspnea, which would otherwise code to R06.00.
The Excludes2 note sits at category I50
I50.2 has no Excludes2 note of its own. The one that applies sits at the I50 category level and names cardiac arrest (I46.-) and neonatal cardiac failure (P29.0). Either condition is outside I50.20 but may be reported alongside it when present. The CMS ICD-10 codes page publishes the updated tabular files each October.
How an I50.20 claim moves, and where it stalls
Most I50.20 problems start long before the payer sees the claim. Here’s the route a typical claim takes:
- The encounter is documented. The provider records the heart failure type, and ideally the acuity, in the note or problem list.
- The coder abstracts the chart. No acuity word means I50.20. An acuity word anywhere means a sibling code, and a missing type means a query or I50.9.
- The claim is scrubbed. Claim edits check code validity, sequencing and missing fields before submission.
- The claim goes out. Professional claims go as an 837P (CMS-1500), and facility claims as an 837I (UB-04).
- The payer adjudicates. The remittance comes back paid, denied or with a request for records.
- Denials and ADRs come back to the chart. Your fix is only as good as the documentation behind the code.
Why I50.20 claims get denied, and how to prevent it
Payers, including Medicare Administrative Contractors (MACs), flag unspecified codes when the submitted record supports a more specific one. These are the I50.20 denials coders see most:
When a claim does come back, the reason code on the remittance tells you which row above you’re dealing with. Our guide to medical billing denial codes explains what each one means and how to respond.
Before you submit: An I50.20 checklist
- The provider, not the echo report, states “systolic” or “HFrEF”.
- No acuity word appears in the note, discharge summary or problem list.
- An LVEF value sits in the record, with the provider’s interpretation.
- Hypertension is checked. If present, I11.0 (or I13.- with CKD) goes first.
- No diastolic diagnosis is documented. If it is, use I50.4- instead.
- Any query is answered and signed before the claim drops.
Running through this list takes a minute, and it covers the field-level checks in our clean claim requirements guide as well.
Payer and Medicare rules for systolic heart failure claims
Medicare and most commercial payers accept I50.20 as a valid diagnosis, but acceptance doesn’t remove audit risk. CMS and MACs apply MS-DRG validation, medical necessity and clinical validation reviews to inpatient HF admissions.
- Medicare inpatient admissions: HF admissions group to MS-DRG 291, 292 or 293, depending on complications or comorbidities. The acuity of the HF code affects CC/MCC status, so I50.23 can group differently from I50.20.
- Prior authorization: traditional Medicare rarely requires prior authorization for HF admissions, but Medicare Advantage plans often do. Check each plan’s rules, since unspecified codes can trigger manual review.
- ADR responses: send the echo report with LVEF, the provider’s statement of systolic type and any consult notes.
- HIPAA transactions: I50.20 is a valid HIPAA code set entry. Report it on the 837P (CMS-1500) or 837I (UB-04), in the diagnosis fields for the claim’s date of service.
Codes often reported alongside I50.20
Heart failure rarely travels alone. These codes often share a claim with I50.20 or get mixed up with it.
Coronary disease and diabetes are the pairings you’ll code most often. Our reference pages for I25.10 and E11.65 cover their own documentation rules.
How Pabau keeps heart failure claims moving
For a practice billing heart failure visits, the chart is only half the job. Someone still checks coverage, chases authorizations and follows each claim until it’s paid.
Pabau, the practice management platform we build, keeps that work next to the patient record. Pabau’s Claim.MD integration supports eligibility checks and 837P claim submission, with ERA remittances coming back to the practice. Prior authorization codes, dates and sessions are tracked on the patient’s case, with a warning when one is missing.
That means fewer surprises at the payer stage, and a clear trail when an ADR arrives. Our claims software for practices shows how secondary claims and remittances fit the same workflow.
Keep heart failure claims moving to payment
Pabau runs eligibility checks, tracks prior authorizations and submits 837P claims through Claim.MD, with ERA remittances coming back to your practice.

Conclusion
I50.20 is a holding code. It’s correct when the provider has named the type and stopped there, and wrong the moment an acuity word shows up.
If you code a lot of heart failure, the best investment is upstream. Teach providers to write the acuity, and query when they don’t. Each I50.20 that becomes an I50.21, I50.22 or I50.23 is a claim with less audit exposure.
Book a demo to see how Pabau tracks eligibility, authorizations and claims for your heart failure patients in one place.
Continue your research
Coding the diastolic side? ICD-10 code I50.30 covers unspecified diastolic heart failure and its acuity siblings.
Reading a heart failure denial? Denial codes in medical billing explains the reason codes payers send back and how to respond.
Need a full denial prevention workflow? Denial management in healthcare covers how to build denial tracking and appeals for ICD-10-coded claims.
Submitting claims electronically for the first time? Clean claim requirements explains the data elements every 837P must carry to avoid edits on first submission.
Connecting coding to cash flow? Revenue cycle management shows how coding accuracy feeds reimbursement.
Frequently asked questions
What is the difference between systolic and diastolic heart failure in ICD-10?
Systolic heart failure (I50.2-) involves reduced ejection fraction, where the ventricle contracts weakly. Diastolic heart failure (I50.3-) involves preserved ejection fraction, where a stiff ventricle fills poorly. When both types are documented, assign a combined systolic and diastolic code from I50.4- instead of reporting I50.2- and I50.3- separately.
What was the ICD-9 code for unspecified systolic heart failure?
It was 428.20, “systolic heart failure, unspecified.” The general equivalence mappings carry it forward to I50.20, which helps when you’re reviewing older records.
Does end-stage heart failure change how I code systolic heart failure?
Yes, it adds a code. I50.2 carries a “code also” note for end-stage heart failure, I50.84. Report it alongside the systolic code when the provider documents end-stage disease.
Can I code I50.20 for probable heart failure at an office visit?
No. The outpatient guidelines don’t allow coding a diagnosis documented as probable, suspected or rule out. Code the documented signs or symptoms instead, such as shortness of breath or edema.
Does I50.20 need any extra characters?
No. I50.20 is already a complete, billable code. Adding a character makes it invalid, and the claim will reject at the edit stage.



