> For the complete documentation index, see [llms.txt](https://docs.graspil.com/en/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.graspil.com/en/app/reports/retention.md).

# Retention

Retention shows what share of users who performed a starting action came back and repeated it after some time. It's the main report for understanding whether your product holds onto its audience, or whether users show up once and never return.

The result is usually shown as a table: rows are the date a user first entered the cohort, columns are how many days/weeks later they returned, and cells show the percentage of returning users.

## How to set up the report

| Setting                 | Description                                                                                                                                                                                                    |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Starting event**      | The action after which a user is considered to have "entered" the report — e.g. "Purchase" or "Bot launch"                                                                                                     |
| **Return event**        | The action that counts as a "return". It can match the starting event (e.g. "came back and opened the bot again") or be different (e.g. starting event is "first purchase", return event is "repeat purchase") |
| **Granularity**         | The step used for the intervals — day or week                                                                                                                                                                  |
| **Number of intervals** | How many periods to show in the report (default 8)                                                                                                                                                             |
| **Breakdown**           | Splits cohorts by an extra field — e.g. by UTM source, to compare retention between traffic channels                                                                                                           |

Just like in other reports, you can add a filter to the starting and return events — available fields are described on the [Filter Fields](/en/app/reports/filter-fields.md) page.

### How a cohort is formed

This setting lets you fine-tune who counts as having "entered" the cohort on a given day/week:

| Option                | Logic                                                                                                                                                        |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Default**           | A user joins the cohort if, within the chosen interval, they had a starting action matching the filters — even if they'd already done the same action before |
| **First action ever** | A user only joins the cohort if it was their very first action of that type, ever — if they'd already done the same action before, they're excluded          |
| **Recurring cohort**  | A user can join several cohorts at once — one for every interval in which they performed the starting action                                                 |

## Example report

**Do buyers come back for a repeat purchase**

* Starting event: "Purchase"
* Return event: "Purchase"
* Granularity: week
* Number of intervals: 8
* Cohort formation: "Default"

The result shows what percentage of users who bought in a given week made a repeat purchase 1, 2, 3... up to 8 weeks after the first one.

{% hint style="info" %}
If the starting and return events are the same, the report effectively shows the audience's "survival" — how quickly users stop coming back to the product.
{% endhint %}
