> For the complete documentation index, see [llms.txt](https://docs.hackle.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hackle.io/en/data/chart-types/retention-analysis.md).

# Retention Analysis

This document explains how to use Data Analytics > Retention Analysis to gain a deeper understanding of the re-usage rate of customers who use your product.\
You can access Retention Analysis by clicking the Retention tab under Data Analytics in the left menu bar.

## What is Retention?

Retention represents how many users return to use a product after some time has passed. By examining users' repeated product usage cycles, you can find direction for your product.

For example, if you calculate the daily number of users who revisited among those who visited the home screen in the last month, that gives you the daily retention for home screen visits. You can also break these users into groups (cohorts) by their first visit date, or view the aggregated data across the entire period.

Retention is commonly analyzed based on simple visits, but it can also be analyzed based on key user behavior events (events) in the product, such as sign-up, subscription, or purchase. Checking retention for each key funnel in the product you want to track lets you discover insights different from Funnel Analysis.

**Why you should care about Retention**\
Product builders want users to use their product continuously, not just once. In general, high retention means that users are using the service regularly, which makes it an important metric for setting product direction to improve user engagement, interest, and loyalty.

## Retention Curve

![\[Figure 1-1\]](https://143363954-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyAVlNQhS253reum0Ce94%2Fuploads%2Fgit-blob-6d87c8492573cc6c29d5f3f2bdf55d17a6da15ee%2F6318e0d-Retention_02-1_29e49ac618cc3ebb.png?alt=media)

![\[Figure 1-2\]](https://143363954-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyAVlNQhS253reum0Ce94%2Fuploads%2Fgit-blob-b3ec9a67e1e5878b80c9ab665a1f1b2afcd5d4dc%2F3478545-Retention_03-2_4662501f5f658a70.png?alt=media)

\[Figure 1-1] shows that if 10 users started using the service for the first time on the same day (Day 0), and 7 users performed an event on Day 7, then Day 7 retention = 7/10 = 70%.\
Similarly, if you want to see retention on Day 28, the Day 28 retention would be 20%.

The retention graph for typical services looks like \[Figure 1-2], where the user activity cycle gradually decreases after the initial entry. Therefore, the graph also draws a downward-sloping curve over time, as in \[Figure 1-1].\
To understand this user trend, it is recommended to look at the graph before the chart first to see how the user activity cycle changes.

{% hint style="info" %}
**Retention Smile Curve**\
Are you familiar with Evernote's Smile Curve, which was once a hot topic? As explained above, a typical retention curve slopes downward, but products like Evernote, whose user base grows over time, draw a Smile Curve as shown below. This can be interpreted as the service value increasing for users.\
Understanding how long it takes for a Smile Curve to appear can be one way to read a retention graph.

<img src="https://143363954-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyAVlNQhS253reum0Ce94%2Fuploads%2Fgit-blob-1ccef770a5d2743c88b17934b193ba45a892aee0%2Fc3c8218-_2022-05-20__7.10.54_a45b88bfd49b857c.png?alt=media" alt="[Image source : https://techcrunch.com/2012/11/04/should-your-startup-go-freemium/]" data-size="original">
{% endhint %}

## Supported Retention Types

Hackle currently provides N-day and Unbounded retention types. You can select the appropriate type for your service model to get the results you want.

### 1. N-day Retention:

Measures the percentage of users who re-used the product on a specific day or within a specific cycle. This is the most fundamental type that comes to mind when thinking about Retention Analysis. It is suitable for products with short and repeated usage cycles, such as food delivery, messengers, and OTT services. The measurement cycle is expressed as N-day for daily, N-week for weekly, and N-month for monthly.

### 2. Unbounded Retention:

Measures the percentage of users who re-used the product any time after a specific day or after a specific cycle. The calculation is more complex than N-day, but it is more suitable than N-day for measuring retention in commerce services with long repurchase cycles or services where users do not regularly re-use the product within a short period. Since it measures the percentage of users who re-used the product at any point after a specific cycle, 1 - Unbounded retention rate equals the churn rate.

## Using the Retention Chart

{% stepper %}
{% step %}

### Configure Analysis Items

![\[Figure 2-1\]](https://143363954-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyAVlNQhS253reum0Ce94%2Fuploads%2Fgit-blob-9d51c59cd51bdb03849da3a1a8bd5fb3ea865daa%2F5691df6-Retention_ko_7b1564a7878e31bb.png?alt=media)

The Start Event and Goal Event represent users re-using the product (Goal Event) after a certain period following the first point of product use (Start Event).

The Start Event is the baseline for initial use. Selecting "Visit" as the Start Event counts the number of users who performed the Goal Event among those who "Visited" during the period. Selecting "Purchase" as the Start Event counts the number of users who performed the Goal Event among those who "Purchased" during the period.

The Goal Event is the baseline for re-use. Selecting "Visit" as the Goal Event counts the number of users who "Visited" among those who triggered the Start Event during the period. Selecting "Purchase" as the Goal Event counts the number of users who "Purchased" among those who triggered the Start Event during the period.
{% endstep %}

{% step %}

### Understanding the Chart

After selecting the analysis items in Step 1, you can visualize and view retention (return visits) by cohort.\
When both Start Event and Goal Event are selected, a chart and table are immediately displayed at the bottom as shown in \[Figure 3-1] and \[Figure 3-2].

You can also freely configure the query period. The chart area shows the retention trend for the entire user group, and hovering over it lets you check the retention % and actual user count for a specific period.

![\[Figure 3-1\]](https://143363954-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyAVlNQhS253reum0Ce94%2Fuploads%2Fgit-blob-57faf638f480c663d43d2d882c8e464f782893db%2Fe47b381-Retention_02-1_acc3884d30f1b626.png?alt=media)

![\[Figure 3-2\]](https://143363954-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyAVlNQhS253reum0Ce94%2Fuploads%2Fgit-blob-626b395d3c365be0fbd964641cdf82521cf38551%2Fb904995-Retention_02_22414d7f929cbb55.png?alt=media)
{% endstep %}

{% step %}

### Understanding the Structure of the Retention Chart

As shown in \[Figure 3-2], Hackle's retention chart table is composed of four main elements: Cohort, Volume, Period, and Retention.

1. Cohort: The first column of each row represents the same group based on the event and date.
2. Cohort size (Volume): Represents the size of each cohort, which is the population that performed the Start Event. For example, if you are looking at users who visited a product detail page among users who logged in, the count of logged-in users becomes the volume of each cohort. The unique count of users who completed the Goal Event based on the volume becomes the Day 0 retention.
3. Period: Setting a period lets you view re-visit data within that period. For example, selecting 7 days shows re-visit data from Day 0 to Day 7.
4. Retention: You can view the aggregated periodic retention grouped by date into cohorts within a single row. Based on the volume, you can check the unique user count and retention (%). The higher the retention, the darker the shading of each table cell.
   1. N-day Retention: Measures the percentage of cohort users who re-used the product during a specific period (d14, w4, m2). You can compare the periodic retention rates within the same cohort (row), or compare cohort-level retention rates for the same period (column).
   2. Unbounded Retention: Measures the percentage of cohort users who re-used the product at least once from a specific period to the present (d14 to today, w4 to today, m2 to today). It is easy to compare churn rates across cohorts, and meaningful trends can be found even in short daily retention cycles.\
      \
      It is suitable for measuring the cumulative effect after specific events such as promotions or reactivation messages. However, even for the same period (column), the actual measurement period differs by cohort, so it may not be suitable for comparing the same period.

{% hint style="info" %}

### **Calculation difference between N-day and Unbounded**

Retention is always measured on a UV basis regardless of type. The number of first-time visitors in each cohort is fixed as the denominator.

N-day uses the users who returned on a specific date as the numerator. For example, if 50 of the 100 users who first visited on 1/1 returned on 1/2, D1 retention is 50%.

Unbounded counts the users who returned from that date onward, with duplicates removed. In the same example, if 60 users returned at least once, D1 retention is 60%. This value can rise as the measurement period grows.
{% endhint %}
{% endstep %}

{% step %}

### Exclude Duplicate Users

{% hint style="info" %}
The **Exclude Duplicate Users option** determines how the same user is counted when they trigger the Start Event across multiple periods.

* **When excluded**: The user is only counted in the period (day or week) when the first Start Event occurred.
* **When not excluded**: The user is counted in every period (day or week) when the Start Event occurred.
  {% endhint %}

{% hint style="warning" %}
Exclude duplicate users when you want to compare the number of users per cohort strictly. Leave them included when you want a broader view of trends over time.
{% endhint %}

* Example: Assume you are viewing retention over the period 1/1 to 1/30.
  * When excluded: The daily user count may look like this: 1/1 (1,000), 1/2 (200), 1/3 (200)...
    * 1/2 does not include Unique Users from 1/1, and 1/3 does not include Unique Users from the previous period (1/1 - 1/2). Only Unique Users newly generated on 1/3 are counted as cohort users.
  * When not excluded: The daily user count may look like: 1/1 (600), 1/2 (580), 1/3 (590)...
    * All Unique Users generated in each query period (day or week) are counted, which is why it may look like the above.
      {% endstep %}

{% step %}

### Saving Retention

![\[Figure 4-1\]](https://143363954-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyAVlNQhS253reum0Ce94%2Fuploads%2Fgit-blob-ddd4a56d8707ce16d5402ccb3d3199785b7fe52d%2Ff6566f1-Retention_04_44fd1b45be179799.png?alt=media)

When you save a retention chart, you can find it in the Data Report menu on the left.\
Save important retention charts and monitor them continuously.
{% endstep %}
{% endstepper %}

## Retention Tips

#### 1. When a user triggers the Start Event across multiple periods

{% hint style="info" %}

* Select 'Exclude Duplicate Users': The user is included only in the **period when the first Start Event occurred**. Since a single user is included in only one user group, you can expect more rigorous analysis results. This is best used when there is a sufficient number of users per cohort.
* Deselect 'Exclude Duplicate Users': The user is included in **every period when the Start Event occurred**. Even when the total number of users is small, you can still view retention trends over time.
* If a user triggers the Start Event multiple times within a single day or week, the user is counted only in the first period without duplication, regardless of this option.
  {% endhint %}

#### 2. When you want to strictly define cohorts based on the first visit date across the entire period

{% hint style="warning" %}

* In Hackle, cohorts are defined by default based on each user's first entry point during the configured query period (e.g., the last 30 days). If you want to define cohorts based on each user's first entry point across the entire period, similar to in-house data analysis, the following configuration is recommended.
* When sending user information via SDK, send a 'new\_user=True' property for first-time users. This property should be updated to 'new\_user=False' upon re-entry after 24 hours.
* Add a filter of new\_user = True to the Start Event, and add a filter of new\_user = False to the Return Event.
  {% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hackle.io/en/data/chart-types/retention-analysis.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
