Bell Statistics

What is an experimentation platform?

An experimentation platform is the system that assigns units to variants, records exposure, computes results and enforces the checks that make those results trustworthy. Its value lies less in running tests than in making incorrect ones difficult.

Also called
A/B testing platform, experimentation infrastructure, testing tool, experiment management system
Allon Korem

Written by Allon Korem

Chief Executive Officer

Last updated

In plain English

An experimentation platform has four jobs. It assigns units to variants consistently and independently across concurrent tests. It records who was assigned and who was actually exposed. It computes results with correct standard errors for the metrics in use. And it enforces the checks that catch broken experiments before anyone reads them. The first two are engineering; the last two are where most platforms are weaker than their users assume.

The distinction from a feature-flag service is worth being clear about, because the two are often conflated and one is a subset of the other. A flag service decides who sees what. A platform adds random assignment, exposure logging, metric computation, statistical inference and validation. Teams that adopt flagging and then compute results in a notebook have the delivery half and none of the analytical half, which is where the subtle errors live.

The analytical requirements are more demanding than they look. Standard errors have to be computed at the randomization unit, which for session or event metrics means aggregating first. Ratio metrics need the delta method or a bootstrap rather than the naive formula. Both of those are commonly wrong in home-built implementations and in some commercial ones, and the failure is silent — the platform produces plausible numbers that are simply overconfident.

The guardrails are what most distinguish a mature platform, and they are cheap relative to their value. A sample ratio mismatch check on every experiment at a strict threshold. Automatic guardrail metrics that flag degradation regardless of what the experiment was about. A requirement to declare the primary metric and duration before launch, so the decision rule exists before the data. And periodic A/A tests validating the machinery itself. None is technically hard; each closes a route to a confident wrong answer.

Build-versus-buy turns on volume and integration rather than on capability. Below roughly ten concurrent experiments a commercial tool is almost always cheaper than the engineering it replaces. Above that, and particularly where assignment must happen inside backend services or where metrics live in a warehouse the vendor cannot see, building becomes reasonable — and the part worth building carefully is the analysis and guardrail layer, not the assignment, which is a hash function.

The formula

Nothing here is a formula so much as a checklist of what the platform must get right. Each line is a place implementations commonly fail.

Assignment
hash( unit_id + experiment_id + salt ) mod 100

Deterministic and independent per experiment — see hash-based assignment.

Variance at the right unit
aggregate to the randomisation unit before comparing

Analysing events as independent inflates apparent sample size by rows per unit.

Ratio metrics
delta method or cluster bootstrap, never the naive SE

The naive formula treats a random denominator as fixed — see the two-sample t-test calculator.

The mandatory check
SRM chi-square on every experiment, threshold ≈ 0.001

Stricter than 0.05 because it runs on every test — see the chi-square calculator.

Worked example

A company with 40 concurrent experiments audits its home-built platform against four requirements before deciding whether to invest further or migrate to a vendor. Each is checked against 500 simulated A/A runs on historical data.

Assignment independence across experiments
fails — experiment id absent from hash
SRM check coverage
manual, run on about 30% of experiments
Per-user metrics: A/A false positive rate
5.2% — correct
Ratio metrics: A/A false positive rate
17.4% — standard errors too small
Pre-declared primary metric
not enforced
Experiments using ratio metrics
23 of 40

Two of four requirements fail, and the failures affect 23 of 40 running experiments plus every concurrent pair.

The per-user column passing is what makes this dangerous rather than obviously broken. Anyone spot-checking the platform on a conversion metric would find it behaving correctly, and the 17.4% false-positive rate on ratio metrics would never surface — those experiments simply report significance more often than they should, which looks like a productive quarter. The assignment failure compounds it: with the experiment id missing from the hash, all 40 experiments share two populations rather than being independent, so interactions between them are systematic. The remediation order follows from cost rather than severity: adding the experiment id to the hash is a one-line change that must be done between experiments; automating the SRM check is a day's work; fixing ratio variance is a genuine project. Migrating to a vendor would solve the analytical half and not the assignment half, since that lives in their own services.

Common misconceptions

A feature flag service is an experimentation platform.
It is the delivery layer. A platform adds random assignment, exposure logging, correct statistical inference and validation checks. Teams with flagging and a notebook have solved the easy half — deciding who sees what — and left the half where quiet errors live.
Buying a vendor platform means the statistics are handled correctly.
Vendors vary considerably, particularly on ratio metrics and on whether variance is computed at the randomisation unit. Validate any platform with several hundred simulated A/A runs across the metric types you actually use. A vendor that is correct for conversion rates and wrong for per-session metrics is a common and hard-to-notice combination.
The hard part of building a platform is assignment.
Assignment is a hash function and a mapping table. The hard parts are computing variance correctly for every metric type, logging exposure reliably across services, and enforcing guardrails that people cannot skip when a deadline approaches. Teams routinely build the easy part well and stop before the parts that determine whether results are trustworthy.

Frequently asked questions

Should we build or buy an experimentation platform?
Buy below roughly ten concurrent experiments — a commercial tool is cheaper than the engineering it replaces and will be better validated than a first attempt. Building becomes reasonable at higher volume, when assignment must happen inside backend services, or when metrics live in a warehouse the vendor cannot reach. If you build, the part to invest in is the analysis and guardrail layer; assignment is the easy half.
Which automated checks matter most?
A sample ratio mismatch check on every experiment, at a strict threshold since it runs constantly. Automatic guardrail metrics that flag degradation whatever the experiment was testing. A requirement to declare the primary metric and duration before launch. And periodic A/A validation of the platform itself. None is technically difficult and each closes a route to a confident wrong answer.
How do I validate a platform I did not build?
Run several hundred simulated A/A tests on your own historical data, through the platform, across every metric type you use — per-user, ratio, count and revenue. Check that roughly 5% come back significant and that the p-value distribution is flat. Ratio and per-session metrics are where implementations most often fail, so validating only on conversion tells you comparatively little.

Related terms

  • Bucketing

    Three properties assignment must have — random, deterministic, independent — and what breaks when each one fails.

  • Concurrent testing

    Overlapping tests are safe for each result and blind to the combination — which is where the surprise lands.

  • Hash-based assignment

    Compute the variant instead of storing it — stateless, consistent everywhere, and free of a lookup on every request.

  • Traffic allocation

    50/50 is not caution, it is the optimum — and a 90/10 split needs nearly three times the traffic.

Calculate it

  • A/B test sample size

    Size a two-proportion experiment before you launch, then read the lift and its interval once it lands.

  • Chi-square test

    Test a contingency table of counts for association — any number of rows and columns.

Knowing the term is the easy part

Applying it to a live measurement problem is the part that goes wrong. If you are designing an experiment, reading a result you do not trust, or trying to work out what your marketing actually caused, that is the work we do.