Customer lifetime value: the formula, and the four ways it lies

Customer lifetime value estimates the total gross profit a customer produces before they leave. The standard formula divides average revenue per account by churn rate and multiplies by gross margin, which gives you a number in about fifteen seconds.
That number is usually wrong by a factor of ten, and it is wrong in a direction that flatters you.
The formula is not broken. It is a geometric series, and geometric series are exactly right about the world they describe. The problem is that the world they describe has constant churn forever, no discount rate, and customers who behave identically in month 40 and month 2. Subscription businesses have none of those things.
Table of contents
- The customer lifetime value formula
- Lie one: the churn rate you plugged in has no period
- Lie two: churn is not constant, it decays
- Lie three: a dollar in year eight is not a dollar
- Lie four: gross margin quietly becomes revenue
- Four ways to calculate customer lifetime value, compared
- How to calculate customer lifetime value, step by step
- Where the calculation breaks on real billing data
- The LTV:CAC ratio and the 3x rule nobody checks
- Calculating customer lifetime value before you have any
- What customer lifetime value cannot tell you
- Frequently asked questions
The customer lifetime value formula
The standard SaaS customer lifetime value formula is average revenue per account multiplied by gross margin, divided by customer churn rate for the same period.
LTV = (ARPA × gross margin) / churn rate
Every term has to share a period. If ARPA is monthly, churn must be monthly, and
the answer comes out in the same currency your ARPA is denominated in. The
division by churn is doing something specific: 1 / churn is the expected
number of periods a customer survives, which falls out of summing an infinite
geometric series where each period the customer has a (1 - churn) chance of
still being there.
Take a business with $50 monthly ARPA, 80% gross margin, and 2% monthly churn.
expected lifetime = 1 / 0.02 = 50 months
LTV = 50 × 0.80 × 50 = $2,000
Fifty months is four years and two months. Hold onto that, because it is where the trouble starts.
Lie one: the churn rate you plugged in has no period
Most published churn benchmarks do not state whether they are monthly or annual, and the two differ by roughly an order of magnitude. Plugging an annual rate into a monthly formula inflates lifetime value about twelvefold.
Recurly's churn benchmark research, updated July 2026, puts the median SaaS churn rate at 3.22%, split into 2.16% voluntary and 1.06% involuntary. Those are annual figures. Recurly says so explicitly, and notes that annual churn is not twelve times monthly churn because of compounding.
Now watch what happens to the same business depending on how you read that number.
| Reading of 3.22% | Monthly churn | Expected lifetime | LTV at $50 ARPA, 80% margin |
|---|---|---|---|
| Monthly | 3.22% | 31 months | $1,242 |
| Annual (correct) | 0.272% | 367 months | $14,684 |
Same benchmark, same business, an 11.8x difference in the answer. The conversion
is monthly = 1 - (1 - annual)^(1/12), which turns 3.22% annual into 0.272%
monthly, not 0.268% and definitely not 3.22%/12.
Notice the second row also says the average customer stays 367 months. That is 30.6 years. Most SaaS companies quoting that number have not existed for five. When a lifetime estimate exceeds the age of your company, the formula has stopped describing your business and started describing an assumption. Our post on churn rate works through the period conversion and the compounding formula in full.
Lie two: churn is not constant, it decays
The 1 / churn term assumes a customer is equally likely to leave in month 40
as in month 2. Real subscription cohorts churn hardest early and then flatten,
which means a single blended churn rate is a weighted average of two very
different populations.
A typical shape: 9% of a cohort leaves in month one, 5% in month two, 3% in month three, then it settles somewhere near 1% and stays there. Average those naively and you get a churn rate that describes nobody. It is too high to describe your surviving base and too low to describe your new signups.
Two consequences follow, and they point in opposite directions.
If you calculate customer lifetime value on your current customers, you have excluded everyone who already left. That is survivorship bias, and it overstates what the next cohort will be worth, because the next cohort still contains the people who quit in week three. The fix is to compute on complete cohorts, including the members who churned.
If instead you apply the early, steep churn rate to the whole future, you understate the value of anyone who makes it past the cliff. A customer who survives six months is a structurally different asset from one who signed up yesterday, and averaging them into one LTV throws away the most useful thing you know.
The honest version is a retention curve per cohort rather than a single rate. Sum the actual retained revenue month by month and stop at a horizon you can defend. That is more work than dividing by churn. It is also the difference between a forecast and a wish.
Lie three: a dollar in year eight is not a dollar
The standard formula adds up revenue across the entire customer lifetime without discounting it, so a payment expected 100 months from now counts for exactly as much as a payment collected this month.
Add a discount rate and the geometric series barely changes shape:
LTV = (ARPA × gross margin) / (churn rate + discount rate)
Both rates monthly. At 1% monthly churn and no discount, expected lifetime is 100
months. At the same churn with a 10% annual cost of capital (0.797% monthly), it
drops to 1 / (0.01 + 0.00797) = 55.7 months. Discounting cut the number nearly
in half, and it did so without a single customer behaving differently.
David Skok, whose SaaS Metrics 2.0 is where most of this vocabulary entered general use, later published a follow-up arguing that discounted cash flow is the only defensible way to compute LTV. The industry adopted his ratio and skipped that part.
The lower your churn, the more discounting matters. A business with 5% monthly churn has a 20 month lifetime and the discount barely registers. A business with 0.5% monthly churn has a nominal 200 month lifetime, most of which sits far enough in the future to be worth substantially less than face value.
Lie four: gross margin quietly becomes revenue
Customer lifetime value is a gross profit figure, not a revenue figure, and the gross margin term is the only thing making that true. Drop it and you have computed lifetime revenue, which is not comparable to acquisition cost and not comparable to anything else in the business.
Plenty of published calculators drop it. Some list it as optional. It is not optional, and the omission inflates the result by whatever your cost of revenue happens to be, typically 20% to 30% for software.
Your cost of revenue for this purpose is hosting, third-party API costs, payment processing fees, and the support and customer success headcount that scales with customer count. Payment processing alone runs 2.9% plus fixed fees on card transactions in most of the market, which is not a rounding error on a metric people compare to CAC.
Two businesses with identical monthly recurring revenue and identical churn can have lifetime values 40% apart purely because one runs inference on every request and the other serves cached pages.
Four ways to calculate customer lifetime value, compared
There is no single customer lifetime value formula, because the four common methods answer different questions and fail in different places. Pick by what your data can actually support.
| Method | What it does | Watch out for | Typical fit |
|---|---|---|---|
| Formula (ARPA × margin / churn) | Divides by a single blended churn rate | Assumes constant churn and no discounting; wrong by 10x on a period mismatch | A back-of-envelope figure when you have no cohort data |
| Historic realised | Sums actual gross profit per customer to date | Excludes nobody, but only reports the past; understates live customers | Board reporting, cohort comparison, anything that must be defensible |
| Cohort-summed with a horizon cap | Sums observed cohort revenue, capped at 12 or 24 months | Needs enough history to reach the cap; the cap must be stated in the metric name | Most subscription businesses past their first year |
| Predictive / survival model | Fits a retention curve and extrapolates | Sensitive to specification; false precision is the standing risk | Businesses with 100+ per cohort and someone who can defend the model |
Notice what the top row buys you. It is fast and it is the only one that works before you have history, which is exactly why it is everywhere and exactly why so many published lifetime values are fiction.
The second and third rows are where most teams should live. Neither requires a model. Both require actually pulling cohort revenue month by month, which is work, and which is the reason the shortcut persists.
How to calculate customer lifetime value, step by step
Calculating customer lifetime value defensibly takes six steps, and four of them are decisions about scope rather than arithmetic.
- Fix the cohort. Every customer who first paid in a given month, including the ones who have since churned. Excluding churned customers is the single most common error and it always inflates the answer.
- Split by billing term first. Annual and monthly contracts have structurally different retention shapes. One table each.
- Normalise the revenue. Use the subscription's recurring amount, not the invoiced amount. Prorated upgrades, credits and partial refunds distort raw invoice totals in ways that have nothing to do with customer value.
- Apply gross margin. Hosting, third-party APIs, payment processing and the support headcount that scales with customers. Not sales, not marketing, not engineering salaries.
- Sum forward to a stated horizon. Cumulative gross profit per cohort, month by month, capped at a horizon you have data for. Name the cap in the metric: "24-month CLV", not "CLV".
- Discount if the horizon is long. Beyond about 24 months, apply your cost of capital. Inside 24 months the effect is small enough to skip and say so.
Worked through on a January cohort of 200 customers at $50 ARPA and 80% gross margin, with the retention curve flattening at 80%:
Month 1: 200 customers × $50 × 0.80 = $8,000
Month 2: 182 × $50 × 0.80 = $7,280
Month 3: 173 × $50 × 0.80 = $6,920
...
Month 12: 160 × $50 × 0.80 = $6,400
12-month cumulative gross profit = $81,200
12-month CLV = $81,200 / 200 = $406
Four hundred and six dollars is a fact about the January cohort. Compare it to the February cohort's $406 and you learn something. Compare it to the $2,000 the formula produced at the top of this post and you learn why the two numbers should never appear in the same deck without a label.
Where the calculation breaks on real billing data
Real billing data introduces four distortions that a clean formula never sees: mixed contract terms, involuntary churn, mid-cycle plan changes, and expansion.
Annual and monthly contracts averaged together. An annual contract cannot churn in month seven. It can only churn at renewal, which means its churn is lumpy and concentrated at twelve month boundaries, while monthly plans churn continuously. Blend them into one rate and you get a number that describes neither. Calculate lifetime value separately per billing term.
Involuntary churn counted as a customer decision. Recurly's data puts involuntary churn at 1.06% of the 3.22% SaaS median, so roughly a third of all churn is a failed card rather than a cancellation. It also falls sharply with price: 1.30% in the $10 to $25 ARPC band against 0.18% above $250, a 7.2x spread. Involuntary churn responds to dunning and card updater tooling rather than to product work, and Stripe's revenue recovery documentation covers the mechanics. Folding it into a single churn rate hides the third of your churn that is most recoverable.
Mid-cycle plan changes and proration. An upgrade on day 14 produces a prorated line item that is not a full month of the new price. Feed those raw amounts into ARPA and the monthly average wobbles for reasons that have nothing to do with customer behaviour. Normalise to the subscription's recurring amount rather than to what was invoiced.
Expansion is missing entirely. The base formula holds ARPA constant for the customer's entire life. In a business where accounts grow seats over time, that is a systematic understatement, and it is the single largest source of upward error in the whole calculation. If your net revenue retention exceeds 100%, existing customers are getting more valuable every year, and a flat ARPA assumption is leaving that on the table.
The LTV:CAC ratio and the 3x rule nobody checks
The LTV:CAC benchmark of 3:1 comes from a single sentence in David Skok's SaaS Metrics 2.0: "The best SaaS businesses have a LTV to CAC ratio that is higher than 3, sometimes as high as 7 or 8." It was an observation about mature public SaaS companies, not a threshold derived from anything.
That distinction matters because the observation carried conditions the ratio lost on its way to becoming a rule. Skok was describing businesses with a stable customer base, a measured rather than extrapolated lifetime, and a payback period comfortably inside twelve months. A seed-stage company with eight months of history satisfies none of those and still gets held to the number.
The ratio also inherits every error above. If your LTV is inflated 11.8x by a period mismatch, a 3:1 ratio is really 0.25:1, and you are lighting money on fire while your dashboard shows green. Ratios built on estimates are only as good as their weakest input, and LTV is by far the weakest input in this one.
CAC payback period is the more honest companion metric, because it uses only numbers you have already observed. Months to recover acquisition cost from gross profit requires no assumption about what happens in year six.
Calculating customer lifetime value before you have any
If your median customer tenure is shorter than your data history, you cannot measure lifetime value. You can only bound it, and the honest move is to say so rather than extrapolate a curve from three points.
A business with nine months of data has observed nine months of retention. What happens in month 30 is an assumption regardless of how you dress it up. Three things do work at that stage:
- Report realised value to date per cohort. Cumulative gross profit from the January cohort through today is a fact. It gets more useful every month and it never needs revising downward.
- Cap the horizon explicitly. A 24 month capped LTV is defensible and comparable across cohorts. State the cap in the metric name so nobody compares it to an uncapped figure.
- Use payback period as the operating metric. It answers the question you actually need answered, which is whether you can afford to keep acquiring.
Small cohorts add noise on top of everything else. At 40 customers, one enterprise churn moves the retention rate by 2.5 points and the LTV by hundreds of dollars. Below roughly 100 customers per cohort, treat the number as a direction rather than a figure.
What customer lifetime value cannot tell you
Customer lifetime value is a single scalar summarising a distribution, and the distribution in subscription businesses is severely skewed. Averages describe skewed distributions badly.
A business where the top 10% of accounts produce 60% of revenue has a mean LTV that describes no actual customer. The median customer is worth far less than the average, and acquisition decisions made on the average will overpay for the long tail. Segment before averaging: by plan, by acquisition channel, by company size, by billing term.
Lifetime value also cannot tell you when something changed. It is a lagging aggregate over a long window, and a cohort that started churning badly in March will not visibly move a twelve month LTV until well into the following year. By then the cause has been buried under two quarters of other changes.
That gap between a number moving and knowing why is where most revenue analysis actually lives.
Frequently asked questions
What is a good customer lifetime value?
There is no absolute threshold, because lifetime value is only meaningful against acquisition cost and payback period. A $2,000 LTV is excellent against a $300 CAC and fatal against a $2,500 one. Compare it to CAC within the same segment and billing term, and treat any ratio built on an extrapolated lifetime with suspicion.
What is the difference between CLV and LTV?
Nothing consistent. Customer lifetime value (CLV or CLTV) and lifetime value (LTV) are used interchangeably across the industry, with LTV more common in SaaS and CLV more common in ecommerce and marketing. The distinction that does matter is whether the figure includes gross margin. A revenue-based number and a gross-profit-based number can differ by 30% and both get called LTV.
How do you calculate customer lifetime value with expansion revenue?
Replace the flat ARPA term with a per-cohort revenue curve, or use net revenue retention as a growth factor on the base. If a cohort's revenue grows 8% a year net of churn, the customer lifetime value of that cohort is materially higher than any formula holding ARPA constant will show. Summing observed cohort revenue month by month sidesteps the problem entirely.
Should customer lifetime value include gross margin?
Yes. Without it you have computed lifetime revenue, which cannot be compared to customer acquisition cost, since CAC is a real cash outflow and revenue is not profit. Include hosting, third-party API costs, payment processing and support headcount in the cost of revenue.
Ready to see what is actually moving your lifetime value?
Customer lifetime value is a lagging aggregate. By the time it moves, the cohort that caused the move signed up two quarters ago, the pricing change that triggered it shipped in March, and the failed payments behind a third of the churn never appeared in a product dashboard at all.
GainSignal connects billing, product usage and the operational changes around them, then reports what changed, when it started, and which accounts are behind it. Involuntary churn separated from voluntary. Cohorts tracked individually rather than blended into one rate. The evidence attached to the finding, so the question you answer is not "did LTV drop" but "which cohort, starting when, and why."