GamebeastDocs
Dashboard

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.
0144288Oct 8Oct 9Oct 10Oct 11Oct 12Oct 13Oct 14
  • Login / In Spendersavg 75.6
  • Login / Not in Spendersavg 230.9
MetricsLogin · Total EventsBreakdownsSpenders
InteractiveSwitch how the cohort is used. A breakdown splits the chart into players in the cohort and everyone else; a filter keeps or removes the cohort's players. The data is made up.

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 · Purchase Where item is Starter Pack Having 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:

WhoLogin
HavingTotal Events · at least · 3
WhenIn the last 7 days
WhoPurchase
HavingTotal Events · at least · 1
WhenIn the last 30 days
WhoDeeplink · summer-event
WhenAll time
Users in this cohort18 of 48

And: a player must meet every condition.

InteractiveTurn conditions on and off, flip did / did not, and switch between and / or. The count and the grid show who's in. The players are made up.

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.

TypeMatches players who…Lines
Eventdid (or did not) send a marker, by count, an aggregate, or a rankWho, Where, Having, When
Cohortare (or are not) in another saved cohortWho
Deeplinkdid (or did not) use a deeplinkWho, When
All deeplinksused any deeplink, or any from a selectionWho, Where, When
Experimentare (or are not) enrolled in an experiment, or groupWho, Where, When
All experimentsare enrolled in any experiment, or any from a selectionWho, Where, When
Funnelcompleted (or did not complete) a saved funnelWho, 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 Average level, Distinct Count of itemId, a percentile, or the First Value of platform.

The comparison is one of three kinds:

KindOptionsExample
A fixed amountat least, more than, at most, fewer than, exactly, betweenTotal Events · at least · 3
Ranked against usersin the top %, in the bottom %Sum of amount · in the top · 1 % of users
Compared to a typical usermore than or fewer than a multiple of the average, the median, or the 25th, 50th, 75th, 90th, or 99th percentileSum 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:

WhoPurchase
HavingSum · amount% of users
WhenIn the last 30 days

Players who are in the top 10% of spenders in the last 30 days.

Users in this cohort: 3 of 36
Players who purchased, by total spend
Players who never purchased

Ranked 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.

InteractivePick did or did not, switch between a fixed amount, a top share, and a multiple of a typical player, then change the number. Highlighted players are in the cohort. The players are made up, and the definition is checked by the same schema the API uses.

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.

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.

On this page