What a Z-Score Tells You and How the Probability Is Found
A z-score answers one question: how far is this value from the mean, measured in standard deviations? Score 85 on a test where the class averaged 70 with a standard deviation of 12 and your z-score is 1.25 — you are one and a quarter standard deviations above average. The number is unitless, which is the whole point, because it lets you compare a height in centimetres against a marks total against a reaction time in milliseconds on the same scale. Teachers use it to grade on a curve, quality engineers use it to flag parts drifting from spec, and lab researchers use it to spot readings that do not belong. Once you have z, the standard normal distribution gives you the probability attached to it.
The conversion is z = (x − μ) ÷ σ. Here x is your raw score in whatever unit the data uses, μ (mu) is the population mean in the same unit, and σ (sigma) is the population standard deviation, which must be greater than zero — with no spread every value equals the mean and z has no meaning. Rearranged, x = μ + z·σ recovers a raw score from a z-score. The probability comes from the cumulative distribution function Φ(z), the area under the standard normal curve to the left of z. Φ has no elementary closed form, so this calculator uses the Abramowitz and Stegun 7.1.26 error-function approximation, accurate to about 1.5 × 10⁻⁷, which reproduces a printed standard normal table to four decimals. Right-tail probability is 1 − Φ(z), two-tail is 2 × (1 − Φ(|z|)), and the percentile is simply Φ(z) × 100.
Work through that test score. With x = 85, μ = 70 and σ = 12, the numerator is 85 − 70 = 15 and z = 15 ÷ 12 = 1.2500. Feed that into Φ and you get 0.8944, so 89.44% of the class scored below you, the right tail P(X > 85) is 0.1056, and the two-tail probability is 0.2113. Compare that against the check points in the table on this page: z = 0 gives exactly 0.5000, z = 1 gives 0.8413, z = 1.96 gives 0.9750, z = 2.58 gives 0.9951, and z = −1.645 gives 0.0500. Those five are the values every z-table prints, and they are why 1.96 shows up in 95% confidence intervals. Run the reverse mode on a 90th percentile and you get z = 1.2816.
Three situations make this genuinely useful. A student checking a standardised test result wants the percentile, not the raw mark, because 85 means nothing without knowing the mean and spread. A production engineer measuring bolt diameters with a spec of 10 mm ± 0.05 mm can convert the tolerance limits to z-scores and read off the fraction of output that will fall outside spec, which is exactly how process capability is judged. A researcher screening a data set for bad readings often treats |z| > 3 as suspect, which corresponds to roughly 0.27% of a normal population. And in sample-mean mode the standard error σ/√n replaces σ, so a sample of 25 with mean 75 against a population mean of 70 and σ of 12 gives z = 5 ÷ 2.4 = 2.0833, not 0.4167.
The pitfall worth naming: z assumes σ is genuinely known and the population is roughly normal. If you estimated σ from a small sample, Student's t with df = n − 1 is the honest choice — its fatter tails account for the extra uncertainty, and at n = 10 the difference between 1.96 and 2.262 is not trivial. Also resist reading a z-score on visibly skewed data such as household income, where the mean sits well above the median and tail probabilities from the normal curve will be badly wrong. For extreme values this tool prints "< 0.0001" rather than a bare 0, because a tiny probability is not a zero one. Everything runs in your browser and none of your numbers are uploaded or stored.