App Store Connect subscription retention reports: how to read the cohort chart and act on it
App Store Connect's subscription retention report gives you a cohort view of how subscribers drop off over time — but most developers never look past the headline churn figure. Here's how to read the cohort grid properly, where industry benchmarks sit, and what the data should drive in your pricing and onboarding decisions.
App Store Connect includes a subscription retention report that, on the surface, looks like a simple line chart. Cohort of new subscribers in month one, percentage still active in month two, month three, and so on. Simple to read — or so it seems. In practice, most developers glance at the headline churn figure and move on. The chart rewards closer reading, and the cohort grid behind it is where the real signal lives.
This post walks through how the retention report is structured, what the numbers actually mean, and — more usefully — what actions they point toward in pricing, onboarding, and trial design. If you have not yet set up your subscription analytics in App Store Connect, the earlier post on iOS subscription analytics: MRR, churn rate, and LTV explained covers the fundamentals before we get into cohort detail here.
What the retention report actually shows
App Store Connect's subscription retention chart sits inside Analytics → Subscriptions → Retention. It plots, for a selected date range and product, the fraction of subscribers who remain active N months after their first subscription start. Apple defines "active" as any period where the subscription has not been cancelled and has not entered a billing-retry gap that ultimately failed.
A few things the report does not show that catch developers off guard:
- It does not separate trial converts from direct purchases by default. Subscribers who converted from a free trial and subscribers who purchased directly are blended into the same cohort line unless you segment by product ID. If you offer both paths, segment them separately before reading the numbers — the populations behave very differently through M1–M3.
- Plan changes reset cohort membership. A subscriber who downgrades from an annual plan to a monthly plan may appear as a churn event in the annual cohort, even though that subscriber is still paying you. Annual retention numbers can look worse than the business reality for this reason alone — watch the plan-change report alongside retention.
- Grace period subscribers are still counted as "active." Apple holds a subscription in an active state during the billing retry window (up to 60 days for annual subscribers). Subscribers who ultimately fail billing will drop out of future months' retention figures retroactively, causing occasional month-over-month swings in older cohort data that have nothing to do with product changes.
The most common misread: comparing your M1 retention figure from App Store Connect with an external benchmark from RevenueCat or Adapty without accounting for grace period inflation. App Store Connect numbers may look slightly better because failed billing is counted as active longer — normalize for this before drawing conclusions from the gap.
How to read the cohort grid — the numbers behind the chart
Underneath the retention chart, App Store Connect exposes a downloadable cohort table via the Sales and Trends reports (the SUBSCRIPTION_RETENTION report type in the Reporting API). Each row represents a cohort start period; columns represent subsequent months. The cell value is the fraction of that cohort still active at that interval.
Here is an illustrative cohort grid for a monthly subscription, shaped to reflect the directional patterns that research from RevenueCat and Phiture consistently describes across consumer subscription categories:
| Cohort start | M0 (start) | M1 | M2 | M3 | M6 | M12 |
|---|---|---|---|---|---|---|
| January | 100% | 72% | 60% | 54% | 44% | 31% |
| February | 100% | 74% | 62% | 55% | 45% | — |
| March | 100% | 69% | 57% | 50% | 40% | — |
| April | 100% | 75% | 64% | 57% | — | — |
Three patterns to look for when you read this grid:
- The M0→M1 drop. For monthly subscriptions this single number is your strongest signal. A subscriber who renews once is substantially more likely to reach M6 than one who nearly churned at M1. RevenueCat's research has consistently highlighted that the first renewal is a disproportionate churn cliff for most consumer categories — the M0→M1 loss often exceeds the cumulative loss from M1 through M12.
- Diagonal consistency. If you compare M1 retention across multiple cohort rows, you should see a relatively stable number within a few percentage points. A sharp drop in one cohort's M1 compared with adjacent cohorts usually correlates with a product change, a price change, or a channel mix shift that month — it is rarely noise, and it is worth investigating.
- The flattening point. Most subscription cohorts eventually reach a "loyal subscriber" floor — a segment that renews almost indefinitely. Identifying the month at which the curve flattens tells you roughly when a subscriber has crossed from "evaluating the product" to "integrated the product into their workflow." That transition point is your benchmark for onboarding success.
Industry benchmarks: where does healthy churn sit?
RevenueCat's State of Subscription Apps report provides the most comprehensive publicly available benchmarks for iOS subscription retention. A few directional findings from that research:
- Median M1 retention for monthly subscriptions sits in the 60–75% range across categories — meaning roughly one in four to one in three subscribers does not renew after month one.
- Productivity and utility apps tend to show higher M1 retention than entertainment or gaming subscriptions, likely reflecting habitual daily use versus novelty-driven engagement.
- Annual subscribers show much higher M1 retention (often above 85% in most categories) because the commitment has already been made — but their M12 cliff is steeper when it arrives, and involuntary churn from expired payment methods is a larger factor in that drop.
- Apps that offer a free trial show slightly lower M0→M1 retention than direct-purchase apps, but tend to retain better from M3 onward. Trial converts who reach month three have demonstrated higher intent than subscribers who committed directly at full price without trialing.
Phiture's Mobile Growth Stack research adds a market-segmentation dimension that aggregate benchmarks miss: retention in price-sensitive storefronts (lower-PPP markets) degrades faster through M3–M6, even when M1 numbers look similar to higher-PPP markets. If a meaningful share of your subscriptions originate from markets like India, Brazil, or Southeast Asia, segment your retention report by territory before drawing conclusions from the global cohort line. The post on why iOS subscription churn is higher in low-PPP markets explores the pricing mechanics behind this pattern in more detail.
Absolute benchmarks are a directional guide, not a target. Your category, price point, trial structure, paywall design, and onboarding quality all shift where your numbers reasonably sit. The more actionable comparison is month-over-month stability within your own cohorts — or the delta between segments you control (trial vs. direct, storefront A vs. storefront B, price tier X vs. price tier Y). Your own historical baseline, once you have three or four cohorts of data, will tell you more than any industry average.
Four actions the retention data points toward
1. Address the M0→M1 cliff with onboarding, not pricing
If your M1 retention is materially below the category median, the most likely lever is onboarding, not price. A subscriber who does not complete setup, does not reach the core value moment of the app, or does not build a usage habit in the first 30 days is likely to let the renewal pass regardless of what it costs. The retention chart tells you how many subscribers are churning; in-app analytics tell you where in the product they dropped off. Use the App Store Connect retention data for the outcome signal, and your own instrumentation to trace the cause.
2. Wait for M3 data before calling a pricing experiment complete
If you are running a price experiment or have recently changed your pricing (see the post on how to A/B test iOS app prices safely), do not evaluate the result at M1. A price increase that looks successful at first renewal — because the higher price screens out casual intent — can still damage M3–M6 retention if the subscriber who converted at the higher price does not perceive the value uplift over time. The right evaluation point is the first full billing cycle at the new price for the affected cohort — typically 60–90 days after the change, depending on your billing interval.
3. Never use the blended line for operational decisions
If your App Store Connect product mix includes both annual and monthly subscriptions, always segment the retention report before comparing to benchmarks or making product decisions. A drop in the blended retention line that looks alarming may simply reflect a shift in the ratio of annual-to-monthly new subscribers — a mix shift, not a product problem. This is particularly relevant after a paywall redesign or a promotional offer that preferentially drives one plan type. The blended line is useful for executive reporting; segmented lines are useful for action.
A practical rule: segment by product ID (annual vs. monthly) before every retention analysis, then by storefront if your install volume allows it. The blended line obscures the most interesting patterns — it almost always understates how good your annual retention is and overstates how good your monthly retention is.
4. Treat diagonal anomalies as a deployment signal
If a specific cohort row shows meaningfully different M1 or M2 retention than adjacent cohorts, check your release history for that period. Significant shifts in retention cohorts are among the most reliable signals that a product change — a new onboarding flow, a paywall redesign, a permissions dialog change, or a price update — had a material effect on subscriber quality. Build the habit of overlaying your App Store Connect version history with the cohort grid. The pattern usually surfaces within 60–90 days of the change, and it is far easier to diagnose while the details of the change are still fresh.
For subscription apps running automated pricing workflows through the App Store Connect API, the same discipline applies: a price change deployed to a specific set of storefronts should show up as a cohort shift in those storefronts' retention data two to three months later. If it does not, the price change did not materially affect subscriber mix — useful signal in either direction. The post on building a price-update workflow with the App Store Connect API covers how to track changes precisely enough to correlate them with later retention data.
Pulling raw cohort data from the Reporting API
The App Store Connect dashboard retention chart provides a visual overview, but the underlying data is available with more granularity through the App Store Connect Reporting API. The relevant report type is SUBSCRIPTION_RETENTION under the Sales and Trends endpoint family. Each report returns one row per cohort-period-product combination, with a column for each subsequent month's retention rate.
Pulling this data programmatically lets you:
- Compare retention across many product IDs simultaneously — useful for apps with multiple subscription tiers or price points
- Build your own cohort visualization with storefront or territory segmentation, which the dashboard does not natively support
- Join cohort data with your own pricing history to correlate price changes with retention outcomes over time
- Alert on diagonal anomalies automatically rather than manually reviewing the dashboard each month
Authentication for the Reporting API uses the same JWT-based key setup as all App Store Connect API calls. If you have not yet configured API access, the App Store Connect API key setup guide covers the five-minute key generation process. Once authenticated, the GET /v1/salesReports endpoint accepts reportType=SUBSCRIPTION_RETENTION as a query parameter, and returns a gzip-compressed TSV file with one row per cohort.
For teams that want to track retention trends over many months without manually exporting each period, scheduling a monthly pull via the API and loading the data into a spreadsheet or a lightweight data store is straightforward to implement — and gives you a running cohort table that the dashboard's limited date range cannot easily replicate.
Sources and further reading
- RevenueCat: State of Subscription Apps — annual benchmarks report
- RevenueCat blog — subscription metrics, churn, and LTV analysis
- Apple Developer: App Store Connect analytics overview
- Apple Developer: App Store Connect API documentation
- Phiture: Mobile Growth Stack — retention, ASO, and subscription research
- AppFollow blog — subscription analytics and app store benchmarks
Share this post
Ready to put this into practice?
AppsOps is the first App Store ops dashboard — PPP-fair pricing for 175 App Store territories, AI metadata localization in 39 languages, AI screenshot localization for 14 Apple device classes, and one-click App Store Connect API push — all from one dashboard, all for $19/month.
Try AppsOps free — no card →