How it works
This is a two-proportion z-test. It compares the conversion rates of A and B and asks one question: if both versions really converted at the same rate, how often would a gap this big or bigger show up by chance? That chance is the p-value. When it is below 1 minus your confidence level, such as below 0.05 at 95%, the result is called significant. The test uses a pooled standard error, so both groups share one estimate of the spread.
conversion rate = conversions ÷ visitors
uplift = (rate B − rate A) ÷ rate A
pooled rate = (conversions A + conversions B) ÷ (visitors A + visitors B)
standard error = sqrt(pooled rate × (1 − pooled rate) × (1 ÷ visitors A + 1 ÷ visitors B))
z = (rate B − rate A) ÷ standard error
p-value = 2 × (1 − normal CDF of |z|)
Worked example
Example numbers, not benchmarks: version A had 5,000 visitors and 250 conversions, version B had 5,000 visitors and 310 conversions, and the confidence level is 95%.
- 1Conversion rate A250 × 100 ÷ 5,000 = 5.00%
- 2Conversion rate B310 × 100 ÷ 5,000 = 6.20%
- 3Relative uplift(6.20% − 5.00%) ÷ 5.00% = 24.00%
- 4Pooled rate(250 + 310) × 100 ÷ (5,000 + 5,000) = 5.60%
- 5z-score(rate B − rate A) ÷ pooled standard error = 2.61
- 6p-value2 × (1 − normal CDF of |2.61|) = 0.0091
- 7Significant?0.0091 is below 0.05 = Yes
What does significant mean?
Yes means the p-value is below your cutoff, so a gap this large would be unusual if A and B truly converted at the same rate. No means the data do not rule out chance at that level. It does not show the two versions are equal. The test assumes each visitor is counted once and that you chose the sample size before looking. Checking again and again and stopping when the numbers look good breaks that assumption. The normal approximation is also less reliable when conversions or non-conversions are very few.