Janus, an A/B Test Framework.
Project description
Janus
Janus is a simple and easy A/B Test Calculator that allows you to run A/B tests and get reports in a few lines of code.
It's developed mainly for website experiments. While many calculators only account for conversion analysis and consider only two variants, Janus allows multivariant tests and measure Conversion, Averge Ticket and Average Revenue Per User (ARPU) over variants, i.e, typical metrics for tests in marketplaces.
The engine name is an analogy to Janus, the god of changes and transitions.
Installation
Janus is distributed in pypi. You can install it by using:
pip install janus-web-ab-testing
You can now run a quick example of a A/B test:
from janus.variant import Variant
from janus.experiment import WebsiteExperiment
variant_A = Variant(
name="A",
impressions=1000,
conversions=100,
revenue=10000
)
variant_B = Variant(
name="B",
impressions=1000,
conversions=120,
revenue=9000
)
variants = [variant_A, variant_B]
experiment = WebsiteExperiment(variants, baseline_variant="A")
experiment.run()
experiment.print_reports()
And you should see:
---------------- Summary ----------------
+-------------+-------------+------------+
| | A | B |
+=============+=============+============+
| impressions | 1000 | 1000 |
+-------------+-------------+------------+
| conversions | 100 | 120 |
+-------------+-------------+------------+
| revenue | R$10,000.00 | R$9,000.00 |
+-------------+-------------+------------+
| conversion | 0.1 | 0.12 |
+-------------+-------------+------------+
| avg_ticket | R$100.00 | R$75.00 |
+-------------+-------------+------------+
| arpu | R$10.00 | R$9.00 |
+-------------+-------------+------------+
----------- Conversion Stats -----------
+-----------------+--------+--------+
| | A | B |
+=================+========+========+
| expected_loss | 0.0206 | 0.0005 |
+-----------------+--------+--------+
| prob_being_best | 0.0786 | 0.9214 |
+-----------------+--------+--------+
| lift | 0.0 | 0.2 |
+-----------------+--------+--------+
-------------- ARPU Stats --------------
+-----------------+--------+--------+
| | A | B |
+=================+========+========+
| expected_loss | R$0.14 | R$1.15 |
+-----------------+--------+--------+
| prob_being_best | 0.7936 | 0.2064 |
+-----------------+--------+--------+
| lift | 0.0 | -0.1 |
+-----------------+--------+--------+
See more in the quickstart notebook. The Average Ticket Statistics is still missing, but will be added soon (it's usually modelled with exponential distribution with gamma as prior)
The Janus Website
My plan is to build a website to showcase the Janus library and to provide a simple interface to run A/B tests. However, only the library is almost ready, and the next steps would be:
- build a backend with FastAPI using the library
- build a frontend (JavaScript maybe)
- deploy the website
Warning The distributed package is from this branch, which will be merged to
main
in the first release of this project. Themain
branch uses another previous approach for the calculations (yet correct), and has a streamlit app to showcase the library. In this branch, however, we'll change the whole project towards not only a library, but also for a full stack application, with frontend and backend.
References
- What is A/B Testing
- VWO paper about bayesian A/B testing
- Agile A/B testing with Bayesian Statistics and Python
- Understanding Bayesian A/B testing (using baseball statistics)
- It’s time to re-think A/B testing
- Conjugate Priors
- Curso de Teste A/B Bayesiano do Lazy Programmer
- Binomial Distributions
- Bayes theorem
- The quick proof of Bayes Theorem
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file janus_web_ab_testing-0.1.6.tar.gz
.
File metadata
- Download URL: janus_web_ab_testing-0.1.6.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.9.17 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4405e6b16a06d4df5e2c4e3c2268a482deab61d2e1fa1301e3ebc492ba3a78d4 |
|
MD5 | e80c7044cbaa4abda47f9abd64e85ec3 |
|
BLAKE2b-256 | 12a11a0d9369cb0cdd463023d1c727153e3ef3920777714d6acac59b13164069 |
File details
Details for the file janus_web_ab_testing-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: janus_web_ab_testing-0.1.6-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.9.17 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df97dee2baf081d802ba570133e988a95e13a530c5b0214b11597a589f306e2b |
|
MD5 | 1f95fbaf85343867c0445a1a1699d522 |
|
BLAKE2b-256 | 49ae1fd6557ae46792eb51fa64c365049ce320bec6f9f17f2ce06026f09f3d8b |