How HCC Engine Works

Understanding CMS-HCC risk adjustment, hierarchies, RAF calculation, and our AI-powered clinical coding engine

💡 Overview

What is the HCC Engine?

HCC Engine is an AI-powered clinical coding assistant that automatically extracts Hierarchical Condition Categories (HCCs) from clinical documentation. It uses:

  • Clinical NLP - Natural Language Processing to identify diagnoses, symptoms, and medical conditions in free-text clinical notes
  • CMS-HCC V28 2025 Midyear Model - The latest official CMS mappings with 115 payment HCCs and 7,903 ICD-10 codes
  • Evidence-Based Decision Trees - YAML-based clinical rules for accurate code selection
  • AI Verification - Optional LLM-powered code verification for quality assurance
Key Benefit: Identify missed HCC opportunities and ensure accurate risk adjustment factor (RAF) capture while maintaining compliance.
How does the analysis pipeline work?

The HCC Engine processes clinical notes through multiple stages:

Clinical Note
NLP Extraction
ICD-10 Mapping
HCC Assignment
RAF Calculation
  1. Text Analysis: Clinical note is parsed for medical terminology, negation detection, and section identification (Assessment, HPI, etc.)
  2. Condition Extraction: Diagnoses are matched against our terminology database of 15,000+ clinical terms
  3. ICD-10 Mapping: Conditions are mapped to specific ICD-10 codes using decision tree logic
  4. HCC Assignment: ICD-10 codes are mapped to HCCs per CMS V28 specifications
  5. Hierarchy Application: CMS hierarchy rules are applied (higher severity trumps lower)
  6. RAF Calculation: Final RAF is computed including interaction bonuses

📋 HCC Basics

What is an HCC (Hierarchical Condition Category)?

An HCC is a grouping of related ICD-10 diagnosis codes that indicate similar levels of expected healthcare costs. CMS uses HCCs to:

  • Adjust capitated payments to Medicare Advantage plans
  • Account for the health status and expected costs of beneficiaries
  • Ensure plans caring for sicker patients receive appropriate payment

The CMS-HCC V28 model (2025 Midyear) includes 115 payment HCCs mapped from 7,903 ICD-10 codes organized into disease groups:

Disease GroupExample HCCs
HeartHCC 221-229 (Heart Failure, MI, etc.)
DiabetesHCC 35-38 (Pancreas Transplant to Uncomplicated)
NeoplasmsHCC 17-23 (Metastatic Cancer to Breast/Prostate)
RenalHCC 326-329 (CKD Stage 5 to Stage 3)
What does CMS-HCC V28 2025 Midyear mean?

CMS-HCC V28 is the current version of the CMS Hierarchical Condition Category model, phased in starting 2024:

  • V28: Version 28 of the HCC model, replacing V24
  • 2025 Midyear: The midyear update with finalized ICD-10 to HCC mappings effective for 2025
  • 115 HCCs: Reduced from V24's 86 HCCs, but reorganized for better clinical alignment
Phase-in Schedule:
2024: 33% V28 + 67% V24
2025: 67% V28 + 33% V24
2026+: 100% V28

📈 RAF Calculation

What is a Risk Adjustment Factor (RAF)?

The RAF (Risk Adjustment Factor) is a numerical score representing a patient's expected healthcare costs relative to an average Medicare beneficiary:

  • RAF = 1.0: Average expected cost
  • RAF > 1.0: Higher than average expected cost
  • RAF < 1.0: Lower than average expected cost

The RAF score directly impacts Medicare Advantage plan payments. A patient with RAF 1.5 generates 50% more payment than RAF 1.0.

How is Total RAF calculated?

Total RAF is calculated as:

Total RAF = Base RAF + Interaction Bonus + Count Bonus

1. Base RAF: Sum of individual HCC coefficients after hierarchy application

2. Interaction Bonus: Additional RAF when certain HCC combinations are present together (e.g., Diabetes + Heart Failure)

3. Count Bonus (D1-D10+): Bonus for having multiple HCCs:

HCC CountBonus (CNA Model)
1-4 HCCsNo bonus
5 HCCs (D5)+0.050
6 HCCs (D6)+0.082
7 HCCs (D7)+0.111
10+ HCCs (D10+)+0.179
How are interaction bonuses calculated?

CMS recognizes that certain disease combinations have synergistic cost impacts. The V28 model includes these interaction pairs:

  • Diabetes + CHF: HCC 37/38 + HCC 221-226
  • Diabetes + CKD: HCC 37/38 + HCC 326-329
  • CHF + CKD: HCC 221-226 + HCC 326-329
  • CHF + COPD: HCC 221-226 + HCC 280
  • Diabetes + CHF + CKD: Three-way interaction bonus

Each interaction adds a coefficient to the total RAF when both/all conditions are present.

🔗 HCC Hierarchies

What are HCC hierarchies and why do they matter?

Hierarchies are CMS rules that prevent double-counting related conditions. Within a hierarchy group, only the highest-severity HCC pays RAF.

Example - Heart Hierarchy:
If a patient has both HCC 226 (Heart Failure) and HCC 227 (Cardiomyopathy), only HCC 226 contributes to RAF because it "trumps" HCC 227 in the hierarchy.

Key hierarchy groups in V28:

GroupHierarchy (High → Low)
Heart221 > 222 > 223 > 224 > 225 > 226 > 227
Diabetes35 > 36 > 37 > 38
Liver62 > 63 > 64 > 65
Renal326 > 327 > 328 > 329
Cancer17 > 18 > 19 > 20 > 21 > 22 > 23
Does hierarchy affect the HCC count bonus?

Important distinction: CMS counts unique HCC numbers before hierarchy for the count bonus, but applies hierarchy for RAF calculation.

Example:
Patient has HCC 226 (Heart Failure) and HCC 227 (Cardiomyopathy)

For RAF: Only HCC 226 pays (0.360) - HCC 227 is zeroed by hierarchy
For Count: Both count as 2 unique HCCs toward the D5+ bonus

This is why the display shows "5 Unique HCCs" even when one is marked as ↓HIER - the count bonus uses pre-hierarchy unique HCC count as a proxy for disease burden.

Engine Features

What do the badges mean (NEW, DUP, HIER)?
BadgeMeaning
NEWThis HCC was newly identified and wasn't in the patient's existing diagnoses
↑DUPDuplicate - Same HCC from multiple ICD-10 codes (only one pays RAF)
↓HIERHierarchy trumped - A higher-severity HCC in the same group zeros this one's RAF
Verified - AI verification confirmed this code is appropriate
What is AI Verification?

AI Verification uses Large Language Models (Claude or GPT-4) to validate extracted codes against the clinical note. The AI:

  • Confirms the diagnosis is explicitly documented (not just mentioned)
  • Checks for negation or hypothetical language
  • Suggests more specific codes when available
  • Flags codes that need human review

Verification statuses:

  • Verified: Code is appropriate based on documentation
  • Rejected: Insufficient evidence or negated
  • Upgraded: A more specific code is suggested
  • Needs Review: Requires human judgment
How do decision trees work?

Each HCC family has a YAML-based decision tree that guides code selection:

  1. Prerequisites: Basic criteria that must be met (e.g., "diagnosis must be chronic")
  2. Steps: Sequential decision points (e.g., "does patient have complications?")
  3. Branches: Specific paths leading to final code selection
  4. Evidence: Required documentation elements (labs, medications, imaging)

Example for Diabetes (E11.x):

Type 2 DM?
Complications?
Which organ?
Specific code