Our complete nephrology guide

CKD ICD-10 codes: staging N18.1 through N18.6 correctly.

Most nephrology practices already know the eGFR ranges. What decides whether a claim survives review is what's written in the chart to support the code, which etiology code has to come first, whether the stage on file still matches the most recent labs, and what happens once a transplant changes the picture. This guide covers the documentation, sequencing, and progression-tracking judgment calls underneath the N18 category — not the staging table by itself.

Key takeaways

  • Every N18 code needs a specific chart trigger, not just an eGFR in range. Stage 1–2 need a damage marker; N18.6 needs explicit dialysis-dependence language, not an inference from a low eGFR.
  • Etiology codes come first, the N18 stage code is always the additional code — for diabetic CKD (E11.22/E10.22) and hypertensive CKD (I12.9/I12.0/I13.10/I13.11) alike. Billing N18 alone or first is a sequencing error even when the code is right.
  • A transplant doesn't remove CKD from the code set. The graft's stage code is billed first, Z94.0 second; rejection or failure is coded separately under T86.1x.
  • Stale stage codes are a silent, recurring error. A problem list carrying last year's N18.32 while the current eGFR supports N18.4 doesn't deny — it just understates the case until someone catches it.

The eight billable N18 codes and the chart trigger each one needs

Every N18 code is easy to look up; what gets tested on a payer chart audit, an HCC risk-adjustment validation, or an LCD medical-necessity review is whether the note independently supports the specific code billed, not just the eGFR range. We validated the full category live against the FY2026 ICD-10-CM code set — N18 and N18.3 are category headers only and are never billed on their own.

N18 category, verified live against the FY2026 ICD-10-CM code set, with the specific chart documentation each code requires.
CodeStageWhat the note has to establish
N18.1Stage 1eGFR ≥90 mL/min plus a documented damage marker — proteinuria/albuminuria, an imaging finding, or biopsy finding. A normal eGFR alone doesn't support it.
N18.2Stage 2 (mild)eGFR 60–89 mL/min plus the same category of damage marker as stage 1.
N18.30Stage 3, unspecifiedeGFR 30–59 mL/min where the note genuinely doesn't split 3a from 3b. Most labs split it, so a high N18.30 rate is itself a chart-quality flag.
N18.31Stage 3aeGFR specifically 45–59 mL/min, documented at or near the date of service.
N18.32Stage 3beGFR specifically 30–44 mL/min, documented at or near the date of service.
N18.4Stage 4 (severe)eGFR 15–29 mL/min, documented at or near the date of service.
N18.5Stage 5eGFR <15 mL/min, note silent on or negative for dialysis dependence.
N18.6End-stage renal diseaseeGFR typically <15 mL/min plus explicit language that the patient is on maintenance dialysis or otherwise medically documented as ESRD — a stated fact, not an inference from the eGFR.
N18.9UnspecifiedNo eGFR or stage anywhere in the record. Defensible from an outside referral; recurring on a nephrology note that itself has a specific eGFR is an audit flag.

N18.5 versus N18.6 is the pair miscoded most often, in both directions. A patient choosing conservative, non-dialysis management of stage 5 CKD stays N18.5 — ESRD isn't a synonym for "very low eGFR," it means dialysis dependence is actually established. A patient started on hemodialysis visits ago whose note still just says "CKD stage 5" is undercoded at N18.5 when the record would support N18.6.

Etiology-first sequencing: the N18 stage code is never billed alone when a cause is documented

When diabetes or hypertension is the documented cause, ICD-10-CM's combination-coding convention sequences the etiology code first, with the N18 stage code as the required additional code. Getting the code right but the order backward is still an error, and it's easy to introduce through an EHR problem list that auto-orders diagnoses instead.

Etiology-first sequencing for combination CKD coding, verified live against the FY2026 ICD-10-CM code set.
Clinical scenarioBill in this order
Type 2 diabetic CKDE11.22 first, then the specific N18 stage code
Type 1 diabetic CKDE10.22 first, same convention as E11.22
Hypertensive CKD, stage 1–4/unspecifiedI12.9 first, then N18.1N18.4 or N18.9
Hypertensive CKD, stage 5/ESRDI12.0 first, then N18.5 or N18.6
Hypertensive heart disease + CKD, no heart failure, stage 1–4/unspecifiedI13.10 first, then the specific N18 stage code
Hypertensive heart disease + CKD, no heart failure, stage 5/ESRDI13.11 first, then N18.5 or N18.6

The hypertension pairing catches practices off guard more than the diabetes pairing, because ICD-10-CM presumes the causal relationship between hypertension and CKD whenever both are documented — the note doesn't have to state "hypertensive nephropathy" for the I12/I13 combination to apply, the opposite default from how most comorbidities are handled.

Tracking stage progression without letting the code go stale

CKD staging isn't a one-time diagnosis; the code has to track the chart's most recent eGFR, not whatever stage was assigned at diagnosis. The failure mode is quiet: a problem list carries N18.32 (stage 3b) forward for months after renal function has declined into stage 4, and nobody updates the code because nothing about the visit specifically prompted a review of it.

