Pediatric BMI Percentile Calculator (CDC)

Age- and sex-adjusted BMI percentile for children 2-20

Compute a child's BMI and map it to an age- and sex-specific percentile using CDC 2000 growth chart LMS parameters. Reports the BMI z-score and CDC weight category for children aged 2 to 20. Used by paediatricians, school nurses, and dietitians. Runs in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

Why can't I just use an adult BMI category for a child?

Children's healthy BMI changes dramatically with age and differs by sex, so a fixed cutoff like 25 makes no sense. Instead a child's BMI is ranked against a reference population of the same age and sex, producing a percentile that accounts for normal growth.

A child’s body mass index cannot be read against a single fixed cutoff the way an adult’s can, because healthy BMI rises and falls naturally through childhood and differs between boys and girls. Paediatric assessment instead asks where a child sits relative to peers of the same age and sex, expressed as a percentile.

Why percentiles rather than fixed cutoffs

Adult BMI categories (underweight below 18.5, overweight at 25, and so on) use fixed numbers that apply to every adult. This works for adults because the healthy range for body fat does not shift dramatically with age. For children it fails, because a 5-year-old boy’s healthy BMI is different from a 10-year-old boy’s, which is again different from a 15-year-old boy’s — and girls have a different normal growth curve still.

The CDC BMI-for-age approach solves this by comparing a child’s BMI only to other children of the same age and sex, using a reference population drawn from multiple national surveys. The result is a percentile — a rank from 0 to 100 that shows where the child sits relative to peers.

How it works

First the ordinary BMI, then a transformation to a z-score using the CDC LMS parameters for the child’s age and sex:

BMI = weight(kg) / height(m)^2

if L != 0:  z = ((BMI / M)^L - 1) / (L x S)
if L == 0:  z = ln(BMI / M) / S

percentile = normalCDF(z) x 100

Here L corrects the skewed shape of the BMI distribution, M is the median BMI for that age and sex, and S is the coefficient of variation. The tool stores CDC LMS rows from age 2 to 20 and interpolates to the child’s exact age in months, which is important because percentiles shift noticeably between birthdays during growth spurts.

CDC weight categories for children

Percentile rangeCDC category
Below 5thUnderweight
5th to below 85thHealthy weight
85th to below 95thOverweight
95th and aboveObesity

These thresholds are the standard CDC definitions and are used consistently across paediatric research, clinical settings, and school health programmes.

Worked example

An 8-year-old boy who is 128 cm and 26 kg:

  • BMI = 26 ÷ 1.28² ≈ 15.9 kg/m²
  • With boys’ age-8 CDC LMS values (M ≈ 15.5), this z-score is slightly positive.
  • Result: approximately the 60th–70th percentile, a healthy weight.

For comparison, a 15-year-old boy with the same BMI of 15.9 would land near the 5th percentile (underweight) because the reference median at age 15 is higher. This shows why age matters so much in paediatric BMI assessment.

Notes for clinicians and parents

  • Provide age in years and months for the most accurate result, since the CDC LMS parameters are interpolated by month, not just by year.
  • For children under 2 years, the CDC BMI-for-age chart does not apply. Use the WHO weight-for-length or weight-for-height chart instead.
  • At very high BMI values, the CDC recommends an extended z-score formula to avoid truncation; this general calculator produces a close approximation in those ranges but may differ slightly from clinical software.
  • A percentile result is a screening tool, not a diagnosis. Discuss any result below the 5th or at or above the 85th percentile with a paediatrician, who can consider growth trends over time, pubertal stage, muscle mass, and family history.

All calculation runs privately in your browser — no data is transmitted.