RAF Score, Explained Like You're Building the Formula

If you've ever had to implement risk adjustment instead of just read about it, you know the textbook definition ("a relative measure of expected cost") doesn't help much. So let's build the RAF score the way you'd build any scoring function: inputs, transforms, output.
The inputs
A RAF (Risk Adjustment Factor) score for a Medicare Advantage member is assembled from two buckets:
A demographic component — age band, sex, Medicaid/dual status, and whether the member is institutional or community, new or continuing. This is a lookup, not a calculation.
A disease component — the member's chronic conditions, but not as raw ICD-10 codes. Each qualifying diagnosis is grouped into a Hierarchical Condition Category (HCC), and each HCC carries a coefficient.
The transform
Conceptually, the score is one running sum, built in this order:
Start with the demographic coefficient (the lookup from above).
Add, for each of the member's active HCCs — after hierarchies are applied — that HCC's coefficient.
Add the interaction terms (disease–disease and disease–demographic combinations).
The result is the RAF. That's the whole transform: a demographic base plus a sum of surviving-HCC weights plus interaction adjustments.
Two non-obvious parts trip people up:
Hierarchies: within a disease family, only the most severe HCC counts. A more specific or severe condition traps the less severe one, so you don't double-pay. Apply the trumping rules before you sum.
Interactions: certain HCC combinations (and some HCC × demographic pairs) add extra weight. They're additive terms, not multipliers.
The output is a number that usually lands somewhere around 1.0 for an "average" risk member and scales up from there. What a "good," average, or high RAF score actually means in context is the part most explainers skip — that's covered well in this guide on how a RAF score is calculated.
Why the model version matters
The coefficients aren't static. CMS ships model versions — the industry is mid-transition from V24 to V28 — and V28 reorganizes the HCC map and re-weights categories. Same member, same diagnoses, different RAF depending on which coefficient table you load. If you're building anything that computes RAF, version is a first-class input, not a footnote.
A quick sanity check
The fastest way to validate an implementation is to take one member, compute by hand through the pipeline above, and diff against a reference. If you don't want to maintain coefficient tables yourself, the RAF Score Calculator computes both model versions and is a reasonable oracle to test against.
Not coding, billing, or clinical advice. HCC/CMS specifications change by payment year — always confirm against the current CMS Rate Announcement.
Written by Chin Ramamoorthi — CEO, VBC Risk Analytics. He has 20+ years across provider- and payer-side healthcare IT, with hands-on experience architecting the systems that compute Medicare Advantage RAF and HCC scores.
Reviewed by the VBC Risk Analytics Risk Adjustment & Coding Team.
Last updated: June 2026
