User Retention is an engagement analysis feature that breaks down your users' session and event behavior starting from their very first session.
The User Retention plugin is available only in the Enterprise Edition.
User Retention Basics
First of all, make sure the User Retention plugin is enabled. To do so, in the main Countly Dashboard, go to
Plugins and enable the Retention with Segments toggle.
After that, you will find User Retention in the Understand section of your Countly Dashboard, under the Engagement category.
The User Retention page contains:
- Retention type selector: Select the retention type that you're interested in.
- Data type drop-down: Select the data type you want to use in the calculation between Sessions (selected by default) or Events (Views, Crashes, and Feedback are listed under Events). The difference between both has is related to their corresponding Day 0.
- Timeframe selector: Select the period and bucket. For the sake of simplicity, this document uses day terminology. Nonetheless, all examples and descriptions apply to weekly and monthly retention as well.
- Filter toggle: Target a specific set of Day 0 users using the query editor to segment users.
- Overview graph: Depicts the ratio of (sum of nth day/sum of Day 0) as a graphical representation of the tabular chart data below.
- Each row of the table denotes a day, week, or month depending on the time bucket selected above. Depending on the type of retention, results will count either New users (for Session Retention) or Users (for Event Retention).
- Scrolling across the table shows corresponding ratios of retention (ratio of users retained on Day 1, ratio of users retained on Day 2, and so on).
Day 0: Session Retention vs. Event Retention
Day 0 is a term to define the starting point of the Retention.
In Session Retention, Day 0 is the first session or visit of the user. The retention calculation methods use that day to determine the overall retention. It answers questions such as, “How many users who had their first session on April 3 (59 new users) had another session on Day 5 (April 8, 5.08%) too?”
Event Retention, on the other hand, has a fundamental difference when compared to Session Retention, as it does not require an Event to be done for the very first time. It answers questions such us, “How many users who did Login on April 3 (87 users) did Login on Day 5 (April 8, 9.2%) too?”
The answers to those example questions above depend on the retention calculation method. Let's take a look at them.
Retention Calculation Methods
There are 3 different types of calculation methods: full, classic, and unbounded. Each type provides a different approach to crunching Session or Event numbers to calculate Retention. Both Session and Event Retention support all those three types. The following examples are for Session Retention, but the methods do not differ for Event Retention. That is, “Session” can be replaced with an arbitrary event name but keep in mind the difference between both, as covered above.
Full Retention is the most strict approach compared to the others. For daily-full retention: once the user skips a day, retention is broken for them, regardless of future changes. The table below demonstrates a fully retained (3 days) user.
Similar to daily full retention, weekly retention counts the number of users who had no inactivity which broke the retention.
Let's go over an example for weekly full retention: an app has 100 new users every day for 5 consecutive days during the first week of the month (Week 0). On Saturday, the 6th day of the month, 60 users come back. During the subsequent week (Week 1), 70 unique users come back: 30 on the 9th day and 40 on the 13th day. In the third week (Week 2), 20 users come back, all on the 21st day. Therefore, Week 1 retention is 70/500 or 14%; Week 2 retention is 20/500 or 4%.
Classic Retention (Day N Retention)
Classic Retention (Day N retention) shows the percent of new users who come back on a particular day. It does not require continuous sessions/visits. Instead, the days are affecting only themselves, but no previous or following days. In other words, if a user has a session one day, then they are considered retained on that day.
Let's go over an example for classic retention:
An app has 100 users who have their first session on a Monday, November 1st. 30 of those users come back the next day on Tuesday, November 2nd, and 20 come back the following day on Wednesday, November 3rd. Then, Day 1 retention rate is 30/100 or 30%; Day 2 retention rate is 20/100 or 20%. If 50 people were to come back 89 days from Monday, November 1st (it means Day 90), your Day 90 retention rate would be 50/100 (50%).
Classic Retention = (# of users who had a session on Day Nth day after Day 0) / (# of users who had their first session on Day 0)
For graphing Retention there are two distinctions, Standard and Weighted:
- Standard Retention, which is the default setting, is a simple division of total users who used the platform on Day N after the Day 0 starting point. Any blank in retention data is treated as "0" for calculation purposes.
- Weighted Retention, which is the other option for User Retention, is a weighted average of the users who were active on Day N versus Day 0. Weighted, unlike Standard, will only use the information to determine the plots of the graph if there is information and will not assume "0" for gaps.
In the example table below, the Standard would be calculated by the green outline. The blank areas on Day +5 are treated as 0. Weighted retention will only calculate the plots based on the red squares and will not assume 0 for gaps.
Unbounded Retention is even less strict than Classic Retention. It gives the percentage of users who came back on a specific day or anytime after that day. All days between Day 0 and the last session day are considered as retained, regardless of whether there are sessions before the last one.
Let's go over an example for unbounded retention: an app has 10 new users on Day 0. On the 7th day, user X comes back. On the 10th day, user Y comes back. On the 17th day, user Z comes back and again on the 19th. Then, Day 7 Retention is 3/10 or 30% because users X, Y, and Z all came back starting from Day 7. Your Day 14 Retention is 1/10 or 10% because only user Z came back starting from Day 14.
Unbounded Retention = (# of users who had a session on Day N or after Day N) / (# of users who have the first session on Day 0)
Other Technical Details
Session or Event Counting Policy
In order to determine that a day has a Session or Event, we use absolute differences. For example:
- Let’s say the first session is on Jan 1, 2018 at 22:00 (Day 0)
- The next session is on Jan 2, 2018 at 00:00 (Day 1)
- Only 2 hours passed but the date is different. So, it is counted as a day. The full 24 hours have not passed for the Day to be counted as a different one.
From the storage point of view, there is an upper limit for Session Retention values. Daily Retention, for instance, is not stored if the time span starting from Day 0 is longer than 30 days. The time limits for all periods are as follows:
- Daily Retention: 30 days
- Weekly Retention: 24 weeks
- Monthly Retention: 13 months