Chart · LTV

LTV prediction for subscription apps: how Prediction Explorer works

Prediction Explorer shows realized LTV per customer by monthly cohort and fills the months a cohort has not reached yet with a projection. It uses the chain-ladder method: each missing month grows by the growth that older cohorts showed between the same two months. It uses only your own data and goes up to month 24.

Formula

Predicted LTV at month n = LTV at month n−1 × (total LTV at month n ÷ total LTV at month n−1, across older cohorts that completed both months)

Shape

Cohorts by age, in a table

API name

prediction_explorer

Measures

LTV / Customer (USD)

Filter and segment by

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

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

The realized part is the same as Cohort Explorer's realized LTV per customer: cumulative revenue of the cohort from each customer's start through the end of each month of their own age, divided by the cohort size, net of refunds and in US dollars at the purchase-date rate. Month 0 is the first month. The cohorting_date selector groups customers by new_customers (the default), initial_conversions or new_paying_customers.

For each month n, RevenueDot adds up the month n values of all cohorts that have completed both month n−1 and month n, and divides by the sum of their month n−1 values. That ratio is the growth factor for month n. A cohort's missing months are its last realized value multiplied by the growth factors in order. If no cohort has completed a month yet, its factor is 1, so the projection stays flat. Predicted cells carry predicted: true and incomplete: true in the API.

This is a projection from your own older cohorts. It does not use data from other apps, a survival model, seasonality or knowledge of a price change. It assumes newer cohorts grow like older ones. Sandbox purchases, granted access and Family Sharing purchases are excluded, and ad revenue is not included. 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/prediction_explorer. The response has the same shape as RevenueCat's Charts API: a cohort table with periods[0] as the cohort size.

Worked example

Prediction Explorer, step by step

Illustrative numbers with two cohorts. Cohort A has completed month 1. Cohort B has not.

CohortMonth 0Month 1
A (older)$2.00$3.00
B (newer)$2.50$3.75 (predicted)

Growth for month 1 = 3.00 ÷ 2.00 = 1.5, so cohort B's predicted month 1 = 2.50 × 1.5 = $3.75. With more cohorts, the month 1 values are added up before the division.

Why it matters

What Prediction Explorer tells you

Waiting a year to learn what a customer is worth is too slow when you buy traffic every week. A projection from the cohorts you already have lets you estimate whether a channel will pay back by month 6 or month 12, and keep or cut spend sooner.

Treat it as an estimate. It works best when your older cohorts look alike and your product has not changed much. Compare predicted cells of a recent cohort with the realized columns as they arrive, and learn how far off the projection is for your own app.

How to read it

  • Predicted values are flagged predicted: true in the API. Keep them apart from realized values in any report.
  • A new price, paywall or onboarding breaks the assumption that new cohorts grow like old ones.
  • With only a few months of history, later months are held flat because no older cohort has reached them.
  • Small cohorts are noisy. A few big purchases move the growth factor.
  • Per-customer values include people who never pay. Use the new paying customers cohort to leave them out.

API

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

Reference: Charts guide · REST API v2

FAQ

Prediction Explorer: questions people ask

How do you predict LTV for a subscription app?

Group customers into cohorts, measure cumulative revenue per customer by month of age, and project the missing months from how older cohorts grew between the same months. RevenueDot does this with the chain-ladder method.

What is the chain-ladder method?

A way to complete a triangle of cohort data. For each month, it takes the growth older cohorts showed from the previous month and applies it to cohorts that have not reached the month yet.

How accurate is the LTV prediction?

It depends on how alike your cohorts are. RevenueDot has no accuracy benchmark. Compare the predicted cells of a recent cohort with the realized values when they arrive.

Does Prediction Explorer use data from other apps?

No. It uses only your own cohorts. It does not use a model trained on other apps.

How do I tell predicted values from realized ones?

In the API, every predicted cell has predicted: true. Realized cells do not.

Get started

See your Prediction 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