Chart · Subscriptions

Subscription retention rate: how to calculate and read it

Subscription retention shows what share of paid subscriptions reach each later billing period. RevenueDot groups subscriptions by the date their first paid period started, then, for each period n, divides those that reached it by those that have had time to reach it. Period 0, the first paid period, is 100% by definition.

Formula

Retention at period n = subscriptions that reached paid period n ÷ subscriptions that have had time to reach it

Shape

Cohorts by age, in a table

API name

subscription_retention

Measures

Retention (Percent)

Filter and segment by

App, Store, Product, Product duration, Offering, Country, Platform, App version

The Subscription Retention chart in the RevenueDot dashboard, with demo data, its chart rail, plot and table
Captured from the RevenueDot dashboard with demo data.

Definition

How RevenueDot calculates Subscription Retention

RevenueDot cohorts paid subscriptions by their first paid date. A subscription that starts with a free trial goes into the cohort of the day it converts. The table has one row per cohort (month by default) and a column for each paid period. The first column is the cohort size. Period 0 is the first paid period, and period k is the paid period after k renewals. A subscription reaches period k when it has k + 1 paid periods.

Each cell divides by the subscriptions that have had time to reach that period, so a cohort that is too young for a period does not drag the number down. RevenueDot works out when a period would start from the product's duration, or from the length of the first paid period when no duration is known. A cell is marked incomplete while only part of the cohort has had time, and it is blank when none has. The table shows up to 24 periods.

This chart follows subscriptions, not customers. A customer who lets a subscription lapse and later comes back starts a new subscription, which goes into a newer cohort. Sandbox purchases, granted access and Family Sharing purchases are excluded. The retention_scale selector shows relative (percent) or absolute (count). You can filter by app, store, product, product duration, offering, country, platform and app version, but not segment.

Find it in the dashboard under Analytics > Charts, or call GET /v2/projects/{project_id}/charts/subscription_retention. The response is a cohort table in the same shape as RevenueCat's Charts API: each value has cohort, period, value and incomplete, and periods[0] is the cohort size.

Worked example

Subscription Retention, step by step

Illustrative numbers for one monthly cohort of 200 subscriptions that started in January.

PeriodSubscriptions that reached itRetention
0 (first paid month)200100%
1 (first renewal)14070%
211256%
39849%

Of the 200 subscriptions in the January cohort, 98 reached their fourth paid month, so retention at period 3 is 98 ÷ 200 = 49%.

Why it matters

What Subscription Retention tells you

Retention tells you how long a subscriber stays, which sets what a subscriber is worth. A table where each column drops slowly and then flattens describes a product people keep. A table where the second column falls steeply describes a product people try once.

Compare cohorts down a column to see whether a change helped. If the cohort after a new onboarding or price keeps more subscribers at period 3 than the cohort before it, the change worked. Compare plans of the same duration, and use the Churn chart for a single rate per period.

How to read it

  • Read across a row for one cohort's life, and down a column to compare cohorts at the same age.
  • Period 1 is the first renewal. For an annual plan that is a year after purchase, so filter by product duration before you compare plans.
  • The newest cells are incomplete. Do not read a young cohort's last cell as a drop.
  • The chart counts subscriptions. A customer who returns after a gap appears again in a newer cohort.
  • Use the absolute scale when a cohort is small. A percentage of 10 subscriptions moves in steps of 10 points.

API

Get Subscription Retention from the Charts API

Same path and response shape as RevenueCat's Charts API, so existing scripts keep working.

Requestshell
curl "https://api.revenuedot.app/v2/projects/$PROJECT_ID/charts/subscription_retention?resolution=month" \
  -H "Authorization: Bearer $SECRET_KEY"   # sk_... with charts_metrics:charts:read

Reference: Charts guide · REST API v2

FAQ

Subscription Retention: questions people ask

How do you calculate subscription retention rate?

Group subscriptions by the date they became paid. For each later period, divide the subscriptions that reached it by the subscriptions that have had time to reach it. RevenueDot does this for every cohort and period.

What is the difference between retention and churn?

Churn is the share of subscriptions that ended in one period, among those active at its start. Retention follows one cohort across many periods and shows the share still paying.

What is a good subscription retention rate?

It depends on price, plan length and app category, so RevenueDot does not publish a benchmark. Compare your own cohorts over time and by plan of the same duration.

Does a free trial count as a retained period?

No. Retention starts at the first paid period. A subscription that starts with a trial joins the cohort of the day it converts.

Does the chart count customers or subscriptions?

Subscriptions. A customer who lapses and returns starts a new subscription, which joins a newer cohort.

Get started

See your Subscription Retention in minutes.

Connect your app to RevenueDot Cloud, free up to $10,000 a month in tracked revenue, and all 43 charts fill from your store history after import.

Already have an account? Sign in · Prefer your own servers? Self-host free