Data
Z-score to percentile
Subtract the mean, divide by the SD, look up the normal table - three steps take a measurement to a percentile, and each step carries an assumption.
Guides on Data: How a size study is built, Reading a nomogram without fooling yourself, The Veale meta-analysis, read properly
Turning a single measurement into a percentile takes three steps and two numbers you already have from the published data: the mean and the standard deviation. This is the arithmetic the Veale nomograms perform visually; done as numbers it is exactly as simple as it looks and worth working through once.
Step one: subtract the mean
Take your measurement and subtract the population mean from it. Using erect length, where Veale et al. (2015) report a mean of 13.12 cm: a measurement of 14.78 cm minus 13.12 cm leaves 1.66 cm. This number says how far your figure sits from the average, in centimetres, above or below.
Step two: divide by the standard deviation
Divide that difference by the standard deviation, the number describing typical spread around the mean, which for erect length is 1.66 cm. 1.66 cm divided by 1.66 cm gives 1.0. This result is the z-score: your distance from the mean, expressed in units of standard deviation rather than centimetres. A z-score of 1.0 means "one standard deviation above the mean", regardless of what the original units were.
Step three: look up the percentile
A z-score maps to a percentile through the standard normal distribution, a fixed, well-documented curve that does not change from one dataset to the next. A short table covers the range most figures fall into:
| Z-score | Percentile |
|---|---|
| -2.0 | 2nd |
| -1.5 | 7th |
| -1.0 | 16th |
| -0.5 | 31st |
| 0.0 | 50th |
| 0.5 | 69th |
| 1.0 | 84th |
| 1.5 | 93rd |
| 2.0 | 98th |
A z-score of 1.0, from the worked example above, lands at roughly the 84th percentile: a measurement one full standard deviation above the mean sits ahead of about 84 in 100 men in the reference sample.
A second worked example, below the mean
The same three steps work the same way on the other side of the mean, and it is worth seeing once so the sign does not trip you up. Take a measurement of 11.46 cm for erect length: 11.46 cm minus the mean of 13.12 cm gives -1.66 cm. Divide by the standard deviation of 1.66 cm and the z-score is -1.0 - a full standard deviation below the mean rather than above it. Reading the table for -1.0 gives the 16th percentile: this measurement sits ahead of only about 16 in 100 men in the reference sample.
The table is symmetric around zero by construction, because the normal curve is symmetric: the percentile for +1.0 and the percentile left over above -1.0 add to 100. A z-score between two of the table's rows can be read by interpolating roughly between the two nearest percentiles - the table is a convenience, not a hard boundary, and the underlying curve is continuous. A z-score of 0.0, by the same logic, always lands exactly on the 50th percentile for any measurement, because a figure equal to the mean is, by definition, the midpoint of a symmetric distribution.
The assumption every step of this rests on
This whole mapping only works because the standard normal table assumes the underlying population is normally distributed - the familiar symmetric bell shape. Veale 2015's data sits close enough to that shape for the assumption to be reasonable, which is why the paper's own nomograms use the same normal-curve logic rather than something more exotic. If a distribution departed from normal in its tails, a z-score computed this way would still be arithmetically correct but the percentile it implies would drift from the truth - which is exactly where nomograms and this calculation both get least reliable.
What this number is and is not
A percentile from this calculation is a statement about where a measured length sits against a specific clinician-measured population, with a specific mean and spread, nothing more. It is not the same kind of number as a rating: a service like Rate Cock does not compute a z-score at all, because it is scoring a photograph rather than placing a length on a distribution. An AI model inferring size from an image has no standard deviation behind its output in this sense, a comparative score built for browsing photos is measuring something else again, and a human judge's number is an opinion rather than a position on a normal curve - each answers a different question than "where does 14.78 cm sit against 15,521 measured men."