Resources · 26

Run an A/B experiment that supports a sound decision

Specify hypothesis, assignment, primary metric and guardrails before comparing variants.

· 6 min

Fictional empty measurement laboratory: two identical black devices, brass lamp and burgundy notebook

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

IndicatorWhat it measuresFirst action
AssignmentExpected versus observed sample ratioDiagnose before analysis
ExposureEligible users actually exposedRepair targeting
EffectPrimary-metric change and uncertaintyApply planned decision rule
GuardrailsErrors, latency and abandonment per variantPause 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

Four places to investigate a counting discrepancy
Stage documented by ExPCIE review questionOriginal practical investigation
AssignmentCheck 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.
ExecutionCompare 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 processingReconcile inputs, exclusions and joins.Count units before and after each transformation. Check missing keys, duplicates, bot filters and telemetry loss by group.
AnalysisExamine 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

Define what the two counts represent
Reader assumptionConsequence for interpretation
Two mutually exclusive variantsCount each unit once, in A or B. Repeated page views or events are not distinct participants.
Fixed 50/50 allocationEvery 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 trialsUnits linked through an organisation, household or reassignment can violate the binomial model. Choose the unit in the protocol.
Fixed window and filtersCompare the same interval and deduplication and eligibility rules. Do not adapt exclusions to obtain a desired result.
Bounded aggregate countsAccept 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 onlyThe 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.

Eight educational examples readable without JavaScript

R01 · Two balanced groups
Two balanced groups
Count ACount BExpected reading
5050p = 1 under the model. This checks neither instrumentation, conversion nor causality.
R02 · 60/40 across ten units
60/40 across ten units
Count ACount BExpected reading
64p = 0.75390625. A visibly different ratio alone does not establish a signal at this small sample size.
R03 · Same ratio, hundredfold sample
Same ratio, hundredfold sample
Count ACount BExpected reading
600400The ratio remains 60/40, but the p-value becomes very small. Sample size changes statistical interpretation.
R04 · One empty arm, ten units
One empty arm, ten units
Count ACount BExpected reading
010p = 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
One empty arm, twenty units
Count ACount BExpected reading
020p = 0.0000019073486328125: a signal under the reference threshold. Investigate before interpreting an effect.
R06 · No observed units
No observed units
Count ACount BExpected reading
00No p-value: no observations. Show unavailable data rather than a reassuring result.
R07 · Extremely small probability
Extremely small probability
Count ACount BExpected reading
50001Displaying log₁₀(p) avoids presenting numerical rounding to zero as a mathematical impossibility.
R08 · Leading space is not repaired
Leading space is not repaired
Count ACount BExpected reading
5050Input rejected. The reader accepts only ASCII integers from 0 to 5,000, without spaces, signs, separators or redundant leading zeros.

Before resuming effect analysis

Before resuming effect analysis
Suggested checkRecord or result to retain
TimelineDiscrepancy onset, assignment versions, deployments and collection changes.
Stage countsAssigned, exposed and analysed counts; differences explained using the same unit.
IdentitiesEvidence of unit stability and explicit treatment of duplicates, session changes and sign-ins.
TelemetryComparable events, delivery errors and losses by variant, device and version.
FilteringEligibility and exclusion rules, with their position before or after treatment.
DecisionSupported 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.