ChatMaestro · Scenarios · Experiment lifecycle

Build a Cohort

Experimenter  Assemble a reusable group of enrollees that runs can target.
Screen  Cohorts cohorts.html
Writes  the group cohortits members cohort_member
Key fields  unique name cohort.nameeach member cohort_member.enrollee_idfree-text note notes

1 · Given / When / Then

Human wording first; the exact table/field in mono.
Given
Enrollees exist as people (profile rows with role enrollee), invited on the Users & roles Screen. The experimenter has the experimenter or admin role.
When
On the Cohorts Screen they create a group: a unique name, then hand-pick the people, optionally a notes line, and Save. Groups are always explicit rosters, so who is in a run is exact and reproducible.
Then
A cohort row plus one cohort_member row per person is written. The group is a shared, reusable pool: any run can target it, and the same person may be in several groups. The one hard rule is enforced later, at launch: two runs that are live at the same time must target non-overlapping groups.
writes cohort, cohort_member
Variations and exceptions
If…Then…
The name is already in useRefused on save: cohort.name is unique across the install.
Any run references the groupIts name and membership are read-only and it cannot be deleted (RESTRICT); only notes stays editable. To run a changed roster, clone the group, so every run's enrollees stay exactly reproducible.
The same person is placed in two groupsAllowed. Overlap is checked only at launch, when a second concurrent run would target overlapping people (Launch a Run).
Acceptance testGiven enrollee profiles exist, When the experimenter saves a group with a unique name and N members, Then one cohort and N cohort_member rows exist and the group appears in the launch picker.

2 · The Journey, Screen by Screen

One screen; Save writes the group and its members.
Open the cohort list Cohorts Screen Name the group name (unique) Add enrollees cohort_member rows Add a note (optional) notes — searchable Save the group writes cohort pickable at launch

3 · In Plain English

A cohort, also called an enrollee group, is a named list of people you want to run a study on, the equivalent of a class roster.

You hand-pick the people you want. Groups are reusable: build one once and point many runs at it.

One rule matters, and it applies only when runs are live at the same time. The same person cannot be in two running studies at once, or their answers would be shaped by two different conditions. You can still reuse a group over time, just not simultaneously.

Fits the schema cleanly. The group is cohort; membership is cohort_member. The disjoint-cohort rule is a launch-time check, not a stored field.