Shape
Cohorts by age, in a table
Chart · LTV
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
Definition
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
Illustrative numbers for a January cohort of 500 new customers.
| Month of age | Revenue in the month | Realized LTV | Realized 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
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.
API
Same path and response shape as RevenueCat's Charts API, so existing scripts keep working.
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
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.
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.
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.
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.
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
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