A/B tests · PlanningMinimum detectable effect (MDE)

An MDE calculator: which effect your A/B test can see with your traffic and timeline. Absolute and relative MDE, a plain-language verdict, a week-by-week table, the formula and Python and R code.

Your numbers stay in the browser and are never sent anywhere

01Calculation02By week03Formula04Examples05Questions06Related
01

Calculation

Metric
Sample
Traffic to the whole page
Groups
α = 0.05 · power 80% · two-sided test
The test will detect effects from
+72 %2.00 → 3.44% · +1.44 pp

2,000 visitors per group in 4 weeks · power 80%, α = 0.05

It will see only big changes.
In 4 weeks the test detects changes from +72 % — rare for a button or copy tweak; smaller effects stay invisible.
02The longer the test, the smaller the effect it sees
DurationPer groupMDE
1 wk500+166 %
2 wk1,000+108 %
3 wk1,500+85 %
4 wk2,000+72 %
6 wk3,000+57 %
8 wk4,000+49 %
10 wk5,000+43 %
12 wk6,000+39 %

MDE falls slowly: halving it takes roughly four times the visitors.

03Formula
MDE comes from the sample size formula: find p₂ such that n(p₁, p₂) = N.
p₁ = 0.0200, N = 2,000 → p₂ = 0.0344, relative MDE = +72.0 %
Check in Python / R
from math import sqrt
from scipy.optimize import brentq
from scipy.stats import norm

p1, n = 0.02, 2000
alpha, power = 0.05, 0.8
z_a, z_b = norm.ppf(1 - alpha / 2), norm.ppf(power)

def need(p2):  # выборка на группу для p1 → p2
    pb = (p1 + p2) / 2
    return (z_a * sqrt(2 * pb * (1 - pb)) + z_b * sqrt(p1 * (1 - p1) + p2 * (1 - p2))) ** 2 / (p2 - p1) ** 2

p2 = brentq(lambda p: need(p) - n, p1 * 1.000001, 0.999999)
print(p2, p2 / p1 - 1)  # 0.034408
04

Examples

05

Frequently asked questions

MDE, the minimum detectable effect, is the smallest change a test reliably notices at the chosen α and power. Effects below the MDE are likely to be missed, and the test reports “not significant”. For example, at 2% conversion, 1,000 visitors a week and 4 weeks the MDE is +72%: conversion has to reach 3.44% for the test to see it with 80% power.

Updated