Measure Retention

Why users stay? Or go...


Retention is a Formula which shows how different Cohorts of users (defined by Starting Events on a Date) retain over time. This type of analysis is typically used to understand the difference between users who retain and those that don't and how to adapt user journeys in order to make products more sticky.

The main controls are:

  • Specify the Time Unit for Cohort and Retention, default is Day
  • Select the Starting Event(s) and Returning Event(s)

There are a few advanced parameters which can be used to fine-tune the analysis:

  • Select Attribution - Linear or First. Linear means that a User will be assigned to all Cohorts when the Starting Event(s) occurs (inclusive), whereas First means that a User will be assigned only to the Cohort for the day when the first Starting Event(s) occurred.
  • Select Breakdown - applied for each date of the Retention.
  • Select Groupby - Starting or Global. Groupby is only applicable when there is a Breakdown specified. For example, if there was a Breakdown per Country, when Groupby = Starting, Kubit will group users only for the Starting Event(s) and ignore the Returning Event(s)' Country code. When Groupby = Global, both Starting and Returning Event(s) have to have the same Country code.
  • Retention type
    • Normal: if user returns on day X of the retention period they are counted as retained
    • Rolling: for a user to be counted as retained on day X they have to also have come back on every day of the retention period from 1 to X
    • Unbounded: users retained on day X are also counted as retained on every day of the retention period from 1 to X
  • Switch between Retention and Churn
  • + Days: defines the time window between the Starting and Returning Event(s)

Retention types

There are multiple ways to measure retention, so in this section we'll cover the ones supported by Kubit. There is, however, something common concepts between all retention types - the Retention chart displays each cohort as a row identified by Cohort Date, followed by how many unique users exist on that initial date, then how many of them came back/churned on the following dates.


Normal Retention

In a nutshell - for each starting cohort, for each remaining date of the time period, count all users who are part of the starting cohort and have at least one returning event on that date.

It is useful when users are expected to return regularly over relatively short time periods.

Rolling Retention

Rolling retention is called Rolling, because we not only require a user to have been a part of the starting cohort and have a returning event on a particular date X in order to count them on that date, but we also want them to have a returning event on each date between the starting cohort date and X. We expect the user to have been continuously returning, hence - Rolling.

Useful when high stickiness is expected.

Unbounded Retention

In some businesses users return less regularly, e.g. once a month to pay a bill or fill in supplies. When that's the case Unbounded Retention can help get a more accurate number of retained users, because users will be counted not only on their return date, but also on all dates prior to it.

Measure Churn

Churn is essentially the inverse metric of Retention. If Retention tells us how many users are returning, Churn measures how many users are not coming back. Switching from Retention to Churn is done by a switch and does not require re-execution of existing analyses.


Retention Calculation Windows

In retention there are typically 2 ways to think of a day:

  1. A Calendar Day that starts at 00:00 and ends at 23:59.
  2. A 24h Window between the Starting and Returning Event(s) that is individual for each user.

Let's assume the following sequence of events for a user:

  1. Start event - 2022-07-01 10:00:00
  2. Return event - 2022-07-01 11:00:00
  3. Return event - 2022-07-02 09:00:00
  4. Return event - 2022-07-02 12:00:00

Strict Calendar Date

Strict calendar date window computes the difference between start and return events based on calendar dates. Let's go through the example above.

Start EventReturn EventRetained At Day
2022-07-01 10:00:002022-07-01 11:00:00Day 0
2022-07-01 10:00:002022-07-02 09:00:00Day 1
2022-07-01 10:00:002022-07-03 12:00:00Day 2

Strict calendar date windows are not equal because in this case the start date makes the window shorter compared to Day 1, 2 etc. In the example above Day 0 starts at 2022-07-01 11:00:00 and ends at 2022-07-01 23:59:59 while Day 2 and 3 have exactly 24 hours length starting from 00:00:00 and ending at 23:59:59 o'clock.

24 Hour Windows

24 hour windows defines each day as equal interval as exactly 24 hours after each start event timestamps. Let's go through the example above again but this time using 24 hour windows calculation window.

Start EventReturn EventRetained At Day
2022-07-01 10:00:002022-07-01 11:00:00Day 0
2022-07-01 10:00:002022-07-02 09:00:00Day 0
2022-07-01 10:00:002022-07-03 12:00:00Day 2

The example above shows that each day is computed with exactly 24 hours after the start event. Day 0 starts at
2022-07-01 10:00:00 and ends at 2022-07-02 09:59:59. That's why the returned event at 2022-07-02 09:00:00 is computed as Day 0 but not Day 1 as it will be with Strict Calendar Date window.

Overall in Retention

Whenever a Breakdown is specified in Retention you can use the Overall toggle to display the cumulative count for all breakdown groups as a separate group. The Overall group is displayed among the other Breakdown groups. Note: Overall toggle is switched off by default when Breakdown is selected.
Check out the screenshots below to get a better sense of how Retention results with Overall enabled looks: