How an experiment relates to a placement
An experiment is always attached to one placement. A placement can have at most one experiment running or paused at a time.- When no experiment is active, the placement serves its default flow.
- When an experiment is running, resolution routes each qualifying user to one of the experiment’s variant flows instead of the default.
- When the experiment ends, the placement goes back to serving a default flow (either the original default, or the winning variant’s flow if you declared a winner).
How variant assignment works
Assignment is deterministic and sticky. The same user always lands in the same variant for the life of the experiment, so their experience does not flip between sessions. The backend assigns a user like this:Compute a bucket
bucket = FNV-1a(userID + experimentID) % 100. This produces a stable number from 0 to 99 for each (user, experiment) pair. The same inputs always produce the same bucket.Order the variants
Variants are sorted by
bucket_order (the control is always bucket_order 0, the next variant is 1, and so on).Walk the cumulative traffic split
The bucket is assigned to the first variant whose cumulative traffic percentage it falls under. For a 70/30 split, buckets 0 to 69 get the control and buckets 70 to 99 get the challenger.
is_control), the baseline you measure against. The other variant is the challenger.
Assignment is keyed on the
userID your app sends to the SDK. If your app does not send a stable user id, the SDK falls back to a per-install device identifier, which is stable on one device but not across reinstalls. If the id you send changes between sessions, the same person can be re-bucketed into a different variant and your results will be muddy. See Variables and SDK context for how the user id is set.The experiments list
Open Experiments from the sidebar to see every experiment in the current app. The page header has a New Experiment button.Filtering
The filter bar has:- A search box that matches an experiment’s name or description.
- Status tabs: All, Draft, Running, Paused, Completed. Each tab shows a count.
- A Placement dropdown to show only experiments on one placement.
Statuses
| Status | Meaning |
|---|---|
| Draft | Created but not started. No traffic is enrolled and the placement still serves its default flow. |
| Running | Live. Users are being assigned to variants and events are collected. |
| Paused | Temporarily stopped. The placement serves its default flow again, but assignments are remembered for when you resume. |
| Completed | Ended. Shown as Completed · Winner when you declared a winner, or Completed · No winner when you stopped without one. |
Table columns
Each row shows the experiment Name, its Placement, the Variants (Control vs Variant B), a Progress bar, Lift, Confidence, and Status. Lift and confidence stay blank (shown as a dash) until each variant has collected enough data to be meaningful (at least 30 enrollments per variant). Click a row to open the detail page.
Row actions
The... menu on each row lets you Pause a running experiment, Resume a paused one, or Delete the experiment. Starting, stopping, declaring a winner, and editing happen on the detail page. See Running an experiment.
Common mistakes
- Sending an unstable user id. Sticky assignment depends on a consistent
userID. An id that changes per session breaks stickiness and invalidates the comparison. - Expecting more than one experiment per placement. A placement holds one active experiment at a time. Stop or pause the current one before starting another on the same placement.
- Reading lift before there is data. Early numbers swing wildly. The dashboard hides lift and confidence until each variant clears 30 enrollments for exactly this reason.