Sample Ratio Mismatch (SRM) Checker
Before you read an A/B test result, check that the traffic split worked. A sample ratio mismatch, such as 50.8% / 49.2% when you planned 50/50 on a large test, usually means a bug in assignment, redirects or tracking, and makes the test result untrustworthy.
Updated · By Bibin XavierData 3600 × 8
| Respondenttext · 150 levels | Tasknumeric | Alternativenumeric · coded | Chosennumeric · coded | Brandtext · 3 levels | Pricenumeric · coded | Storagetext · 3 levels | Warrantytext · 2 levels |
|---|---|---|---|---|---|---|---|
| R001 | 1 | 1 | 1 | Apex | 299 | 64 GB | 1 year |
| R001 | 1 | 2 | 0 | Zenit | 399 | 128 GB | 1 year |
| R001 | 1 | 3 | 0 | Apex | 499 | 128 GB | 1 year |
| R001 | 2 | 1 | 0 | Nova | 499 | 64 GB | 1 year |
| R001 | 2 | 2 | 0 | Zenit | 299 | 64 GB | 2 years |
| R001 | 2 | 3 | 1 | Nova | 399 | 64 GB | 2 years |
| R001 | 3 | 1 | 0 | Apex | 299 | 64 GB | 1 year |
| R001 | 3 | 2 | 1 | Nova | 299 | 128 GB | 2 years |
Variables and options
Results
Calculated in your browserObserved and expected allocation
| Variant | Observed | Expected | Observed share | Planned share | Difference | Std. residual |
|---|---|---|---|---|---|---|
| Control | 50,421 | 49852.0 | 50.571% | 50.000% | +569 | 2.55 |
| Variant B | 49,283 | 49852.0 | 49.429% | 50.000% | -569 | -2.55 |
Note. χ² goodness-of-fit test against the planned allocation; with two variants the exact binomial test gives the same answer without the large-sample approximation. Threshold p < 0.001: SRM checks use a strict threshold because they are run on every test.
Observed vs planned share
Interpretation
The traffic split differs from the plan (χ²(1) = 12.99, p < .001): this is a sample ratio mismatch. Do not trust the test’s conversion results until the cause is found. Common causes are bots or filters that remove users unevenly, redirects or slow pages that lose users in one variant, assignment bugs, and tracking that fires differently between variants. Check the split by day, browser and platform to locate it.
How to cite this tool
Using these results in a thesis, journal article, report or class assignment? Please cite this free tool so others can find it. It keeps the site free.
APA 7
Xavier, B. (2026). Sample Ratio Mismatch (SRM) Checker [Web application]. FreeStatisticalTools.com. https://freestatisticaltools.com/sample-ratio-mismatch-checker/
BibTeX
@software{xavier_srmchecker_2026,
author = {Xavier, Bibin},
title = {Sample Ratio Mismatch (SRM) Checker},
publisher = {FreeStatisticalTools.com},
year = {2026},
url = {https://freestatisticaltools.com/sample-ratio-mismatch-checker/},
note = {Web application}
}Suggested sentence for your methods section: “The analysis was carried out with the free Sample Ratio Mismatch (SRM) Checker tool on FreeStatisticalTools.com (Xavier, 2026).”
What is a sample ratio mismatch?
A sample ratio mismatch occurs when the observed traffic split of an A/B test differs from the planned allocation by more than chance allows. This checker runs a chi-square goodness-of-fit test, and an exact binomial test for two variants, on the visitor counts, so you know whether the experiment can be trusted before you read its results.
When to use a sample ratio mismatch
Run an SRM check on every A/B or multivariate test before looking at the outcome metric, and again if you see a surprisingly large effect: it is the most common sign that an experiment is broken.
Assumptions
- Counts are the units of randomisation (users, sessions or devices) as assigned, not conversions.
- The planned allocation is fixed for the whole test; ramp-ups that change the split over time need separate checks per period.
How to set up your data
Enter the number of users in each variant and the planned percentage split, for example 50, 50 or 34, 33, 33.
What a sample ratio mismatch is
Every A/B test has a planned allocation: 50% of users to the control and 50% to the variant, or 34/33/33 for a three-arm test. Because assignment is random, the observed split is never exactly the planned one, but with thousands of users it should be very close. A sample ratio mismatch (SRM) occurs when the observed split differs from the plan by more than chance allows. For example, 50,421 users in the control and 49,283 in the variant looks almost balanced (50.6% vs 49.4%), yet with nearly 100,000 users the probability of such a difference arising by chance is about 0.03%.
SRM matters because it is a symptom: something is removing or adding users unevenly between the variants, and whatever causes it is very likely related to the outcome as well. Microsoft’s experimentation platform team found SRM in about 6% of their experiments, and teams at Booking.com, LinkedIn and others report similar rates. A test with SRM cannot be trusted, however large and significant its effect looks; the right response is to find and fix the cause, not to interpret the result.
How the check works
The tool compares the observed counts with the counts expected from the planned allocation using a chi-square goodness-of-fit test:
χ² = Σ (observed − expected)² / expected, with k − 1 degrees of freedom
where k is the number of variants. For two variants it also gives the exact binomial test, which does not rely on the large-sample approximation; with the sample sizes typical of online tests, the two tests agree closely. The table shows each variant’s observed and planned share, the difference in users and the standardised residual, which points to the variant that deviates most in tests with three or more arms.
Why the threshold is strict
SRM checks are run on every experiment, often every day, so a conventional threshold of p < .05 would raise many false alarms. Industry practice is to use a much stricter threshold: p < .001 is a good default, and several large platforms use p < .0005. With large samples, real mismatches usually produce p-values far below these thresholds, so the strict cut-off costs little sensitivity.
Worked example
The default example enters 50,421 and 49,283 users for a planned 50/50 split. The χ²(1) statistic is 12.99 and the exact binomial p-value is about .0003, below the .001 threshold: this test has a sample ratio mismatch. The control has 569 more users than expected (standardised residual 2.55). Before reading the conversion results, the team should investigate why roughly 1,100 users are missing from the variant, for example a slower page that loses users before tracking fires.
Common causes of SRM
- Redirects and page speed: if the variant redirects users or loads more slowly, some users leave before they are counted, and those users differ from the rest.
- Bots and filtering: bot-detection or data-cleaning rules that interact with the variant (for example a change that makes bots easier or harder to detect).
- Tracking differences: the analytics event that counts exposure fires differently in the variants, or is blocked by ad blockers in one variant.
- Assignment bugs: faulty hashing, users switching between variants, caching that serves one variant more often, or a variant that crashes on some browsers.
- Triggering conditions: users are counted only when they reach a feature that behaves differently between variants.
- Ramp-ups: changing the allocation during the test (for example from 10/90 to 50/50) while analysing all data with the final split.
- Interference from other experiments running at the same time on the same users.
How to investigate an SRM
- Check the split by day: a mismatch that starts on a particular date points to a deployment or tracking change.
- Break the split down by browser, device, operating system, country and new vs returning users: mismatches concentrated in one segment point to the cause.
- Compare the counts at each step of the pipeline: assignment logs, exposure events, analytics sessions. The step at which the ratio breaks is where users are lost.
- Look for differences in page performance and error rates between variants.
- Fix the issue and rerun the experiment; do not try to rescue the data by reweighting, because the lost users are not missing at random.
What to enter
Enter the number of units of randomisation in each variant (users, devices or sessions, whichever your platform assigns), separated by commas, and the planned allocation as percentages, for example 50, 50 or 20, 40, 40. Variant names are optional. Do not enter conversions: SRM is about who was assigned, not about outcomes. If the allocation changed during the test, check each period with its own planned split.
SRM and other experiment checks
An SRM check belongs at the start of every analysis, together with a check that pre-experiment metrics are balanced (an A/A comparison of behaviour before the test started) and that the test ran for its planned duration. Once the split passes, analyse the result with the A/B test significance calculator, the Bayesian A/B test calculator or, for several variants, the A/B/n test calculator, all on this site. Plan future tests with the sample size and duration calculator.
Reporting
Report the observed and planned split, the test and p-value, the threshold and the decision. Example: “A sample ratio mismatch check showed that the observed split (50.57% / 49.43%, N = 99,704) deviated from the planned 50/50 allocation, χ²(1) = 12.99, p < .001; the experiment was paused to investigate.”
Glossary of SRM terms
- Planned allocation: the intended share of users in each variant, for example 50/50 or 10/90 during a ramp-up.
- Goodness-of-fit test: a chi-square test of whether observed counts match the expected counts implied by the planned allocation.
- Exact binomial test: for two variants, the exact probability of a split at least as extreme as the one observed under the planned ratio.
- Standardised residual: (observed − expected) / √expected for one variant; values beyond about ±3 flag the variant that deviates most.
- Triggered analysis: an analysis restricted to users who reached the changed feature; triggering conditions are a common source of SRM.
- A/A test: an experiment in which both arms receive the same experience; it checks the platform and should show neither SRM nor metric differences.
- Ramp-up: gradually increasing a variant’s share of traffic; analyse each allocation period separately.
Key references: Fabijan et al. (2019), “Diagnosing sample ratio mismatch in online controlled experiments”, KDD; Kohavi, Tang and Xu (2020), Trustworthy Online Controlled Experiments.
How to use this calculator
- Enter the values. Fill in variant names (comma-separated, optional), visitors or users per variant, planned allocation (% per variant) and alarm threshold.
- Read the results. Results update automatically. Read the plain-English interpretation, then use Copy table to paste APA-style tables into Word and Copy for the results sentence.
How to report a sample ratio mismatch in APA style
Report the observed and planned split, the χ² test and p-value, and the decision.
Frequently asked questions
What is a sample ratio mismatch?
A difference between the observed and planned split of users across variants that is too large to be due to chance.
Why does SRM matter?
It signals that users are lost or added unevenly, usually in a way related to the outcome, which makes the test result untrustworthy.
Which p-value threshold should I use?
A strict one, such as p < .001 or p < .0005, because SRM checks are run on every experiment.
What causes SRM?
Redirects and slow pages, bot filtering, tracking differences, assignment bugs, triggering conditions and changes to the allocation during the test.
What counts should I enter?
The number of randomisation units (users, devices or sessions) assigned to each variant, not conversions.
What should I do if there is an SRM?
Investigate by day and segment, find and fix the cause and rerun the experiment rather than trying to reweight the data.
Related tools
See also
Learn this method step by step in the free course Customer and Marketing Analytics, with exercises and a certificate.
Browse all categories
Data cleaning and preparation · Describe and explore · Compare means · Nonparametric tests · Correlation and regression · Bayesian statistics · Categorical data · Reliability and agreement · Multivariate analysis · Structural equation modeling · Econometrics and time series · Panel data and causal inference · Marketing research · Marketing analytics · Survival, clinical and meta-analysis · Study planning and calculators · PLS-SEM