Chart · LTV

Cohort analysis for subscription apps: revenue, LTV and retention by cohort

Cohort Explorer groups customers by when they joined, first converted or first paid, then tracks a measure month by month of each customer's own age. Measures include revenue, proceeds, realized LTV, LTV per customer, retained subscriptions and subscriptions set to renew. It reads up to month 24 of customer age.

Formula

Realized LTV per customer at month n = revenue of the cohort from its start through the end of month n ÷ customers in the cohort

Shape

Cohorts by age, in a table

API name

cohort_explorer

Measures

Value (USD)

Filter and segment by

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

The Cohort Explorer 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 Cohort Explorer

The cohorting_date selector picks how customers are grouped. new_customers uses each customer's cohort date, the earlier of when they were first seen and their first transaction. initial_conversions uses their first trial start, purchase or one-time purchase. new_paying_customers uses their first payment: a paid purchase, a renewal or a one-time purchase. A customer who never reaches that event is not in that cohort. Rows are cohorts at the chosen resolution, month by default, and the first column is the cohort size.

Columns are months of each customer's own age, counted from that customer's own start, not calendar months. Month 0 is their first month. The cohort_measure selector picks the cell: revenue, revenue_net_of_taxes, proceeds, realized_ltv (cumulative revenue), realized_ltv_per_customer (cumulative revenue divided by cohort size, the default), retained_subscriptions (subscriptions with paid access at the end of that month) or subscriptions_set_to_renew (those among them set to renew).

Money means purchases, renewals and one-time purchases minus refunds on the refund date, in US dollars at the purchase-date rate. Free trials carry no money and ad revenue is not included. proceeds subtracts the store commission, and revenue_net_of_taxes equals gross because stores report no tax. Sandbox purchases, granted access and Family Sharing purchases are excluded. Months a cohort has not reached are blank, and cells that are still filling are marked incomplete.

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/cohort_explorer with selectors such as {"cohorting_date":"new_paying_customers","cohort_measure":"revenue"}. The response has the same shape as RevenueCat's Charts API: values with cohort, period and value, and periods[0] as the cohort size.

Worked example

Cohort Explorer, step by step

Illustrative numbers for a January cohort of 500 new customers.

Month of ageRevenue in the monthRealized LTVRealized LTV per customer
0$1,500$1,500$3.00
1$600$2,100$4.20
2$400$2,500$5.00

By month 2, the 500 customers have paid $2,500, which is $2,500 ÷ 500 = $5.00 each.

Why it matters

What Cohort Explorer tells you

Cohorts tell you whether the customers you get today are worth more or less than the customers you got last quarter. A change to your paywall, price or onboarding shows up as a new row that sits above or below the rows before it, long before an average does.

Use it to judge payback on ad spend. If a cohort of customers from one campaign has paid back its cost by month 3, you can keep spending. If it flattens below cost, stop. Pair the realized columns with Prediction Explorer when you need to estimate months that have not happened yet.

How to read it

  • Read across a row for one cohort's life, and down a column to compare cohorts at the same age.
  • The newest cells are incomplete. Do not read them as a drop.
  • Cohort on new paying customers to leave out people who never pay. A new customers cohort includes free users, so its LTV per customer is lower.
  • A product, store or offering filter narrows the money and subscriptions but not the new-customer count, so per-customer values fall.
  • Realized LTV is money already received. It is not a forecast.

API

Get Cohort Explorer 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/cohort_explorer?resolution=month" \
  -H "Authorization: Bearer $SECRET_KEY"   # sk_... with charts_metrics:charts:read

Reference: Charts guide · REST API v2

FAQ

Cohort Explorer: questions people ask

What is cohort analysis for a subscription app?

Grouping customers by a shared start event, such as joining or first payment, and following each group over time. It shows whether newer customers pay more or less than older ones at the same age.

What is the difference between the new customers, initial conversions and new paying customers cohorts?

New customers are everyone first seen, including free users. Initial conversions are customers who started a trial or bought anything. New paying customers are customers whose first payment has happened.

How do you calculate realized LTV by cohort?

Add the revenue the cohort has paid from its start through each month, net of refunds, and divide by the number of customers in the cohort for the per-customer value.

What does month of customer age mean?

Each customer's own clock. Month 0 is their first month from their own start date, so one cohort row lines up customers who joined on different days.

Can I get cohort data from the API?

Yes. Call GET /v2/projects/{project_id}/charts/cohort_explorer with the selectors parameter. The dashboard also has a CSV download of the table.

Get started

See your Cohort Explorer 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