What this calculator does
This sequential testing calculator lets you monitor an A/B test continuously and stop the moment the evidence is strong — without the false-positive inflation that makes "peeking" at classical tests infamous. Enter the current visitors and conversions for control and variant, as often as you like, and it returns an always-valid p-value and confidence interval computed with the mixture sequential probability ratio test (mSPRT), the method behind Optimizely's Stats Engine and the "peeking at A/B tests" literature.
Almost every team peeks — the honest fix is not more discipline, it is statistics designed for peeking.
How the mSPRT works
The test tracks a likelihood ratio comparing "no effect" against a mixture of possible effects . For an observed rate difference with estimated variance , the mixture likelihood ratio has a closed form:
Under the null hypothesis, is a martingale — its expected value never grows, no matter how long you watch it. That is the mathematical reason you may peek freely: the always-valid p-value can only be pushed below by genuine evidence, with probability at most over the entire lifetime of the test.
A worked example
Day 6 of a test: control 8,000 visitors / 800 conversions (10.0%), variant 8,000 / 920 (11.5%). A naive fixed-horizon z-test gives p ≈ 0.002 — but you have been checking every day, so that number no longer means what it claims. The mSPRT gives an always-valid p ≈ 0.02. Still below α = 0.05, so you can stop and ship — and this conclusion is honest about the daily monitoring. If the always-valid p had been 0.11, the right move would be to keep collecting, knowing tomorrow's check costs nothing statistically.
When to use it
- Any test whose results appear on a live dashboard that people actually look at.
- Tests where shipping early has real value (fixing a losing variant fast).
- Auditing past "wins" that were declared the day they crossed p < 0.05.
- When you cannot pre-commit to a sample size — though it is still worth checking the MDE calculator to confirm the test is feasible at all.
Common mistakes
- Applying sequential thresholds to a fixed-horizon p-value. The p-value on your analytics dashboard is almost certainly fixed-horizon; treating it as safe to monitor is precisely the peeking problem. Use this calculator's p-value instead.
- Stopping on the naive p-value and "confirming" with mSPRT later. Decide with the always-valid number; the naive one is for curiosity only.
- Skipping data-quality checks because the stats are fancy. mSPRT assumes valid randomization — run the SRM checker alongside it.
- Restarting the test after a near-miss. Killing a test at p = 0.06 and relaunching it "fresh" is peeking with extra steps. The martingale only protects you if the test keeps its history. Read more in our peeking guide.