Subscription Retention

About this page

The Subscription Retention page helps you measure subscriber loyalty, identify when users tend to churn, and evaluate the long-term impact of your acquisition and retention strategies. It contains two complementary views:

  • The Cohort Retention Table — a detailed, per-cohort breakdown of how subscriptions retain over time
  • The Cohort Layer Cake — a stacked area chart showing the composition and evolution of your entire subscriber base
📘

Cohort entry = any transition from non-active to active

Each cohort includes every subscription that transitions from a non-active state to an active state during the cohort period. There is no concept of "first-time activation" here: trial conversions, reactivations after churn, and billing retry recoveries are all counted as cohort entries. As a result, a single subscription can appear in multiple cohorts over its lifetime — for example, if it churns in March and recovers through billing retry in May, it will be counted in both cohorts.

⚠️ Change from dashboard v1: counting subscriptions, not subscribers

The previous version of this dashboard counted unique subscribers (users). Dashboard v2 now counts unique subscriptions, each identified by a unique subscription ID.

This changes the numbers in two ways:

  • Restored subscriptions across devices: In v1, when a subscription was restored on a new device by a different anonymous user, it was counted multiple times — once for each anonymous user associated with it. In v2, the subscription is counted only once regardless of how many devices or anonymous users it passes through.
  • Multiple subscriptions per user: In v1, a user holding two active subscriptions simultaneously was counted once (one user). In v2, each subscription is counted individually, so the same user contributes two to the total.

Example: Alice holds both a monthly Music plan and a yearly Premium plan. In v1, Alice counted as 1 subscriber. In v2, she counts as 2 active subscriptions. Conversely, if a single subscription was restored across 3 anonymous devices in v1, it appeared as 3 subscribers — in v2 it correctly counts as 1 subscription.

Each cohort can be visualized with 2 different starting points:

  • when the subscription started - which actually includes the introductory offer
  • when the full-price subscription started - which excludes the introductory offer

Cohort Retention Table

What it shows

The Cohort Retention Table is a cohort retention matrix. Each row represents a group (cohort) of subscriptions that started during the same time period.

ColumnDescription
SegmentThe time period when the subscriptions in this cohort started (e.g., "2026, day 083" in daily view, or "2026, week 12" in weekly view)
Paid subscriptions (started and reactivated)The initial size of the cohort: how many paid subscriptions started or were reactivated during that period
RevenueTotal revenue generated by this cohort during the selected period
ARPPUAverage Revenue Per Paid Subscription for this cohort (Revenue / Paid subscriptions)
Day 0, Day 1, Day 2...How many subscriptions from this cohort are still active after N periods (or Week 0, Month 0, etc. depending on granularity)

How to read it

The diagonal staircase pattern is normal: recent cohorts have fewer columns because not enough time has elapsed to measure later periods.

Look for:

  • Consistent retention rates across cohorts — a sign that your product experience is stable
  • A cohort with a sharper drop than its neighbors — something changed for that group (pricing, paywall, acquisition channel)
  • Improving retention in recent cohorts — your retention efforts are paying off
  • Sharp drops at specific periods (Day 7, Day 30, Day 365) — these align with renewal dates and indicate cancellations or payment failures

Cohort Layer Cake

What it shows

The Cohort Layer Cake is a stacked area chart where each colored layer represents a cohort. The X-axis is calendar time, and the Y-axis shows the absolute number of retained subscriptions. All cohorts are stacked on top of each other, so the total height at any point represents your entire active subscriber base at that moment.

How to read it

What to look forWhat it means
Overall shape trending upwardYour subscriber base is growing — new cohorts are adding more subscribers than older ones are losing
Overall shape trending downwardChurn is outpacing acquisition — you're losing subscribers faster than you're gaining new ones
Flat or plateauAcquisition and churn are roughly balanced
Older layers (bottom) thinning graduallyNormal churn behavior — older cohorts naturally shrink over time
A layer thinning faster than othersThat cohort had worse retention — investigate what changed during that period (paywall, pricing, acquisition channel)
Recent layers (top) appearing largeStrong recent acquisition — but watch whether they retain as well as older cohorts

