Resources · 26
Run an A/B experiment that supports a sound decision
Specify hypothesis, assignment, primary metric and guardrails before comparing variants.
· 6 min
What this guide helps achieve
- Preregister the protocol
- Check assignment
- Watch guardrails
- Decide with uncertainty
Quick check
- What precise hypothesis could be disproved?
- What unit receives the variant?
- Does the observed allocation match the plan?
- Which harm warrants a pause?
- Were duration and segments set before results were seen?
Step-by-step method
- 01
State the proposed change
Write the expected mechanism, target population and effect on one primary metric. Describe possible accessibility and service risks.
Deliverable: dated hypothesis and success criteria.
- 02
Define assignment
Choose the randomization unit and keep assignment stable across visits. Exclude bots and specify out-of-scope segments before launch.
Deliverable: assignment protocol and exclusions.
- 03
Instrument and test
Verify exposure, conversion and guardrail events for both variants. Test mobile, consent refusal and error states.
Deliverable: QA record of both journeys.
- 04
Check sample ratio
Compare observed and expected allocations before reading the treatment effect. A mismatch may expose assignment, measurement or targeting defects.
Deliverable: ratio check and discrepancy diagnosis.
- 05
Analyze at the planned time
Respect the chosen window and report uncertainty, primary metric, harms and planned segment analysis. Inspect surprises without selecting only the favorable number after the fact.
Deliverable: analysis with limitations and uncertainty.
- 06
Decide and follow up
Assign an owner to rollout, abandonment or another test. After rollout, check that effect and guardrails remain consistent.
Deliverable: archived decision and post-rollout check.
Management indicators
| Indicator | What it measures | First action |
|---|---|---|
| Assignment | Expected versus observed sample ratio | Diagnose before analysis |
| Exposure | Eligible users actually exposed | Repair targeting |
| Effect | Primary-metric change and uncertainty | Apply planned decision rule |
| Guardrails | Errors, latency and abandonment per variant | Pause harmful treatment |
Common pitfalls
- Stopping when a number first looks favorable
- Collecting many metrics without a primary one
- Ignoring sample ratio mismatch
- Treating a tiny segment as general proof
Frequently asked questions
Is sample ratio a minor formality?
No. An unexplained mismatch can make the comparison unreliable.
Should conversion be checked daily?
Operational monitoring helps, but changing duration or the decision rule in response to results undermines the planned interpretation.
What if the result is uncertain?
Report uncertainty and plausible effect size, then decide whether another experiment has real value.
A/B allocation: data and SRM
A conversion difference becomes difficult to interpret when compared groups no longer match the assignment plan. Sample Ratio Mismatch (SRM) is a data quality signal: investigate allocation before evaluating the product change. This dossier connects calculation, instrumentation and decisions without treating a p-value as overall validation of an experiment.
In 2020 Microsoft Research describes four stages where SRM can arise and an ExP reference threshold p < 0.0005 using a chi-squared test. The educational CIE reader below uses a two-sided exact binomial test for two 50/50 groups. It does not reproduce ExP’s algorithm; the historical threshold is illustrative, not a universal standard.
Microsoft Research · Diagnosing Sample Ratio Mismatch · Published 2020-09-14 · consulted 2026-10-23
Four places to investigate a counting discrepancy
| Stage documented by ExP | CIE review question | Original practical investigation |
|---|---|---|
| Assignment | Check the unit and rule that assign each participant. | Replay the same identity across visits; compare configuration versions and change times. A reassigned unit no longer represents two independent observations. |
| Execution | Compare what each variant actually allows to execute. | Reproduce redirects, incomplete loading, errors and cancellation. Record when exposure is logged and whether the variant changes that moment. |
| Log processing | Reconcile inputs, exclusions and joins. | Count units before and after each transformation. Check missing keys, duplicates, bot filters and telemetry loss by group. |
| Analysis | Examine the population retained for comparison. | Compare the assigned population with the analysed subset. A filter triggered by an action available only in B selects a population affected by treatment. |
Define what the two counts represent
| Reader assumption | Consequence for interpretation |
|---|---|
| Two mutually exclusive variants | Count each unit once, in A or B. Repeated page views or events are not distinct participants. |
| Fixed 50/50 allocation | Every unit has the same probability of assignment to A and B. A 90/10 allocation, changing ratio or enforced quota needs a different model. |
| Independent trials | Units linked through an organisation, household or reassignment can violate the binomial model. Choose the unit in the protocol. |
| Fixed window and filters | Compare the same interval and deduplication and eligibility rules. Do not adapt exclusions to obtain a desired result. |
| Bounded aggregate counts | Accept 0 to 5,000 units per arm, at most 10,000 overall. This is an interface limit, not a minimum statistical power requirement. |
| Quality check only | The reader computes neither effect, conversion, power nor required sample size. A result without an SRM signal does not establish causality. |
NIST/SEMATECH · Binomial distribution · e-Handbook §1.3.6.6.18 · consulted 2026-10-23
50/50 allocation reader
Enter the two observed counts or load a fictional example. This checks allocation, not conversion counts. Calculation stays in the browser, without transmission, storage, import or export.
Under H₀, X follows Binomial(N, 0.5), with N = A + B and k = min(A, B). The reader computes p = min(1, 2 × Σᵢ₌₀ᵏ C(N,i) / 2ᴺ). This doubles the smaller tail, valid here by 50/50 symmetry. Sums are evaluated in logarithms to retain very small probabilities; displayed values are rounded.
A p-value describes how this allocation compares with the assumed model; it is not the probability that the experiment is valid or that a bug exists. A small value does not locate the cause. A large value does not establish error-free data. Repeated checks and multiple segments change false-alert control: define a suitable monitoring rule before operational use.
Two integers from 0 to 5,000; intended allocation must be 50/50.
Result
Eight educational examples readable without JavaScript
R01 · Two balanced groups
| Count A | Count B | Expected reading |
|---|---|---|
| 50 | 50 | p = 1 under the model. This checks neither instrumentation, conversion nor causality. |
R02 · 60/40 across ten units
| Count A | Count B | Expected reading |
|---|---|---|
| 6 | 4 | p = 0.75390625. A visibly different ratio alone does not establish a signal at this small sample size. |
R03 · Same ratio, hundredfold sample
| Count A | Count B | Expected reading |
|---|---|---|
| 600 | 400 | The ratio remains 60/40, but the p-value becomes very small. Sample size changes statistical interpretation. |
R04 · One empty arm, ten units
| Count A | Count B | Expected reading |
|---|---|---|
| 0 | 10 | p = 0.001953125 remains above the illustrative 0.0005 threshold. No alert at this threshold does not certify both arms are working. |
R05 · One empty arm, twenty units
| Count A | Count B | Expected reading |
|---|---|---|
| 0 | 20 | p = 0.0000019073486328125: a signal under the reference threshold. Investigate before interpreting an effect. |
R06 · No observed units
| Count A | Count B | Expected reading |
|---|---|---|
| 0 | 0 | No p-value: no observations. Show unavailable data rather than a reassuring result. |
R07 · Extremely small probability
| Count A | Count B | Expected reading |
|---|---|---|
| 5000 | 1 | Displaying log₁₀(p) avoids presenting numerical rounding to zero as a mathematical impossibility. |
R08 · Leading space is not repaired
| Count A | Count B | Expected reading |
|---|---|---|
| 50 | 50 | Input rejected. The reader accepts only ASCII integers from 0 to 5,000, without spaces, signs, separators or redundant leading zeros. |
Before resuming effect analysis
| Suggested check | Record or result to retain |
|---|---|
| Timeline | Discrepancy onset, assignment versions, deployments and collection changes. |
| Stage counts | Assigned, exposed and analysed counts; differences explained using the same unit. |
| Identities | Evidence of unit stability and explicit treatment of duplicates, session changes and sign-ins. |
| Telemetry | Comparable events, delivery errors and losses by variant, device and version. |
| Filtering | Eligibility and exclusion rules, with their position before or after treatment. |
| Decision | Supported cause, fix, still-usable period or new experiment, owner and review date. |
Avoid artificially balancing groups by deleting observations to remove an alert. Reconstruct the data path first. An effect metric, guardrails and uncertainty remain necessary after repairing counts. In the final brief, separate the statistical signal, demonstrated cause and product decision.
Sources, editions and credits
Sources: Microsoft Research, article dated 14 September 2020; NIST/SEMATECH, binomial distribution §1.3.6.6.18. Questions, recipes and eight cases are CIE educational material, not results from real experiments. No institutional chart, logo or visual is reproduced.
Microsoft Research · Diagnosing Sample Ratio Mismatch · Published 2020-09-14 · consulted 2026-10-23
SHA-256 : d28a6a66b3f1d014f3aafce6c0239b6a6477049b2d4582f06f4d6aaae651ee75
NIST/SEMATECH · Binomial distribution · e-Handbook §1.3.6.6.18 · consulted 2026-10-23
SHA-256 : d899609cde11a15ebd745f6313931da10e9511a0dff64f39b027e5b9ad103ad8
Official references
References consulted: . The method and worksheet propose checks to adapt to your context; they do not constitute certification.
