A light-weight JavaScript library to help you make sense of your A/B test results.

Downloads in past


1.2.010 years ago10 years agoMinified + gzip package size for confidencejs in KB


Confidence.js is a light-weight JavaScript library to help you make sense of your A/B Test results. Given an A/B test (or "Split Test") result set, Confidence.js will tell you if a statistical "winner" can be determined.


Getting Started

Download confidence.js here
Include confidence.js in your HTML.
<script src="path/to/confidence.js"></script>

You're all ready! Start testing... with confidence.


We have many examples in the API Reference. Here's a simple one to get you started:
// Create a new test result
var myConfidence = new Confidence();

// Add variant A results
  id: 'A',
  name: 'Variant A',
  conversionCount: 2500,
  eventCount: 3000

// Add variant B results
  id: 'B',
  name: 'Variant B',
  conversionCount: 1500,
  eventCount: 3000

// Get results, using Z-Test method
zTestResult = myConfidence.getResult();
  hasWinner: true,
  hasEnoughData: true,
  winnerID: 'A',
  winnerName: 'Variant A',
  confidencePercent: 95.00,
  confidenceInterval: { min: 82, max: 84.67 },
  readable: 'With 95% confidence, the true population
    parameter of the "Variant A" variant will
    fall between 82% and 84.67%.'

How It Works

Confidence.js provides two methods for evaluating an A/B test:
  • The Z-Test Method
  • Chi Square Test and Marascuillo's Procedure

Selecting an appropriate method depends on your data set and use case - both have advantages.
Learn how each method works here.

Running the Tests

npm install
npm test

Feature Requests and TODO

  • implement "Confidence to beat baseline" comparison (in progress)
  • add removeVariant function

Issues and Questions

Found a bug? Create an issue here on GitHub!
For general questions, tweet me @jessicaraygun.


Developed and maintained by Jessica Thomas, Data Scientist @, with guidance and tutelage from Statistics Mastermind Emily Malcolm.