Guide
A percentile is a position, not a grade.
Last updated 21 August 2026
Baby Atlas writes your child's weight and height as a percentile on the official WHO curves. This page is the whole method: what the number claims, the arithmetic that produces it, the two places it is easy to get wrong, and the one thing about it that actually matters. It describes a published standard. It is not medical advice.
What the number says
The 40th percentile means that out of 100 healthy children of the same age and the same sex, about 40 weigh less than yours and 60 weigh more. That is the entire claim. It is a position in a healthy population, not a score out of 100, and there is nothing in it to pass or fail.
The 50th is not a target. Half of all perfectly healthy children are below it, by definition. If every child moved up to the 50th, the 50th would move with them.
How wide "normal" really is
Numbers make this concrete. On the WHO weight-for-age standard, a boy at 3 months:
| Percentile | Weight | Read as |
|---|---|---|
| 3rd | 5.1 kg | bottom of the normal range |
| 15th | 5.6 kg | normal |
| 50th | 6.4 kg | the median |
| 85th | 7.2 kg | normal |
| 97th | 7.9 kg | top of the normal range |
Between the 3rd and the 97th there is 2.8 kg of room, and every child in it is growing normally. A 5.6 kg boy and a 7.2 kg boy of the same age are both unremarkable. Percentiles feel precise because they arrive as a number, but most of what they report is how much natural spread there is.
Which children the curve is made of
Not an average of the children around you. The WHO Child Growth Standards come from the Multicentre Growth Reference Study, which followed healthy children in six countries: Brazil, Ghana, India, Norway, Oman and the USA. The children were breastfed, their mothers did not smoke, and they were raised in conditions favourable to reaching full growth potential.
That makes the curves prescriptive rather than descriptive. They describe how children grow when nothing is holding them back, not how the children of a particular country happen to grow. It is why this standard is used worldwide for the first years, and why in the United States the CDC recommends the WHO charts under 24 months and its own charts after that.
Boys and girls have separate tables. The same weight at the same age is a different percentile depending on sex, which is why the app cannot produce a number at all until the child's sex is set.
L, M and S
WHO does not publish a curve as a picture. For every age and sex it publishes three numbers, called L, M and S.
- M is the median, the weight at the 50th percentile for that age.
- S is the spread, expressed as a fraction of the median rather than in kilograms, so it stays meaningful as the child grows.
- L is a power that handles skew. Infant weight is not spread symmetrically around the median: there is more room above it than below. L bends the arithmetic to match.
The measurement first becomes a z-score, which is how many standard deviations it sits from the median:
Z-score
z = ((value / M)L − 1) / (L × S)
When L is zero that form divides by zero, so the log version is used instead:
Z-score when L = 0
z = ln(value / M) / S
The z-score then becomes a percentile through the normal distribution. This is the LMS method, published by Cole and Green, and it is the same arithmetic behind the printed chart in a pediatrician's office. The chart and the number are the same thing. The number just skips the eyeballing.
Worked example. A boy, 3 months, 6.0 kg. The WHO table gives L = 0.1738, M = 6.3762, S = 0.1173.
Worked
z = ((6.0 / 6.3762)0.1738 − 1) / (0.1738 × 0.1173) = −0.516
A z of −0.516 is the 30th percentile. So 6.0 kg at 3 months is the 30th, and the median for that age is 6.38 kg. The child is 380 g below the middle of a range that is 2.8 kg wide.
Height is simpler than weight
For length and height, L is exactly 1 at every age. That is not a rounding. Height really is distributed symmetrically, so there is no skew to correct and the formula collapses to:
Z-score for height
z = (value − M) / (M × S)
Weight needs the power term. Height does not. A small thing, but it is the reason the two metrics cannot share one simplified shortcut.
Why a month is 30.4375 days
A year is 365.25 days. Divide by 12 and a month is 30.4375 days. WHO generated the tables on that definition, so on the curve "3 months" means 91.3 days of life, not "the 3rd of the month after a birthday on the 3rd".
That sounds pedantic until you see how fast the median moves early on. A boy's median weight is 4.47 kg at 1 month and 5.57 kg at 2 months: 1.1 kg in a month, about 36 g a day. Three days of age error is 108 g of median.
Put through the arithmetic, a boy of 1.5 months weighing 5.0 kg is the 49th percentile. Take his age as three days older and the same weight on the same scale reads as the 42nd. Nothing about the child changed.
So Baby Atlas keeps two separate age calculations and never mixes them. Display age counts completed calendar months, because "5 months old" is what a person says. Curve age counts days divided by 30.4375, because that is what the tables were built on.
Between the monthly rows
WHO publishes one row per whole month. Real children get measured on ordinary days, so a 46-day-old falls between two rows. Baby Atlas interpolates the three parameters linearly between the two bracketing months and computes the z-score from the result. Interpolating the parameters rather than the finished percentile boundaries keeps the arithmetic consistent with the published curve.
The tables in the app run 0 to 36 months, both metrics, both sexes, generated from WHO's official igrowup standard and checked against WHO's own published monthly tables to four decimal places.
The trend matters more than the number
This is the part worth keeping if you skip the rest.
A child on the 15th percentile who stays on the 15th for a year is growing well. A child who falls from the 60th to the 20th across two visits is worth a conversation, even though both of those numbers sit inside the normal range and neither would raise a flag on its own.
A single percentile is a snapshot. Growth is a direction. A chart shows a direction and a number does not, which is why the app plots every measurement on the curve instead of only printing the latest percentile.
Two ordinary reasons a single number lies: newborns shed a chunk of their birth weight in the first days and take a couple of weeks to get it back, and the same baby weighs differently with a full nappy, on a different scale, at a different hour. That is why Baby Atlas treats a weight drop under 5% between entries as noise rather than tinting it red.
Why a big baby is not flagged like a small one
The colour bands in the app are deliberately asymmetric, and differently asymmetric per metric.
| Percentile | Weight | Height |
|---|---|---|
| Below the 3rd | consult your pediatrician | consult your pediatrician |
| 3rd to 15th | below average, worth watching | below average, worth watching |
| 15th to 85th | normal range | normal range |
| Above the 85th | above average, no warning | normal, no warning |
| Above the 99.9th | consult your pediatrician | worth mentioning at the next checkup |
Low is the clinically meaningful direction for both. Faltering weight gain and stunting are real things a chart catches early, so below the 3rd asks for a professional either way.
The top end is where the two part. High weight-for-age on its own is not urgent: WHO's action line is +3 SD, and above the 97th only means something read together with weight-for-length, which this app does not compute. A big, proportionate baby should not collect a red warning for standing in a band that 3% of healthy children occupy.
For height there is no "too tall" at all. WHO's own interpretation of height-for-age reads "normal (tall)" above +2 SD. Tall stature is assessed against the parents' height and against a child crossing upward through the channels over time, neither of which a single percentile can show. So height above the 85th is plain normal here, and even the extreme is a quiet suggestion to mention it, never a flag.
Two positions no child can hold
A percentile is a continuous value, so rounding it can land on 100 or on 0. Neither exists. The 100th would mean heavier than every child including themselves, and the 0th the same downward. Baby Atlas writes those as "above the 99th" and "below the 1st" rather than rounding into a position nobody can occupy.
What is not on the chart
WHO publishes more standards than any app charts. Baby Atlas plots weight-for-age and length/height-for-age. It does not compute weight-for-length, BMI-for-age or head-circumference-for-age, and head circumference is recorded once at birth and never charted.
Weight-for-length is the one worth knowing about, because it is the standard that answers whether a heavy baby is heavy for their length or simply a large child. That question needs a pediatrician, not this app.
One measurement detail changes the number outright: up to 24 months a child is measured lying down (recumbent length), and after 24 months standing (height). The same child measures about 0.7 cm shorter standing. WHO publishes the offset and the app applies it, so the curve stays continuous across the second birthday instead of showing a phantom 0.7 cm drop. If you measure at home, keep measuring lying down until two.
This is arithmetic, not advice
Everything above describes how a published standard is computed. A percentile is not a diagnosis, and neither is a colour in an app. Baby Atlas has no opinion about your child's health and cannot have one: it sees a number from a scale, not the child in front of a doctor. Bring the chart to a checkup and let someone who has examined your baby read it.
Source
World Health Organization, Child Growth Standards. who.int/tools/child-growth-standards
Baby Atlas plots weight and height on these curves and writes the percentile out as a sentence. It is on the App Store for iPhone and Apple Watch. See also the FAQ or how it compares.