All posts
OPERATIONS

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.

By the AppsOps team · · 9 min read

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:

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:

  1. 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.
  2. 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.
  3. 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.
~28% Median M12 retention for monthly consumer subscriptions, per RevenueCat's State of Subscription Apps benchmarks

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:

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:

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

Share this post

Ready to put this into practice?

AppsOps is the first App Store ops dashboardPPP-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 →

Related reading