How Significance Testing Works
Two proportions (A and B) rarely differ by exactly 0%. The question is whether the difference is real or noise. A two-proportion z-test computes the probability that a difference this large would appear if there were no real difference.
The Math
p̂A = cA / nA p̂B = cB / nB p̂pooled = (cA + cB) / (nA + nB) SE = √(p̂pooled × (1 − p̂pooled) × (1/nA + 1/nB)) z = (p̂B − p̂A) / SE p-value = 2 × (1 − Φ(|z|))
Reading the Result
- p < 0.01 — Very strong evidence. Ship B.
- p < 0.05 — Statistically significant (standard threshold).
- p < 0.10 — Suggestive. Continue testing.
- p ≥ 0.10 — No significant difference. Keep running.
Common Traps
- Peeking early. Checking significance daily inflates false positives. Pre-commit to a sample size.
- Multiple variants. Testing 5 variants? Adjust the threshold (Bonferroni) or you'll ship noise.
- Small samples. Under ~1,000 visitors per variant, results are unstable.
- Novelty effect. New designs often spike then settle. Wait 2+ weeks.