Working with the HHS ICD-9 HCC Crosswalk in Practice
The HHS ICD-9 HCC Crosswalk is the official mapping document that links ICD-9-CM diagnosis codes to the hierarchical condition categories used in risk adjustment models. It is maintained by CMS and updated annually. If you work in Medicare Advantage coding, revenue cycle management, or health plan administration, you have probably opened this document at least once and immediately realized how dense and confusing it can be. That is normal. Here is the straightforward version of how it works and where people typically run into trouble.
What the Hhs Icd 9 Hcc Crosswalk Actually Maps
At its core, the crosswalk takes an ICD-9-CM code and tells you which HCC (if any) it falls under. Not every diagnosis code maps to an HCC. Many common codes simply do not count toward risk adjustment calculations. The crosswalk document has two main sections: one for non-malignancy conditions and one for malignancy conditions, because cancer diagnoses use a completely different mapping pathway. The structure looks roughly like this: you will see HCC numbers listed (ranging from 1 through roughly 70-something depending on the year), then under each HCC you will find the list of ICD-9-CM codes that contribute to that category. The mapping is many-to-one, meaning dozens of individual diagnosis codes can map to the same single HCC. For example, various codes for type 2 diabetes with complications all collapse into a single diabetes HCC. That collapsing behavior is intentional and it is what drives the risk score calculation.
How to Use It Without Losing Your Mind
Most people open the crosswalk and immediately try to read it top to bottom. That is the wrong approach. You should never read the crosswalk as a document. You use it as a reference tool during specific tasks. When you are working with a claim or a chart, your workflow should look like this: 1. Identify the ICD-9-CM code in question.
2. Find that code in the crosswalk by searching for it directly.
3. Note which HCC it maps to.
4. Verify that the HCC actually applies to the patient population you are working with. Some HCCs only count for certain ages or certain plan types.
Get the Full Details

The document is usually available as a PDF from the CMS website. The filename changes slightly each year, but it typically contains "HHS-HCC" in the title along with the applicable year. For example, the 2023 version is publicly available through the CMS risk adjustment resources page. You can also find older versions archived there if you need to map historical data.
A Real Problem I Hit and How I Fixed It
Last year I was working on a cohort audit where patients had multiple ICD-9 codes from encounters that spanned several years. The issue was that some codes had moved between HCCs or dropped off the crosswalk entirely between model years. The crosswalk is backward compatible in some cases but not consistently. A code that mapped to HCC 14 in the 2020 model might have shifted or disappeared by 2023. I spent about three hours on this before realizing the crosswalk alone would not solve the problem because it does not tell you which model year version applies to which encounter date. The workaround was straightforward once I figured it out. I stopped using the crosswalk as the sole reference and added the annual HHS payment factor and model year documentation to the mix. Each model year has a companion document that lists which codes were added, removed, or reclassified. By matching the encounter date to the correct model year first, then consulting the crosswalk for that specific year, the discrepancies cleared up immediately. I started building a quick lookup table in Excel that mapped encounter dates to model years to the corresponding crosswalk version, and it cut the reconciliation time from hours down to minutes for routine batches.
Things the Crosswalk Will Not Tell You
One major gap that catches people off guard: the crosswalk does not indicate which HCCs are capitated versus which are excluded under certain payment rules. It also does not flag when a code requires a secondary code to support the HCC capture. For instance, some HCCs require the principal diagnosis to meet specific criteria or require documentation of severity. If you rely solely on the crosswalk without checking the full HHS risk adjustment specifications, you will over-capture in some areas and miss legitimate HCCs in others. Another issue is that the crosswalk assumes you are working with valid, billable ICD-9-CM codes. It does not filter out non-billable codes, unused codes, or codes that were discontinued. If you are pulling from an EHR export and some of those codes are flagged as inactive in your system, the crosswalk will still map them to an HCC. I have seen this happen repeatedly where coders were capturing HCCs from codes that had been deleted years earlier and should never have appeared on an active claim. The fix is to clean your code list against the current year's ICD-9-CM code set before running it through the crosswalk. That validation step alone prevents a significant portion of audit findings.

When the Crosswalk Breaks Down Completely
The most important limitation to understand is that the HHS ICD-9 HCC Crosswalk only covers ICD-9-CM. Once you transitioned to ICD-10-CM, which happened in the United States in October 2015, this document becomes irrelevant for any encounters after that date. The ICD-10 equivalent exists separately and the mapping logic is fundamentally different. ICD-10 codes map to HCCs through a completely different crosswalk with far more granularity and a much larger code pool. If your organization is still using the ICD-9 crosswalk for current-year work, you are working with outdated material. Additionally, the crosswalk does not account for disease modifiers or advanced complication states that some HCC models now recognize. There are specific HCCs that have sub-classifications based on severity, and the basic crosswalk will show you the parent HCC but not the severity tier. You need the full model specification documents for that level of detail. The crosswalk is a starting point, not the final authority. If you need the document, go to the CMS risk adjustment resource page and search for "HHS-HCC crosswalk" along with the model year you need. The file is free and does not require an account. Make sure you note which version you downloaded because the HCC numbering and code mappings change enough between years that using last year's file for this year's work will produce inaccurate risk scores.