Skip to main content
Free Calculator

Sample Ratio Mismatch (SRM) Calculator

Check whether observed A/B test assignment counts match the planned traffic allocation. Get an SRM decision, per-group deviations, a shareable analyst summary, and a reproducible CSV.

Observed assignment counts

Use the original randomization unit: usually unique users, accounts, or sessions.

Allocation presets:
Group 1
Group 2

Fixed-horizon allocation check

No SRM signal at the selected threshold

This snapshot found no allocation mismatch. That does not prove assignment is healthy; also check exposure over time, instrumentation, and important pre-treatment covariates.

p-value

0.1594

Chi-square

1.9802

Degrees of freedom

1

Alert threshold

0.001

GroupExpectedObservedDeviation
Control10,10010,000-0.99%
Variant10,10010,200+0.99%

Keep the diagnostic with the experiment.

Save the allocation, investigation, decision, and learning with the experiment record for later review.

Create the experiment record

Share links keep allocation counts in the URL fragment, which is not sent to the server. Anyone with the link can read those counts.

The SRM check is done. Preserve the diagnosis.

A calculator answers one question and forgets it. GrowthLayer keeps each test your team saves — the hypothesis, the numbers, and the decision — so future planning can start from a reviewable record.

  • Structured history of saved experiments
  • Import results from CSV in one step
  • Program summaries across saved tests
  • Free to start — no card required

Methodology

This calculator runs a chi-square goodness-of-fit test on observed assignment counts versus the expected allocation: χ² = Σ (Oᵢ − Eᵢ)² / Eᵢ The degrees of freedom are the number of groups minus one. The p-value is the probability, under the planned allocation and test assumptions, of observing a chi-square statistic at least this large. It is not the probability that your assignment system is broken. The strict default is p < 0.001. You can choose a more sensitive threshold, but declare that policy before inspecting the result. Expected counts below 5 are flagged because the chi-square approximation may be unreliable. This is a fixed-horizon snapshot, not a continuously valid monitor. Repeating the check throughout a running experiment without a sequential correction inflates false alarms. Use the original randomization unit and pre-outcome assignment or exposure counts—not conversions or a post-treatment segment.

Sources and limitations

Frequently Asked Questions

What is sample ratio mismatch (SRM)?
Sample ratio mismatch means the observed assignment counts differ more from the planned allocation than the declared statistical threshold allows. It is a data-quality alarm, not proof of one specific bug. The cause can sit in assignment, exposure logging, filtering, redirects, bots, missing events, or analysis choices.
What SRM p-value threshold should I use?
GrowthLayer defaults to p < 0.001 for a strong warning, consistent with guidance for large-scale online experiments. A team may choose p < 0.01 as a more sensitive diagnostic policy. The important practice is to declare the threshold before looking at the counts and investigate the cause instead of treating any imperfect split as a failure.
Should I check SRM every day?
Not with the same fixed-horizon chi-square test and threshold. Repeated looks increase false alarms. Use a platform with sequential SRM monitoring for continuous launch checks. This calculator is best for a declared snapshot, an analyst handoff, or verification of a platform alert.
What should I do when SRM is detected?
Pause outcome interpretation and locate the cause. Plot allocation over time, confirm the randomization unit, compare assignment with exposure logging, inspect filters and bot rules, check redirects and load failures, and look for differences introduced after assignment. If the cause is unknown or can bias who appears in each group, do not make a ship decision from the result.
Does an SRM automatically invalidate the experiment?
No. SRM is a symptom. Some causes are understood and do not bias the outcome analysis; others destroy comparability. The safe response is investigation, not automatic deletion or automatic acceptance. Record the diagnosis and decision with the experiment so the rationale is reviewable.
Can a final 50/50 split still hide an SRM problem?
Yes. An aggregate split can look healthy even if allocation was distorted during part of the run and later balanced out. This calculator sees only the counts you enter. Also review the split over time and by the intended randomization unit.

Related Calculators

Choosing a method or double-checking another tool? Compare 11 public A/B test calculators and download the evidence matrix.

Updated for 2026. Built by GrowthLayer — built for evidence-aware experimentation teams.