Understanding History Of MI ICD 10 Coding
The ICD-10-CM code for a personal history of myocardial infarction is Z86.73. That is the code you use when a patient had a heart attack in the past but is not currently experiencing one. It sounds straightforward, but the way payers and documentation guidelines interact with this code creates a lot of confusion in practice. Here is how it actually works. The Z86.73 code belongs to the chapter on factors influencing health status and contact with health services. It is a history code, not an active diagnosis code. That means it cannot be listed as the primary reason for a visit unless there is truly no other active condition. You also cannot use it to justify cardiac stress testing or cardiac medication refills on its own. The payer expects an active problem to be present for those scenarios.
What History Of Mi Icd 10 Actually Looks Like in Practice
When you are coding a patient encounter and the only mention of myocardial infarction is in the past, Z86.73 is your code. The patient might be here for hypertension management, diabetes follow-up, or a routine physical. The history of MI just gets added as a secondary code to give the full clinical picture. That is the textbook scenario. In reality, things are messier. I ran into a situation recently where a patient with a history of MI was being evaluated for chest discomfort that turned out to be non-cardiac. The provider documented "rule out cardiac cause" and "history of MI." A coder could easily have put Z86.73 as the primary, but that was wrong because the encounter was for symptom evaluation, not for managing the history itself. I ended up using R07.9 (chest pain, unspecified) as the primary and Z86.73 as secondary. The distinction matters because it affects risk adjustment and quality metrics.
Related Codes You Will Need to Know
Z86.73 does not exist in isolation. There are several companion codes that you will encounter constantly when dealing with cardiac history. Z95.5 is the code for the presence of other cardiac and vascular implants and grafts. This is used when a patient has had a bypass graft or stent. You would pair Z95.5 with Z86.73 when both apply. Do not substitute Z95.5 for Z86.73. They capture different information. One is about prior MI. The other is about current hardware status. Z95.1 through Z95.4 cover coronary artery bypass graft, cardiac valve prosthetics, and other heart implants. These are not history codes. They are status codes. Mixing them up is a common error that shows up in audit reports regularly.
Get the Full Details

The Downside of Z86.73
There are real limitations with this code. The first is that Z86.73 does not carry a weight for case-mix adjustment in the same way an active cardiovascular diagnosis does. If your organization is trying to maximize risk scores, a history of MI alone will not move the needle the way an active acute MI (I21 series) would. This is not a flaw in the code. It is the design. The code was never intended to reflect current disease burden. The second limitation is documentation dependency. If the provider does not explicitly document that the MI occurred in the past, you cannot assign Z86.73. You have to query the provider. I have spent hours on queries where the provider wrote "MI" without any timeframe, and the medical record did not clarify whether it was recent or remote. In those cases, the safer code is the active MI code only if there is supporting clinical evidence, otherwise you code the uncertainty. A third practical issue is that some payers do not accept Z86.73 as a meaningful secondary diagnosis for certain types of claims. For instance, when a patient with a remote history of MI gets a annual wellness visit, some Medicare Advantage plans may flag the Z code as not clinically significant for that encounter type. This is not a coding error. It is a payer policy quirk. You code correctly regardless, but you should be aware that it might not affect reimbursement in the way you expect.
How to Assign the Code Correctly
Step one is confirming the documentation. The medical record must state that the myocardial infarction is in the past. Phrases like "patient reports MI five years ago," "h/o MI in 2018," or "remote myocardial infarction" all qualify. If the record says "MI" without qualification, you cannot assume it is historical. Step two is checking for active cardiovascular conditions. If the patient also has hypertension, coronary artery disease, or heart failure, those get coded separately and take priority. Z86.73 stays in the secondary position. Never list it first unless the encounter is exclusively for follow-up of the prior MI with no other active issues. Step three is reviewing the encounter type. If this is a preventive visit, Z86.73 is appropriate as a secondary code. If the patient is being seen for a cardiac-related procedure or medication adjustment, the active cardiac condition should be primary and Z86.73 may not even need to be listed depending on the coder's judgment and payer requirements.
A Realistic Example
Patient is a 68-year-old male who presents for a follow-up on his type 2 diabetes. His past medical history includes an anterior wall myocardial infarction in 2019 treated with PCI and stent placement. He is currently asymptomatic from a cardiac standpoint. His diabetes is poorly controlled and that is the reason for today's visit. In this case, the primary code is E11.65 (type 2 diabetes with hyperglycemia). Z86.73 is added as a secondary code. Z95.5 may also be added for the stent status. The encounter is clearly for diabetes management, so the MI history code is purely supplemental. This combination is clean and defensible during review. Now consider a different scenario. The same patient comes in for a cardiology follow-up six months after the MI. The provider is adjusting antiplatelet therapy. In this case, the active cardiovascular condition takes precedence. The coder would look for an I25 code for chronic ischemic heart disease rather than relying solely on Z86.73. This is a nuance that many coders miss. Z86.73 is for history without ongoing active disease management. Once the provider is actively managing the sequelae of the MI, the I25 codes become more appropriate.
Common Pitfalls
The biggest mistake I see is listing Z86.73 as the primary code for any encounter where an active cardiac condition exists. This triggers denials or requests for additional documentation. Another mistake is using Z86.73 when the MI is recent and the patient is still in the acute or subacute phase. The I21 and I22 codes cover those periods. The I25 series covers chronic stages. Z86.73 is reserved for remote history where no active treatment is directed at the MI itself. A less obvious pitfall involves combined coding with Z95.5. Some organizations automatically pair these two codes together without verifying both conditions are actually present. If a patient had an MI but never received a stent or graft, Z95.5 does not apply. Coding it anyway creates an inaccurate clinical picture and can affect risk adjustment calculations.