Docs
Retention

Retention

Overview

/Screen_Shot_2021-05-27_at_7.49.12_AM.png

The Retention report in Mixpanel is designed to assess user engagement over a specified period of time. Retention of your users is critical to achieving product-market fit and sustainable long-term growth, and this report will help you understand how long users continue to come back and find value from your product.

Use Cases

Here are some of the sample questions you can answer in Retention:

  • On average, how many users are still active after two weeks from signing up?
  • What percent of all users are still sending messages after seven days?
  • How has my 7 day messaging retention changed over time?
  • What percent of users sent messages in 2, 3, or 4 distinct hours of the day?

Quick Start

Building a Retention report follows the same high level steps as building any other report. You can read about report building basics here.

Step 1: Define your Retention Behavior

The retention behavior is the basic building block of a Retention report. A retention behavior is doing an event and then coming back to do another event. In this case, since we want to know retention after signup, choose "Sign Up Completed" in the first event slot. Then, we want to know if users are coming back and using the product, so choose "Any Event" in the second event slot. At this point, your query should look like this:

/retention_beta_1.png

Step 2: Choose your Measurement

After your retention behavior is defined, you can choose how you want to measure it. By default, Retention report will select retention rate as the measurement, but you can also measure the number of users retaining. You can change the measurement by selecting "Retention Rate" in the bottom left of the retention metric definition. In this case, we don't want to change the measurement, so it can be left alone.

/retention_beta_2.png

Step 3: Choose Filters

Filters exclude unwanted data. In this case, we only care about events performed on Chrome browser. Therefore, add a "Browser" filter, where Browser equals "Chrome". At this point, your query should look like this:

/Retention_Filter.png

Step 4: Choose Breakdowns

Breakdowns segment data into groups. In this case, we want to break our report down based on the browser version they are using to Sign Up. Therefore, add an "Browser Version" breakdown. At this point, your query should look like this:

/Retention_Breakdown.png

Step 5: Choose Visualization

You can visualize your metric in a variety of ways. Mixpanel allows you to choose how you would like to visualize your data. Select "Retention Curve" in the top right to change your visualization. In Retention, you can choose:

  • Retention Curve - see how users retaining over time. Users are bucketed by when they initally entered the product.
  • Line - see how your metric is trending over time. Used to see a particular retention group rate is trending over time.
  • Metric - see a summary view of your metric

/retention_beta_5.png

FAQ

Retention reports do not extend beyond 60 days. How can I look beyond the 60 day mark?

Currently, when using "Day" retention, Retention reports are limited to 60 days. One way to extend it would be to switch "Each Day" to "Each Week/Month" under the Retention Criteria.

How is Retention calculated?

When you create an unsegmented retention query (i.e. a retention query that is not segmented by a property or cohort), Mixpanel will automatically intervalize the retention calculation.

In other words, we will calculate the retention of each and every cohort based upon the selected birth interval unit (day/week/month cadence that the user performed the A action) and then summarize it into one line by taking the average of all complete buckets. You can see the retention of each individual interval by expanding the Average Retention column:

/intervalized_retention.png

Segmented queries are now calculated with that same intervalized average method, but for each particular property value or cohort segment. You can now expand out any particular segment's name in a retention query to see the retention of each day, week, or month interval within that segment:

/segemented_intervalized_retention.png

Intervalized averages to segmented retention queries have two key advantages:

  1. Not including users in incomplete periods: The non-intervalized method did not give all users an equal chance to qualify for the later retention buckets. Newer, more recent users to come into the query towards the end of your date range would not have enough time pass to have the opportunity to be retained in the later date buckets. This would sandbag the last retention buckets in your query. With intervalized retention, Mixpanel only counts the completed time periods into the Average Retention calculation so that all users have the same opportunity to be retained.
  2. More granular analysis: Users are now able to see how the individual birth interval cohorts are performing within a particular segment. This unlocks the ability to get more answers and dive deeper into particular cohorts of interest.

How is the "Average" row for Retention reports calculated?

Mixpanel calculates the "Average" row values by taking the average of all the completed buckets, weighted by the number of users who enter. Let's walk through an example using this sample data:

DateTotal Profile(s)Day 1 Retained Users
March 11000500
March 2500400
March 370010 (incomplete)

From our sample data, the average value for day 1 retained users is calculated as follows:

When examining a Retention report in % / Retention Rate view:

C_March 1 = 500 (count retained for March 1)

C_March 2 = 400 (count retained for March 2)

W_March 1 = 1000 / 1500 (weight for March 1)

W_March 2 = 500 / 1500 (weight for March 2)

P_March 1 = 1000 (total profiles for March 1)

P_March 2 = 500 (total profiles for March 2)

**Weighted Average of Retained Users = C_March 1 * W_March 1 + C_March 2 * W_March 2

In our sample data, this computes to: ( 500 * 0.66 ) + ( 400 * 0.33 ) = 466.66

Next, we have to get the weighted average of the total profiles that were eligible for being retained

**Weighted Average of Total Users = P_March 1 * W_March 1 + P_March 2 * W_March 2

In our sample data, this computes to: ( 1000 * 0.66 ) + ( 500 + 0.33 ) = 833.33

Finally,

**Weighted Average of Retention Rate = Weighted Average of Retained Users / Weighted Average of Total Users

In our sample data, this computes to: 466.66/833.33 * 100% = 56%

When examining a Retention report in # / Absolute view:

C_March 1 = 500 (count retained for March 1)

C_March 2 = 400 (count retained for March 2)

W_March 1 = 1000 / 1500 (weight for March 1)

W_March 2 = 500 / 1500 (weight for March 2)

**Weighted Average = C_March 1 * W_March 1 + C_March 2 * W_March 2

In our sample data, this computes to:(500 * (1000 / 1500)) + (400 * (500 / 1500)) = 466

What does the Metric view in the Retention Trends report show?

The Metric view in the Retention Trends Report shows the last complete bucket for that retention trend. Metric charts are often used to look at the most up-to-date data value, which in this case, would be the last / most recently completed cell. For days where there isn't yet a completed cell, Mixpanel uses the closest completed cell for that day.

Was this page useful?