BMI ICD-10 codes: Adult and pediatric Z68 code list

BMI ICD-10 codes in the Z68 category record a patient's body mass index by range for adults and by percentile for children and adolescents. This list covers every code in the FY2027 code set, the new Z68.18 and Z68.19, and how to pair BMI codes with the E66 obesity codes.

Nurse writing notes beside a phone EHR note where the ;bmi Snippet inserts one of the BMI ICD-10 codes.

BMI ICD-10 codes record body mass index in patients’ medical records using the Z68 category of ICD-10-CM. Adults get a code for their BMI value, children and adolescents get a code for their BMI percentile, and the code is reported alongside a diagnosis such as obesity rather than on its own.

This guide lists every adult and pediatric code in the FY2027 code set, which took effect October 1, 2026. It explains how body mass index is calculated and classified, how Z68 codes pair with the E66 obesity codes, what changed in recent updates, and how to keep the codes you use most within reach.

Key takeaways

  • Adult BMI ICD-10 codes are assigned by BMI range, with one code for each range from Z68.18 to Z68.45. Most codes in the overweight and obesity ranges cover a single whole number, such as Z68.30 for a BMI of 30.0 to 30.9, while codes above 40 cover wider bands up to Z68.45 for a BMI of 70 or greater.
  • Pediatric BMI codes are based on the child’s BMI percentile for age, not the BMI number itself. Codes Z68.51 through Z68.56 apply to patients ages 2 to 19, because a child’s BMI is evaluated against others of the same age and sex on CDC growth charts.
  • The ICD-10-CM code set changes every October 1, so BMI codes that were correct last year can be wrong now. The FY2027 update split adult code Z68.1 into Z68.18 and Z68.19, and the FY2025 update revised Z68.54 and added Z68.55 and Z68.56 for the highest pediatric percentile ranges.
  • TextExpander Snippets store frequently used BMI ICD-10 codes and descriptions so coders can insert them with a short abbreviation. A Snippet such as ;bmiadult23 expands to the full Z68.23 entry, and updating a shared Snippet once keeps every coder on the current code when the code set changes.

Understanding BMI billing

Body mass index is a screening measure of weight in relation to height. It doesn’t measure body fat directly, but it gives healthcare providers a quick, consistent way to classify obesity and flag health risks for patients, including chronic diseases such as type 2 diabetes and heart disease. Clinicians use it to guide decisions about effective patient care, treatment plans, and disease prevention for adults and children alike, and to track severity over time.

In coding and reimbursement, the measurement takes on added importance. Healthcare providers record the value, and coders report it with one of the specific codes in the Z68 category of ICD-10-CM, the classification system used for diagnoses in the United States. Accurate codes matter to providers, payers, and patients for several reasons:

  1. Insurance reimbursement: Payers, including Medicare, Medicaid, and commercial insurers covering adults and children, expect diagnosis codes that match the documentation. A missing or mismatched code can delay a claim or trigger a denial.
  2. Clinical documentation: These codes support the clinical narrative. They show why a provider ordered certain treatment or interventions for patients with obesity, such as nutrition counseling or medication.
  3. Healthcare analytics: Consistent coding lets health systems and researchers track population health status, obesity rates in adults and children, and disease risk. That data feeds research, public health initiatives, and health policy.
  4. Financial integrity: Accurate codes help practices get paid appropriately for their services. Inaccurate or incomplete coding can lead to lost revenue or audits, and claims are reimbursed only when the record supports the codes.

Z68 codes belong to Chapter 21 of ICD-10-CM, “Factors influencing health status and contact with health services (Z00-Z99).” Z codes describe factors influencing health status, or the reason for contact with health services, rather than a disease itself. Other Z codes in the chapter cover health services such as screenings, immunization, and routine exams. Z codes like Z68 support a diagnosis instead of standing alone, and the guidelines allow BMI Z codes only as secondary codes. The National Center for Health Statistics (NCHS), part of the Centers for Disease Control and Prevention (CDC), develops ICD-10-CM, and NCHS and the Centers for Medicare & Medicaid Services (CMS), the federal agency behind Medicare and Medicaid, publish the Official Guidelines for Coding and Reporting that govern how BMI codes are used.

How BMI is calculated

BMI is a person’s weight in kilograms divided by the square of their height in meters (kg/m2). ICD-10-CM uses the same unit; the Z68 category is applicable to “kilograms per meters squared.”

For example, an adult who weighs 85 kilograms and is 1.75 meters tall has a BMI of 85 ÷ (1.75 × 1.75) = 27.8. That value falls in the 27.0 to 27.9 range, so the matching code is Z68.27. Most EHRs calculate the value automatically from the recorded height and weight, but the coder still has to pick the code that matches it.

BMI categories and obesity classes

The CDC groups adults into BMI categories and divides obesity into three classes by obesity severity. Here’s how those categories line up with the adult codes:

CDC adult categoryBMI (kg/m2)Matching Z68 codes
UnderweightLess than 18.5Z68.18
Healthy weight18.5 to less than 25Z68.19, Z68.20 to Z68.24
Overweight25 to less than 30Z68.25 to Z68.29
Class 1 obesity30 to less than 35Z68.30 to Z68.34
Class 2 obesity35 to less than 40Z68.35 to Z68.39
Class 3 obesity (severe obesity)40 or greaterZ68.41 to Z68.45

Children and adolescents are classified differently. Their value is plotted on sex-specific growth charts and expressed as a percentile for age, as covered in the next sections.

BMI ICD-10 codes banner from TextExpander for Healthcare Teams: “One code update. Every coder current.” with the ;e66 Snippet.

Adult BMI billing

Adult codes cover patients ages 20 and older. Two notes in the ICD-10-CM tabular list under Z68 set the age split: “BMI adult codes are for use for persons 20 years of age or older” and “BMI pediatric codes are for use for persons 2-19 years of age.” Each adult code falls into one CDC category, from underweight through the three classes of obesity, so choosing the right one matters for clinical assessments, claims, and health monitoring for adults.

Here’s the list of BMI adult codes, which range from Z68.18 to Z68.45, each corresponding to a specific range:

  • Z68 Body mass index [BMI]
  • Z68.1 Body mass index [BMI] 19.9 or less, adult
  • Z68.18 Body mass index [BMI] 18.4 or less, adult
  • Z68.19 Body mass index [BMI] 18.5-19.9, adult
  • Z68.2 Body mass index [BMI] 20-29, adult
  • Z68.20 Body mass index [BMI] 20.0-20.9, adult
  • Z68.21 Body mass index [BMI] 21.0-21.9, adult
  • Z68.22 Body mass index [BMI] 22.0-22.9, adult
  • Z68.23 Body mass index [BMI] 23.0-23.9, adult
  • Z68.24 Body mass index [BMI] 24.0-24.9, adult
  • Z68.25 Body mass index [BMI] 25.0-25.9, adult
  • Z68.26 Body mass index [BMI] 26.0-26.9, adult
  • Z68.27 Body mass index [BMI] 27.0-27.9, adult
  • Z68.28 Body mass index [BMI] 28.0-28.9, adult
  • Z68.29 Body mass index [BMI] 29.0-29.9, adult
  • Z68.3 Body mass index [BMI] 30-39, adult
  • Z68.30 Body mass index [BMI] 30.0-30.9, adult
  • Z68.31 Body mass index [BMI] 31.0-31.9, adult
  • Z68.32 Body mass index [BMI] 32.0-32.9, adult
  • Z68.33 Body mass index [BMI] 33.0-33.9, adult
  • Z68.34 Body mass index [BMI] 34.0-34.9, adult
  • Z68.35 Body mass index [BMI] 35.0-35.9, adult
  • Z68.36 Body mass index [BMI] 36.0-36.9, adult
  • Z68.37 Body mass index [BMI] 37.0-37.9, adult
  • Z68.38 Body mass index [BMI] 38.0-38.9, adult
  • Z68.39 Body mass index [BMI] 39.0-39.9, adult
  • Z68.4 Body mass index [BMI] 40 or greater, adult
  • Z68.41 Body mass index [BMI] 40.0-44.9, adult
  • Z68.42 Body mass index [BMI] 45.0-49.9, adult
  • Z68.43 Body mass index [BMI] 50.0-59.9, adult
  • Z68.44 Body mass index [BMI] 60.0-69.9, adult
  • Z68.45 Body mass index [BMI] 70 or greater, adult

Z68, Z68.1, Z68.2, Z68.3, and Z68.4 are header codes that group the ranges below them. Report the specific code that matches the recorded value, such as Z68.30 for a BMI of 30.4.

These BMI adult codes give healthcare providers a standardized way to record body mass index, so a value measured in one clinic means the same thing on a claim, in a referral, or in a quality report. Apply them in records for adults where the measurement is relevant to care and treatment, and where healthcare providers have diagnosed a related condition.

Regarding effective date changes, it’s crucial to stay updated with the latest ICD-10 code revisions. For instance, the FY2027 code set, effective for services on October 1, 2026, and after, turned Z68.1 into a header code. Adult BMIs of 19.9 or less are now reported with Z68.18 or Z68.19. Keeping track of these changes ensures compliance with coding regulations and avoids discrepancies in medical records.

Pediatric BMI billing

For children and adolescents ages 2 to 19 years, body mass index is still a key health measure. Unlike the value for adults, it’s evaluated as one of several percentiles that take sex and growth stage into account, because body composition changes as children grow. BMI pediatric codes are therefore assigned by percentile, and the tabular list notes that “These percentiles are based on the growth charts published by the Centers for Disease Control and Prevention (CDC).”

Here is a list of BMI pediatric codes, ranging from Z68.51 to Z68.56 under the Z68.5 header, each aligned with a percentile range:

  • Z68.51 – BMI less than 5th percentile for age, pediatric
  • Z68.52 – BMI 5th percentile to less than 85th percentile for age, pediatric
  • Z68.53 – BMI 85th percentile to less than 95th percentile for age, pediatric
  • Z68.54 – BMI 95th percentile for age to less than 120% of the 95th percentile for age, pediatric
  • Z68.55 – BMI 120% of the 95th percentile for age to less than 140% of the 95th percentile for age, pediatric
  • Z68.56 – BMI greater than or equal to 140% of the 95th percentile for age, pediatric

These pediatric codes line up with the CDC’s child and teen BMI categories. Z68.51 corresponds to underweight, Z68.52 to healthy weight, and Z68.53 to the overweight range. Childhood obesity starts at the 95th percentile, so Z68.54 through Z68.56 cover childhood obesity of increasing severity. The American Academy of Pediatrics defines class 2 obesity in children as 120% to less than 140% of that threshold and class 3 obesity as 140% or greater, which matches the ranges for Z68.55 and Z68.56.

The cutoffs above the 95th percentile exist because the original 2000 growth charts published by the CDC stop there. In December 2022, the Centers for Disease Control and Prevention released extended BMI-for-age growth charts so clinicians can track children with very high values, and the newer codes reflect those varying degrees of severe childhood obesity.

For pediatric patients, the code should match the child’s most recent percentile in the record. These codes help track growth patterns, identify potential health risks, and support the treatment plan when weight is a factor in a child’s health status. Because percentiles depend on age and sex, never assign pediatric patients one of the adult codes based on the raw number, even for older teens.

As with adult coding, it’s essential to be aware of any changes in the effective dates of these codes for children. For instance, for services on October 1, 2024, and after, Z68.54 covers only the 95th percentile to less than 120% of the 95th percentile, and higher percentiles are reported with Z68.55 or Z68.56. Keeping abreast of these changes ensures accurate and compliant coding.

How Z68 BMI codes pair with E66 obesity codes

A Z68 code tells a payer the patient’s measured value. It doesn’t give the diagnosis, the disease or condition healthcare providers are treating. Under the FY2027 ICD-10-CM Official Guidelines for Coding and Reporting, BMI codes should only be reported as secondary diagnoses. The BMI value itself can come from documentation by another clinician, such as a dietitian, but the associated diagnosis, such as overweight or obesity, must be documented by the patient’s provider.

That associated diagnosis usually comes from category E66, Overweight and obesity. The E66 codes in the FY2027 code set are:

  • E66.0 Obesity due to excess calories (E66.01 Morbid (severe) obesity due to excess calories; E66.09 Other obesity due to excess calories)
  • E66.1 Drug-induced obesity
  • E66.2 Morbid (severe) obesity with alveolar hypoventilation
  • E66.3 Overweight
  • E66.8 Other obesity (E66.811 Obesity, class 1; E66.812 Obesity, class 2; E66.813 Obesity, class 3; E66.89 Other obesity not elsewhere classified)
  • E66.9 Obesity, unspecified

The obesity class codes, E66.811, E66.812, and E66.813, took effect October 1, 2024. These new codes let healthcare providers classify obesity by obesity severity instead of relying on “unspecified” or “morbid” descriptions, which gives payers and researchers a clearer picture of disease severity in adults. In guidance from the Centers for Disease Control and Prevention on the new codes, class 1 corresponds to a BMI of 30 to less than 35, class 2 to 35 to less than 40, and class 3 to 40 or greater. The E66 category also carries an instruction to use an additional code to identify the BMI, if known.

In practice, the provider’s diagnosis comes first and the Z68 code follows. These examples show how the pairing works for adults and pediatric patients:

  • Adult with class 2 obesity and a BMI of 36.4: E66.812, then Z68.36. The new codes for obesity class pair with the specific codes for the measured range.
  • Adult with a documented E66.3 diagnosis and a BMI of 27.8: E66.3, then Z68.27.
  • Child with obesity at 125% of the 95th percentile: the provider’s obesity diagnosis from E66, then Z68.55.

If a value is recorded but the provider hasn’t diagnosed a related condition, the Z68 code generally isn’t reported. When the record is unclear, query the provider in clinically relevant terms rather than inferring obesity severity from the number alone.

Keep BMI codes one abbreviation away

Save the Z68 and E66 codes you use most as Snippets, then insert the full code and description in your EHR, billing software, or email with a short abbreviation. When the code set changes, update a shared Snippet once, and your whole team gets the current version.

Get TextExpander for Free. No credit card required.

Keeping up with changes

In medical coding, staying current with the latest guidelines is not optional. The rules for reporting obesity and body mass index for adults and children have changed several times since 2024, and a code that was valid when a Snippet, template, or cheat sheet was created may not be valid today. Understanding the change history is crucial for providers, coders, and billers.

Changes to the ICD-10-CM classification system can include revisions to existing codes, new codes, or header codes that are no longer billable. For instance, each year’s ICD-10-CM update takes effect on October 1, and claims for services on or after that date must use the new codes. Swap any code that is no longer billable for the current codes before the first claim of the new fiscal year. These are the recent new codes and revisions that affect obesity and BMI coding for adults and children:

  • FY2025 (effective October 1, 2024): New obesity class codes E66.811, E66.812, and E66.813. Z68.54 revised to end at 120% of the 95th percentile, and new pediatric codes Z68.55 and Z68.56 added.
  • FY2027 (effective October 1, 2026): Z68.1 became a header code, and new adult codes Z68.18 (18.4 or less) and Z68.19 (18.5 to 19.9) replaced it for adults.

Staying informed about these changes is vital for several reasons:

  1. Compliance: Following the most current guidelines from the Centers for Medicare & Medicaid Services keeps claims in line with legal and industry standards. Noncompliance can lead to denied claims, audits, and potential legal issues.
  2. Accuracy: Up-to-date knowledge leads to accurate coding and better data for research, which is critical for correct reimbursement. It prevents overpayments, underpayments, and claim resubmissions.
  3. Efficiency: Knowing which codes changed means less time spent correcting rejected claims and more time for patients.
  4. Financial health: Accurate and compliant coding directly affects a practice’s revenue and ensures it’s paid for the services it provides.

For telehealth care teams with strict documentation standards, keeping language current is a daily concern. As one telehealth medical director put it:

Our top concern is compliance and consistency. We have really high documentation standards for billing on a telehealth platform. We need to have certain language from a compliance standpoint and consistency across the team when we’re initiating certain medicines.

Dr. Tasha Kalra, Associate Medical Director, Allara

Healthcare providers and coders can stay updated by checking the annual ICD-10-CM files and addenda from the National Center for Health Statistics, following ICD-10 updates from the Centers for Medicare & Medicaid Services (CMS), attending professional development seminars, and taking part in training offered by coding and billing associations. For more ways to catch errors before they reach a claim, see our guide to improving medical coding accuracy.

BMI ICD-10 codes sign-up banner: “Every Z68 code, ready wherever you type,” with a coder at a desktop and the ;z68 Snippet.

Utilizing TextExpander for efficient ICD-10 coding

