The Retention feature is available only in Countly Enterprise.

Retention is an engagement analysis feature that breaks down your users' session and event behavior, starting from their very first session and analyzing subsequent ones through time. Retention metrics are key to analyzing user churn and loyalty.

Benefits of Retention

Retention is basically getting to know how often your users return to your website or use your app. Ideally, you need to always try to keep retention as high as possible, undoubtedly indicating that users are highly satisfied with what they are getting from your app or website, which goes hand-in-hand with a high degree of loyalty. On the other hand, if retention starts dipping, it indicates that your users may be churning and that you need to find a way to change that or increase engagement.

That said, it is impossible to achieve 100% retention rates, as some level of churn is always natural. However, you should track trends and changes in your retention rates and metrics, especially if you can analyze them in context with engagement, loyalty, outreach campaigns, performance issues, etc. 

Retention analysis may seem like it is part of a more complex aspect of product analytics. But understanding how to incorporate metrics derived from this analysis into your KPIs can make the entire difference: researchers say that retaining a customer is 25 times cheaper than acquiring a new one and that you have a 60–70% chance of selling to an existing customer while only a 20% chance of selling to a new customer.

Getting Started

First of all, make sure the User Retention feature is enabled. To do so, in the Sidebar, go Management > Feature Management and enable the Retention with Segments toggle.

Retention Overview

The conceptualization of Retention can be a bit tricky, as can understanding the nuances between the different methods used to measure it.

We highly recommend that you review the following sections before you start using the Retention feature, as it will affect the type of strategies you might put in place.

Day 0: Session Retention vs. Event Retention

Day 0 is a term to define the starting point of a type of retention.

In Session Retention, Day 0 is the first session or visit of the user. The retention calculation method uses that day to determine the overall retention. It answers questions such as, “How many users who had their first session on February 13th (21 new users) had another session on Day 5 (February 18th, 19.05%) too?”, as shown below.


Event Retention, on the other hand, does not focus on the first time an Event is triggered. Instead, it would be enough for a user to trigger the Event at least once on the day for which retention is being calculated. It answers questions such as, "How many users who performed Login on February 13th (53 users) performed Login on Day 5 (February 18th, 7.55%) too?" , as shown below.


The answers to those example questions above depend on the three retention calculation methods, which are explained in the section below. 

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 any event name, but keep in mind the difference between both, as covered in the section above.

Full Retention

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). That is a total of 500 users. On Saturday, which is the 6th day of the month, 60 users come back. During the subsequent week (Week 1), we see that 30 unique users came back on the 9th day and 40 on the 13th day. We will count this as 70 unique users returning for the week. In the third week (Week 2), 20 users come back, all on the 21st day. That makes 20 users the total of the week. 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 percentage of new users who come back on a particular day. It does not require continuous sessions/visits. Instead, the days are affecting only themselves, and no previous or following days. In other words, if a user has a session one day, then they are considered retained on that day.classic.png

Let's go over an example for Classic Retention:

An app has 100 users who have their first session on a Monday, November 1st (Day 0). 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 Day 0 (i.e., on 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)

Unbounded Retention

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)

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.

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, 2022 at 22:00 (Day 0)
  • The next session is on Jan 2, 2022 at 00:00 (Day 1)
  • Only 2 hours passed but the date is different. So, it is counted as a day. Although the full 24 hours have not passed, the Day is counted as a different one (thus, the absolute difference).

Time Limits

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

Using Retention


The User Retention View contains:

  1. Retention type selector: Select the retention type that you're interested in. 
  2. 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 is related to their corresponding Day 0.
  3. 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.
  4. Filter toggle: Target a specific set of Day 0 users using the query editor to segment users.
  5. Overview graph: Depicts the ratio of (sum of nth day/sum of Day 0) as a graphical representation of the tabular chart data below.
  6. 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). 
  7. 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).

Upon accessing the Retention feature, the View will contain the Full Retention method. You can then use the selector to switch to Classic Retention and Unbounded Retention methods. That said, the View in each method contains the same seven elements listed above.

Looking for help?