The LMS method
Growth charts look simple: you plot a point and read off a percentile. Under the hood, WHO and CDC both use the same statistical technique — the LMS method, introduced by Cole & Green in 1992. It's what lets a single reference table describe the entire distribution of a measurement at every age.
The three LMS parameters
For every age and sex, the reference tables give three numbers:
- L — the Box-Cox power used to normalize the distribution's skewness.
- M — the median of the distribution (the 50th percentile value).
- S — the coefficient of variation (spread relative to the median).
These three numbers compress what would otherwise be a whole empirical distribution per age into a smooth, differentiable model. Between tabulated ages, you linearly interpolate L, M, and S.
From measurement to z-score
Given a measurement X and the L, M, S values for that child's age and sex:
z = ((X / M)^L − 1) / (L × S) when L ≠ 0 z = ln(X / M) / S when L → 0
The second form is the limiting case as L approaches zero — the Box-Cox transformation degenerates into a log transformation. In implementations, we use the log form whenever |L| < 1e-8 to avoid numerical instability.
From z-score to percentile
Once you have a z-score (standard deviations from the median of the transformed distribution), the percentile is just the standard normal cumulative distribution function applied to z. Most implementations use the Abramowitz & Stegun 26.2.17 approximation, which is accurate to about 7.5 × 10⁻⁸.
From percentile to measurement (drawing the curves)
To plot the 3rd through 97th percentile bands, we invert: start with a target z-score (e.g. z = −1.881 for the 3rd percentile), solve the LMS equation for X:
X = M × (1 + L × S × z)^(1/L) when L ≠ 0 X = M × exp(S × z) when L → 0
The inverse normal CDF we use is the Beasley-Springer-Moro rational approximation.
WHO vs CDC: same math, different tables
WHO publishes LMS tables from the Multicentre Growth Reference Study (0–60 months), which followed ~8,400 children raised under optimal conditions in six countries. CDC publishes LMS tables from NHANES surveys (0–240 months) representing the US population from the 1960s to 1990s. The LMS machinery is identical; the only difference is what population the L, M, S values describe.
Reference implementations
This site's math is open-source (MIT) — see CDC calculator and WHO calculator for the live version. A small TypeScript module (roughly 60 lines) handles interpolation, the Box-Cox / log branch, and the CDF conversions.