| name | ab-test-designer |
| description | Design an A/B test with hypothesis, sample size, primary + guardrail metrics, analysis plan, and stop rules. Use when the user says "design an A/B test", "test <change>", "run an experiment on X", or is about to ship a change without a test plan. |
| status | new |
A/B Test Designer (Data Ops)
Turns a proposed change into a rigorous test spec. Every field is required โ no "we'll figure it out later".
Triggers
- "design an A/B test for X"
- "test this landing page change"
- "experiment plan for "
- "how should we test "
- "what's the sample size for "
Inputs required
- Change being tested โ control + variant(s) described precisely
- Where โ page, flow, user segment
- Why โ the belief driving the test (will be converted to a hypothesis)
- Primary metric โ what you hope will move
- Current conversion rate + weekly volume โ to compute sample size
Process
Step 1 โ Convert the belief into a hypothesis
Force the If X, then Y, because Z shape:
If we , then will , because .
If the user can't articulate the because, the test isn't ready โ push back.
Step 2 โ Define metrics
- Primary โ the outcome the hypothesis moves (trial signup, activation, upgrade)
- Secondary โ downstream effects you also care about
- Guardrails โ metrics that should NOT regress (bounce rate, NPS, support volume, revenue per visit)
Rule: every test needs at least one guardrail. No exceptions.
Step 3 โ Power calculation
Compute sample size using:
- Baseline conversion rate
- Minimum detectable effect (MDE) โ the smallest lift worth acting on
- Statistical power (default 80%)
- Significance threshold (default 95%)
Return:
- Sample per variant
- Total weeks of data needed
- What to do if baseline traffic is too low (options: raise MDE, extend duration, pool segments, kill the test)
Flag underpowered tests honestly. Many growth teams ship tests that can never reach significance โ don't let them.
Step 4 โ Design the test
- Variants โ control + 1 (A/B) or control + 2 (A/B/n). Avoid > 2 variants unless you have 3ร the traffic.
- Randomization unit โ user (sticky), session, or visit โ pick intentionally
- Exclusions โ internal users, bot traffic, specific segments if contaminating
- Holdout โ 5โ10% holdout if this is a permanent ship if it wins
Step 5 โ Pre-register the analysis plan
Before the test runs, write down:
- The exact SQL / query that will compute each metric
- How you'll handle outliers
- How you'll segment results (by plan, source, device, etc.)
- What result would cause you to roll back even if primary metric wins
Step 6 โ Stop rule
- Planned stop: after target sample size reached
- Early stop: only if a guardrail crosses a pre-declared threshold
- Do not stop early on winning โ this inflates false-positive rate
Step 7 โ Output the test doc
Produce a single-page test spec with all of the above.
Output artifact
test-<change-name>.md with:
- Hypothesis
- Variants + screenshots
- Metrics (primary, secondary, guardrails)
- Sample size + duration
- Randomization + exclusions
- Analysis plan
- Stop rule
- Owner + launch date + review date
Handoff
- Eng ships the test
- Data Ops runs the analysis on review date
- Performance Reporter surfaces the result in the next report
- Null results are logged as a learning โ not hidden
Example call
"Design an A/B test for moving our pricing page CTA from 'Start free trial' to 'Try it free โ no card'. Current page CVR is 4%. ~5,000 visitors/week. MDE I care about is +15% relative."