About and methodology
Technical reference for the statistics engine. Local calculations, auditable formulas and no account required.
Formulas and rules
Conversion rate
CR = conversions / users
Relative and absolute lift
lift = (CRv − CRc) / CRc; Δ = CRv − CRc
Effective alpha
α′ = (1 − confidence) / (groups − 1)
With Bonferroni and 3+ groups. Without correction, α′ = 1 − confidence. Bayesian analysis ignores Bonferroni and hypothesis.
Critical values and power
zα = Φ⁻¹(1 − α′/2) [two-sided]; zα = Φ⁻¹(1 − α′) [one-sided]; zβ = Φ⁻¹(power)
Sample per variant
n = (zα√(2p̄(1−p̄)) + zβ√(p₁(1−p₁)+p₂(1−p₂)))² / (p₂−p₁)²; p₂ = p₁(1+lift); p̄ = (p₁+p₂)/2
Traffic, MDE and duration
p = weekly conversions / weekly traffic; n(w) = weekly traffic × traffic share × w / groups; days = ceil(n × groups / (weekly traffic / 7 × traffic share))
MDE is the lift requiring n(w) visitors, solved by bisection in the sample formula. Absolute MDE = p × relative MDE. Zero conversions prevent planning. p₂ cannot exceed 1.
Unpooled standard error
SE = √(CR(1−CR)/n); SEdiff = √(SEc²+SEv²)
Z test
z = (CRv−CRc)/SEdiff; p₂ = 2(1−Φ(|z|)); p₁ = 1−Φ(z); significant if p < α′
Confidence interval and observed power
CIΔ = Δ ± Φ⁻¹(1−α′/2)SEdiff; CIlift ≈ CIΔ/CRc; observed power = Φ(|z|−zα)
One-sided analysis shows only the lower bound, Δ − zα SEdiff. Relative CI is approximate. Observed power does not replace planning.
Bayesian model
prior = Beta(1,1); posterior = Beta(1+conversions,1+users−conversions)
50,000 Monte Carlo draws per group. Seed derived from users and conversions, giving reproducible results.
Probabilities, loss and credibility
P(beat) = P(CRv>CRc); P(best) = P(CRg = max CR); loss = E[max(CRc−CRv,0)]; relative loss = loss/CRc; interval = lift quantiles [(1−conf)/2,1−(1−conf)/2]
Sequential testing
g(α,t) = 2−2Φ(Φ⁻¹(1−α/2)/√t); t = current n / maximum n
Lan-DeMets O'Brien-Fleming type. One-sided g(α,t). Two-sided, each side g(α/2,t), using the gsDesign/ldbounds convention. Boundaries use Armitage-McPherson-Rowe recursive integration. Bonferroni precedes spending. Fixed sample grows by the design inflation factor. Without a plan, information fractions are equally spaced. Reaching maximum sample implies final analysis. No futility boundary.
Verdict
Bayesian: winner P≥conf; loser P≤1−conf. Z test: significant and Δ>0 wins; significant and Δ<0 loses only two-sided.
Without a conclusive result, achieved MDE ≤ reference lift means no meaningful difference. Above it means underpowered. In sequential mode, significant means crossing the boundary.
Additional days
max(0,ceil((required n − min group n) × groups / (total users / days)))
SRM
χ² = Σ(observed−expected)²/expected; expected = total users × split; df = groups−1; alert p<0.01
Revenue and forecast
monthly visitors = (total users/days) × 30/traffic share; extra conversions = monthly visitors × Δ; monthly contribution = extras × value; impact = contribution × months; forecast = monthly visitors × CRg × value × months
Currency changes labels and formatting only, with no exchange conversion. Both methods use observed rates. Inconclusive values are unconfirmed estimates.
Alerts
srm · Critical
Chi-square p < 0.01.
stopped_early · Critical
Plan exists, current sample < planned sample, sequential off.
low_data · Warning
Significant and |convV − convC × nV/nC| ≤ 20.
under_7_days · Warning
Duration < 7 days.
over_8_weeks · Warning
Duration > 56 days.
underpowered · Warning
Inconclusive verdict and MDE > reference target lift.
bonferroni_off · Warning
3+ groups and Bonferroni off.
incomplete_weeks · Info
Duration ≥ 7 days and not a multiple of 7. Suggest ceil(days/7) × 7.
mde_high · Info
Achieved MDE > 10%.
methods_disagree · Info
Bayesian and Z test verdicts differ.
seq_not_crossed · Info
Sequential on, boundary not crossed and not the final analysis.
Assumptions
Independent binary conversions, stable rates, intact group assignment and a metric chosen before the test. SRM, seasonality and peeking can invalidate interpretation. Revenue projections are linear and use observed rates.
What runs in the browser
All statistics run in a Web Worker in your browser. Inputs, plans and TL;DR live in the link fragment and local draft. They are not stored on the server.
What goes to AI
Only when you click Generate TL;DR do computed numbers and group names up to 40 characters pass through the Worker and OpenRouter to the Claude Haiku 5.5 model (Anthropic). OpenRouter may serve the model through Anthropic, Microsoft Azure, Google Cloud or AWS, using only providers that do not store data. The Turnstile token is used only for Cloudflare's anti-bot verification. No caching or storage of input or output. Limit of 20 summaries per day per IP and a 20-second timeout.
What Umami collects
Umami Cloud collects anonymous pageviews and usage events without cookies. URLs exclude fragments and query strings. Events include interface choices only, never test numbers, group names or AI text.
References
- ABTestGuide. A/B test calculator. Z test.
- Speero. A/B test calculator.
- gsDesign. Lan-DeMets spending functions.
- ldbounds. Lan-DeMets method for group sequential boundaries.
- O'Brien, P. C., Fleming, T. R. 1979. A multiple testing procedure for clinical trials. Biometrics 35, 549–556.
- Lan, K. K. G., DeMets, D. L. 1983. Discrete sequential boundaries for clinical trials. Biometrika 70, 659–663.