ForHosting KIT · Health & fitness

Pediatric BMI z-score calculator

Place a child's BMI on the growth-chart scale: a BMI of 17.2 with reference values L -2, M 16.5 and S 0.08 for that age and sex gives a z-score of almost one half, just above the median. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Value
17.2
L
-2
M
16.5
S
0.08
You get
Z score
0.4983690508

Pediatric body mass index cannot be judged with adult cut-offs of twenty-five and thirty. Growth charts describe how a child's BMI sits relative to peers of the same sex and age, and the standard continuous metric is the LMS z-score used by WHO and CDC references. This pediatric BMI z-score calculator accepts a measured value X (usually BMI in kilograms per square meter) together with the Box–Cox power L, the median M, and the coefficient of variation S for that sex and age, then returns a deterministic z-score from the Cole LMS transform. When L is zero the log form is used; otherwise the power form applies.

What the LMS pediatric BMI z-score measures

Growth references do not store a simple mean and standard deviation for BMI because the distribution is skewed and changes with age. The LMS method of Cole and colleagues models the age-and-sex-specific distribution with three curves: L, the Box–Cox power that removes skewness; M, the median of the measurement; and S, the coefficient of variation. Given a measured value X for a child, the standardized residual on that transformed scale is the z-score.

When L is not zero the formula is z equals open parenthesis open parenthesis X over M close parenthesis to the power L minus one close parenthesis divided by open parenthesis L times S close parenthesis. When L is exactly zero the transform reduces to the natural logarithm: z equals the natural log of X over M, all divided by S. A z-score of zero means the measurement equals the reference median; positive values lie above the median and negative values below it.

Unlike a hard percentile band alone, the continuous z-score supports longitudinal tracking, research models, and fine-grained screening cut-offs such as minus two or plus two standard deviations. This capability does not embed a particular national table: you look up L, M, and S for the child's sex and age from WHO, CDC, or a local LMS publication and pass those four numbers in. That design keeps the engine tiny, transparent, and usable with any published LMS row while still matching the clinical definition of a pediatric BMI z-score.

EHR and growth dashboards

Resolve L, M, S from a local reference cache and compute BMI z-scores for child growth views without embedding full chart tables in the browser.

Teaching the Cole LMS transform

Let students supply L, M, S and a measured BMI to verify hand calculations of the power and log branches of the pediatric z-score formula.

How do I compute a pediatric BMI z-score with LMS parameters?

Send positive value (measured BMI), finite l (Box–Cox L), positive m (median M), and positive s (coefficient of variation S).

Where do L, M, and S come from?

From a published growth reference for the child's sex and age (for example WHO or CDC BMI-for-age LMS tables). This tool does not embed those tables; you look up the row and pass L, M, S.

What happens if value, m, or s is zero or negative?

LMS z-scores require a positive measured value, a positive median M, and a positive S; non-positive inputs are rejected and not billed.

Is this the same as a standard (x − μ) / σ z-score?

No. Pediatric BMI uses the Cole LMS transform to handle skewness. Use this capability for LMS growth references; use a generic z-score tool when you truly have mean and standard deviation.

What does a positive or negative BMI z-score mean for a child?

Zero means the BMI equals the reference median for that age and sex. Positive values lie above it and negative values below it, and screening often uses cut-offs such as minus two or plus two.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/health/bmi-z-pediatric

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/health/bmi-z-pediatric \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":17.2,"l":-2,"m":16.5,"s":0.08}'
{
  "value": 17.2,
  "l": -2,
  "m": 16.5,
  "s": 0.08
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "health.bmi_z_pediatric",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Missing or non-numeric inputs fail with invalid_input and are not billed.

Input contract, response shape, and validation rules

Example: value seventeen point two, L equal to negative two, M equal to sixteen point five, S equal to zero point zero eight yields a modest positive z-score because the measured BMI sits slightly above the median under a left-skew power transform. When L is zero the response formula field explicitly states the log form so auditors can reproduce the arithmetic by hand. Optional fields are omitted rather than null. POST a JSON body with four required finite numbers: value (aliases bmi, x, measured, measurement), the positive measured anthropometric quantity, typically BMI in kg per square meter; l (aliases L, lambda, box_cox), the Box–Cox power which may be zero or negative; m (aliases M, median, mu), the positive reference median in the same units as value; and s (aliases S, cv, coefficient_of_variation, sigma_lms), the positive coefficient of variation. Each field may arrive as a JSON number or as a numeric string. Missing fields, empty strings, non-finite values, and non-positive value, m, or s fail with invalid_input naming the problem; those failures do not consume prepaid balance. On success the body echoes cleaned value, l, m, and s, reports z_score rounded to twelve significant decimal places for stable goldens across runtimes, includes a formula string that states which LMS branch was used, and sets method to lms_z_score. The endpoint does not compute BMI from weight and height, does not interpolate age months against an embedded chart, and does not return clinical labels; pair it with your own LMS table lookup and any band rules your protocol requires.

Where a pediatric LMS z-score API earns its keep

Research pipelines that already store or download WHO and CDC LMS tables need a tiny, dependency-free function that turns four numbers into a z-score without pulling a full biostatistics stack. Teaching and exam tools use the same contract to check student work on the Cole transform without hiding the parameters inside a black-box chart. Failed validation does not consume balance. Electronic health record plugins can resolve L, M, and S from a local reference cache and call this endpoint to standardize BMI for growth dashboards that prefer z-scores over raw percentiles. Keep requests small, pin the rounded z_score in tests, and you get reproducible LMS standardization for notebooks, workers, and classroom demos without standing up a growth-chart database of your own.

Research and survey pipelines

Standardize measured pediatric BMI against WHO or CDC LMS rows in batch jobs, pinning z_score for reproducible longitudinal and multi-site analyses.

What does the pediatric BMI z-score calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →