Sample Ratio Mismatch (SRM) Calculator

Enter the visitors each variant actually received and the split you intended. The calculator runs a chi-square test to tell you whether your traffic split is broken.

Visitors this variant actually received
Expected split (weights, any scale)
A
Visitors
Expected split
B
Visitors
Expected split

Your split check

Sample ratio mismatch detected (p < 0.001). A split this uneven almost never happens by chance. Do not trust results from this test until you find the cause.

Chi-square 23.67 with 1 degree of freedom, tested against a 50/50 split across 20,700 visitors.

VariantObservedExpectedDeviation
A10,00010,350-3.4%
B10,70010,350+3.4%

Mida assigns visitors to variants deterministically and evenly, so splits like this stay clean. Free for up to 100,000 tested users a month.

Try Mida free

What Is Sample Ratio Mismatch?

Sample ratio mismatch (SRM) means the share of visitors each variant actually received does not match the split you configured. If you set up a 50/50 test and after two weeks variant A has 52,000 visitors while variant B has 48,000, that gap is far too large to be random chance. Something in the test setup is assigning or counting traffic unevenly.

SRM matters because the missing visitors are almost never missing at random. A redirect variant that loses visitors on slow connections is quietly removing your most impatient users from one arm. Whatever caused the imbalance also biased the sample, so the conversion rates you are comparing come from two different populations. A test with SRM cannot be trusted, no matter how significant the result looks.

How the SRM Check Is Calculated

The calculator runs a chi-square goodness-of-fit test: it compares the visitors each variant actually received against the number it should have received under your intended split, and asks how likely a gap this large would be if the split were working correctly.

χ² = Σ (observed − expected)² / expected
p = P(χ²k−1 > χ²)    k = number of variants
SRM flagged when p < 0.001, borderline when p < 0.01

The 0.001 threshold is deliberately much stricter than the usual 0.05. An SRM check runs on every test you ever look at, so a looser bar would cry wolf constantly. When p does fall below 0.001, a split that uneven happens by chance less than once in a thousand healthy tests. Treat it as a bug until proven otherwise.

Common Causes of SRM

Redirect tests losing traffic. Split-URL tests redirect one arm to a different page. Visitors on slow connections abandon during the redirect, so the variant page silently receives and records fewer people.

Variant code failing on some browsers. If the variant JavaScript throws on older browsers, those visitors may never be counted in that arm, while the control counts everyone.

Asymmetric bot filtering. Bots often land on the control URL. If filtering removes them after assignment, the control loses more visitors than the variant.

Caching and CDN layers. A cached page can serve one variant to visitors who were assigned the other, or bypass assignment entirely for repeat visitors.

Mid-test changes. Editing traffic allocation, audiences, or variants while a test is running reassigns future visitors without correcting past counts. If you must change a running test, restart it instead.

What To Do When SRM Is Detected

Stop reading the results. Find the cause first: check the redirect timing, test the variant on the browsers your audience uses, review bot filtering, and confirm nobody edited the test mid-flight. Once fixed, restart the test from zero. Continuing a test that had SRM keeps the biased sample in your data forever, and no amount of extra traffic dilutes it back to fair.

Try Our Other Free A/B Testing Tools

Frequently Asked Questions

What is sample ratio mismatch (SRM)? +
Sample ratio mismatch means the share of visitors each variant actually received does not match the split you configured. If you set a 50/50 test and one variant got 52,000 visitors while the other got 48,000, something in the setup is assigning traffic unevenly. Because the imbalance is usually caused by a bug rather than chance, any result from that test is suspect.
What p-value threshold does this SRM calculator use? +
The calculator flags SRM when the chi-square p-value is below 0.001, the threshold used across the experimentation industry. It also shows a borderline warning between 0.001 and 0.01. The bar is much stricter than the usual 0.05 because an SRM check runs on every test, so a looser threshold would produce constant false alarms.
My test deliberately splits traffic unevenly. Can I still check for SRM? +
Yes. Set the expected split fields to your intended ratio, for example 90 and 10. The values do not need to add up to 100; the calculator normalises them. SRM is always measured against the split you intended, whatever that split is.
The calculator detected SRM. What should I do? +
Stop trusting the test results and find the cause before restarting. Common causes: a redirect variant losing slow connections, bot filtering that hits one variant more than the other, the variant code failing on some browsers so those visitors never get counted, caching or CDN layers serving one variant from cache, and audiences edited mid-test. Fix the cause, then restart the test from zero rather than continuing it.

More free A/B testing calculators:

Significance Calculator Sample Size Calculator Duration Calculator Enough Traffic Checker

The A/B testing platform for people who
care about website performance

Mida is 10X faster than anything you have ever considered. Try it yourself.

Decorative graphicDecorative graphicDecorative graphicDecorative graphic