Practical insights

The Layer Cake answers questions that the retention table cannot easily show:

  • Is my subscriber base actually growing? The table shows retention rates per cohort, but doesn't give you the big picture. The Layer Cake instantly shows whether your total active base is going up or down.
  • Which cohorts still contribute meaningfully? Old cohorts that have thinned to a sliver are no longer material. Thick, stable layers at the bottom indicate a healthy, loyal subscriber core.
  • What's the balance between acquisition and retention? If the chart keeps growing, new cohort layers are thick enough to compensate for natural churn in older ones. If it shrinks despite large new cohorts, retention is the problem.

Controls

Show

Switch between two display modes:

ModeWhat it shows
Subscriptions retained (rates)Percentage of the cohort still active at each period (e.g., 96.7% means 96.7% of the original cohort is still subscribed)
Subscriptions retained (numbers)Absolute count of subscriptions still active at each period

Segment

Focus on a subset of subscriptions:

SegmentDescription
All subscriptionsIncludes all paid subscriptions: trials that converted, intro offers, promo offers, and direct full-price purchases
Full-price subscriptionsOnly subscriptions that started at full price (excludes trials, intro offers, and promo offers)


Granularity

Use the Daily / Weekly / Monthly selector to control the time resolution of cohorts and retention periods.

  • Daily — One cohort per day, retention measured day by day. Best for short-term analysis (days to weeks).
  • Weekly — One cohort per week, retention measured week by week. Good for spotting weekly patterns.
  • Monthly — One cohort per month, retention measured month by month. Best for long-term trends.

Filters

Click Filters to narrow the data. You can combine multiple filters.

FilterDescription
PlatformsiOS, Android, or both
Plan periodicityFilter by billing cycle (weekly, monthly, yearly, etc.)
Offer typesFilter by how the subscription started (trial, intro offer, promo offer, standard)
CountriesFilter by user country
ScreensFilter by the paywall screen that triggered the subscription
PlacementsFilter by where in the app the paywall was shown
AudiencesFilter by audience segment the user belonged to at purchase time
PlansFilter by specific subscription plan
A/B testsFilter by A/B test the user was enrolled in
CampaignsFilter by campaign attribution

Common use cases

  • Compare trial vs. full-price retention — Use the Segment dropdown to switch between "All subscriptions" and "Full-price subscriptions". If full-price retention is significantly higher, your trials may be attracting lower-intent users.
  • Measure the impact of a paywall change — Filter by Screen or A/B test and compare cohort retention before and after the change.
  • Identify platform differences — Filter by Platform to see if iOS and Android subscribers retain differently.
  • Spot billing cycle issues — Look for sharp drops at Day 7 (weekly plans), Day 30 (monthly plans), or Day 365 (yearly plans) in the retention table. These indicate renewal failures or intentional cancellations.
  • Assess subscriber base health at a glance — Check the Layer Cake to see if your total active base is growing, flat, or declining — without having to analyze individual cohorts.
  • Identify problematic cohorts visually — In the Layer Cake, a layer that thins faster than its neighbors signals a cohort with worse-than-average retention. Cross-reference with the retention table to pinpoint the exact drop-off period.

Frequently asked questions

What is the difference between the Cohort Retention Table and the Cohort Layer Cake?

The retention table shows how well each cohort retains (as a percentage or count), period by period. The Layer Cake shows the combined result of all cohorts together — the actual size and composition of your subscriber base at any point in time. The table is for diagnosing individual cohort performance; the Layer Cake is for understanding the big picture.

Why do weekly cohort totals not match the monthly total?

When you add up the "Paid subscriptions" column across all weekly cohorts for a given month, the total may be higher than the single monthly cohort for the same period. This is not a data error.

The reason: when a subscription payment fails, it enters a billing retry period — the app store retries the charge over several days. If the subscription churns in week 10 and recovers in week 11, it appears as "started" in one cohort and "reactivated" in the other. The same subscription is counted twice across two weekly cohorts. In monthly view, both events fall within the same month, so it is counted only once.

