Cohorts
A cohort is a saved audience — a set of users you can re-use across Messages, Experiments, Saved queries, and Exports. TrackCrumb has two kinds:
- Dynamic — defined by a rule (e.g. “users who fired
signup_completedin the last 30 days”). Membership is recomputed on a schedule. - Static — a frozen list of
distinct_ids captured at a point in time. Useful for “users who saw variant B last week” or for uploading an external list.
Open Cohorts in the sidebar (/cohorts).
Creating a dynamic cohort
Click New cohort
Pick Dynamic and give it a name. Names are unique inside a workspace.
Build the rule
The rule is a tree of conditions. Each condition is one of:
| Type | Matches users who… |
|---|---|
| Event | fired event X in the last N days |
| Property | have user-property P matching a value |
| Group | belong to a Group of type T with key K |
Combine conditions with AND / OR / NOT. Nesting is allowed — the builder renders the tree inline.
Save
Click Save. The cohort enters the list with a Dynamic badge and a member count once the first evaluation completes.
Dynamic cohorts are re-evaluated automatically — membership reflects whatever your rule matches at query time.
Creating a static cohort
Click New cohort → Static
Provide the user list
Paste distinct_id values one per line, or upload a CSV with a single distinct_id column. Unknown IDs are accepted — they will simply match no events until those users appear.
Save
The list is frozen. Members do not change unless you click Recompute (which re-snapshots from an attached rule, if any) or re-upload the list.
The Recompute action is only visible on static cohorts. Dynamic cohorts always reflect the latest data, so manual recompute is unnecessary.
Using a cohort
Once saved, a cohort appears as a filter option in:
- Messages — pick a cohort as the audience instead of writing JSON-logic.
- Experiments — restrict an experiment to a cohort.
- Trends / Funnels / Retention — add a “Cohort: X” filter to scope the report.
- Export — include a cohort filter on the Export dialog to download only events from that audience.
Managing cohorts
| Action | What it does |
|---|---|
| Edit | Reopens the rule builder. Saves create a new evaluation. |
| Recompute | (Static only) re-snapshots the attached rule. |
| Delete | Removes the cohort. If the cohort is referenced by a message, experiment, or saved query, the dashboard prompts you with the usage list before you can force-delete. |
Limits & gotchas
- Member cap is enforced by the export pipeline — 1,000,000 IDs per cohort export job. Larger cohorts can still target messages/experiments; only export is bounded.
- Anonymous users match cohorts the same way as identified ones (by
distinct_id). Callidentify()to stitch them if needed. - Deleting a cohort referenced by an active message/experiment disables the target rather than failing silently — verify in Messages or Experiments afterwards.
Related
- Groups — company-level audiences (different from user cohorts)
- Messages — pick a cohort as your audience
- Exporting events — filter exports by cohort