# Retention rate formula: how to calculate retention rate, three methods and a worked example

> The retention rate formula and how to calculate retention rate: day-N vs rolling vs bracket, customer retention rate, and a worked example on ten users.

- Source: https://productovi.com/blog/how-to-calculate-retention-rate
- By: Sergey Bruh
- Published: 2026-09-30
- Topics: Retention

Here is how to calculate retention rate: take a cohort of users who started in the same period, count how many of them were active in a later period, and divide by the size of the cohort. The retention rate formula: **retention rate = users from the cohort active in period N ÷ users in the cohort × 100%.** The formula is easy. The hard part is "active in period N": it can mean three different things, and the same ten users give 20%, 50% or 70% depending on which you pick. Below are all three on data you can check by hand, and which one to report.

## The retention rate formula

Every retention number has the same skeleton:

$$
\text{Retention}_N = \frac{\text{users from the cohort active in period } N}{\text{users in the cohort}} \times 100\%
$$

Before you compute anything, fix four parts of the definition:

1. **The cohort.** Who is in the denominator: everyone who signed up on a given day, week or month. Exclude staff and test accounts.
2. **The qualifying action.** What counts as "active": opening the app, adding an expense, placing an order. Pick an action a person takes, not one the system logs for them.
3. **The period.** Day N, week N or month N since sign-up, counted from day 0 (the sign-up day).
4. **The method.** Exact day, a window or "any time later". This is where the three kinds of retention come from.

## Worked example: ten Halves users

Halves is a made-up app for splitting shared bills between flatmates, couples and friends on trips. Here are ten users from one sign-up day, followed for 30 days. Each row lists the days after sign-up on which the user opened the app:

| User | Days with an app open  |
| ---- | ---------------------- |
| u1   | 0, 1, 2, 7, 14, 21, 28 |
| u2   | 0, 4, 11, 18, 25       |
| u3   | 0, 1                   |
| u4   | 0, 7, 8                |
| u5   | 0, 9, 20               |
| u6   | 0                      |
| u7   | 0, 2, 15, 29           |
| u8   | 0, 6, 13               |
| u9   | 0, 24                  |
| u10  | 0, 3                   |

Now answer "what is our day-7 retention?" three ways.

### Method 1: day-N retention (classic)

[Day-N retention](/glossary/pa-day-n-retention) counts users who were active **exactly on day N**. On day 7 only u1 and u4 opened the app:

$$
\text{D7} = \frac{2}{10} = 20\%
$$

It is the strictest method and the one most public benchmarks use (D1, D7, D30). It suits products people need daily, such as games or messengers. For a bill-splitting app it is noisy: u2 came back on days 4 and 11, u8 on days 6 and 13, and both count as "lost" on day 7.

### Method 2: bracket retention (a window)

Bracket retention counts users who were active **at least once within a window**, for example days 7–13, the second week. In that window u1 (day 7), u2 (day 11), u4 (days 7 and 8), u5 (day 9) and u8 (day 13) were active:

$$
\text{Week 2} = \frac{5}{10} = 50\%
$$

It forgives the exact day but still asks whether the person showed up. For weekly or monthly products it is usually the best choice.

### Method 3: rolling retention ("not gone yet")

[Rolling retention](/glossary/pa-rolling-retention) counts a user as retained on day N if they were active on day N **or on any later day**. On day 7 that is everyone whose last visit was on day 7 or later: u1, u2, u4, u5, u7, u8 and u9.

$$
\text{Rolling D7} = \frac{7}{10} = 70\%
$$

It is always at least as high as day-N retention: u9, who came back only once, on day 24, still counts as retained on day 7.

![The same ten Halves users give 20% day-7 retention when counting only day 7, 50% when counting days 7 to 13 and 70% when counting day 7 or any later day](/blog/how-to-calculate-retention-rate/diagram.png)

### Same users, three answers

| Method  | What counts on day 7     | Users                      | Retention |
| ------- | ------------------------ | -------------------------- | --------- |
| Day-N   | Active on day 7          | u1, u4                     | 20%       |
| Bracket | Active on days 7–13      | u1, u2, u4, u5, u8         | 50%       |
| Rolling | Active on day 7 or later | u1, u2, u4, u5, u7, u8, u9 | 70%       |

None of these is wrong: they are three measurements sharing one word. The mistake is comparing a 20% from one method with a 70% from another, as happens whenever a public day-7 benchmark lands next to an internal "week-1 retention" slide.

## Why rolling retention flatters

Rolling retention has a second problem: it **keeps changing after you report it**. Compute rolling day-14 retention on day 20, and the users with any activity on day 14 or later are u1, u2, u5 and u7: 40%. Compute the same metric again on day 30, and u9's visit on day 24 moves it to 50%.

Day-N and bracket retention are final once their day or window has passed; rolling retention can still rise months later, so a dashboard built on it quietly rewrites history. Use it to ask "has this user left for good?", not as the headline number.

## Which retention rate should you report?

Choose by the product's **natural usage rhythm**, the interval at which a healthy user comes back:

