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.
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:
- Instatiate connections (subject_source and subject_sink) using your credentials and the connector wrappers.
- Instantiate a distributor. Distributors define the treatment group assignment logic. More info below.
- Define the experiment stages and filters.
- Instantiate a Dish, with those connections, a distributor, stages and filters.
- Set up a cron job that regularly runs the dish instance
run()
method. - check the spreadsheet that updates with that regularity.
[ add in gifs and screenshots of the process of creating an experiment]
- support for automated actions (e.g: emails) to subjects based on stage and possibly metrics or others
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 ^.