Concepts
Variant assignment, statistical significance, and the anti-flicker snippet.
Concepts
The handful of ideas you need in your head to use Otter A/B confidently — how variants are assigned, how the math actually works, and how the SDK avoids flicker.
Most A/B testing tools hide their internals because the internals are usually embarrassing. We're writing them down because the choices we made affect how you read results and how reliable those results are. The three concepts below are the most load-bearing.
Variant Assignment
Otter A/B uses deterministic hashing based on visitor ID and test ID to seed assignments, then persists sticky assignments server-side so a visitor keeps the same variant across sessions.
Statistical Significance
Results are evaluated with the analysis method you choose. Frequentist mode uses Fisher's exact test when conversion counts are sparse, otherwise a two-proportion z-test for conversion rates, plus Welch's t-test for revenue metrics. Bayesian mode estimates the probability that a variant beats the control.
Anti-Flicker
The anti-flicker snippet hides the page body (opacity: 0) until variants are applied. The SDK applies cached variants synchronously when possible. A 3-second failsafe guarantees the page becomes visible even if the SDK fails to load.
Why this matters in practice
Deterministic assignment means you can A/B everything safely. A visitor never bounces between variants between page loads. If you see someone “flip” in session replay, it's almost always because they cleared cookies or switched browsers.
Test selection adapts to your data. Otter A/B picks Fisher's exact test for sparse counts and a z-test for typical comparisons automatically — you don't need to think about which to use. Revenue gets Welch's t-test because revenue distributions are heavy-tailed and a z-test would lie to you.
Anti-flicker is non-negotiable. If visitors see the original page flash before the variant, they've already responded to the original — your test is measuring noise. The 3-second failsafe keeps the page from disappearing entirely if the SDK ever fails to load, but the normal case is a few hundred milliseconds.
Frequently asked questions
Quick answers to the questions teams ask most about this part of Otter A/B.