Build a small tool that a product team could use after an experiment: give it the results for version A and version B of a page (conversions or a numeric metric such as time on page) and it reports the effect size, a confidence interval, and whether the difference is statistically significant — in plain language a non-statistician can act on.
Project idea · ungraded
A/B Test Analyser
You will use
Milestones
Build the smallest working version first. Ticks are saved in this browser only.
Stretch goals
- Estimate the sample size needed to detect a given effect (power analysis) by simulation.
- Show what goes wrong when you check the p-value every day and stop early ('peeking').
- Handle more than two variants and correct for multiple comparisons.
Data
Generate data yourself with NumPy: for example 2,000 visitors per version with conversion rates
of 10% and 11% (rng.random(2000) < 0.11), or times drawn from rng.lognormal. Changing the true
effect and the sample size shows when a test can and cannot detect it.
Run it yourself
pip install numpy scipy pandas
python ab_test.py results.csv
Keep the analysis in functions so you can test each one with unittest, as in the course steps.