HCC Risk Adjustment Coding for Primary Care
HCC coding affects how much your Medicare Advantage and ACO contracts pay, and most primary care practices leave significant money on the table by not documenting HCCs at every eligible encounter. This guide covers the most impactful HCC categories for primary care.
How HCC Coding Affects Your Revenue
Hierarchical Condition Categories (HCCs) are the mechanism by which CMS calculates Risk Adjustment Factor (RAF) scores for Medicare Advantage enrollees. The RAF score determines how much the MA plan is paid by CMS for each enrollee, higher RAF = higher plan payment = more resources for care and potentially higher payment to the physician under value-based arrangements.
For physicians in Medicare Advantage risk-sharing arrangements (capitation, shared savings, or global risk), accurate HCC coding directly affects the revenue available to the practice. A primary care physician with 200 Medicare Advantage patients whose average RAF score is 1.3 instead of the actual 1.7 loses approximately $600 to $800 per patient per year in capitation, $120,000 to $160,000 annually across the panel.
The CMS-HCC Model: How RAF Scores Are Calculated
CMS uses the CMS-HCC risk adjustment model (currently Version 28, with Version 24 phased out). The model maps ICD-10-CM diagnosis codes to HCC categories. Each HCC category carries a relative risk weight. The patient's RAF score = demographic adjustment (age/sex) + sum of HCC relative risk weights from diagnoses mapped to HCCs in the measurement year.
| HCC | Condition | Example ICD-10 Codes | Relative Risk Weight (approx.) |
|---|---|---|---|
| HCC 23 | Protein-calorie malnutrition | E43, E44.0, E44.1 | 1.395 |
| HCC 35 | Pancreatic disease (chronic pancreatitis) | K86.0, K86.1 | 0.438 |
| HCC 37 | Peritoneal adhesions/complications | K66.0 | 0.197 |
| HCC 39 | Bone/joint/muscle infections/necrosis | M86.9, M87.9 | 0.652 |
| HCC 55 | Drug/alcohol psychosis | F11.259, F19.959 | 0.329 |
| HCC 58 | Major depressive, bipolar, and paranoid disorders | F33.1, F33.2, F31.10, F20.9 | 0.309 |
| HCC 75 | Myasthenia gravis/myoneural disorders | G70.01 | 0.865 |
| HCC 85 | Congestive heart failure | I50.20, I50.21, I50.22, I50.23 | 0.327 to 0.975 (varies by severity) |
| HCC 88 | Angina pectoris/old MI | I20.9, I25.2 | 0.192 |
| HCC 108 | COPD | J44.0, J44.1 | 0.335 |
| HCC 111 | Asthma | J45.20, J45.30, J45.40, J45.50 | 0.088 to 0.332 (by severity) |
| HCC 19 | Diabetes with acute complications | E11.0, E11.1 | 0.320 |
| HCC 18 | Diabetes with chronic complications | E11.40, E11.51, E11.65 | 0.302 |
| HCC 17 | Diabetes without complication | E11.9 | 0.105 |
The Documentation Rule That Governs HCC Capture
CMS requires that conditions mapped to HCCs be documented, assessed, and actively managed in every claim year. The diagnosis must appear on a claim from a face-to-face encounter in the measurement year (January 1, December 31). It is not enough that the patient has a condition in their problem list, the condition must be addressed and documented in the encounter note for the year in which the HCC is to be counted.
Key documentation requirements:
- The diagnosis must appear as an active diagnosis in the encounter note (assessment/plan section)
- "History of" codes (Z86.x, Z87.x) do NOT map to HCCs, use the active disease code
- The note must document assessment AND management, even if management is "continue current regimen"
- The treating provider must sign the note
The Most Commonly Missed HCCs in Primary Care
1. Diabetes with Complications (HCC 18 vs HCC 17)
Many practices code all diabetic patients as E11.9 (type 2 diabetes, without complications). But if the patient has diabetic nephropathy, neuropathy, retinopathy, or peripheral vascular disease, the combination codes (E11.40, E11.65) apply and map to HCC 18 instead of HCC 17, a meaningfully higher risk weight. Review every diabetic patient's complication status annually and use the appropriate complication code.
2. Congestive Heart Failure Severity (HCC 85)
CHF maps to different HCC codes depending on systolic vs. diastolic and NYHA class. I50.20 (unspecified systolic CHF) has a lower risk weight than I50.23 (systolic CHF, NYHA Class IV). If the cardiologist's report documents a specific NYHA class or ejection fraction, code accordingly, do not default to "unspecified."
3. COPD (HCC 108)
Patients with COPD on long-term inhaler therapy are often documented simply with I10 (hypertension) on their problem list, with the COPD not addressed at every visit. If the patient is on a LABA, LAMA, or inhaled corticosteroid, the COPD should be documented with the appropriate J44 code at every encounter where it is actively managed.
4. Malnutrition (HCC 23)
Malnutrition in elderly patients is frequently underdiagnosed and undercoded. If an elderly patient has BMI <18.5, significant unintentional weight loss, or clinical signs of malnutrition, document E43 (unspecified severe protein-calorie malnutrition) or E44.0/E44.1 as appropriate. This is both a high-value HCC and a clinically significant finding warranting intervention.
5. Depression and Bipolar Disorder (HCC 58)
Many primary care practices use F32.9 (major depressive disorder, single episode, unspecified) for all depressed patients. F33.1 (MDD, recurrent, moderate) or F33.2 (MDD, recurrent, severe) have the same HCC mapping but are more clinically accurate. Document the severity based on PHQ-9 scores and clinical assessment.
Annual HCC Recapture Strategy
Because HCCs must be captured each measurement year, an annual chart audit and proactive scheduling strategy is essential:
- October, November of each year: Run a panel report of all Medicare Advantage patients with HCC-mapped diagnoses from the prior year. Identify which have not been seen in the current year and outreach to schedule before December 31.
- Annual Wellness Visit (AWV): The AWV (G0438 initial, G0439 subsequent) is covered annually by Medicare with no patient cost share and generates a face-to-face claim that can carry HCC diagnoses. Use AWV as your primary HCC capture vehicle for patients who otherwise make few visits.
- Problem list reconciliation: At every AWV, review the entire problem list and document each active condition in the assessment/plan with the appropriate specificity code.
- Post-visit coding review: After each encounter with a Medicare Advantage patient, verify that all active HCC-mapped conditions were documented in the note and will appear on the claim.
What Counts as an HCC, and What Doesn't
Before the recapture strategy, it's worth being precise about what maps to a risk-adjusted category, because a lot of primary care effort goes into documenting things that feel like they should count and don't.
Risk adjustment pays for conditions that predict cost. It does not pay for observations. A body mass index in the obese range is an observation. A blood pressure reading is an observation. Neither of those, on its own, is a hierarchical condition category, and coding a BMI Z-code more carefully will not move a risk score.
What does count is the diagnosed, documented condition underneath, when one exists and you've assessed it. Morbid obesity with a documented comorbidity is a different claim from a BMI value. Hypertensive heart disease or hypertensive chronic kidney disease is a different claim from an elevated reading. Diabetes with a stated complication is a different claim from diabetes.
The practical version: the vital sign is the prompt, not the answer. It tells you where to look in the chart. The code has to come from the assessment you actually made and wrote down.
| What you see in the chart | Risk adjusted on its own | What to look for in the assessment |
|---|---|---|
| Body mass index in the obese range | No | Morbid obesity with a documented comorbidity, where that is genuinely the case |
| An elevated blood pressure reading | No | Hypertensive heart disease or hypertensive chronic kidney disease, if diagnosed and assessed |
| A diabetes diagnosis on the problem list | Only at the level documented | The specific complication, stated, if one is present and you addressed it |
| An abnormal lab result | No | The condition the result reflects, assessed at a face to face encounter |
| A medication that implies a condition | No | The condition itself, monitored or evaluated in the note rather than inferred from the prescription |
The right hand column is the work. The left hand column is only ever the prompt, and a workflow that codes from the left hand column is the one that fails an audit.
One more precision point. The CMS model is versioned, and the version in force changes both the category numbers and the coefficients attached to them. Any specific HCC number you read in an article, including the ones further down this page, is only meaningful alongside the model version it came from. Check the version your contract is scored under before you build a workflow on a number.
The Annual Clock Is the Whole Game
The mechanic that catches practices out is that risk scores reset. A condition documented in one calendar year does not carry into the next one by itself. It has to be assessed and documented again, in a face-to-face encounter, every year.
That means a patient with three chronic conditions who came in twice last year and once this January can arrive in November with two of those conditions never having been touched in the current year. Nothing has changed clinically. The record simply does not say so yet.
This is why recapture is a scheduling and workflow problem more than a coding one. The coding is usually the easy part once someone is in the room. Getting them in the room, and knowing which conditions are outstanding when they arrive, is the work.
The Documentation Standard Auditors Apply
Most auditors work from some version of MEAT: is the condition Monitored, Evaluated, Assessed or Treated in the note. A diagnosis carried forward in a problem list, with nothing in the note showing you did anything about it, is the single most common finding in a risk adjustment audit.
What that looks like in practice is short. One line per condition, in the assessment, saying what you found and what you're doing. "Type 2 diabetes with diabetic neuropathy, A1c 8.1, increasing metformin, foot exam performed" carries all four elements in a sentence. Copying the problem list into the assessment carries none of them.
The other half of the standard is that the condition must be assessed at a face-to-face encounter by an eligible provider. A phone call to adjust a medication may be excellent care and still not support the code.
The Chart Signals Worth Building a Habit Around
Recapture works when the chart puts the outstanding conditions in front of you before the visit rather than after the claim.
Read that screen the way this article argues you should. Neither flag is a hierarchical condition category, and neither one earns anything by itself. What they do is tell you, before the visit starts, that there are two clinical threads here that probably have documentable conditions behind them and may not have been assessed this year.
The staleness indicator matters for the same reason. Vitals recorded 26 days ago are a prompt to take fresh ones, and fresh vitals at a face-to-face encounter are part of what makes the assessment supportable in the first place.
The critical result indicator is the safety half of the same design. Risk adjustment work has an unfortunate tendency to pull attention toward whatever pays, and a chart that surfaces an abnormal result independently of coding is a useful counterweight.
The Risk That Runs the Other Way
Almost every article on this subject is about money left on the table. The exposure in the other direction is real and it's worth naming.
Risk adjustment data validation audits look for codes the documentation does not support, and the remedy is recoupment with interest. Practices get there by ordinary means rather than fraud: a problem list copied forward, a template that asserts an assessment nobody performed, a diagnosis added at a visit where it wasn't addressed.
The uncomfortable part is that the workflows which maximise capture and the workflows which create audit exposure look similar from the outside. Both put more diagnoses in more notes. The thing that separates them is whether the assessment is real and written, which is why the MEAT standard is worth treating as a clinical habit rather than a billing rule.
A reasonable internal check: pull five charts a month at random and read only the assessment. If you can tell what was done about each coded condition without opening anything else, the documentation will hold. If you can't, adding more codes makes the problem larger rather than smaller.
A Recapture Workflow That Fits a Real Schedule
- Run the outstanding list in January, not October. The conditions that need reassessment are knowable on day one of the year. A list produced in the fourth quarter turns into a scramble, and into a lot of visits that exist for coding reasons, which patients notice.
- Attach the outstanding conditions to the visit, not to a report. If the physician has to open a separate worklist to know what's outstanding, it will happen on good days and not on busy ones.
- Use the visits you already have. The annual wellness visit, the medication check, the follow-up someone booked anyway. Recapture inside an encounter that had its own reason to exist is both cheaper and more defensible than an encounter created for the purpose.
- Write the assessment during the visit. Reconstructing a month later produces exactly the thin documentation an auditor looks for, and it's the part ambient documentation genuinely helps with, since the assessment gets drafted from what you actually said in the room.
- Close the loop on the ones you decided against. If a carried-forward diagnosis is no longer accurate, resolving it in the problem list is real work that protects you later.
Practices running membership models have a different version of this problem rather than no version of it. If your Medicare Advantage or ACO exposure sits alongside a membership panel, the recapture list still exists, and the longer visit is an advantage for doing the assessment properly rather than an excuse to skip the documentation.
Since the binding constraint is usually writing the assessment while you're still in the room, that's the piece worth testing before you redesign anything else. Try a sample note built from a synthetic session transcript and see whether the assessment lands close enough to sign.
HCC Coding and Your EMR
Krasyn's billing review surface highlights HCC-mapped diagnoses in the patient chart, flags conditions from the prior year that have not yet appeared on a claim in the current year, and suggests appropriate ICD-10 specificity upgrades (e.g., E11.9 → E11.40 when diabetic neuropathy is documented). See the HCC capture workflow.
Krasyn: Built for Independent Physicians
AI ambient documentation, real-time billing review, and clinical coding support, all in one platform.