> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.paymentkit.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.paymentkit.com/_mcp/server.

# LTV

Customer Lifetime Value (LTV) is a measure of the total gross revenue you can expect to generate from a customer over the course of their relationship with your business. PaymentKit calculates LTV by combining what a cohort has already generated with a data-driven prediction of what it will generate in the future, giving you a complete picture of customer value at any point in time.

## How LTV is calculated

LTV is calculated at the cohort level, grouping customers by their signup period. Only subscription customers are included in cohorts, and only subscription-related paid invoices count toward LTV; one-off (non-subscription) paid invoices aren't included, even from a cohorted customer. For each cohort, the total estimated LTV is made up of two components:

**Total Est. LTV = Realized LTV + Predicted LTV**

### Realized LTV

Realized LTV is the actual gross revenue collected per paying user in a cohort from their signup date to today.

**Realized LTV = Total gross revenue collected / Cohort members with at least one paid invoice**

Only payments with a status of paid are included. Refunds, chargebacks, and fees are not deducted, as this is a gross revenue figure.

### Predicted LTV

For the portion of a customer's lifetime that hasn't happened yet, PaymentKit uses a benchmark curve built entirely from your own historical data. There are no assumed growth rates, no parametric models, and no external benchmarks. The prediction is derived purely from how your customers have actually behaved.

**A note on convention:** customer age is measured starting at 1 at the point of signup. A brand-new cohort is age 1, not age 0. This is why every cohort, even one that signed up today, always has some realized revenue (their first invoice).

#### Step 1: Build the master benchmark curve

For every month of customer life (t), PaymentKit calculates the average revenue generated *during that month* by customers who made a payment that month. This is called the benchmark value, expressed as B(t), where B stands for benchmark and t represents the month of a customer's life. So B(1) is the average revenue generated in month 1 across your paying customers, B(6) is the average generated specifically in month 6 (not cumulative through month 6), and so on:

**B(t) = Total gross revenue generated during month t / Number of customers who paid during month t**

Only customers who paid in a given month are counted in that month's average, both in the numerator and the denominator. Customers who churned before reaching month t, or who reached it without paying, aren't included in that month's calculation at all. This means B(t) reflects revenue *among payers*, not revenue averaged across everyone who was ever part of your customer base at that age. Read it as "what a paying customer at this age tends to generate," not as an all-customer average.

This produces a curve of expected revenue at each month of a customer's life, from month 1 through to the age of your oldest customer, capped at 24 months. This curve is always built from your full underlying customer data; the cohort merging described below (for display purposes) doesn't affect how B(t) itself is calculated.

#### Step 2: Predict future value for each cohort

For a cohort currently at age M (months since signup), the realized portion already covers months 1 through M. Predicted LTV fills in the remaining months using the benchmark curve:

**Predicted LTV = Sum of B(t) for each month from M+1 to Max Age**

Where Max Age is the age of the oldest customer in your database, capped at 24 months.

As a cohort matures and accumulates more realized revenue, the predicted portion naturally shrinks. A cohort approaching 24 months will have mostly realized LTV with a small predicted segment. Your single oldest cohort will have *no* predicted segment at all: since M equals Max Age, there are no remaining months left to predict, and Total Est. LTV is just its Realized LTV.

## Global estimated LTV

The global estimated LTV is the single number displayed as a benchmark line across the LTV chart. It represents the weighted average of every cohort's total estimated LTV across your entire customer history, weighted by cohort size so that larger cohorts have proportionally more influence on the figure.

**Global Est. LTV = Weighted average of all cohort LTVs, weighted by signup volume**

Importantly, this figure is calculated across all historical cohorts regardless of the date range you have selected in the chart. This is intentional. A consistent all-time benchmark is more meaningful than one that shifts every time you adjust the date range. It means the benchmark line may sit above or below the cohorts visible in your current view depending on the period you are looking at, which is expected behavior.

Comparing individual cohort bars against this line tells you whether a given signup period is producing above- or below-average customers relative to your entire customer history.

## Why we calculate LTV this way

Most LTV models rely on assumed retention rates, discount factors, or industry benchmarks to project future value. These approaches can be misleading for early-stage businesses or those in niche markets where generic benchmarks don't apply.

PaymentKit takes a different approach. By using your own historical revenue data to build the benchmark curve, the predictions are grounded in how your actual customers behave, not how the average SaaS customer behaves. This means:

* **The model improves as your business grows.** The more historical data you accumulate, the more reliable the benchmark curve becomes at every age point.
* **The prediction is transparent.** Every data point in the benchmark curve comes from a real customer at a real age. There are no hidden assumptions or black-box adjustments.
* **Cohort comparisons are meaningful.** Because every cohort is measured against the same benchmark curve, you can directly compare the LTV trajectory of customers acquired in different periods and see whether customer quality is improving over time.

## Things to keep in mind

**New cohorts have higher prediction uncertainty.** A cohort that signed up last month has almost entirely predicted LTV. Because the benchmark curve at later months is built from fewer, longer-tenured customers, the prediction carries more uncertainty for newer cohorts than for mature ones. Treat recent cohort bars as directional rather than definitive.

**The 24-month cap.** Predictions never extend beyond 24 months or the age of your oldest customer, whichever is smaller. If your oldest customer is 10 months old, predictions only extend to month 10. As your customer base matures, the horizon extends automatically.

**LTV is a gross revenue figure.** Refunds, chargebacks, and platform fees are not deducted. This makes LTV useful for understanding revenue generation, but it should not be used as a proxy for profit or margin.

**Cohort size affects reliability.** To ensure statistical significance, cohorts with fewer than 10 users are automatically merged into the next largest time interval. For example, a date range with sparse daily cohorts will automatically group into weekly cohorts. This prevents small cohorts from producing misleading LTV figures. Note that this merging only affects how cohorts are grouped for display; the benchmark curve itself is always built from your full, unmerged data.

**The global average line shifts over time.** As new cohorts are added and existing cohorts mature, the weighted average will change. A rising global LTV line is a strong signal that customer quality or retention is improving across your business.

**These figures are computed over paying customers, not your full signup base.** Realized LTV divides by cohort members who've made at least one paid invoice, and the benchmark curve B(t) at each month only includes customers who paid that month. Customers who never pay, or who churn before paying again, don't get folded in as \$0s that would drag these numbers down. In practice this means Realized LTV and the benchmark curve describe what your paying customers are worth, not an average across every signup, paying or not.