| name | ab-test-setup |
| description | When the user wants to plan, design, or implement an A/B test or experiment — "split test," "variant copy," "multivariate test," "hypothesis," "statistical significance," "how long should I run this test," or comparing two versions. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro. |
| category | marketing |
| tier | on-demand |
A/B Test Setup
Initial Assessment
Product context: If .agents/product-marketing-context.md exists (or .claude/product-marketing-context.md in older setups), read it first and tailor output to it; only ask for what it doesn't cover.
Establish:
- Test Context - What are you trying to improve? What change are you considering?
- Current State - Baseline conversion rate? Current traffic volume?
- Constraints - Technical complexity? Timeline? Tools available?
Core Principles
1. Start with a Hypothesis
Not "let's see what happens" — a specific prediction of outcome, based on reasoning or data.
2. Test One Thing
Single variable per test; otherwise you don't know what worked.
3. Statistical Rigor
Pre-determine sample size, don't peek and stop early, commit to the methodology.
4. Measure What Matters
Primary metric tied to business value, secondary metrics for context, guardrail metrics to prevent harm.
Hypothesis Framework
Structure
Because [observation/data],
we believe [change]
will cause [expected outcome]
for [audience].
We'll know this is true when [metrics].
Example
Weak: "Changing the button color might increase clicks."
Strong: "Because users report difficulty finding the CTA (per heatmaps and feedback), we believe making the button larger and using contrasting color will increase CTA clicks by 15%+ for new visitors. We'll measure click-through rate from page view to signup start."
Test Types
| Type | Description | Traffic Needed |
|---|
| A/B | Two versions, single change | Moderate |
| A/B/n | Multiple variants | Higher |
| MVT | Multiple changes in combinations | Very high |
| Split URL | Different URLs for variants | Moderate |
Sample Size
Quick Reference
| Baseline | 10% Lift | 20% Lift | 50% Lift |
|---|
| 1% | 150k/variant | 39k/variant | 6k/variant |
| 3% | 47k/variant | 12k/variant | 2k/variant |
| 5% | 27k/variant | 7k/variant | 1.2k/variant |
| 10% | 12k/variant | 3k/variant | 550/variant |
Calculators:
Detailed sample size tables and duration calculations: references/sample-size-guide.md
Metrics Selection
- Primary Metric — the single metric that matters most, directly tied to the hypothesis; what you'll use to call the test.
- Secondary Metrics — support interpretation; explain why/how the change worked.
- Guardrail Metrics — things that shouldn't get worse; stop the test if significantly negative.
Example: Pricing Page Test
- Primary: Plan selection rate
- Secondary: Time on page, plan distribution
- Guardrail: Support tickets, refund rate
Designing Variants
What to Vary
| Category | Examples |
|---|
| Headlines/Copy | Message angle, value prop, specificity, tone |
| Visual Design | Layout, color, images, hierarchy |
| CTA | Button copy, size, placement, number |
| Content | Information included, order, amount, social proof |
Best Practices
Single, meaningful change — bold enough to make a difference, true to the hypothesis.
Traffic Allocation
| Approach | Split | When to Use |
|---|
| Standard | 50/50 | Default for A/B |
| Conservative | 90/10, 80/20 | Limit risk of bad variant |
| Ramping | Start small, increase | Technical risk mitigation |
Considerations: users see the same variant on return; balanced exposure across time of day/week.
Implementation
- Client-Side — JavaScript modifies page after load. Quick to implement, can cause flicker. Tools: PostHog, Optimizely, VWO.
- Server-Side — variant determined before render. No flicker, requires dev work. Tools: PostHog, LaunchDarkly, Split.
Running the Test
Pre-Launch Checklist
During the Test
DO: monitor for technical issues, check segment quality, document external factors.
Avoid: peeking at results and stopping early, changing variants mid-test, adding traffic from new sources.
The Peeking Problem
Stopping early on pre-sample-size results produces false positives and wrong decisions. Pre-commit to sample size and trust the process.
Analyzing Results
Statistical Significance
95% confidence = p-value < 0.05, i.e. <5% chance the result is random — a threshold, not a guarantee.
Analysis Checklist
- Reach sample size? If not, result is preliminary
- Statistically significant? Check confidence intervals
- Effect size meaningful? Compare to MDE, project impact
- Secondary metrics consistent? Support the primary?
- Guardrail concerns? Anything get worse?
- Segment differences? Mobile vs. desktop? New vs. returning?
Interpreting Results
| Result | Conclusion |
|---|
| Significant winner | Implement variant |
| Significant loser | Keep control, learn why |
| No significant difference | Need more traffic or bolder test |
| Mixed signals | Dig deeper, maybe segment |
Documentation
Document every test with: hypothesis, variants (with screenshots), results (sample, metrics, significance), decision and learnings.
Templates: references/test-templates.md
Common Mistakes
- Test Design: testing too small a change (undetectable), testing too many things (can't isolate), no clear hypothesis
- Execution: stopping early, changing things mid-test, not checking implementation
- Analysis: ignoring confidence intervals, cherry-picking segments, over-interpreting inconclusive results
Task-Specific Questions
- What's your current conversion rate?
- How much traffic does this page get?
- What change are you considering and why?
- What's the smallest improvement worth detecting?
- What tools do you have for testing?
- Have you tested this area before?
Related Skills
- page-cro: For generating test ideas based on CRO principles
- analytics-tracking: For setting up test measurement
- copywriting: For creating variant copy