Experimentation Engineering
A/B Test Design
10 min+100 XPStep 1/10
The randomization unit is a claim
Choosing what gets randomized — user, session, request, device, cluster, region — is an assertion about how effects propagate:
- User-level — clean, stable, the default; a user sees one consistent experience
- Session/request-level — more 'sample size' per user, but the same human sees both variants; carryover and inconsistency leak
- Cluster-level — randomize the interacting group (team, household, city) when units contaminate each other; power collapses to the cluster count
- Mismatch is the bug — randomizing users when effects flow through shared resources (marketplaces) doesn't reduce bias, it hides it
Rule: the unit must be independent under your interference model and aligned with the decision — you ship to users, so user-level metrics usually lead.
insight
Randomizing by session when users share an account is a 'big N' illusion: the effective sample size is still the number of independent units, and the interference just went underground.