User Cohorts
Group players by what they did (events, spend, deeplinks, experiments, and funnels) and use the group to filter or break down any query.
A cohort is a saved group of players defined by what they did: "bought something in the last 7 days", "top 1% of spenders", "used the summer deeplink", "completed the onboarding funnel", "enrolled in the Double XP experiment". Gamebeast works out who belongs each time the cohort is used, so the group stays current as players keep playing.
Cohorts are for analysis about players. A filter like "Purchase where amount > 100" limits which events a chart counts. A cohort decides which players are in the chart at all.
Using a cohort
Cohorts can be used in any query in the Query Builder as a Breakdown, a Local filter, or a Global filter.
- As a filter, choose Is in to keep only the cohort's players, or Is not in to leave them out.
- As a breakdown, the query splits into two series: players in the cohort and players who aren't.
- Login / In Spendersavg 75.6
- Login / Not in Spendersavg 230.9
Creating a cohort
You can create a cohort in two places:
- Data → User Cohorts, with Create Cohort. The table lists every cohort with its description and who created it. Each row's menu has Edit cohort, Duplicate cohort, and Delete cohort.
- The Query Builder. Open the value list for a filter or breakdown, choose Cohort, and click Create cohort at the bottom.
The cohort editor opens as a sheet along the bottom of the page. Drag the handle on its top edge to make it taller or shorter (double-click the handle to switch between the default and the tallest height). The left side has:
- Name (required).
- Description (optional, up to 1000 characters). See Descriptions.
- Users in this cohort: how many players match the definition, updated as you edit.
- Cancel and Create (or Save).
The definition fills the rest of the sheet. Clicking outside the sheet doesn't close it, so a stray click won't throw away your work. Press Escape or the close button to leave without saving.
Building the definition
A definition is a list of conditions. Join them with and (a player must meet all of them) or or (any one is enough). To mix the two, like "(A or B) and C", add a group: a group is a set of conditions with its own and/or, and groups can be nested up to three levels deep. Drag a condition or group to reorder it.
Every condition reads as a sentence, one line per question:
Who did ·
PurchaseWhereitemisStarter PackHaving Total Events · at least · 3 When In the last 30 days
The control at the start of the Who line sets whether players must match the condition (did, are in, are enrolled in, completed) or must not match it (did not, are not in, and so on). The row's icons duplicate it or add a filter to it.
Try combining conditions on a made-up group of players:
And: a player must meet every condition.
Add condition inserts an empty row. Empty rows are dropped when you save, and conditions stay in the order you put them.
Condition types
The condition picker has a tab for each type. Types marked Beta in the picker are new and may still change.
| Type | Matches players who… | Lines |
|---|---|---|
| Event | did (or did not) send a marker, by count, an aggregate, or a rank | Who, Where, Having, When |
| Cohort | are (or are not) in another saved cohort | Who |
| Deeplink | did (or did not) use a deeplink | Who, When |
| All deeplinks | used any deeplink, or any from a selection | Who, Where, When |
| Experiment | are (or are not) enrolled in an experiment, or group | Who, Where, When |
| All experiments | are enrolled in any experiment, or any from a selection | Who, Where, When |
| Funnel | completed (or did not complete) a saved funnel | Who, Reached, When |
Hover a funnel, experiment, or deeplink in a condition to preview it without leaving the editor.
Event conditions
An event condition is about one marker and has up to four lines.
Who: the marker, and whether players did or did not send it.
Where (optional): filters on the marker's properties, so only some events count. Add one with the filter icon on the row, for example "only Purchase events where amount is more than 100".
Having: what is measured for each player, then how it's compared.
The measure is one of:
- Total Events: how many matching events the player sent. The most common choice.
- Frequency per session: first counts the player's events in each session, then aggregates those per-session counts (for example, the average number of purchases per session).
- Aggregate property: an aggregate of one of the marker's properties, such as the Sum of
amount, the Averagelevel, Distinct Count ofitemId, a percentile, or the First Value ofplatform.
The comparison is one of three kinds:
| Kind | Options | Example |
|---|---|---|
| A fixed amount | at least, more than, at most, fewer than, exactly, between | Total Events · at least · 3 |
| Ranked against users | in the top %, in the bottom % | Sum of amount · in the top · 1 % of users |
| Compared to a typical user | more than or fewer than a multiple of the average, the median, or the 25th, 50th, 75th, 90th, or 99th percentile | Sum of sessionLength · more than · 2 × the median |
When: the time window the events must fall in, such as In the last 30 days, Since a date, Between two dates, or All time.
Ranked comparisons
A fixed amount is the same bar for everyone. A ranked comparison sets the bar relative to the other players, so "top 1% of spenders" keeps meaning the top 1% as your game grows, without you raising the number.
Try it on a made-up group of players:
Players who are in the top 10% of spenders in the last 30 days.
Users in this cohort: 3 of 36Ranked among the 28 players who purchased in the window. The 8 who never purchased aren't ranked. Players with no purchases have nothing to measure, so they never match.
Things to know about ranked comparisons:
- Only players who did the event are ranked. "Top 10% of spenders" means the top 10% of the players who purchased in the window, not of every player. The same goes for the average or median a player is compared to.
- "Did not" is measured against every player. did not with "in the top 10%" also includes players who never purchased at all.
- Ties share a rank. Players with the same value are either all in or all out.
- Comparing to a statistic of 0 matches nobody.
- Ranked comparisons work with numeric measures: Total Events, frequency per session, and the sum, average, median, minimum, maximum, or distinct count of a property. They aren't offered for percentiles, or for First Value, Last Value, and Most Frequent.
The same is true for fixed amounts: a player with no matching events has nothing to measure, so "did · Purchase · at most · 2" doesn't include players who never purchased. To include them, use did not with at least 3 instead.
All time
Choose All time to count every matching event your project has ever recorded, for segments like "made at least 5 purchases ever" or, with did not, "never finished the tutorial". You don't need to pick a very long window to approximate it.
All-time conditions look at your project's full history, so on large projects they take longer to compute than a short window. Use a window when the segment doesn't need everything.
Cohort conditions
Pick another saved cohort to include its players (are in) or exclude them (are not in). This lets you build cohorts out of cohorts, like "Spenders" and not "Testers". References can be nested up to three cohorts deep, and a cohort can't reference itself.
Deeplink conditions
Players who did use (or did not use) a deeplink, meaning they joined the game through it. When starts at All time. Pick a window to count only joins inside it, like "used the summer link in the last 7 days".
All deeplinks is the same, for any of your deeplinks. Use the filter icon to narrow it to a selection of links.
Experiment conditions
Players who are enrolled in (or are not enrolled in) an experiment right now. Players who have been unenrolled no longer match. Only current experiments with the User unit can be used, because a cohort is a group of players.
- Use the filter icon to narrow it by group: In groups (for example, only players in the treatment) or Not in groups. "Not in groups" only covers the experiment's members: "enrolled, but not in Control" doesn't match players outside the experiment.
- Pick a When window to require that the player's current assignment was made inside it, like "assigned in the last 7 days".
All experiments is the same, for any of your experiments. Use the filter icon to narrow it to a selection.
Funnel conditions
Players who completed (or did not complete) a saved funnel. The picker lists funnels that are on at least one dashboard. Hover one to see which dashboards it's on, with a link that opens each in a new tab.
- Reached is Entire funnel by default. Pick a step to match players who reached at least that step.
- When is required, and replaces the funnel's own date range.
- Everything else comes from the saved funnel: its steps, step filters, global filters, conversion window, and ordering. Breakdowns don't apply.
- The condition always uses the funnel's latest version, so editing the funnel changes the cohort. If the funnel is deleted, the condition matches nobody.
- Funnels that filter by a cohort, or by new or first-time users, can't be used in a cohort.
Descriptions
Each cohort can have a Description of up to 1000 characters saying who is in it and what it's for, for example "Players with 5+ purchases ever, used for VIP offers." Set it when you create or edit the cohort. Leave it empty to remove it.
The description appears in the User Cohorts table on the Data page and when you hover a cohort in the Query Builder. The assistant and MCP agents read descriptions to pick the right cohort, and can write them for you with your approval.
Editing or deleting a cohort
To edit a cohort, open it from Data → User Cohorts, or hover it in a filter or breakdown and click the Edit cohort icon that appears on the card.
You can change the name, description, and definition.
To delete it, open the ⋯ menu next to the close button and choose Delete cohort, or use Delete cohort in the table. Queries that still use a deleted cohort stop working until you remove it from them.
If an experiment uses the cohort, the editor says which one. The experiment keeps the definition the cohort had when the experiment was created, so your edits apply to new experiments only. A cohort can't be deleted while an experiment uses it.
Cohorts with the assistant and MCP
The assistant and MCP agents can find your cohorts, explain what they do, count their players, and use them in queries. Ask for a group in plain language, like "players in the top 5% of spenders who haven't logged in this week", and the agent builds the definition and shows how many players match. In the assistant, Save Cohort saves it with the suggested name and description, and Edit Cohort opens it in the cohort editor so you can adjust it first.
Creating, editing, and deleting cohorts needs the cohorts:write permission, and the assistant asks for your approval first.
Funnels
Funnels are a great way to visualize the flow of players through your game, allowing you to see where players are dropping off and which paths they are taking.
Deeplinks
Shareable short links that send players into your Roblox game, or to any web page, and track who clicked, where they came from, and what the players they brought in went on to do.