Incorporating TextExpander into the way you document ICD-10 codes, especially Z68 and E66 codes, can cut repeated retyping and lookups and keep everyone on the same, current codes. TextExpander lets healthcare teams save the text they enter most, from codes to approved documentation language, as Snippets: custom keyboard shortcuts that work in any app where they type. That’s useful in medical coding, where specific codes must be entered accurately again and again.

Examples of Useful Snippets for ICD-10 Codes:

  1. Adult BMI Codes: Create Snippets for the adult codes you use most. For example, a Snippet like ;bmiadult23 could expand to “Z68.23 – BMI 23.0-23.9, adult.” This saves time and reduces the likelihood of errors when entering these codes into medical records.
  2. Pediatric BMI Percentiles: Similarly, for children, a Snippet like ;bmichild85 can expand to “Z68.53 – BMI 85th percentile to less than 95th percentile for age, pediatric.” This helps you record percentiles for pediatric patients accurately with a short abbreviation.
  3. Obesity and BMI pairs: A Snippet like ;ob2 could insert “E66.812 Obesity, class 2” followed by a reminder to add the matching code from Z68.35 to Z68.39, so the diagnosis always comes first.
  4. Effective Date Reminders: Snippets can also include reminders about effective dates. For instance, ;bmiupdate could expand to a note like “Check the October 1 ICD-10-CM update for BMI and obesity code changes.”
  5. Frequently Updated Lists: Create a Snippet for the list of specific codes your team uses, so the current codes are always at hand. When the code set changes or new codes are added, update the Snippet once in TextExpander and everyone who shares it gets the new version.

See how TextExpander works

Z68.23 – BMI 23.0-23.9, adult

Z68.53 – BMI 85th percentile to less than 95th percentile for age, pediatric

With the codes saved as Snippets, healthcare professionals spend less time on manual data entry and lookups, and they copy fewer codes by hand, which is where transcription errors creep in. That can mean more accurate medical records and fewer claims sent back for corrections, so more time goes to patients. In a busy practice, the bigger win isn’t typing faster. It’s making sure the codes and language your team has already verified are the ones that end up in the record.

TextExpander handles the precision pieces the AI scribe can’t guarantee.

Meagan Horne, Lead Clinical Dietitian, Allara

Conclusion

BMI ICD-10 codes are a small part of a claim, but they carry a lot of weight. Codes for adults follow the measured value from Z68.18 to Z68.45, pediatric codes follow the percentile from Z68.51 to Z68.56, and both are reported as secondary codes after a documented diagnosis such as an E66 obesity code. With new codes added in FY2025 and FY2027, a list or template that hasn’t been checked since 2024 is likely out of date, and more new codes can arrive any October.

Check your references each October, pair every Z68 code with the provider’s diagnosis, and keep the codes your team uses most where they can insert them without a lookup. Accurate, current coding supports compliant claims, reliable health data, improved accuracy in research, and better care for patients.

TextExpander is free. Your time isn’t.

Create shortcuts for the things you type most and start saving time everywhere you type. Use it solo or build a shared library with your team.

Free forever, no credit card required.

Frequently asked questions

What is the ICD-10 code for BMI screening?

ICD-10-CM has no specific code for BMI screening. The Z68 codes, like other Z codes for factors influencing health status, record the value itself, by range for adults and by percentile for children, and they are reported only alongside an associated diagnosis that the provider documents, such as E66.3 or an obesity code from E66.-. The reason for the visit, such as a wellness exam or a follow-up for a weight-related condition, is coded separately, often with other Z codes for health services. If a BMI is measured and no related diagnosis is documented, a Z68 code generally isn't reported.

What is the ICD-10 code for BMI?

The ICD-10 code for BMI depends on the patient's age and measured value, because adults and children use separate code ranges. Adults ages 20 and older use codes from Z68.18 to Z68.45, each tied to a range: a BMI of 23 is Z68.23 (23.0 to 23.9, adult), and a BMI of 30 is Z68.30 (30.0 to 30.9, adult). Children and adolescents ages 2 to 19 use Z68.51 to Z68.56, which are based on percentile for age. The code set changes every October 1; in FY2027, Z68.1 became a header code, so adult BMIs of 19.9 or less now use Z68.18 or Z68.19.

