On this page

Retention Analysis FAQ

This page answers common questions about the Retention Analysis chart.

How are the data points calculated?

Amplitude uses a "weighted average" to calculate each data point percentage in the Retention Analysis chart. The data point is the number of unique users who triggered the return event during a specified timeframe (day, week, or month) divided by the total number of unique users who reached that point in time. In other words, Amplitude calculates a weighted average of the below-row values.

The calculation uses unique users, so Amplitude counts the user in each numerator only one time. If a user triggers the first event and the return event multiple times, Amplitude only counts them once in the denominator.

Return On

For Return On retention specifically, the numerator is the unique count of users who trigger the return event on the day, week, or month indicated. The denominator is the total number of unique users who triggered the starting event on the first day, week, or month of the specified time frame. Amplitude counts a user who triggers the start and return events multiple times in a time frame only once in the denominator. However, Amplitude can include them in the numerator once per day, week, or month of each data point interval. Get more details in this Community article.

Return On or After

For Return On or After retention, the denominator for a specific day, week, or month (call this number X) is users who completed that day, week, or month. Amplitude counts these users towards the overall Return On or After retention as long as X days, weeks, or months passed since that user's starting event. The numerator is the unique count of users who triggered the return event on the Xth day, week, or month, or later.

Because Return On or After retention measures users who returned on that Xth day or later, Amplitude includes a user in all data points prior to when they triggered an event. A user who triggers the event on day two, for example, also appears in the data point for days one and zero.

Why are the recent periods asterisked?

Results for days with incomplete data have an asterisk. For example, suppose some users trigger the starting event on July 15th (Day 0). You're looking at Day 6 data on July 21st and see an asterisk next to the computed results. Because July 21st is Day 6 and the day isn't yet over in this example, the data point is incomplete until the day ends. This gives users from Day 0 a chance to become Day 6 retained.

In the breakdown table, why doesn't the user count for the interval equal the number shown in the total users row?

The total user count of the retention analysis breakdown table sums unique users who triggered the start event within the entire time period. Suppose a user triggered the start action on July 17th and the 18th. The user is unique to July 17th and 18th, so Amplitude counts them in the user totals for both days. However, Amplitude counts this user only once for the overall user total. This is one reason why the sum of each day's user totals doesn't always equal the total user count.

Another reason is that Amplitude excludes the current day from this sum because it isn't over yet. Amplitude is still collecting the day's events and performing calculations with them.

On the breakdown table, any value with an asterisk indicates a data point that is still calculating because the time frame isn't yet over. Amplitude doesn't include these users in the overall retention calculation until the time frame is complete.

Why is my overall retention higher or lower than expected?

There are two potential explanations for this:

  1. Amplitude doesn't include incomplete data points in the retention calculation. If all the data points are higher or lower than the values in the breakdown table, many of these users may not have completed the full time frame yet. Incomplete values that Amplitude hasn't included in the data points have an asterisk beside them.
  2. The data points are a deduplicated calculation of all users in the time frame. In that case, the overall retention calculation counts that user only once. The breakdown table can show the user more than once, making your retention appear higher than expected.

I can only see 12 months or 365 days of data in this retention chart. How can I see more?

Use Amplitude's custom bracket feature, available through the Return On (custom) measure, to add more time frames beyond the default limits.

Why does the retention curve go up?

If you're looking at data that is ongoing, you can see your retention curve trend upwards. This happens because Amplitude only includes users in the weighted average calculation after they've had enough time to convert.

For example, if you're looking at the last 30 days, a user can only appear in the Day 4 data point after four days elapsed since they triggered the starting event. Because Amplitude only includes users after they pass that milestone, the later data points can seem higher. This happens because the users who didn't retain never passed that milestone. This usually occurs when only a small percentage of users finished the chart's entire time frame. After more users do so, your chart starts to even out and more accurately reflects retention.

Get more details in this Community article.

How far out does Return On or After retention go?

Return On or After retention extends to the current day. The last point in a Return On or After retention chart shows users who triggered the return event on or after a specific day, week, or month, and checks if they triggered that event as recently as yesterday.

Why does the denominator in the data points change over time?

The denominator changes on a daily basis because it's based on a cumulative count of unique users who reached a specific day (Day 5, Day 10, and so on).

For example, suppose user A and user B perform events on the following days within a specified timeframe of March 20th to March 22nd:

  • March 20th: user A performs starting event.
  • March 21st: user A performs return event.
  • March 21st: user B performs starting event.
  • March 22nd: user A performs return event.

For user A, March 20th is Day 0, March 21st is Day 1, and March 22nd is Day 2. Amplitude includes user A in each day's denominator (Day 0 to Day 2). User B, however, triggered the starting event on March 21st (Day 0) and didn't trigger any other events. Amplitude counts user B only in the Day 0 denominator for the specified timeframe.

Was this helpful?