AcademyICD-1024 Jul 2026 7 min read

ICD-10 Code for Congestive Heart Failure (I50)

The ICD-10 code for congestive heart failure sits under I50, but I50 alone isn't billable. Here's how HFrEF, HFpEF and CHF codes actually break down.

By Patientary Team

Heart rate monitor screen used to document a congestive heart failure diagnosis
Photo: Los Muertos Crew

Congestive heart failure — CHF, or simply heart failure (HF) — doesn't have a single ICD-10 code. The condition sits under category I50 (Heart failure) in ICD-10-CM's circulatory system chapter, but I50 on its own is a header: it has to be extended to a more specific subcategory before a claim will go through. Whether a chart says CHF, cardiac failure, HFrEF or HFpEF, the code you actually submit depends on the type of dysfunction — systolic, diastolic, or both — and whether it's acute, chronic, or acute-on-chronic.

TL;DR: I50 (Heart failure) is a non-billable header in ICD-10-CM. Systolic dysfunction (HFrEF) codes to I50.2-, diastolic dysfunction (HFpEF) codes to I50.3-, combined systolic and diastolic failure codes to I50.4-, and unspecified heart failure codes to I50.9. Always use the most specific subtype the documentation supports — never submit bare I50, and treat I50.9 as a last resort, not a default.

One note before the breakdown: this is coding and classification reference, not clinical guidance. The choice between systolic and diastolic, acute and chronic, rests on what's documented in the chart by the treating clinician — not on this article.

Where heart failure sits in ICD-10-CM

ICD-10-CM organises every diagnosis into 22 chapters by body system or condition type. Heart failure falls in Chapter 9, Diseases of the circulatory system, which spans codes I00 through I99 and covers everything from hypertension to stroke to valve disease. How ICD-10 codes work has the fuller picture of how the classification is structured, but the short version for I50 is: a three-character category, then decimal subdivisions that add clinical detail. For heart failure, that axis of detail is systolic versus diastolic dysfunction, plus acuity.

The congestive heart failure ICD-10 code set: I50 and its children

The table below lists the codes that actually exist under I50 in the current ICD-10-CM code set, from most general to most specific.

CodeDescriptionBillable?
I50Heart failure (category header)No
I50.1Left ventricular failure, unspecifiedYes
I50.20Unspecified systolic (congestive) heart failureYes
I50.21Acute systolic (congestive) heart failureYes
I50.22Chronic systolic (congestive) heart failureYes
I50.23Acute on chronic systolic (congestive) heart failureYes
I50.30Unspecified diastolic (congestive) heart failureYes
I50.31Acute diastolic (congestive) heart failureYes
I50.32Chronic diastolic (congestive) heart failureYes
I50.33Acute on chronic diastolic (congestive) heart failureYes
I50.40Unspecified combined systolic and diastolic heart failureYes
I50.41Acute combined systolic and diastolic heart failureYes
I50.42Chronic combined systolic and diastolic heart failureYes
I50.43Acute on chronic combined systolic and diastolic heart failureYes
I50.9Heart failure, unspecifiedYes
I50 (Heart failure) and its billable subcategories, ICD-10-CM.

Two things worth flagging. First, I50.1 (left ventricular failure, unspecified) and I50.9 (heart failure, unspecified) are both billable as-is — they have no further children — but they're also the least specific options and should only be used when the record genuinely doesn't support a more precise systolic or diastolic split. Second, I50.2, I50.3 and I50.4 are themselves headers: none of those three intermediate groupings can be billed directly. Each needs the extra fourth digit for unspecified, acute, chronic, or acute-on-chronic before it's valid for submission.

HFrEF vs HFpEF in ICD-10-CM

Clinically, HFrEF (heart failure with reduced ejection fraction) maps to the systolic codes, I50.2-, and HFpEF (heart failure with preserved ejection fraction) maps to the diastolic codes, I50.3-. Coders lean on this mapping constantly, but it isn't written into the code descriptors themselves — ICD-10-CM uses "systolic" and "diastolic," not "reduced" and "preserved" ejection fraction. When a chart documents an ejection fraction percentage alongside a systolic or diastolic diagnosis, that supports the matching I50.2- or I50.3- code. When it only states "HFrEF" or "HFpEF" without a clear systolic or diastolic statement, many coders query the physician rather than guess.

Chronic vs acute: how ICD-10 captures the clinical course