Can BMI codes be primary diagnosis?

No. The ICD-10-CM Official Guidelines for Coding and Reporting, published by the Centers for Medicare & Medicaid Services (CMS) and NCHS, say BMI codes should only be reported as secondary diagnoses, and only when there is an associated, reportable diagnosis such as obesity. The BMI value can come from documentation by a clinician other than the patient's provider, such as a dietitian, but the associated diagnosis must be documented by the provider. Sequence the related condition first, for example E66.811 for class 1 obesity, followed by the Z68 code that matches the patient's value.

What is the ICD-10 code for high BMI?

A high adult BMI is coded with the Z68 code that matches the measured value. BMIs from 30.0 to 39.9 use Z68.30 to Z68.39, one code per whole number, and BMIs of 40 or greater use Z68.41 (40.0 to 44.9), Z68.42 (45.0 to 49.9), Z68.43 (50.0 to 59.9), Z68.44 (60.0 to 69.9), or Z68.45 (70 or greater). Report the Z68 code with the provider's diagnosis, such as E66.811, E66.812, or E66.813 for obesity class 1, 2, or 3, which were added in FY2025. For children, a high BMI is coded by percentile, starting with Z68.54 at the 95th percentile.

What is the CPT code for BMI screening?

There is no specific CPT code for BMI screening. CPT (Current Procedural Terminology) codes describe the procedures and services providers perform for patients, while ICD-10-CM codes describe diagnoses, diseases, and the reasons for care, including Z codes for contact with health services. Measuring height and weight and calculating BMI is typically part of the office visit rather than a separately billed procedure. The BMI value is documented in the patient's record and, when a related diagnosis such as obesity is documented, reported with the matching ICD-10-CM Z68 code.

What is the ICD-10 code for BMI of 22?

The ICD-10-CM code for a BMI of 22 in an adult is Z68.22, Body mass index [BMI] 22.0-22.9, adult. The code covers any value from 22.0 through 22.9 and applies to patients ages 20 and older. A BMI of 22 falls in the normal range, so the code is reported only when it supports a documented, related diagnosis. For children and adolescents between ages 2 and 19, a value of 22 is not coded directly; the code depends on the child's percentile for age.

What is the ICD-10 code for BMI 94?

ICD-10-CM has no code for a BMI of exactly 94. For an adult, a BMI of 94 is coded Z68.45, Body mass index [BMI] 70 or greater, adult, the highest of the adult codes. Codes for children are based on percentile for age rather than the raw number, so "94" for a child usually refers to the 94th percentile, which is coded Z68.53, BMI 85th percentile to less than 95th percentile for age. A child at or above the 95th percentile is coded Z68.54, Z68.55, or Z68.56, depending on how far above that threshold the value falls.

What tools help medical coders enter ICD-10 codes faster and with fewer errors?

Most medical coders use two kinds of tools. Encoder and code lookup software, often built into the EHR or billing system, helps them find the right code. A text expansion tool helps them enter the codes they use every day without retyping them. With TextExpander, a coder saves a code and its full description as a Snippet and inserts it with a short abbreviation in any application, including the EHR, billing software, and email. Teams can share Snippet groups, so when the ICD-10-CM code set changes each October 1, one person updates the shared Snippet and everyone gets the current code.

Is there a HIPAA-compliant way to reuse ICD-10 code text in clinical documentation?

Yes. ICD-10-CM codes and their official descriptions don't identify a patient, so saving them for reuse is low risk as long as the saved text stays generic. TextExpander is compliant with HIPAA Security, Privacy, and Breach Notification rules and signs a Business Associate Agreement (BAA) for qualified customers on the Enterprise plan. As noted in the HIPAA policy, Snippets should not contain protected health information (PHI), so store only reusable text, such as a code and description, and add patient names, dates, and record numbers in the EHR itself.

Keep reading

View all posts →
medical coding accuracy Medicine How to Improve Medical Coding Accuracy Heart failure ICD-10 code inserted into a clinical note as a clinician types on a laptop beside a clipboard. Medicine Heart failure ICD-10 codes: the full I50 list and related codes common medical billing errors Medicine 10 Most Common Medical Billing Errors and How to Fix Them
BMI ICD-10 codes: Adult and pediatric Z68 code list