ICD-10 Codes for Obesity and Weight Management: A Billing Reference

E66 obesity codes, class 1-3 codes, overweight, Z68 BMI codes and counseling Z codes for weight-management visits, checked against the FY2027 CMS code set.

Ona Health team

12 min read

Share

The core ICD-10-CM codes for obesity sit in category E66: E66.811, E66.812 and E66.813 for obesity class 1, 2 and 3, E66.01 for morbid obesity due to excess calories, E66.3 for overweight and E66.9 for unspecified obesity. Adult BMI goes on a separate Z68 code, always secondary. In Ona, the diagnosis on the visit flows straight onto the claim.

Quick answer:

  • Code the condition first, then the BMI. A Z68 code is never the first-listed diagnosis, and the FY2027 ICD-10-CM guidelines say it should only be assigned when the provider documents an associated diagnosis such as obesity.
  • Use the class codes (E66.811 to E66.813) when the provider documents the class. If both class 3 and morbid obesity are documented, CMS says to code only class 3.
  • FY2027, in effect since October 1, 2026, split the adult low-BMI code Z68.1 into Z68.18 and Z68.19. The obesity codes themselves did not change.

Why Weight-Management Coding Gets Denied

Obesity visits are not hard to code, but they are easy to code loosely, and loose coding is what denies. The common patterns in weight-management billing:

  • E66.9 when the chart says more. "Obesity, unspecified" is a valid billable code, but if the note documents class 2 obesity, the claim should say E66.812. Payers that gate coverage on severity, and many GLP-1 prior authorization criteria, read the code, not the note.
  • The BMI code on its own. A Z68 code without an obesity, overweight or other reportable diagnosis does not meet the guideline, and it cannot be the primary diagnosis.
  • A category instead of a code. E66.8 and E66.81 are headers, not billable codes. From FY2027, so is Z68.1.
  • Codes that exclude each other. R63.5, abnormal weight gain, carries an Excludes1 note for obesity (E66.-), so the two do not go on the same claim.
  • Counseling codes without the condition. Z71.3 tells the payer counseling happened. It does not tell them why.

Each of these is cheap to fix before the claim leaves and expensive to fix after a denial comes back. Clean claims on weight-management visits come mostly from getting the diagnosis right on the chart.

The Obesity and Overweight Codes (E66)

These descriptors are the official FY2027 ICD-10-CM titles from the CMS ICD-10 code files.

CodeOfficial descriptorBillableNotes for weight-management visits
E66.01Morbid (severe) obesity due to excess caloriesYesExcludes1: morbid obesity with alveolar hypoventilation (E66.2)
E66.09Other obesity due to excess caloriesYesObesity attributed to excess calories, not morbid
E66.1Drug-induced obesityYesUse additional code for the adverse effect, if applicable, to identify the drug (T36-T50)
E66.2Morbid (severe) obesity with alveolar hypoventilationYesThe guideline's example of a code that captures an effect of obesity
E66.3OverweightYesThe usual code for overweight, paired with a Z68.25 to Z68.29 BMI code in adults
E66.811Obesity, class 1YesProvider must document the class
E66.812Obesity, class 2YesProvider must document the class
E66.813Obesity, class 3YesCode this alone when both class 3 and morbid obesity are documented
E66.89Other obesity not elsewhere classifiedYesFor a documented type with no more specific code
E66.9Obesity, unspecifiedYesInclusion term: Obesity NOS. Use only when nothing more specific is documented
E66.8, E66.81Other obesity; Obesity classNoCategory headers. Pick a code beneath them

The E66 category note also matters. The FY2027 tabular tells you to use an additional code to identify BMI, if known, for adults or pediatric patients (Z68.-), and to code first obesity complicating pregnancy, childbirth and the puerperium (O99.21-) where that applies. The guidelines also point to codes outside E66, such as E88.82, obesity due to disruption of MC4R pathway.

How the Class Codes Work With the Others

The class codes are a fifth-character subcategory, E66.81, and the CMS guidelines say they can be reported together with other obesity codes in chapters 4 and 15 to fully describe the condition. So a patient with documented class 2 obesity due to excess calories can carry both E66.09 and E66.812 if the payer accepts both. The one exception the guidelines spell out: if both class 3 obesity and morbid obesity are documented, report only the class 3 code, because it is more specific.

The class has to come from the provider. A BMI value in the vitals does not, on its own, let a coder assign E66.812. The clinician needs to write the class in the assessment.

The BMI Codes (Z68)