Within both the chronic systolic heart failure and chronic diastolic heart failure families, ICD-10-CM repeats the same four-way split: unspecified, acute, chronic, and acute on chronic. "Acute on chronic" describes a patient with an established chronic heart failure diagnosis who has decompensated — it isn't the same as a first-time acute presentation, and mixing the two up is a common documentation gap that sends coders back to the physician for clarification.

Billable vs header codes: why bare I50 gets rejected

A billable code — also called "valid for submission" — is one with no further children underneath it in the classification; it represents the most specific level ICD-10-CM supports for that condition. I50 has children, so it's a header, and clearinghouses will reject a claim carrying I50 on its own before it's even scored for medical necessity. This isn't unique to heart failure: the same header-versus-billable distinction runs across the whole code set, as we cover in what "billable" means for an ICD-10 code — the type 2 diabetes category works the same way, where E11 needs a fourth character before it's payable too.

A coding scenario: resolving an ambiguous chart note

A coder reviewing a discharge summary reads: "Patient admitted with acute decompensated CHF, history of HFrEF, EF 30% on last echo." The cardiology notes describe treatment for fluid overload but never repeat the word "systolic." Is this I50.21 (acute systolic), or does the missing word mean the chart has to default to I50.9?

In this case, the documented EF of 30% together with the stated history of HFrEF is enough clinical context to support systolic dysfunction — most facility coding guidelines allow a coder to infer "systolic" from a clearly reduced ejection fraction plus HFrEF terminology, and code I50.21. If the note had instead described a decompensation of existing HFrEF rather than a brand-new acute episode, I50.23 (acute on chronic) would be the better fit. Where the ejection fraction isn't documented at all and the note just says "CHF," the coder has no basis to pick systolic or diastolic and should query the physician, or, failing a response, fall back to I50.9.

Coding to the current fiscal year

ICD-10-CM updates every year on 1 October, when CMS and the CDC's National Center for Health Statistics publish that fiscal year's code set. Codes get added, retired, or split with some regularity, and cardiology isn't immune — always verify a code, including the ones listed above, against the current official release rather than a note copied from an old chart or a saved cheat sheet. See our rundown of this year's ICD-10-CM updates for what's changed most recently.

Look up the current I50 codes live, straight from the official ICD-10-CM release.

Open the ICD-10 code lookup

For developers and AI agents building claim-scrubbing tools or clinical documentation assistants, Patientary is the reference layer for US healthcare data — for people and AI agents — with the full, current I50 hierarchy, and every other ICD-10-CM code, available through the MCP server as well as the web lookup.

Frequently asked questions

Is I50 a billable code?

No. I50 (Heart failure) is a header category in ICD-10-CM — it groups more specific codes underneath it but can't be submitted on a claim by itself. You need to extend it to one of its children, such as I50.9 for unspecified heart failure or I50.22 for chronic systolic heart failure, depending on what's documented.

What's the ICD-10 code for HFpEF?

Heart failure with preserved ejection fraction (HFpEF) generally maps to the diastolic heart failure codes: I50.30 (unspecified), I50.31 (acute), I50.32 (chronic), or I50.33 (acute on chronic), depending on the documented acuity.

What's the difference between HFrEF and HFpEF codes?

HFrEF (reduced ejection fraction) corresponds to the systolic codes, I50.2-, and HFpEF (preserved ejection fraction) corresponds to the diastolic codes, I50.3-. ICD-10-CM itself uses "systolic" and "diastolic" rather than "reduced" and "preserved" ejection fraction, so coders map the clinical terminology across to the classification's terms.

What ICD-10 code should I use for unspecified congestive heart failure?

I50.9 (Heart failure, unspecified) is the billable fallback when documentation doesn't specify systolic, diastolic, or combined dysfunction. It's valid for submission, but it should only be used when a more specific code genuinely isn't supported by the chart — payers and auditors expect the most specific code the documentation allows.

Can heart failure have both systolic and diastolic components in ICD-10?

Yes — combined systolic and diastolic heart failure is coded to I50.4-, with the same acuity split as the other subtypes: I50.40 (unspecified), I50.41 (acute), I50.42 (chronic), or I50.43 (acute on chronic).

Anything cited above is general reference, not medical, coding or billing advice. To look something up against live data, run a free NPI lookup, or search the ICD-10-CM code set.

More guides

Look it up, then build on it

Search providers and codes free, then get an API key for your software or your AI agent — no card to start.

Get an API key