Worked example. A problem list has carried N18.32 since November; by July, two consecutive labs show eGFR at 26 and 24 — squarely stage 4. The coder pulls the diagnosis from the problem list instead of the current values, and N18.32 goes out instead of N18.4. The claim pays; nothing trips a payer edit. But the diagnosis on file understates disease burden for everything downstream: risk-adjusted revenue, severity-linked medical necessity, and the practice's own CKD population reporting.

Do
  • Re-derive the stage from the current visit's own eGFR, not from the problem list.
  • Sequence the etiology code first and the N18 stage code as the additional code.
  • Document explicit dialysis-dependence language before coding N18.6.
  • Code the graft's own current stage first, then Z94.0, post-transplant.
Don't
  • Don't let a problem list auto-populate last visit's stage code without checking current labs.
  • Don't bill an N18 code alone, or before the etiology code, when a cause is documented.
  • Don't drop the CKD stage code after a transplant just because the graft is functioning.
  • Don't default to N18.9 out of a note that itself contains a specific eGFR.
Pro tip

Run a quarterly report comparing each active CKD patient's coded stage against their most recent eGFR-derived stage. A mismatch usually means the patient progressed and nobody updated the claim-facing diagnosis. Catching it quarterly recovers the value going forward; catching it during an audit only explains what already happened.

Post-transplant CKD staging: the graft still gets its own stage code

A kidney transplant doesn't remove CKD from the coding picture, because a transplanted kidney frequently doesn't fully restore normal function. Standard convention codes the graft's current CKD stage first — whichever N18.1–N18.6 the transplant's own eGFR supports — followed by Z94.0 (kidney transplant status) as an additional code. Dropping the stage code because "the patient has a transplant now" understates a real, ongoing condition the chart is already documenting.

A documented complication — rejection or graft failure, not routine reduced function — is a separate code from the T86.1 family: T86.10 unspecified, T86.11 rejection, T86.12 failure, all validated live against the FY2026 code set. These capture the complication itself, not a substitute for the stage code. ⚠️ The stage-code-then-Z94.0 sequencing reflects standard convention; ICD-10-CM guideline text itself sits outside what a code-lookup connector can verify, so cross-check it against the current-year Official Guidelines before building it into policy.

Companion codes that belong on the claim alongside the stage code

CKD generates a predictable set of downstream conditions commonly left off the claim even when documented. Each is validated live against the FY2026 code set, and none substitutes for the N18 stage or etiology code — each independently supports medical necessity for whatever's billed alongside it.

Not sure your CKD staging holds up to a chart audit?

We'll review a sample of your CKD population's coded stages against their labs and flag sequencing errors, stale codes, and missing companion codes.

Book a free claims review

Frequently asked questions

Do we need to update a patient's CKD stage code every time a new eGFR result comes in?

Not on every lab draw, but the code on the claim needs to reflect the most recent documented eGFR trend, not a stage assigned a year ago and left on the problem list since. A problem list that autopopulates last year's N18 code onto this year's claim creates a specific, checkable error: a claim reporting stage 3b when the chart's most recent labs support stage 4. Re-confirm the stage at least at the annual comprehensive visit, and update it whenever a new eGFR crosses a stage boundary.

How do we code CKD in a patient who has had a kidney transplant?

A transplant doesn't automatically remove CKD from the chart, because the transplanted kidney can still be functioning below normal. Standard convention sequences the CKD stage code the current eGFR supports first, followed by Z94.0 (kidney transplant status) as an additional code — not Z94.0 alone. A documented complication — rejection or failure — is coded separately under the T86.1 family (T86.10 unspecified, T86.11 rejection, T86.12 failure) rather than folded into the stage code. ⚠️ This sequencing reflects standard ICD-10-CM coding convention; confirm it against the current-year ICD-10-CM Official Guidelines for Coding and Reporting, since guideline text sits outside what a code-lookup connector can verify.

Is N18.9 (unspecified CKD) ever appropriate to bill, or does it always deny?

It's valid and billable — not a denial trigger by itself — but rarely defensible out of a nephrology practice specifically, since a nephrologist's own note almost always has an eGFR and a stage. N18.9 fits a primary care referral documenting "CKD" without lab detail, or an outside record with no staging data. A pattern of N18.9 on claims where the same note contains a specific eGFR is exactly what a payer audit or internal chart review flags first, because the unspecified code understates a case the documentation could have supported — with downstream effects on medical necessity review and risk-adjusted revenue.

Verify before billing. CPT is a registered trademark of the American Medical Association; codes here are paraphrased, not reproduced from the CPT Professional edition. CPT, HCPCS and ICD-10 codes, coverage policy, and bundling edits change, including annual code-set updates. This page reflects standard industry practice and is provided for general education — it is not a substitute for your own compliance review, your current payer contracts, or the current-year code sets. Confirm requirements against your specific payer mix before submitting claims.

Related resources