Z68 codes describe the BMI value, not the condition. The FY2027 guidelines are specific about how they are used:

  • Secondary only. BMI codes "should only be reported as secondary diagnoses."
  • Only with an associated diagnosis. They should be assigned only when there is an associated, reportable diagnosis, such as obesity, documented by the patient's provider.
  • Who can document the number. The BMI itself may be taken from documentation by other clinicians involved in the patient's care, such as a nurse or a dietitian. The associated diagnosis must come from the provider. Conflicting documentation means a query to the provider.
  • Not in pregnancy. Do not assign BMI codes during pregnancy.
  • Fluctuating values. If the BMI varies within the encounter, code the most severe value.
  • Age bands. Adult codes are for patients 20 and older. Pediatric codes are for ages 2 to 19 and are based on CDC growth chart percentiles.
BMI range (adult)CodeTypical pairing
18.4 or lessZ68.18 (new in FY2027)Underweight or abnormal weight loss diagnosis
18.5 to 19.9Z68.19 (new in FY2027)Underweight or abnormal weight loss diagnosis
20.0 to 24.9Z68.20 to Z68.24Usually not reported unless a related condition is coded
25.0 to 29.9Z68.25 to Z68.29E66.3 overweight
30.0 to 39.9Z68.30 to Z68.39E66.811 or E66.812, or another E66 code
40.0 to 44.9Z68.41E66.813 or E66.01
45.0 to 49.9Z68.42E66.813 or E66.01
50.0 to 59.9Z68.43E66.813 or E66.01
60.0 to 69.9Z68.44E66.813 or E66.01
70 or greaterZ68.45E66.813 or E66.01

The pediatric codes run from Z68.51 (less than the 5th percentile for age) to Z68.56 (at or above 140% of the 95th percentile for age).

What Changed in FY2027

The FY2027 code set has been in effect since October 1, 2026. The CMS addenda for this cluster contain one change: Z68.1, body mass index 19.9 or less, adult, is now a category with two new billable codes beneath it, Z68.18 (18.4 or less) and Z68.19 (18.5 to 19.9). If your fee schedule, templates or billing rules still reference Z68.1, update them, because Z68.1 alone is no longer a billable code for dates of service from October 1, 2026. The E66 codes and the Z68 codes at 20 and above carry no FY2027 change in the CMS addenda.

Why BMI Codes Matter for Medicare Obesity Counseling

BMI codes are not just descriptive on Medicare claims for intensive behavioral therapy for obesity. Per the CMS Medicare Claims Processing Manual, Chapter 18, section 200, claim lines for G0447 or G0473 without one of Z68.30 to Z68.39 or Z68.41 to Z68.45 are denied. That is a case where leaving the BMI off is not a style choice, it is a denial.

CodeOfficial descriptorWhen it fitsWatch for
R63.4Abnormal weight lossUnintended or unexplained loss the provider documents as abnormalA symptom code. Do not use it for planned loss in a weight program
R63.5Abnormal weight gainDocumented abnormal gain without an obesity diagnosisExcludes1: obesity (E66.-) and excessive weight gain in pregnancy
R63.6UnderweightDocumented underweightUse additional BMI code if known; Excludes1: abnormal weight loss (R63.4)
Z71.3Dietary counseling and surveillanceDietary counseling delivered at the visitUse additional code for the underlying condition and for BMI, if known
Z71.82Exercise counselingExercise counseling delivered at the visitNo tabular instruction of its own; code the condition being treated too
E88.82Obesity due to disruption of MC4R pathwayDocumented MC4R-related obesityNamed in the guidelines as a related code outside E66

Two notes on these. R63.4 and R63.5 are signs and symptoms, and the general rule in the guidelines is that symptoms routinely associated with a diagnosed condition are not coded separately. And Z71.3 and Z71.82 describe the service, not the patient's condition. The FY2027 tabular note under Z71.3 says to use an additional code for any associated underlying medical condition and for BMI if known, which is why a counseling visit for obesity usually reads E66.81x, then Z68.3x, then Z71.3.

Diagnosis Codes and GLP-1 Coverage

Diagnosis codes increasingly decide whether a prescription or a prior authorization goes through. Pharmacy benefit rules vary by plan, but the direction is clear from public examples. Medi-Cal Rx, California's Medicaid pharmacy program, stopped covering GLP-1 drugs for weight loss from January 1, 2026, and states that Wegovy claims for MASH without the qualifying diagnosis codes deny with a specific reject code, per its GLP-1 Coverage Considerations notice. Commercial plans that do cover anti-obesity drugs commonly ask for a documented BMI and weight-related conditions, which means the E66 and Z68 codes on the chart need to match the PA form.

For the clinic, the practical rule is to code the visit as specifically as the note allows, every time, because the same diagnosis list feeds the claim, the superbill and the prior auth.