Example: the six weekly cohorts covering March 2026 total 893 paid subscriptions (35 + 206 + 211 + 192 + 215 + 34). But the monthly March 2026 cohort shows only 835. The 58 extra subscriptions were counted in two weekly cohorts due to billing retry spanning across weeks.

This applies to any granularity comparison: daily totals won't match weekly totals, and weekly totals won't match monthly totals.

📘

Grace period recovery vs. account hold recovery

The billing retry effect described above specifically applies to subscriptions that go through account hold (Google Play: ON_HOLD) or equivalent — where access is revoked and then restored. Grace period recovery does not create a new cohort entry because the subscription never leaves the "active" state. Only account hold recovery (where the billing date resets) generates a recovery event that can cause double-counting across weekly cohorts.

Why does retention look higher when I switch to a wider granularity?

For the same reason. When a subscription churns and recovers within the same time bucket (e.g., within the same month), the net effect is zero — it never appears to have churned.

Example: a subscription enters billing retry on Jan 5 and recovers on Jan 20.

  • Weekly view: churn and recovery land in different weeks — retention dips then recovers.
  • Monthly view: both events land in January — the subscription never appears to have churned. Retention stays flat.

The wider the time bucket, the more of these temporary churn-and-recovery pairs become invisible. This is standard behavior across analytics tools.

Why does retention appear unusually high for some cohorts?

This typically happens when the chart granularity does not match the billing cycle of the subscriptions being analyzed. For example, if you set the chart to monthly granularity but include yearly subscriptions, those subscriptions are prepaid for 12 months and will naturally remain active across many monthly periods — pulling retention rates up and making them less meaningful.

For the most actionable insights, match the chart granularity with the plan periodicity filter. Use monthly granularity with monthly plans, weekly with weekly plans, and so on. If you need to analyze yearly subscriptions, prefer a monthly granularity so that each period represents a meaningful milestone in the subscription lifecycle.

Which granularity should I use?

  • Daily when you need precision on short-term retention and accurate cohort counts.
  • Weekly for week-over-week trend analysis with a good balance of precision and readability.
  • Monthly for long-term trends and executive reporting — but keep in mind that cohort sizes and retention rates will be slightly optimistic due to the billing retry smoothing effect described above.

As a rule of thumb: don't try to reconcile totals across granularities. The differences are an expected artifact of billing retry, not a data discrepancy.

Why do prepaid subscriptions (yearly, quarterly) sometimes drop before their renewal date?

Even though a yearly subscription is paid upfront, it can still leave the active state before its renewal date if a refund is granted by Apple or Google. Refunds are reflected in the chart at the moment the store processes them, not at the end of the billing cycle.

This is why you may see a yearly cohort lose subscriptions during months 2, 3, or 6 — well before any renewal is expected. The same logic applies at other granularities: a monthly subscription viewed in weekly granularity can appear to churn mid-month if a refund is processed during that week.

How do plan changes affect retention cohorts?

When a subscription changes plan (upgrade or downgrade), a new subscription is created in Purchasely. The old subscription will churn from its original cohort, and the new subscription will appear in the cohort corresponding to the plan change date. This can reduce retention rates for cohorts that experienced many plan changes, and inflate the size of cohorts during periods with frequent upgrades or downgrades. This is not data loss — the subscriber is still active, just tracked under a different subscription.

How do Google Play paused subscriptions affect retention?

Paused subscriptions (Google Play only) temporarily leave the active state and re-enter it when the pause ends. In retention cohorts, a paused subscription will appear as churned during the pause period and recovered when it resumes — similar to account hold recovery. This creates the same cross-cohort counting effect described in the granularity section above.

Why does the Layer Cake show a dip even though my latest cohort is large?

A large new cohort adds a thick layer at the top, but if several older cohorts are shrinking simultaneously, the net effect can still be a decline. This signals that your retention across older cohorts is not strong enough to sustain growth from new acquisitions alone — a common early sign that you need to invest in retention strategies alongside acquisition.

Can the same subscription appear in multiple layers of the Layer Cake?

Yes, for the same reasons described above. If a subscription churns and recovers through billing retry or account hold, it can appear in multiple cohorts — and therefore in multiple layers of the chart.