Skip to content

A/B Test Analyzer ​

Decide whether an experiment's variant really beat the control, or whether the difference is just noise. Two modes: continuous metrics (revenue, duration) and conversion counts.

Quick start ​

  1. Open Tools → A/B Test Analyzer (/tools/abtest).
  2. Pick the test type:
    • Continuous — comparing means (e.g. revenue per user).
    • Conversion — comparing rates (e.g. checkout completion).
  3. Fill in the cohort data (or click Sample to try with mock data).
  4. Click Run analysis.

Continuous mode ​

Paste numeric values for each arm — comma- or whitespace-separated. Lines and tabs both work as separators, so you can copy/paste directly from a spreadsheet.

The test used is Welch's t-test (two-sample, unequal variances), which is robust to unequal variance between groups. Returns:

  • Each arm's mean, sample size, standard error, 95% CI.
  • Absolute and relative lift (variant vs control).
  • 95% CI on the difference.
  • t-statistic, degrees of freedom, p-value.

If your data is heavily skewed (e.g. revenue with a long right tail), Welch's t-test still works reasonably well for n ≥ 30 per arm thanks to the Central Limit Theorem. For smaller, very non-normal samples, consider log-transforming or asking us to add Mann-Whitney U.

Conversion mode ​

Provide visitor and conversion counts for each arm. The test used is the two-proportion z-test:

  • Pooled standard error for the test statistic.
  • Unpooled (Wald) standard errors for the per-arm 95% CIs.
  • Returns z-statistic, p-value, and the difference in conversion rates with its CI.

Additionally, the analyzer estimates the required sample size per arm to detect the observed effect at 80% power. If your current sample is smaller than that, you've found an effect but the test wasn't powered to confirm it — recommendation: run longer.

Reading the verdict ​

  • Verdict: Significant — p-value < α. Reject the null hypothesis; variant differs from control.
  • Verdict: Not significant — p ≥ α. Either no real effect or sample too small. Look at the required-sample-size estimate (conversion mode) to decide whether to keep collecting.

The default α is 0.05, adjustable via the slider from 0.01 to 0.20.

Common pitfalls the analyzer doesn't (yet) catch ​

  • Peeking: running multiple analyses as data trickles in inflates your false-positive rate. Either fix sample size up front or use sequential tests.
  • Multiple comparisons: if you have several metrics, the chance of a false positive on at least one of them grows. Apply Bonferroni correction (divide α by the number of tests) or pick a single OEC.
  • Novelty / primacy effects: a variant might win for a week then flatten. Plot daily metrics to spot this.
  • Segment effects: if a variant helps one segment and hurts another, the overall result hides the truth. Run by segment.

API ​

POST /api/abtest/continuous ​

json
{
  "control": { "name": "Control", "values": [12.5, 13.1, ...] },
  "variant": { "name": "Variant", "values": [14.0, 14.5, ...] },
  "alpha": 0.05
}

POST /api/abtest/conversion ​

json
{
  "control": { "name": "Control", "visitors": 2000, "conversions": 160 },
  "variant": { "name": "Variant", "visitors": 2000, "conversions": 196 },
  "alpha": 0.05
}

Both return the same ABResponse shape: per-arm summary, diff with CI, test statistic, p-value, significant boolean, and a plain-English interpretation.

Made with ❤︎ by the RINK team · rinkglobal.com