PluginBench
Skill
Pass
Audit score 90

ab-test-analysis

phuryn/pm-skills

Analyze A/B test results with statistical significance, confidence intervals, and ship/extend/stop recommendations.

What is ab-test-analysis?

Evaluate A/B test results with statistical rigor to determine if variants are winners. Use this skill when you have experiment data and need to assess statistical significance, validate sample sizes, check guardrail metrics, and make data-driven shipping decisions.

  • Calculate conversion rates, relative lift, p-values, and 95% confidence intervals for control and variant groups
  • Validate sample size adequacy using power analysis and flag underpowered tests
  • Check for sample ratio mismatch and novelty/primacy effects that could bias results
  • Evaluate guardrail metrics to ensure primary metric wins don't come with hidden costs
  • Generate Python scripts to analyze raw data from CSV, Excel, or analytics exports
  • Provide clear ship/extend/stop/investigate recommendations based on statistical and practical significance

How to install ab-test-analysis

npx skills add https://github.com/phuryn/pm-skills --skill ab-test-analysis
Claude Code
Cursor
Windsurf
Cline

How to use ab-test-analysis

  1. 1.Gather your A/B test data including control and variant metrics, sample sizes, and test duration
  2. 2.Provide the hypothesis, what was changed, primary metric, and any guardrail metrics
  3. 3.Share raw data files (CSV/Excel) if available, or summary statistics
  4. 4.The skill will calculate statistical measures and validate test setup
  5. 5.Review the results table with lift, p-values, and significance
  6. 6.Follow the recommendation (Ship/Extend/Stop/Investigate) and next steps provided

Use cases

Good for
  • Deciding whether to ship a winning variant after a test reaches statistical significance
  • Determining if a test needs to run longer when results show positive trend but lack significance
  • Identifying when to stop a test that shows no meaningful difference from control
  • Investigating trade-offs when primary metrics improve but guardrail metrics degrade
  • Validating that a test was properly powered before drawing conclusions from results
Who it's for
  • Product managers evaluating experiment results
  • Data analysts interpreting A/B test outcomes
  • Growth teams deciding on feature rollouts
  • Anyone responsible for shipping decisions based on test data

ab-test-analysis FAQ

What sample size do I need for my A/B test?

Use the formula n = (Z²α/2 × 2 × p × (1-p)) / MDE² where MDE is your minimum detectable effect. The skill flags tests with less than 80% statistical power as underpowered.

What does p-value < 0.05 mean?

It means there's less than a 5% probability the observed difference occurred by chance. This is the standard threshold for statistical significance, but practical significance (business impact) matters too.

Should I ship if the primary metric wins but a guardrail metric drops?

Not automatically. Investigate the trade-off first. A small guardrail decline might be acceptable for a large primary metric win, but significant degradation suggests the variant has hidden costs.

How long should my test run?

At least 1-2 full business cycles to account for day-of-week effects and wash out novelty effects where users behave differently just because something is new.

What if my test shows a positive trend but isn't significant?

Extend the test to gather more data, or stop if the trend is too small to be practically meaningful. Don't ship based on trends alone.

Full instructions (SKILL.md)

Source of truth, from phuryn/pm-skills.


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:

    OutcomeRecommendation
    Significant positive lift, no guardrail issuesShip it — roll out to 100%
    Significant positive lift, guardrail concernsInvestigate — understand trade-offs before shipping
    Not significant, positive trendExtend the test — need more data or larger effect
    Not significant, flatStop the test — no meaningful difference detected
    Significant negative liftDon'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