← Glossaryz-score (standard score)
How many standard deviations a value is from the mean: (x - mean) / SD.
Common mistakes
- Reading percentiles off the normal table for skewed data. A z of 2 on 90-day spend does not mean "top 2.3%"; with a long right tail the real share can be quite different.
- Mixing up SD and standard error in the denominator. For a single value divide by the SD; for a sample mean or a difference in an A/B test divide by the standard error.
- Letting outliers set the scale. One huge order inflates both the mean and the SD, so other unusual values end up with modest z-scores (masking). Robust rules such as the IQR fences are safer for flagging outliers.
- Treating |z| > 2 as "something happened". If you scan 50 dashboard metrics every week, a couple will cross 2 by chance alone.
- Forgetting the sign. A z of −2 is just as unusual as +2, only in the other direction; decide in advance whether you care about both tails.
A z-score translates a raw value into "how many standard deviations away from the mean is this?". The formula is
z=σx−μ
where x is the value, μ the mean and σ the standard deviation. With sample data you use xˉ and s instead. A z-score of 0 is exactly average, +2 is two SDs above, −1 is one SD below. The units cancel out, so an order value in dollars and a weekly order count become comparable numbers on one scale. That is why z-scores are also used for standardisation before clustering or regression.
The second use is reading a value against the normal curve. If the variable is roughly normal, the z-score tells you what share of values lie below it via the standard normal table (or NORM.S.DIST(z, TRUE) in a spreadsheet). A few anchors worth remembering:
Many test statistics are z-scores in disguise. The two-proportion z-test in an A/B test takes the observed difference in conversion rates and divides it by its standard error: it asks how many standard errors the result is from "no difference". That is why ∣z∣>1.96 corresponds to p<0.05 in a two-tailed test.
One caveat: turning a z-score into a percentile only works when the data are close to normal. For skewed metrics such as spend per customer, a z-score still measures distance in SD units, but the table's percentages will be off.
Reading one order. Suppose CatChow's order values are roughly normal with μ=$50 and σ=$12.
- An order of $74: z=(74−50)/12=24/12=2.0. The table gives 97.7% below z=2, so only about 2.3% of orders are this large or larger.
- An order of $41: z=(41−50)/12=−9/12=−0.75. The table gives about 22.7% below, so roughly one order in four or five is smaller.
Comparing apples and kibble. Last week the growth team saw two jumps and asked which one is more unusual:
- Orders: 1,360 against a usual weekly mean of 1,200 with SD 80, so z=(1,360−1,200)/80=160/80=2.0.
- Average order value: $53 against a usual $50 with SD $2, so z=(53−50)/2=3/2=1.5.
In raw terms "+160 orders" and "+$3" can't be compared. In z-scores the order count is further from normal: a week this high happens about 2.3% of the time, versus about 6.7% for the AOV jump. The order spike is the one to investigate first.