Shape
A series by cohort date; recent cohorts are still maturing
Chart · LTV
Realized LTV per customer is the revenue a period's new customers paid within a set window after they joined, divided by all those new customers, including the ones who never paid. RevenueDot subtracts refunds recorded in the window. You pick the window: day 0, 7, 14, 30, 60, 90, 180 or 365 days, or unbounded.
Formula
Realized LTV per customer = revenue from the period's new customers in their first N days, minus refunds in that window ÷ new customers in the period
Shape
A series by cohort date; recent cohorts are still maturing
API name
ltv_per_customer
Measures
Realized LTV per Customer (USD)
Filter and segment by
App, Store, Product, Product duration, Offering, Country, Platform, App version
Definition
Each customer belongs to the period that holds their cohort date, the earlier of when they were first seen and their first transaction, and aliases of one customer count once. The window runs from the start of that UTC day through day N, so day 0 is the cohort day and a 30-day window covers day 0 through day 30. The customer_lifetime selector sets N and defaults to 30 days.
Revenue is purchases, renewals and one-time purchases inside the window, minus refunds recorded inside it, in US dollars at the purchase-date rate. Free trials carry no money. Ad revenue is not included, and sandbox purchases, granted access and Family Sharing purchases are excluded. The denominator is all new customers in the period, paying or not. The table also lists Revenue and New Customers, which are not plotted.
The number is realized, so it counts money already received and does not project the rest. A period stays incomplete until every customer's window has passed, so the newest points are understated. A product, store or offering filter narrows the revenue but not the count of new customers. You can also filter or segment by app, country, platform and app version, at day, week or month resolution.
Find it in the dashboard under Analytics > Charts, or call GET /v2/projects/{project_id}/charts/ltv_per_customer with selectors such as {"customer_lifetime":"90_days"}. The response has the same shape as RevenueCat's Charts API.
Worked example
Illustrative numbers for one cohort and a 30-day window.
| Item | Value |
|---|---|
| New customers in the cohort | 1,000 |
| Purchases and renewals, day 0 to day 30 | $4,200 |
| Refunds recorded in that window | −$200 |
| Revenue in the window | $4,000 |
Realized LTV per customer (30 days) = $4,000 ÷ 1,000 = $4.00.
Why it matters
Realized LTV per customer sets the most you can pay to get a customer. If the 90-day value is $3.00, paying $5.00 per install will not pay back inside 90 days. It is the number to hold against your cost per install, channel by channel and country by country.
It also scores changes. A new paywall, price or trial length changes the LTV of the customers who join after it, so compare cohorts before and after on the same window. Use LTV per Paying Customer for what a payer is worth.
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/ltv_per_customer?resolution=day" \
-H "Authorization: Bearer $SECRET_KEY" # sk_... with charts_metrics:charts:read Reference: Charts guide · REST API v2
FAQ
Add the revenue a group of new customers paid in a fixed window, net of refunds, and divide by the number of customers. RevenueDot calls this realized LTV because it counts only money already received.
Realized LTV counts money already paid. Predicted LTV estimates money still to come. RevenueDot's Prediction Explorer shows both for cohorts.
Yes. Realized LTV per customer divides by all new customers, including those who never paid. LTV per paying customer divides only by customers who paid.
The number of days after a customer's first day over which revenue is counted: day 0, 7, 14, 30, 60, 90, 180, 365 days, or unbounded. The default is 30 days.
No. It counts purchases, renewals and one-time purchases, minus refunds. Ad revenue is not part of realized LTV in RevenueDot.
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