A Practical Guide To Coding R79.89
The ICD-10-CM code R79.89 covers abnormal lab results that don't fit into more specific categories. It sits in the "Symptoms, signs and abnormal clinical and laboratory findings, not elsewhere classified" chapter, specifically under abnormal findings on examination of blood without mention of infection. Most coders encounter this when they have a lab result that is flagged abnormal but doesn't match an existing code for that specific abnormality. It's a catch-all that should be used sparingly, not as a default option. I have worked through enough claims denials and audit findings to know that this code gets misused constantly. Payors flag it because it lacks specificity. The code descriptor itself—"Other specified abnormal findings of blood chemistry"—is vague by design, and that vagueness creates problems downstream.Other Specified Abnormal Findings Of Blood Chemistry
The official ICD-10-CM description reads: "Other specified abnormal findings of blood chemistry." The code R79.89 was introduced in the 2019 edition and has been active ever since. It replaces what used to get coded with vague non-specific lab result codes across multiple versions. Before the 2019 update, many payors saw this kind of finding thrown out under various unspecified codes, which made tracking outcomes nearly impossible. What counts as "other specified" here is anything abnormal in your blood work that isn't already coded elsewhere in the system. Things like elevated specific enzymes without a diagnosed condition, unusual electrolyte patterns, or borderline protein levels that don't meet criteria for a disease code. If there is an established diagnosis that explains the abnormality—like chronic kidney disease causing elevated creatinine—you code the diagnosis instead of R79.89. The abnormal finding is a symptom, and the underlying condition carries the weight. One edge case that comes up repeatedly involves incidental lab abnormalities found during routine pre-operative screening. A patient comes in for surgery, labs are drawn as part of standard protocol, and one value comes back slightly out of range—say, a mildly elevated alkaline phosphatase with no liver symptoms and no diagnosis attached. The instinct is to code R79.89. That is often wrong. If the surgeon documents that the finding is clinically insignificant and unrelated to the procedure, coding it inflates the case and can trigger unnecessary additional workups. I once had a hospitalist try to bill this for a patient whose only abnormal finding was a slightly high iron saturation with no hemochromatosis diagnosis, no symptoms, and no plan to follow up. The audit came back disallowed because the finding lacked clinical significance. The workaround was straightforward: document that the abnormality was incidental and not the reason for any change in management, then either leave it uncoded or use a different approach depending on the payer's rules.
There are also situations where R79.89 genuinely belongs. A patient presents with fatigue, basic metabolic panel shows a borderline low sodium at 131, and the provider documents "hyponatremia, unspecified" without further workup yet. Since there is no confirmed syndrome or cause identified, R79.89 is appropriate rather than forcing a code for a condition that hasn't been established. Same situation applies to an elevated troponin that doesn't meet the threshold for acute myocardial infarction, with no diagnosis of myocarditis or pericarditis yet. The provider can document the finding and assign R79.89 while keeping the diagnostic pathway open. The coding process itself is mechanical. You pull the lab result from the medical record, verify that the provider has documented it as abnormal and clinically relevant, confirm that no more specific code exists for that particular finding, and then assign R79.89. That last step is where most errors happen. Coders skip the verification and just assign it because it's easier than digging through the code set to check whether a more specific alternative exists. I see this in my own work daily. Take bilirubin—elevated direct bilirubin has its own code under R79.1, and elevated total bilirubin falls under R79.0. Assigning R79.89 for a bilirubin abnormality when a more specific code is available will get your claim denied or downgraded, and it will show up on compliance reports. Another common mistake is using R79.89 for abnormal findings that have been investigated and resolved. A patient had a transient elevation in liver enzymes during a course of antibiotics, the enzymes normalized after stopping the medication, and the provider documented it as resolved drug-induced liver enzyme elevation. Coding R79.89 here is incorrect because the finding no longer exists. The appropriate approach is either to not code it at all if it's outside the scope of the current encounter, or to look for a code that captures the drug-induced component if the provider is treating that as an active issue. Using R79.89 for a resolved abnormality inflates morbidity rates and skews quality metrics.
The limitations of this code are significant. It provides no clinical specificity, which means payers cannot determine medical necessity from the code alone. Many commercial payors require additional documentation—a positive differential diagnosis, a plan for follow-up, or evidence that the abnormality is driving clinical decision-making. Without that, the claim gets flagged for review, which adds administrative burden to both the provider and the payer. Government programs like Medicare have become increasingly strict about this. The Medicare Learning Network bulletins have explicitly called out R79.89 as a high-risk code for audit selection in several regional jurisdictions. There is also the problem of duplicate coding. When a provider documents both a specific abnormal finding and assigns R79.89 for the same lab result, the claim contains a coding conflict. I recently reviewed a case where a patient's lab showed elevated C-reactive protein at 12.4 mg/L, and the coder assigned both R79.89 and a code for elevated inflammatory markers. The second code didn't exist in ICD-10-CM for that specific finding, so R79.89 was the only option, but the coder still added a redundant code from ICD-9 that had been carried over from a legacy system. The claim was rejected on the basis of invalid code set mixing. Always verify that you are working exclusively within ICD-10-CM and that every code you assign has a current valid descriptor. If you need the official code definition, the Centers for Disease Control and Prevention maintains the ICD-10-CM code set on their website at icd10.cdc.gov. The 2026 edition is the current version as of this writing, and R79.89 remains active with no changes to its descriptor. You can download the full annual code set updates from that same URL. Most practices also subscribe to professional coding resources like the AMA's ICD-10-CM Professional Edition or the AAPC's coding guides, which provide additional context and examples that the official set does not include.
Get the Full Details

The bottom line is that R79.89 is a legitimate code with a legitimate purpose, but it is easy to overuse and hard to defend when overused. Use it when the abnormal finding is documented, clinically relevant, and has no more specific code. Don't use it as a shortcut for lab results that lack clinical significance or that have already been explained by an established diagnosis. Your compliance posture and your reimbursement rates depend on that distinction being clear in the record.