Explainers · Risk Adjustment Model Update

The V24 to V28 transition, end to end.

CMS retired the CMS-HCC V24 risk model and replaced it with V28 over a three-year phase-in that completed in payment year 2026. This report covers both sides of the shift: what it means for revenue, and what changed inside the model itself.

86 → 115 payment HCCs · new non-interchangeable numbering · 100% V28 from PY2026
86115
Payment HCC categories
0.166
All V28 diabetes HCCs, one weight
3
Payment years to phase in
100%
V28 from PY2026
Part 1 — For plan leadership

The business picture

The phase-in smoothed the money over three years. It did not soften the structural change underneath — and that change decides which diagnoses still count.

Executive summary

What actually happened.

V28 is not a routine annual update — it is a structural rebuild of how Medicare Advantage risk scores are calculated. CMS expanded the model from 86 to 115 payment HCC categories, renumbered every category onto a new, non-interchangeable scheme, and removed a large share of diagnosis codes from risk adjustment entirely.

To avoid a payment shock, CMS blended the two models across three payment years. In PY2024 two-thirds of the score still came from V24; by PY2026 the blend reached 100% V28. That gradual schedule is why the change felt manageable in 2024 and decisive in 2026 — but the coding rules changed immediately. A plan still coding to V24 habits collects less each year.

The practical takeaway: documentation depth within a single disease family matters less than breadth across families. Conditions that anchored RAF under V24 may carry no weight under V28, while newly weighted conditions have become essential to capture.

The three-year phase-in

How the blend moved, by payment year.

Each payment year, CMS calculated risk scores as a fixed weighted blend of both models.

Payment Year
2024
Blended
67%
33%
V24 · 67%V28 · 33%

V24 still carries the majority. Legacy-style coding still collects most of the expected score.

Payment Year
2025
Blended
33%
67%
V24 · 33%V28 · 67%

The tipping point. V28 dominates, and un-adapted coding shows material RAF impact.

Payment Year
2026
100% V28
100%
V28 · 100%

V24 is out of the calculation entirely. Every HCC scores on V28 mappings and coefficients.

What changed in the mapping

Same conditions, different numbers — and different weights.

Because V28 renumbered categories onto a new scheme, a V24 HCC number rarely points to the same thing in V28. The coefficients behind them were rebuilt too.

86 → 115
payment HCC categories

V28 adds nearly 30 categories and renumbers almost all of them. A crosswalk between versions has to be built on clinical concept, not category number.

9 models
recalibrated coefficient sets

Every community, institutional, and new-enrollee model carries its own rebuilt weights. The demographic and scoring logic is unchanged; the values are not.

Community non-dual aged HCC weights: 0.069–2.659 (V24)0.127–9.256 (V28)
Constraining in action

Severity within a family stopped paying more.

V28's most consequential mechanic is constraining: related HCCs in the same disease family are assigned the same coefficient, regardless of severity. Diabetes is the textbook case.

V24 diabetes

Severity was rewarded
  • HCC17 — with acute complications  ·  0.302
  • HCC18 — with chronic complications  ·  0.302
  • HCC19 — without complication  ·  0.105

V28 diabetes

Constrained to one weight
  • HCC36 — severe acute complications  ·  0.166
  • HCC37 — chronic complications  ·  0.166
  • HCC38 — glycemic / unspecified / none  ·  0.166

Under V28, every diabetes category carries the same 0.166 coefficient (community, non-dual aged) — slightly above V24's uncomplicated weight, well below its complicated one. Documenting more severe diabetes no longer raises the score. The same pattern repeats across constrained families, shifting value from depth of severity toward breadth of documented conditions.

Model vs. model

V24 and V28 at a glance.

CMS-HCC V24

Legacy · retired PY2026
  • 86 payment HCCs on compact legacy numbering
  • Broader categories, fewer severity tiers
  • ICD-9-crosswalk calibration foundation
  • Rewarded depth — severity within a disease family

CMS-HCC V28

Current · 100% from PY2026
  • 115 payment HCCs on new, non-interchangeable numbering
  • Finer severity tiers across many families
  • Natively calibrated on recent ICD-10-CM data
  • Rewards breadth — documented conditions across families
Part 2 — For coders & RA analysts

Inside the model

Everything above is driven by concrete changes in the CMS grouper software: the HCC set, the hierarchies, and the ICD edits that decide whether a code even becomes a condition category.

What changed in the software

Four structural changes drive everything.

The demographic and scoring macros are unchanged between versions. The differences live entirely in the HCC set, numbering, hierarchies, and ICD edits.

01 · HCC set

86 → 115 payment HCCs

The list of payment categories grew and was renumbered onto a sparse scheme (HCC1–HCC463). The same condition almost always carries a different number across versions.

/* V24 */ HCCV24_list86 = 86 HCCs
/* V28 */ HCCV28_list115 = 115 HCCs
02 · Granularity

Broad categories split into tiers

V28 subdivides several V24 groups. Diabetes goes from 3 levels to 4; heart failure becomes a six-tier severity ladder; substance use separates drug from alcohol with psychotic-complication tiers.

V24 CHF: HCC85 = 0.331
V28 ladder: HCC222 2.505 → HCC227 0.189
03 · Hierarchies

Longer, cross-domain chains

The hierarchy macro was rewritten from fixed calls to a variable-length loop. V28 chains are longer, and some cross clinical domains — e.g. liver and injury categories both suppress the Coma category (CC202).

V28 Neoplasm 1: zero 18,19,20,21,22,23
V28 Heart 1: zero 222–227
04 · ICD edits

Same code, different result

The ICD age/sex edit macro differs between versions. A given diagnosis plus demographics can produce a different condition category — or none — depending on the model.

D66/D67, female → V24: CC48 · V28: CC112
C50* breast, age<50 → V28-only: CC22
Edit-level differences

Where the two graders diverge on the same code.

These edits are easy to overlook because they aren't in the code lists — they live in the grouper logic. The same ICD-10 code can land in a different HCC, or drop out entirely.

ICD-10 & conditionV24 resultV28 resultEffect
D66 / D67 — hereditary factor deficiency, female CC48 Coagulation defects CC112 Coagulation / hemorrhagic Remapped to renumbered category
Pediatric COPD/asthma J-codes, age < 18 CC112 Lung disorder −1.0 Invalid (dropped) No longer risk-adjusted in children
Breast cancer C50*, age < 50 — no age edit CC22 forced V28-only age-based reassignment
Perinatal P-codes, age ≥ 2 — no edit −1.0 Invalid V28 invalidates in older patients

Coefficient values were rebuilt wholesale between versions. In the community non-dual aged model, HCC weights range from 0.069 to 2.659 under V24 and from 0.127 to 9.256 under V28 — a wider spread driven by high-cost categories like lysosomal storage disorders and hemophilia. Constraining pulls severity tiers together within families, so the score now rewards breadth of documented conditions over depth.

What to do about it

Coding entirely on V28 now? Prove your capture reflects it.

The blend is over. Every dropped code and remapped HCC is now a direct line to revenue — or a silent gap. Health Data Max validates against current V28 logic end to end.

01

Re-map against V28

Every submitted diagnosis checked against current V28 mappings, hierarchies, and edits — not V24 habits.

02

Catch the dropped codes

Flag conditions that risk-adjusted under V24 but no longer count, so capture strategy shifts to what pays.

03

Model the RAF impact

Quantify the score change across your population before it shows up as a payment surprise.

See your V24 → V28 exposure.

We'll run your population against V28 logic and show exactly where the transition helps, hurts, and leaves risk-eligible diagnoses on the table.

Request a Consultation