A/B Testing Framework
Design, run, and analyze conversion experiments with statistical rigor.
Install
git clone https://github.com/thatrebeccarae/claude-marketing.git && cp -r claude-marketing/skills/ab-testing-framework ~/.claude/skills/
Test Design Process
Step 1: Hypothesis
Template: If we [change X], then [metric Y] will [increase/decrease] by [Z%] because [reason].
Good hypothesis: "If we change the CTA from Get Started to Start Free Trial, then signup rate will increase by 15% because it reduces uncertainty about cost."
Bad hypothesis: "If we change the button color, conversions will improve." (No reasoning, no expected magnitude.)
Step 2: Sample Size Calculation
To determine how long to run a test:
Required sample per variation = 16 * (p * (1-p)) / (MDE^2)
Where:
p = baseline conversion rate (as decimal)
MDE = minimum detectable effect (as decimal)
| Baseline Rate |
10% MDE |
20% MDE |
30% MDE |
| 1% |
253,414 |
63,354 |
28,157 |
| 3% |
82,369 |
20,592 |
9,152 |
| 5% |
48,640 |
12,160 |
5,404 |
| 10% |
23,040 |
5,760 |
2,560 |
| 20% |
10,240 |
2,560 |
1,138 |
Minimum test duration: 2 full business weeks (to capture day-of-week effects), even if sample size is reached sooner.
Step 3: Test Execution Rules
- Random assignment — visitors must be randomly assigned to control/variant
- No peeking — do not check results before reaching sample size
- No mid-test changes — do not modify variants during the test
- Even traffic split — 50/50 for A/B, even splits for multivariate
- Single variable — change only one thing per test (unless multivariate)
- Full duration — run for the pre-calculated duration, not until significance
Step 4: Statistical Analysis
Frequentist Approach
Z-test for proportions:
Z = (p1 - p2) / sqrt(p_pooled * (1 - p_pooled) * (1/n1 + 1/n2))
Where:
p1, p2 = conversion rates of control and variant
p_pooled = (x1 + x2) / (n1 + n2)
n1, n2 = sample sizes
p-value interpretation:
- p < 0.05: Statistically significant (95% confidence)
- p < 0.01: Highly significant (99% confidence)
- p >= 0.05: Not significant — do not declare a winner
Bayesian Approach
When to use Bayesian:
- Low traffic (small sample sizes)
- Need to make decisions faster
- Want probability of each variant being best (not just "significant or not")
Interpretation: "There is a 94% probability that Variant B is better than Control" vs frequentist "We reject the null hypothesis at 95% confidence."
Step 5: Decision Framework
| Result |
Significance |
Action |
| Variant wins |
p < 0.05 |
Implement variant |
| Control wins |
p < 0.05 |
Keep control, learn from failure |
| No difference |
p >= 0.05 |
Keep control, test something bigger |
| Variant wins |
p = 0.05-0.10 |
Consider traffic — may need more time |
Common Testing Pitfalls
- Peeking — checking results early inflates false positive rate from 5% to 26%+
- Stopping early — reaching significance != reaching required sample size
- Testing too many variants — each variant needs full sample size
- Ignoring segments — overall winner may be loser for key segments
- Too small an effect — testing for 2% lift needs enormous sample sizes
- Not accounting for seasonality — run full weeks, avoid holidays
- Multiple metrics — primary metric must be pre-declared; secondary are directional
- Survivorship bias — only measuring users who complete, not those who abandon
- Simpson paradox — segment-level winners can reverse at aggregate level
- Novelty effect — new designs get temporary lift; re-test after 2-4 weeks
What to Test (Prioritized by Impact)
High Impact
- Value proposition / headline
- CTA text and placement
- Pricing and offer structure
- Form length (fields removed)
- Page layout (single column vs multi)
- Social proof presence and placement
Medium Impact
- Image/video vs static
- Testimonial format (text vs video)
- Navigation presence on landing pages
- Trust badges and security signals
- Urgency elements (countdown, stock)
Low Impact (Usually Not Worth Testing)
- Button color (unless extreme contrast issue)
- Font changes
- Minor copy tweaks
- Icon styles
- Footer content
Integration with Other Skills
- cro-auditor — CRO audit generates test hypotheses; this skill designs the experiments
- google-analytics — GA4 for experiment data and segment analysis
- copywriting-frameworks — Generate variant copy using proven frameworks
1---2name: ab-testing-framework3description: A/B and multivariate testing methodology. Design experiments, calculate sample sizes, determine statistical significance, avoid common pitfalls, and interpret results. Platform-agnostic framework applicable to landing pages, emails, ads, pricing, and product features. Use when the user asks about A/B testing, split testing, experiment design, statistical significance, or conversion experiments.4license: MIT5---67# A/B Testing Framework89Design, run, and analyze conversion experiments with statistical rigor.1011## Install1213```bash14git clone https://github.com/thatrebeccarae/claude-marketing.git && cp -r claude-marketing/skills/ab-testing-framework ~/.claude/skills/15```1617## Test Design Process1819### Step 1: Hypothesis2021**Template:** If we [change X], then [metric Y] will [increase/decrease] by [Z%] because [reason].2223**Good hypothesis:** "If we change the CTA from Get Started to Start Free Trial, then signup rate will increase by 15% because it reduces uncertainty about cost."2425**Bad hypothesis:** "If we change the button color, conversions will improve." (No reasoning, no expected magnitude.)2627### Step 2: Sample Size Calculation2829To determine how long to run a test:3031```32Required sample per variation = 16 * (p * (1-p)) / (MDE^2)3334Where:35 p = baseline conversion rate (as decimal)36 MDE = minimum detectable effect (as decimal)37```3839| Baseline Rate | 10% MDE | 20% MDE | 30% MDE |40|--------------|---------|---------|---------|41| 1% | 253,414 | 63,354 | 28,157 |42| 3% | 82,369 | 20,592 | 9,152 |43| 5% | 48,640 | 12,160 | 5,404 |44| 10% | 23,040 | 5,760 | 2,560 |45| 20% | 10,240 | 2,560 | 1,138 |4647**Minimum test duration:** 2 full business weeks (to capture day-of-week effects), even if sample size is reached sooner.4849### Step 3: Test Execution Rules50511. **Random assignment** — visitors must be randomly assigned to control/variant522. **No peeking** — do not check results before reaching sample size533. **No mid-test changes** — do not modify variants during the test544. **Even traffic split** — 50/50 for A/B, even splits for multivariate555. **Single variable** — change only one thing per test (unless multivariate)566. **Full duration** — run for the pre-calculated duration, not until significance5758### Step 4: Statistical Analysis5960#### Frequentist Approach6162**Z-test for proportions:**63```64Z = (p1 - p2) / sqrt(p_pooled * (1 - p_pooled) * (1/n1 + 1/n2))6566Where:67 p1, p2 = conversion rates of control and variant68 p_pooled = (x1 + x2) / (n1 + n2)69 n1, n2 = sample sizes70```7172**p-value interpretation:**73- p < 0.05: Statistically significant (95% confidence)74- p < 0.01: Highly significant (99% confidence)75- p >= 0.05: Not significant — do not declare a winner7677#### Bayesian Approach7879**When to use Bayesian:**80- Low traffic (small sample sizes)81- Need to make decisions faster82- Want probability of each variant being best (not just "significant or not")8384**Interpretation:** "There is a 94% probability that Variant B is better than Control" vs frequentist "We reject the null hypothesis at 95% confidence."8586### Step 5: Decision Framework8788| Result | Significance | Action |89|--------|-------------|--------|90| Variant wins | p < 0.05 | Implement variant |91| Control wins | p < 0.05 | Keep control, learn from failure |92| No difference | p >= 0.05 | Keep control, test something bigger |93| Variant wins | p = 0.05-0.10 | Consider traffic — may need more time |9495## Common Testing Pitfalls96971. **Peeking** — checking results early inflates false positive rate from 5% to 26%+982. **Stopping early** — reaching significance != reaching required sample size993. **Testing too many variants** — each variant needs full sample size1004. **Ignoring segments** — overall winner may be loser for key segments1015. **Too small an effect** — testing for 2% lift needs enormous sample sizes1026. **Not accounting for seasonality** — run full weeks, avoid holidays1037. **Multiple metrics** — primary metric must be pre-declared; secondary are directional1048. **Survivorship bias** — only measuring users who complete, not those who abandon1059. **Simpson paradox** — segment-level winners can reverse at aggregate level10610. **Novelty effect** — new designs get temporary lift; re-test after 2-4 weeks107108## What to Test (Prioritized by Impact)109110### High Impact111- Value proposition / headline112- CTA text and placement113- Pricing and offer structure114- Form length (fields removed)115- Page layout (single column vs multi)116- Social proof presence and placement117118### Medium Impact119- Image/video vs static120- Testimonial format (text vs video)121- Navigation presence on landing pages122- Trust badges and security signals123- Urgency elements (countdown, stock)124125### Low Impact (Usually Not Worth Testing)126- Button color (unless extreme contrast issue)127- Font changes128- Minor copy tweaks129- Icon styles130- Footer content131132## Integration with Other Skills133134- **cro-auditor** — CRO audit generates test hypotheses; this skill designs the experiments135- **google-analytics** — GA4 for experiment data and segment analysis136- **copywriting-frameworks** — Generate variant copy using proven frameworks