ab-test-analysis — Claude Code skill: what it does, how to install
Evaluates A/B test data, checks statistical significance, and delivers clear ship, extend, or stop recommendations.
npx skills add phuryn/pm-skills --skill ab-test-analysis -a claude-codeWhat ab-test-analysis does
This skill analyzes split test results to guide product decisions: rolling out to 100%, extending the test run, or reverting to control. It examines the initial hypothesis, checks if the test covered 1-2 full business cycles, and flags sample ratio mismatch (SRM).
When provided with CSV files, Excel spreadsheets, or analytics exports, the agent generates Python scripts to run calculations directly. It computes control and variant conversion rates, relative lift, two-tailed p-values, and 95% confidence intervals. Guardrail metrics like revenue or page load times are checked alongside the primary goal.
If test power falls below 80%, the skill flags it as underpowered before drawing conclusions. Relying solely on a winning primary metric without checking guardrails leads to bad rollouts, which this workflow explicitly prevents.
What it helps with
- evaluate statistical significance of A/B test results
- validate sample size and statistical power
- detect sample ratio mismatch (SRM) in traffic splits
- verify guardrail metrics before rolling out changes
- decide whether to ship, extend, or stop an experiment
Example prompts for the agent
- Analyze the A/B test results from experiment_data.csv and check statistical significance.
- Check this split test for sample ratio mismatch and calculate the 95% confidence interval.
- Review our experiment export and recommend whether to ship the variant or extend the run.
How to install ab-test-analysis
1Skills CLI (Vercel)
npx skills add phuryn/pm-skills --skill ab-test-analysis -a claude-code2Manually: put the files in place
~/.claude/skills/ab-test-analysis/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ab-test-analysis/
1Skills CLI (Vercel)
npx skills add phuryn/pm-skills --skill ab-test-analysis -a codex2Manually: put the files in place
.agents/skills/ab-test-analysis/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add phuryn/pm-skills --skill ab-test-analysis -a cursor2Manually: put the files in place
.cursor/skills/ab-test-analysis/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install phuryn/pm-skills ab-test-analysis2Manually: put the files in place
.github/skills/ab-test-analysis/SKILL.md1Skills CLI (Vercel)
npx skills add phuryn/pm-skills --skill ab-test-analysis -a gemini-cli2Platform CLI
gemini skills install https://github.com/phuryn/pm-skills --path pm-data-analytics/skills/ab-test-analysisManually: put the files in place
.devin/skills/ab-test-analysis/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add phuryn/pm-skills --skill ab-test-analysis -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set61
The whole set →Similar
Questions about ab-test-analysis
How to install ab-test-analysis in Claude Code?
Run npx skills add phuryn/pm-skills --skill ab-test-analysis -a claude-code in your terminal.
What does the ab-test-analysis skill do?
It validates experiment duration and sample size, runs Python scripts for p-values and confidence intervals, and outputs markdown recommendations.
When does ab-test-analysis recommend extending a test?
It suggests extending the test when there is a positive lift trend but results have not reached statistical significance with p < 0.05.
Source text
SKILL.md · MIT
---
name: ab-test-analysis
description: "Analyze A/B test results with statistical significance, sample size validation, confidence intervals, and ship/extend/stop recommendations. Use when evaluating experiment results, checking if a test reached significance, interpreting split test data, or deciding whether to ship a variant."
---
## A/B Test Analysis
Evaluate A/B test results with statistical rigor and translate findings into clear product decisions.
### Context
You are analyzing A/B test results for **$ARGUMENTS**.
If the user provides data files (CSV, Excel, or analytics exports), read and analyze them directly. Generate Python scripts for statistical calculations when needed.
### Instructions
1. **Understand the experiment**:
- What was the hypothesis?
- What was changed (the variant)?
- What is the primary metric? Any guardrail metrics?
- How long did the test run?
- What is the traffic split?
2. **Validate the test setup**:
- **Sample size**: Is the sample large enough for the expected effect size?
- Use the formula: n = (Z²α/2 × 2 × p × (1-p)) / MDE²
- Flag if the test is underpowered (<80% power)
- **Duration**: Did the test run for at least 1-2 full business cycles?
- **Randomization**: Any evidence of sample ratio mismatch (SRM)?
- **Novelty/primacy effects**: Was there enough time to wash out initial behavior changes?
3. **Calculate statistical significance**:
- **Conversion rate** for control and variant
- **Relative lift**: (variant - control) / control × 100
- **p-value**: Using a two-tailed z-test or chi-squared test
- **Confidence interval**: 95% CI for the difference
- **Statistical significance**: Is p < 0.05?
- **Practical significance**: Is the lift meaningful for the business?
If the user provides raw data, generate and run a Python script to calculate these.
4. **Check guardrail metrics**:
- Did any guardrail metrics (revenue, engagement, page load time) degrade?
- A winning primary metric with degraded guardrails may not be a true win
5. **Interpret results**:
| Outcome | Recommendation |
|---|---|
| Significant positive lift, no guardrail issues | **Ship it** — roll out to 100% |
| Significant positive lift, guardrail concerns | **Investigate** — understand trade-offs before shipping |
| Not significant, positive trend | **Extend the test** — need more data or larger effect |
| Not significant, flat | **Stop the test** — no meaningful difference detected |
| Significant negative lift | **Don't ship** — revert to control, analyze why |
6. **Provide the analysis summary**:
```
## A/B Test Results: [Test Name]
**Hypothesis**: [What we expected]
**Duration**: [X days] | **Sample**: [N control / M variant]
| Metric | Control | Variant | Lift | p-value | Significant? |
|---|---|---|---|---|---|
| [Primary] | X% | Y% | +Z% | 0.0X | Yes/No |
| [Guardrail] | ... | ... | ... | ... | ... |
**Recommendation**: [Ship / Extend / Stop / Investigate]
**Reasoning**: [Why]
**Next steps**: [What to do]
```
Think step by step. Save as markdown. Generate Python scripts for calculations if raw data is provided.
---
### Further Reading
- [A/B Testing 101 + Examples](https://www.productcompass.pm/p/ab-testing-101-for-pms)
- [Testing Product Ideas: The Ultimate Validation Experiments Library](https://www.productcompass.pm/p/the-ultimate-experiments-library)
- [Are You Tracking the Right Metrics?](https://www.productcompass.pm/p/are-you-tracking-the-right-metrics)
© phuryn · MIT · phuryn/pm-skills