Skip to content

nicosandller/petri-dish

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Petri Dish

Introduction

Petri dish is designed to build an experiment timeline with stages and treatment groups, and track the evolution of the experimentation subjects throughout the experiment.

Getting Started

In practice, Petri dish allows you to get experimentation subjects data from postgres, apply filters and assign treatment groups to each one and then track their progress through the experimentation stages through a google sheets spreadsheet. Here is how you set it up:

  1. Instatiate connections (subject_source and subject_sink) using your credentials and the connector wrappers.
  2. Instantiate a distributor. Distributors define the treatment group assignment logic. More info below.
  3. Define the experiment stages and filters.
  4. Instantiate a Dish, with those connections, a distributor, stages and filters.
  5. Set up a cron job that regularly runs the dish instance run() method.
  6. check the spreadsheet that updates with that regularity.

Example

[ add in gifs and screenshots of the process of creating an experiment]

Next improvements

- built in daemon capabilities to replace dependency from cron job setup
- support for automated actions (e.g: emails) to subjects based on stage and possibly metrics or others
- increased coverage
- support for surveys

More Info

Treatment group assignment

A good distribution of experimentation subjects (in terms of characteristics or properties) across the treatment groups is essential for any type of experiment.

Whenever we expect a large amount of subjects per treatment group, this isn't a particular event and random assignment should be enough to expect the law of large numbers to do the job.

However, if the expected amount of subjects per group is low, there are ways we can direct the assignments of subjects to groups in order to maximize the diversity across treatment groups.

We've added tools to handle that as part of this framework. Links above ^.

About

Simple experimentation tracking framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%