Skip to content
Back to skills

Ab Testing Jh9282026 Manus

ASecurity

Design and analyze A/B tests and controlled experiments for data-driven decisions. Use for: experiment design, hypothesis formulation, sample size calculation, statistical significance testing, multivariate testing, test implementation, results analysis, avoiding common pitfalls, sequential testing, and experimentation platforms.

  • 666 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 2, 2026
content-marketingpythongoreacttesting

Works with

  • cli

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add majiayu000/claude-skill-registry --skill ab-testing-jh9282026-manus --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ab Testing Jh9282026 Manus?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ab Testing Jh9282026 Manus
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-ab-testing-jh9282026-manus-claude-skill-registry/badge)](https://www.skillsdirectory.com/skills/majiayu000-ab-testing-jh9282026-manus-claude-skill-registry)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ab-testing
description: "Design and analyze A/B tests and controlled experiments for data-driven decisions. Use for: experiment design, hypothesis formulation, sample size calculation, statistical significance testing, multivariate testing, test implementation, results analysis, avoiding common pitfalls, sequential testing, and experimentation platforms."
---

# A/B Testing

Design and analyze controlled experiments to make data-driven decisions about product changes and optimizations.

## Overview

A/B testing (split testing) is a rigorous method for comparing two or more variants to determine which performs better on a defined metric. This skill covers statistical foundations, experimental design principles, implementation strategies, and analysis techniques for running effective experiments.

## A/B Testing Fundamentals

### Core Concepts

**Control (A)**: Current version or baseline
**Variant (B)**: New version being tested
**Randomization**: Users randomly assigned to control or variant
**Metric**: Quantifiable measure of success (conversion rate, revenue, engagement)
**Statistical Significance**: Confidence that difference is not due to chance

### When to Use A/B Testing

**Good Use Cases**:
- Testing website/app design changes
- Optimizing email subject lines or content
- Comparing pricing strategies
- Evaluating feature changes
- Testing marketing messages

**Not Suitable For**:
- Low-traffic pages (insufficient sample size)
- Long-term strategic decisions
- Understanding "why" (use qualitative research)
- Testing many changes simultaneously (use multivariate testing)

## Experimental Design

### Hypothesis Formulation

**Good Hypothesis**:
- Specific: "Changing button color from blue to green will increase click-through rate"
- Measurable: Clear metric (CTR)
- Relevant: Tied to business goal
- Falsifiable: Can be proven wrong

**Bad Hypothesis**:
- Vague: "New design will be better"
- Unmeasurable: "Users will like it more"
- Multiple changes: "New layout, colors, and copy will improve conversions"

### Sample Size Calculation

**Required Inputs**:
- **Baseline Conversion Rate**: Current metric value
- **Minimum Detectable Effect (MDE)**: Smallest change worth detecting
- **Statistical Significance (α)**: Typically 0.05 (95% confidence)
- **Statistical Power (1-β)**: Typically 0.80 (80% power)

**Formula** (simplified for proportions):
```
n = 16 * σ² / (MDE)²

Where:
σ² = p(1-p) for proportions
p = baseline conversion rate
MDE = minimum detectable effect
```

**Example**:
- Baseline: 10% conversion rate
- MDE: 2% (relative 20% improvement)
- Significance: 0.05
- Power: 0.80
- Required sample size: ~3,900 per variant

### Test Duration

**Factors**:
- Traffic volume
- Required sample size
- Day-of-week effects (run full weeks)
- Seasonality
- Minimum: 1-2 weeks recommended

**Avoid**:
- Stopping test early when results look good (peeking problem)
- Running too long (external factors may interfere)

## Statistical Analysis

### Hypothesis Testing

**Null Hypothesis (H₀)**: No difference between variants
**Alternative Hypothesis (H₁)**: Difference exists between variants

**P-Value**: Probability of observing results if null hypothesis is true
- p < 0.05: Reject null, difference is statistically significant
- p ≥ 0.05: Fail to reject null, no significant difference

### Confidence Intervals

**95% Confidence Interval**: Range where true value likely falls
- If intervals don't overlap, difference is likely significant
- Provides effect size estimate, not just yes/no

**Example**:
- Control CTR: 10% (95% CI: 9.5% - 10.5%)
- Variant CTR: 12% (95% CI: 11.4% - 12.6%)
- Conclusion: Significant improvement

### Statistical Tests

**Two-Sample Z-Test** (proportions):
```python
from statsmodels.stats.proportion import proportions_ztest

# Control: 1000 conversions out of 10000 visitors
# Variant: 1200 conversions out of 10000 visitors
count = [1000, 1200]
nobs = [10000, 10000]

z_stat, p_value = proportions_ztest(count, nobs)
print(f"P-value: {p_value}")
```

**T-Test** (continuous metrics like revenue):
```python
from scipy.stats import ttest_ind

control_revenue = [10, 15, 20, ...]  # Revenue per user
variant_revenue = [12, 18, 22, ...]

t_stat, p_value = ttest_ind(control_revenue, variant_revenue)
print(f"P-value: {p_value}")
```

**Chi-Square Test** (categorical outcomes):
```python
from scipy.stats import chi2_contingency

# Observed frequencies
observed = [[900, 9100],   # Control: 900 conversions, 9100 non-conversions
            [1100, 8900]]  # Variant: 1100 conversions, 8900 non-conversions

chi2, p_value, dof, expected = chi2_contingency(observed)
print(f"P-value: {p_value}")
```

## Common Pitfalls and Solutions

### Multiple Comparisons Problem

**Problem**: Testing multiple variants increases false positive rate
**Solution**: Bonferroni correction (divide α by number of comparisons)
- Testing 3 variants: Use α = 0.05/3 = 0.0167

### Peeking Problem

**Problem**: Checking results repeatedly and stopping when significant
**Solution**:
- Pre-determine sample size and duration
- Use sequential testing methods (e.g., always-valid p-values)
- Implement stopping rules

### Novelty Effect

**Problem**: Users react to change itself, not the actual improvement
**Solution**:
- Run test longer (2-4 weeks)
- Analyze new vs returning users separately
- Look for sustained effect over time

### Selection Bias

**Problem**: Non-random assignment or different user populations
**Solution**:
- Ensure proper randomization
- Check for balance in user characteristics
- Use stratified randomization if needed

### Insufficient Sample Size

**Problem**: Test ends before reaching statistical power
**Solution**:
- Calculate required sample size before starting
- Wait for sufficient data
- Consider increasing traffic or MDE

## Advanced Techniques

### Multivariate Testing (MVT)

Test multiple elements simultaneously:
- **Example**: Test 2 headlines × 2 images × 2 CTAs = 8 combinations
- **Pros**: Test interactions between elements
- **Cons**: Requires much larger sample size

### Sequential Testing

Continuously monitor test with valid stopping rules:
- **Bayesian A/B Testing**: Update beliefs as data arrives
- **Always-Valid P-Values**: Allow peeking without inflation
- **Multi-Armed Bandits**: Dynamically allocate traffic to better variant

### Stratified Sampling

Ensure balance across important segments:
- Randomize within strata (e.g., mobile vs desktop)
- Improves precision and power
- Reduces variance

### CUPED (Controlled-Experiment Using Pre-Experiment Data)

Use pre-experiment data to reduce variance:
- Measure metric before experiment
- Adjust post-experiment metric for pre-experiment value
- Reduces required sample size by 30-50%

## Implementation

### Randomization

**User-Level**: Consistent experience for each user
**Session-Level**: Different experience each session
**Page-Level**: Different experience each page view

**Hash-Based Assignment**:
```python
import hashlib

def assign_variant(user_id, experiment_id, num_variants=2):
    hash_input = f"{user_id}_{experiment_id}"
    hash_value = int(hashlib.md5(hash_input.encode()).hexdigest(), 16)
    return hash_value % num_variants
```

### Tracking

**Events to Track**:
- Exposure: User saw variant
- Conversion: User completed goal action
- Metadata: Timestamp, user properties, context

**Example Schema**:
```json
{
  "user_id": "12345",
  "experiment_id": "homepage_redesign",
  "variant": "B",
  "timestamp": "2026-03-15T10:30:00Z",
  "converted": true,
  "revenue": 49.99
}
```

### Platforms

**Open Source**:
- GrowthBook: Feature flagging and experimentation
- Unleash: Feature toggle system
- Statsig: Experimentation platform

**Commercial**:
- Optimizely: Enterprise A/B testing
- VWO: Conversion optimization platform
- Google Optimize: Free A/B testing (integrated with Analytics)
- Adobe Target: Personalization and testing

## Analysis and Reporting

### Metrics to Report

**Primary Metric**: Main success criterion
**Secondary Metrics**: Supporting metrics
**Guardrail Metrics**: Ensure no negative impact (page load time, error rate)

**Example Report**:
```
Experiment: Homepage CTA Button Color
Duration: March 1-14, 2026 (2 weeks)
Sample Size: 50,000 per variant

Primary Metric: Click-Through Rate
- Control (Blue): 10.2% (95% CI: 9.9% - 10.5%)
- Variant (Green): 11.8% (95% CI: 11.5% - 12.1%)
- Lift: +15.7% (p < 0.001)

Secondary Metrics:
- Conversion Rate: +8.3% (p = 0.02)
- Revenue per User: +5.2% (p = 0.15, not significant)

Guardrail Metrics:
- Page Load Time: No change (p = 0.82)
- Bounce Rate: No change (p = 0.45)

Recommendation: Ship variant (green button)
```

### Segmentation Analysis

Analyze results by segment:
- Device type (mobile, desktop, tablet)
- User type (new, returning)
- Geography
- Traffic source

**Simpson's Paradox**: Overall result may differ from segment results

## Best Practices

### Before Testing

- Define clear hypothesis and success metrics
- Calculate required sample size
- Set up proper tracking
- Document experiment design
- Get stakeholder alignment

### During Testing

- Don't peek at results (or use sequential methods)
- Monitor for technical issues
- Ensure balanced traffic allocation
- Run for predetermined duration

### After Testing

- Analyze primary and secondary metrics
- Check for segment differences
- Document learnings
- Communicate results clearly
- Implement winning variant or iterate

## Using the Reference Files

### When to Read Each Reference

**`/references/statistical-methods.md`** — Read when calculating sample sizes, choosing statistical tests, or understanding p-values and confidence intervals.

**`/references/experiment-design-patterns.md`** — Read when designing complex experiments, implementing multivariate tests, or using advanced techniques like CUPED.

**`/references/common-mistakes.md`** — Read when troubleshooting experiments, avoiding pitfalls, or understanding why results may be misleading.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…