How the Code Flows From the Note to the Claim in Ona

Ona keeps the diagnosis, the visit and the claim on one patient record, so the code is entered once:

  1. Charting the diagnosis. On the patient Summary or inside the visit, Add diagnosis searches by condition name or ICD-10 code. If a row is marked Not billable, Ona asks for a more specific billable code before you can continue, so category headers like E66.81 cannot be charted as if they were codes. A diagnosis added during a visit is saved with that visit. Details in Diagnoses, medications, and allergies.
  2. The BMI on the chart. Weight and height are vitals, and BMI is calculated from them, with trends over time. The clinician still decides which Z68 code to add.
  3. The draft claim. Each insured visit keeps a draft claim that rebuilds as diagnoses, procedures and services change. Billing rules can check that every line carries a diagnosis and flag the problem before the claim leaves. See insurance and claims.
  4. Superbill for self-pay patients. For cash-pay patients who submit to their own insurer, a completed visit's superbill lists the CPT codes, fees and provider details, as described in From visit billing to superbill and claim.
  5. Submission and remittance. Claims go out through Ona Clearing House or your own Claim.MD account, and ERAs post back to the claim and the patient's invoice, so a denial for a diagnosis problem lands in the same queue where you fix it. Patient balances settle in billing.

This coding guidance is general. Payer rules vary, so confirm coverage and code requirements with the payer before you bill.

Frequently asked questions

What is the ICD-10 code for obesity?

It depends on what the provider documents. E66.811, E66.812 and E66.813 code obesity class 1, 2 and 3. E66.01 is morbid obesity due to excess calories, E66.09 other obesity due to excess calories, and E66.9 is obesity, unspecified. Add a Z68 code for the adult BMI as a secondary diagnosis.

What is the ICD-10 code for overweight?

E66.3, Overweight. In adults it is usually paired with a secondary BMI code from Z68.25 to Z68.29, for a BMI of 25.0 to 29.9. The overweight diagnosis has to be documented by the provider. A BMI value in the vitals alone does not support the code.

What is the ICD-10 code for morbid obesity?

E66.01 is morbid (severe) obesity due to excess calories, and E66.2 is morbid (severe) obesity with alveolar hypoventilation. If the provider documents both class 3 obesity and morbid obesity, the FY2027 ICD-10-CM guidelines say to report only the class 3 code, E66.813, because it is more specific.

Can a BMI Z code be the primary diagnosis?

No. The FY2027 ICD-10-CM guidelines say BMI codes should only be reported as secondary diagnoses, and only when the provider documents an associated reportable diagnosis such as obesity or overweight. Other clinicians may document the BMI value itself, but the associated diagnosis must come from the provider.

Did the obesity codes change for FY2027?

Not the E66 codes. The FY2027 change in this area is Z68.1, adult BMI 19.9 or less, which became a category with two new billable codes: Z68.18 for 18.4 or less and Z68.19 for 18.5 to 19.9. The FY2027 code set has applied to dates of service since October 1, 2026.

Which ICD-10 code goes with Medicare obesity counseling G0447?

Medicare requires an adult BMI code from Z68.30 to Z68.39 or Z68.41 to Z68.45 on G0447 and G0473 claim lines, per the CMS Medicare Claims Processing Manual, Chapter 18, section 200. Claim lines without one are denied. The obesity diagnosis, such as an E66.81x class code, goes alongside it.

Next step

If weight-management claims are bouncing on diagnosis codes, the fix usually starts in the chart, not the clearinghouse. See how a diagnosis moves from the visit to a clean claim in a 15-minute demo, or check the clearing house tiers on the pricing page and start the 14-day free trial.

Written by

Ona Health team

Related reading

Keep exploring.

12 min read

ICD-10 Codes for Depression: F32 and F33 Explained

Depression ICD-10 codes for FY2027: F32 single episode vs F33 recurrent, severity and remission digits, F32.9 vs F32.A, F34.1, and how to avoid denials.

Ona Health team
10 min read

Running a Telehealth Weight Loss Clinic: The Tech Stack

What a virtual GLP-1 or weight loss clinic needs end to end, from lead capture and intake to video visits, e-prescribing, labs and payments.

Ona Health team
12 min read

ICD-10 Codes for Bipolar Disorder: F31 Code Guide

Bipolar ICD-10 codes for FY2027: how F31 codes record episode, severity, psychotic features and remission, plus F31.81 bipolar II, F31.9 and F34.0.

Ona Health team

See Ona in action.

One platform for scheduling, charting, billing and insurance. Try everything free for 14 days — no credit card required.