- **Daily products** (games, messengers, news): day-N retention, D1, D7, D30.
- **Weekly products** (shared expenses in a flat, groceries, team tools): weekly brackets.
- **Monthly products** (rent, bills, reports): monthly brackets.
- **Seasonal products** (trips, taxes, holidays): "did they come back for the next season", measured over a year.

The same rhythm question decides whether [DAU/MAU or WAU/MAU](/blog/dau-mau-ratio) is the right stickiness ratio, so settle it once and use it everywhere.

Whatever you pick, write the method next to the number: "monthly bracket retention, month 1, app opens, staff excluded: 38.7%".

## From one cohort to many

A single cohort is one data point. To see a trend, put many cohorts side by side in a **cohort table**: one row per sign-up period, one column per period since sign-up. Rows show each cohort's life; columns compare cohorts at the same age.

Two mistakes are common when summarizing it: a simple average of a column, which treats a cohort of 2,400 users and one of 800 as equals, and including cohorts too young to have reached that period. Both are worked through with numbers in the [cohort analysis example](/blog/cohort-analysis-example).

## What good retention looks like

There is no universal "good retention rate": benchmarks differ by category, platform and above all method, and most don't say which method they used. A more reliable test is the **shape** of the curve. Every cohort drops at first as curious people leave; what matters is whether it keeps sliding toward zero or flattens out. A flat part at a meaningful level is a [retention plateau](/glossary/pa-retention-plateau): the people who found lasting value, and one of the clearest signals of product-market fit.

If the curve never flattens, the fix usually starts earlier than retention itself, in the first week: see [activation rate](/blog/activation-rate) for how to find the action that separates users who stay from those who leave.

## Customer retention rate for subscriptions

Searches for "retention rate" often mean a different formula: the **customer retention rate** of a subscription business over a period.

$$
\text{CRR} = \frac{E - N}{S} \times 100\%
$$

Here $S$ is the number of paying customers at the start of the period, $E$ at the end, and $N$ the new customers who joined during it. Subtracting $N$ leaves only the customers you started with who are still there.

Suppose the paid plan of Halves starts a quarter with 2,000 subscribers, ends it with 2,150 and gains 400 new ones along the way:

$$
\text{CRR} = \frac{2{,}150 - 400}{2{,}000} = \frac{1{,}750}{2{,}000} = 87.5\%
$$

It answers "how many paying customers did we keep?", which suits revenue planning. It does not replace cohort retention: it mixes customers of every age, so it cannot show whether new customers stay better than old ones. Its mirror image, the share of customers lost, is churn rate: see [how to calculate churn rate and MRR](/blog/how-to-calculate-mrr-and-churn).

## Common mistakes

- **Counting automatic events as activity.** If the server logs a recurring bill every month, a user who never opens the app looks "retained". Count actions people take.
- **Not naming the method.** "Our D7 is 70%" is usually rolling retention described as day-N.
- **Ignoring time zones.** Events are often stored in UTC. If days are counted in UTC, a user who signs up at 23:30 UTC starts "day 1" thirty minutes later, whatever their local clock says. Fix the reporting time zone in the definition.
- **Blending segments with different rhythms.** Couples who split bills every week and friends on a one-off trip belong on separate curves.

## Key takeaways

- Retention rate = users from the cohort active in period N ÷ cohort size.
- Define the cohort, the qualifying action, the period and the method before computing anything.
- Day-N is strict, bracket counts a window, rolling counts any later return; on the same ten users they gave 20%, 50% and 70%.
- Rolling retention is the most flattering and keeps changing after you report it.
- Choose the method by the product's usage rhythm and write it next to every number.

## FAQ

### What is the formula for retention rate?

Retention rate = users from a cohort who were active in period N ÷ users in the cohort × 100%. For subscriptions over a period, the customer retention rate is (customers at the end − new customers) ÷ customers at the start × 100%.

### What is the difference between day-7 and week-1 retention?

Day-7 retention counts users active exactly on day 7. Week-1 retention usually counts users active at least once during a week-long window. On the same users the second is always at least as high as the first, often much higher.

### Should I use rolling retention?

Use it to answer whether a user has left for good. Avoid it as the main reported metric: it is always the highest of the three methods and it keeps rising as late visits arrive.

### How do I calculate retention for many cohorts at once?

Build a cohort table. When you need one summary number for a period, weight each cohort by its size (sum of active users divided by sum of cohort sizes), using only cohorts old enough to have that period.

## Learn it hands-on

In the free lesson [Retention: day N, rolling or bracket](/courses/product-analytics/retention-types/theory) you compute all three methods on Halves data, with quizzes and a written task checked by AI. The next lessons cover [reading a cohort table](/courses/product-analytics/cohort-table/theory) and [the retention plateau](/courses/product-analytics/retention-plateau/theory). They are part of the free course [Product Analytics: From Data to Decisions](/courses/product-analytics).

## Related lessons

- [Retention: day N, rolling or bracket](https://productovi.com/courses/product-analytics/retention-types.md)
- [Reading a cohort table](https://productovi.com/courses/product-analytics/cohort-table.md)
- [The plateau: retention and product-market fit](https://productovi.com/courses/product-analytics/retention-plateau.md)
