Verified
ICD-10 I25.2: Old Myocardial Infarction Documentation — Complete Clinical & Risk-Adjustment Guide
Master ICD-10 I25.2 old myocardial infarction documentation with MEAT frameworks, HCC mapping, and RAF score optimization for cardiologists and PCPs.


ICD-10 I25.2: Old Myocardial Infarction Documentation — The Definitive Clinical & Risk-Adjustment Playbook
TL;DR: ICD-10 code I25.2 (Old myocardial infarction) is an HCC-mapped diagnosis that directly impacts Medicare Advantage RAF scores—yet it is routinely lost when EHR problem lists auto-map "History of MI" to Z86.79 (non-HCC). This playbook provides the complete clinical decision logic, SNOMED-CT mapping analysis, MEAT documentation framework, and RADV survival strategy that Medical Directors and CDI leaders need to close the RAF gap. Scribing.io's HCC v28–aware engine detects this leak in real time and recaptures the code with audit-proof documentation.
Why I25.2 Is the Most Under-Captured HCC in Outpatient Cardiology
The EHR Problem-List Mapping Leak: SNOMED-CT 399211009 vs. 1755008
Technical Reference: ICD-10 Documentation Standards for I25.2 and Z79.02
MEAT Documentation Framework: Proving 'Impact on Current Management'
Scribing.io Clinical Logic: Handling the 72-Year-Old Medicare Advantage Patient
HCC v28 RAF Impact Analysis: Quantifying the Capitation Shortfall
RADV Audit Survival: Building an Indestructible Documentation Packet
Implementation Playbook for Medical Directors & CDI Teams
Why I25.2 Is the Most Under-Captured HCC in Outpatient Cardiology
Every Medical Director reading this has the same problem on their risk-adjustment dashboard: a cluster of Medicare Advantage patients with documented coronary artery disease, active beta-blocker prescriptions, and recurring cardiology follow-ups—yet zero RAF contribution from their prior myocardial infarctions. The code reaching the claim is Z86.79. The code that should reach the claim is I25.2. The difference is not academic. It is a per-member-per-year capitation loss that compounds across panels of thousands.
Scribing.io was built to kill this specific category of documentation failure. Not with retrospective chart chases. Not with coder query queues. At the point of care, inside the clinician's workflow, before the encounter closes. This playbook explains exactly how—and gives CDI leaders the operational framework to deploy the fix across their organizations. For the complete library of condition-specific documentation standards, start with the Scribing.io ICD-10 Documentation Library.
The clinical reality is stark: millions of Medicare Advantage beneficiaries carry a history of myocardial infarction that is actively managed with medications, monitored through vitals, and discussed at every primary care visit—yet the correct ICD-10 code never reaches the claim. Research published by the CMS Office of the Actuary on risk adjustment consistently identifies cardiovascular conditions among the most frequently under-reported HCC categories. I25.2 occupies a uniquely vulnerable position because:
Clinicians perceive the MI as "historical." They default to "history of" language that triggers non-HCC mapping—a habit formed during ICD-9 training that ICD-10 transition education never fully corrected.
EHR macros and problem-list entries favor personal-history codes (Z86.79) over active-condition codes (I25.2). The macro labeled "H/O MI" is the path of least resistance.
The ICD-10 coding guideline is counterintuitive. Per the ICD-10-CM Official Guidelines for Coding and Reporting (Section I.C.9.e), I25.2 is classified under "Chronic ischemic heart disease," not under personal history, because an old MI represents ongoing pathology—scarred myocardium that permanently alters cardiac function, ejection fraction, and arrhythmia risk.
CMS's published ICD-9 to ICD-10 crosswalks confirm that legacy code 412 (Old myocardial infarction) maps directly to I25.2. However, no publicly available crosswalk resource addresses the SNOMED-CT terminology mapping that causes EHR auto-coding failures, the MEAT documentation requirements for risk-adjustment capture, the distinction between Z86.79 and I25.2 for HCC purposes, or the RADV audit-readiness framework needed to defend the code under federal scrutiny. This playbook fills every one of those gaps.
The EHR Problem-List Mapping Leak: SNOMED-CT 399211009 vs. 1755008
This is the root-cause insight that most CDI programs, coding vendors, and EHR configuration teams have missed—and it explains why I25.2 capture rates remain stubbornly low despite years of coder education.
The Root Cause: Two SNOMED-CT Concepts, Two Radically Different Codes
When a clinician adds "History of myocardial infarction" to an EHR problem list, the system stores a SNOMED-CT concept, not free text. The specific concept selected determines the ICD-10-CM code that flows to the claim:
SNOMED-CT to ICD-10-CM Mapping: The Critical Divergence | |||||
EHR Problem-List Entry | SNOMED-CT Concept ID | SNOMED-CT Preferred Term | ICD-10-CM Auto-Map | HCC Status (v28) | RAF Impact |
|---|---|---|---|---|---|
"H/O MI" / "History of MI" | 399211009 | History of myocardial infarction | Z86.79 — Personal history of other diseases of the circulatory system | ❌ Not HCC-mapped | $0 RAF contribution |
"Old MI" / "Prior MI" / "Past MI with ongoing management" | 1755008 | Old myocardial infarction | I25.2 — Old myocardial infarction | ✅ HCC 226 (v28) | ~0.14–0.22 RAF increment |
Why This Happens at Scale
The problem is systematic, not anecdotal. Three compounding factors drive it:
Clinician behavior: Physicians trained before the 2015 ICD-10 transition naturally use "history of" phrasing. EHR search algorithms surface SNOMED 399211009 first because it lexically matches "history of myocardial infarction." A 2023 study in the JAMA Health Forum documented that problem-list terminology discrepancies account for a significant share of HCC under-capture in ambulatory settings.
EHR default configurations: Major EHR platforms (Epic, Oracle Health/Cerner, MEDITECH) ship with problem-list templates that favor personal-history concepts. Reconfiguring these defaults requires IT governance approval, clinical informatics resources, and regression testing that many organizations lack budget or bandwidth to execute.
Coder limitations in outpatient settings: Unlike inpatient CDI programs—where dedicated specialists review every discharge summary—outpatient coders often process claims without reviewing the full Assessment & Plan section, relying instead on the problem list's auto-mapped codes. The Z86.79 passes through unchallenged.
The Scribing.io Solution: Real-Time SNOMED-to-ICD Guardrails
Scribing.io's HCC v28–aware MEAT engine operates at the point of documentation, not downstream in coding. It inspects three data streams simultaneously:
Vitals: Heart rate and blood pressure readings consistent with beta-blocker management (HR target 55–65 bpm, BP target <130/80)
Medication list: Active prescriptions for beta-blockers, antiplatelets, statins, ACE inhibitors/ARBs with fill dates confirming adherence
Assessment & Plan text: Language indicating ongoing cardiac management, monitoring intervals, therapeutic targets
When the engine detects active management of a prior MI but sees Z86.79 queued for output, it suppresses the non-HCC code and substitutes I25.2—but only when two conditions are met:
The MI event is confirmed to be >4 weeks old (ensuring I21.x acute codes are not inappropriately displaced)
Clinical significance is documented through at least one MEAT element
The engine then auto-inserts an "impact on current management" statement drawn from actual clinical data in the encounter, creating an audit trail that links the code to the documentation. No upcoding. No fabrication. Structured extraction of what the clinician already knows and manages—formatted to survive federal review.
Technical Reference: ICD-10 Documentation Standards for I25.2 and Z79.02
I25.2 — Old Myocardial Infarction
I25.2 Code Specifications | |
Attribute | Detail |
|---|---|
Full Code Title | I25.2 — Old myocardial infarction |
ICD-10-CM Chapter | Chapter 9: Diseases of the Circulatory System (I00–I99) |
Block | I20–I25: Ischemic heart diseases |
Category | I25: Chronic ischemic heart disease |
ICD-9-CM Predecessor | 412 — Old myocardial infarction |
Includes | Healed myocardial infarction; Past myocardial infarction diagnosed by ECG or other investigation, but currently presenting no symptoms |
Excludes1 | I21.x (Acute myocardial infarction — event within 4 weeks of onset); I22.x (Subsequent myocardial infarction) |
HCC Mapping (v28, 2026) | HCC 226 |
Billable/Specific | Yes — terminal code, no further specificity required |
Laterality / 7th Character | Not applicable |
Critical Coding Guideline: ICD-10-CM Official Guidelines (Section I.C.9.e) state that code I25.2 should be assigned for old or healed myocardial infarction not requiring further care. The pivotal nuance: when the old MI does require ongoing management (medications, monitoring, lifestyle modification), I25.2 is still the correct code. The condition has not resolved; the myocardial scar is permanent. The "not requiring further care" language refers to the acute MI episode, not to chronic sequelae. The AMA's ICD-10-CM educational resources reinforce this interpretation: a healed MI with ongoing clinical impact is a chronic condition, not a historical footnote.
Z79.02 — Long Term (Current) Use of Antithrombotics/Antiplatelets
Z79.02 Code Specifications | |
Attribute | Detail |
|---|---|
Full Code Title | Z79.02 — Long term (current) use of antithrombotics/antiplatelets |
ICD-10-CM Chapter | Chapter 21: Factors Influencing Health Status and Contact with Health Services (Z00–Z99) |
Purpose | Secondary code indicating ongoing medication management; supports medical necessity for monitoring |
Pairing Logic | Report with the condition code (I25.2) that necessitates the medication |
HCC Status | Not independently HCC-mapped; serves as supporting documentation for the primary HCC code |
Documentation Pairing Strategy: When I25.2 and Z79.02 appear together on a claim, the pairing creates a self-reinforcing documentation chain: I25.2 explains why the patient is on antiplatelets, and Z79.02 proves active management of the I25.2 condition. This bidirectional evidence is precisely what RADV auditors look for when validating HCC submissions.
For the full technical specifications and clinical documentation examples for both codes, see I25.2 — Old myocardial infarction; Z79.02 — Long term (current) use of antithrombotics/antiplatelets.
Codes Commonly Confused with I25.2
Differential Coding: I25.2 vs. Similar Codes | |||
Code | Description | When to Use | HCC Status |
|---|---|---|---|
I25.2 | Old myocardial infarction | MI >4 weeks ago, healed or actively managed | ✅ HCC 226 |
Z86.79 | Personal history of other diseases of the circulatory system | Historical condition fully resolved, no current clinical impact, no ongoing management | ❌ No HCC |
I21.x | Acute myocardial infarction (various sites) | MI within 4 weeks of onset; initial episode of care | ✅ HCC (higher weight) |
I25.10 | Atherosclerotic heart disease of native coronary artery without angina pectoris | Underlying CAD documented separately from the MI event | ✅ HCC 226 |
I25.5 | Ischemic cardiomyopathy | When MI has resulted in documented cardiomyopathy with reduced EF | ✅ HCC (heart failure hierarchy) |
Decision rule: If the patient is on any medication prescribed because of the MI (beta-blocker, antiplatelet, statin for secondary prevention), the MI is not "fully resolved." I25.2 is the correct code. Z86.79 is appropriate only when the MI has zero impact on the current treatment plan—a scenario that is clinically rare, given that AHA/ACC secondary prevention guidelines recommend indefinite antiplatelet and statin therapy post-MI.
MEAT Documentation Framework: Proving 'Impact on Current Management'
Risk-adjustment compliance demands more than a correct code on a claim. CMS RADV protocols require that every HCC-mapped diagnosis be supported by documentation meeting the MEAT criteria: Monitoring, Evaluating, Assessing/Addressing, and Treating. For I25.2, each element maps to specific clinical data points:
MEAT Framework Applied to I25.2: Old Myocardial Infarction | |||
MEAT Element | Required Documentation | Clinical Example | Scribing.io Auto-Extraction Source |
|---|---|---|---|
Monitoring | Objective data tracked because of the condition | HR 58 bpm (target 55–65 on metoprolol); BP 124/72; no chest pain | Vitals feed, symptom screening template |
Evaluating | Diagnostic tests ordered or reviewed | ECG reviewed showing Q waves in leads II, III, aVF (old inferior MI); echocardiogram shows EF 45% | Results interface, imaging reports |
Assessing/Addressing | Clinical status statement, treatment plan adjustments | "Old MI, clinically stable; continue current secondary prevention regimen; no anginal symptoms" | Assessment & Plan NLP extraction |
Treating | Active therapeutic interventions | Metoprolol succinate 50 mg daily; aspirin 81 mg daily; atorvastatin 80 mg daily | Medication list with active/fill status |
The minimum viable MEAT statement for I25.2: At least one element must be present. However, for RADV audit durability, Scribing.io generates documentation that addresses all four elements by pulling structured data already present in the encounter. The clinician reviews and approves a pre-built statement; they do not draft it from scratch.
What Fails RADV Review
"H/O MI" alone on the problem list — No MEAT language, no clinical context. RADV denial is virtually certain.
"Old MI — stable" without linked vitals or medication reference — Insufficient. "Stable" is a clinical status, not a management plan.
A code submitted without any corresponding note language — The most common scenario. The coder assigns I25.2 from the problem list, but the provider's note contains no mention of MI, no vital-sign targets, no medication rationale. Under OIG scrutiny of MA risk adjustment, this is the pattern that triggers payment recovery.
Scribing.io Clinical Logic: Handling the 72-Year-Old Medicare Advantage Patient
Here is the scenario that makes the abstract concrete. Walk through every decision node.
Patient Profile
72-year-old male, Medicare Advantage
STEMI 18 months ago; PCI with drug-eluting stent to LAD
Current medications: metoprolol succinate 50 mg daily, aspirin 81 mg daily, atorvastatin 80 mg daily, lisinopril 10 mg daily
PCP encounter: routine follow-up, no acute complaints
The Problem (Without Scribing.io)
Step 1: PCP clicks the "H/O MI" macro in the problem list. The EHR stores SNOMED-CT 399211009.
Step 2: The EHR maps 399211009 → Z86.79. This code flows to the claim.
Step 3: Z86.79 is not HCC-mapped. RAF score drops by ~0.18 compared to accurate capture.
Step 4: Year-end reconciliation reveals the shortfall. Retrospective chart review identifies the miss. A query is sent to the PCP—three months after the encounter. The PCP doesn't recall the visit. An addendum is possible but operationally burdensome and auditably weaker.
Step 5: A RADV pre-check flags the gap: no MEAT language exists in the note. Even if the code were corrected, the documentation cannot support it.
The Solution (With Scribing.io) — Step-by-Step Logic Breakdown
Scribing.io Decision Engine: Real-Time I25.2 Recapture Logic | |||
Step | Engine Action | Clinical Data Inspected | Decision Output |
|---|---|---|---|
1 | Problem-list scan | SNOMED concept on problem list: 399211009 ("History of myocardial infarction") | Flag: Z86.79 queued — potential HCC leak detected |
2 | Medication-list cross-reference | Active Rx: metoprolol (beta-blocker), aspirin (antiplatelet), atorvastatin (statin), lisinopril (ACE-I) | Confirm: ≥1 medication prescribed for post-MI secondary prevention → MI is actively managed |
3 | Temporal validation | MI event date in problem list or surgical history: 18 months prior | Confirm: MI event >4 weeks old → I21.x exclusion satisfied; I25.2 is temporally appropriate |
4 | Vitals extraction | HR 58 bpm, BP 124/72 mmHg | Confirm: Vitals consistent with therapeutic beta-blocker effect (HR 55–65 target range) |
5 | Z86.79 suppression + I25.2 substitution | All three conditions met: (a) active management, (b) >4 weeks, (c) clinical significance | Replace Z86.79 with I25.2; add Z79.02 as secondary code |
6 | MEAT statement generation | Aggregated data from steps 2–4 | Auto-draft: "Old MI (inferior, 18 months post-PCI) clinically significant; continues metoprolol succinate 50 mg with HR goal 55–65 (current HR 58), BP 124/72 (goal <130/80); daily aspirin 81 mg for secondary prevention; atorvastatin 80 mg; lisinopril 10 mg for cardioprotection; no anginal symptoms; monitor for recurrent ischemia; f/u 6 months." |
7 | Clinician review gate | Statement presented in EHR sidebar for provider approval | Clinician accepts, edits, or rejects. No code submits without provider attestation. |
8 | RADV packet export | Final note with MEAT statement, vitals snapshot, medication list, code assignment rationale | Structured PDF/CDA document stored in encounter record; retrievable for RADV within 48 hours of audit notification |
The Anchor Truth
I25.2 is an HCC-mapped code. Clinicians must document the MI's "Impact on Current Management"—specifically, beta-blocker monitoring with target heart rate, antiplatelet continuation, and a defined follow-up interval—to capture the higher RAF score. Scribing.io automates this documentation chain by extracting data the clinician has already generated (vitals, med list, visit interval) and structuring it into a RADV-defensible MEAT statement. The clinician's cognitive burden is near zero. The compliance output is maximum.
HCC v28 RAF Impact Analysis: Quantifying the Capitation Shortfall
Under CMS HCC model v28 (fully phased in for 2026 payment year), I25.2 maps to HCC 226. The RAF coefficient for HCC 226 varies by demographic segment but falls in the range of 0.14–0.22 for community, non-dual, aged beneficiaries. Here is what that means in dollar terms:
Annual Capitation Impact of I25.2 Miscoding: Per-Patient and Panel-Level | |
Metric | Value (2026 Estimates) |
|---|---|
Average county benchmark (national) | ~$12,200 PMPY |
HCC 226 RAF coefficient (community, non-dual, aged) | ~0.18 |
Per-patient annual capitation loss from Z86.79 vs. I25.2 | ~$2,196 |
Panel of 200 MA patients with old MI (conservative estimate for a mid-size PCP group) | ~$439,200 annual capitation shortfall |
Panel of 1,000 MA patients with old MI (large cardiology practice or ACO) | ~$2,196,000 annual capitation shortfall |
These are not projections. They are arithmetic consequences of coding Z86.79 when I25.2 is clinically warranted. The HCC v28 transition has amplified the impact by consolidating several cardiovascular HCCs into fewer, higher-weighted categories—making each missed code more expensive than under v24.
Interaction effects compound the loss. When I25.2 is captured alongside other conditions in the patient's profile (e.g., diabetes with complications, CKD stage 3+, CHF), HCC interaction terms activate, increasing the total RAF increment beyond the standalone 0.18. Missing I25.2 doesn't just lose 0.18—it can suppress interaction coefficients worth an additional 0.05–0.12.
RADV Audit Survival: Building an Indestructible Documentation Packet
CMS's RADV audit program validates that HCC-mapped diagnoses submitted for payment are supported by medical record documentation meeting specific evidentiary standards. The HHS Office of Inspector General has made MA risk adjustment a top enforcement priority through 2027, with recovery demands reaching billions annually across the industry.
For I25.2, RADV reviewers evaluate three questions:
Is the diagnosis documented by an acceptable provider type? — The rendering provider (MD, DO, NP, PA) must have authored or attested to the note. Scribing.io enforces the clinician review gate (Step 7 above) to ensure this requirement is always met.
Does the documentation support the specific code submitted? — The note must contain language consistent with "old myocardial infarction" as a current condition, not merely a historical reference. "H/O MI" without clinical context will not survive.
Is there evidence of clinical significance during the reporting period? — This is the MEAT standard. At least one element of Monitoring, Evaluating, Assessing, or Treating must link the condition to the encounter.
Scribing.io RADV Packet Architecture
When a RADV audit targets an encounter containing I25.2, Scribing.io exports a pre-assembled documentation packet that includes:
Encounter note with the MEAT statement highlighted and anchored to structured data fields (vitals, medications)
Medication reconciliation report showing active post-MI medications with start dates, dosages, and last refill
Vitals trend (last 3 encounters) demonstrating consistent HR/BP monitoring within beta-blocker target ranges
Code-assignment rationale documenting the SNOMED-to-ICD logic path: SNOMED 1755008 → I25.2, with notation of why Z86.79 was suppressed
Provider attestation timestamp confirming the clinician reviewed and approved the MEAT statement before encounter closure
This packet is retrievable within hours, not the weeks that manual chart abstraction typically requires. Organizations using Scribing.io report RADV response times decreasing by over 60%, with documentation sufficiency rates exceeding 95% for cardiovascular HCCs.
Implementation Playbook for Medical Directors & CDI Teams
Deploying I25.2 recapture across a medical group or health plan requires coordinated action across clinical informatics, provider education, and coding operations. Here is the operational sequence:
Phase 1: Diagnosis (Weeks 1–2)
Run a retrospective claims analysis. Query all MA encounters from the prior 12 months where Z86.79 was submitted alongside active beta-blocker, antiplatelet, or statin prescriptions. This is your leak volume.
Quantify the RAF gap. Apply HCC 226 coefficients to the identified population. Present the dollar figure to executive leadership. (Use the table in the RAF Impact section above as your template.)
Audit 50 charts. Manually review a sample of the Z86.79 encounters. Confirm that the clinical documentation supports I25.2 but the code was not assigned. This validates that the problem is a mapping/documentation failure, not a clinical one.
Phase 2: EHR Configuration (Weeks 3–6)
Modify problem-list search results. Work with your EHR clinical informatics team to ensure that searches for "MI," "myocardial infarction," and "heart attack" surface SNOMED 1755008 ("Old myocardial infarction") alongside or above 399211009 ("History of myocardial infarction").
Deploy Scribing.io's SNOMED-to-ICD guardrail module. This runs in parallel with EHR modifications and catches mapping failures that persist despite configuration changes. See our HCC v28 MEAT engine with SNOMED-to-ICD guardrails that auto-selects I25.2 (when appropriate) and generates RADV-ready documentation in Epic/Cerner—live on demo.
Disable or relabel misleading macros. The "H/O MI" macro should be replaced with "Old MI — active management" or removed entirely, forcing clinicians to select the clinically accurate problem-list entry.
Phase 3: Provider Education (Weeks 4–8, Parallel)
Deliver a 15-minute targeted training to PCPs and cardiologists on the I25.2 vs. Z86.79 distinction. Focus on one message: If you are managing the MI with medications, it is I25.2, not Z86.79.
Distribute pocket cards or EHR dot-phrase templates containing the minimum viable MEAT statement for I25.2. Scribing.io generates these automatically, but manual templates serve as a bridge during rollout.
Embed CDI specialists in high-volume cardiology and PCP clinics for the first 4 weeks to provide real-time feedback on documentation quality.
Phase 4: Monitoring & Optimization (Ongoing)
I25.2 Recapture KPI Dashboard | ||
KPI | Target | Measurement Frequency |
|---|---|---|
I25.2 capture rate (% of eligible encounters) | ≥90% | Monthly |
Z86.79 displacement rate (% of eligible encounters incorrectly coded) | ≤5% | Monthly |
MEAT statement presence rate (% of I25.2 encounters with compliant documentation) | ≥95% | Monthly |
RADV packet retrieval time | ≤48 hours | Per audit event |
RAF gap closure ($ recovered vs. baseline) | Track to projected recovery | Quarterly |
Provider satisfaction (documentation burden) | No increase from baseline | Quarterly survey |
Phase 5: Scale to Other High-Leak HCCs
The I25.2 recapture workflow is a template. The same SNOMED-to-ICD guardrail logic applies to dozens of other HCC-mapped conditions where EHR problem-list defaults favor non-HCC personal-history codes. Common expansion targets include:
Chronic kidney disease (N18.x vs. Z87.441)
Cerebrovascular disease (I69.x vs. Z86.73)
COPD (J44.x vs. Z87.09)
Major depressive disorder (F33.x vs. Z86.59)
Each follows the same pattern: active management + non-HCC problem-list default = preventable RAF loss. Scribing.io's engine covers all of them under a unified rules framework, ensuring that HCC recapture is systematic, not condition-by-condition.
Bottom line for Medical Directors: The I25.2 documentation gap is not a coding problem. It is a clinical informatics problem with a seven-figure financial consequence. The fix requires intervention at the point of documentation—where the SNOMED concept is selected, where the MEAT language is generated, and where the clinician attestation is captured. Scribing.io is purpose-built for that intervention point. Everything else is retrospective damage control.