Customer Lifetime Value Calculator

Customer lifetime value is the gross profit a customer is expected to generate before they churn. Most LTV calculations are wildly optimistic because they pair a long lifetime with too-thin a margin definition.

Inputs

$
%
Use product gross margin, not contribution margin.
%
Logo churn for SMB; revenue churn for enterprise.
%
Discount future cash for present value.

Results

LTV (undiscounted)
LTV (discounted)
Avg customer lifetime
Monthly gross profit

The LTV formula

LTV = ARPU × Gross margin / Monthly churn rate

This standard formulation assumes constant ARPU, constant gross margin, and a constant monthly churn rate — none of which hold cleanly in practice. The result is an upper bound on the gross profit a customer relationship will generate, valid as a directional metric for comparing cohorts or modeling unit economics.

Why gross margin matters

Multiplying by gross margin is the difference between LTV (a profit number) and lifetime revenue (a vanity number). For a SaaS business with 80% gross margin, an 80% adjustment moves LTV from $5,000 to $4,000. For a marketplace at 20% take rate, the same arithmetic moves $5,000 to $1,000 — and the unit economics conversation is entirely different.

Discounting

Money received in year five is worth less than money received this month. A discounted LTV applies a per-period discount rate to future gross profit, recognizing both the time value of money and the rising probability of churn. For a 12% annual discount rate and 2% monthly churn, the discount cuts undiscounted LTV by roughly 15-25% depending on retention curve shape.

Worked example

A vertical SaaS product charges $500/month, runs at 78% gross margin, and loses 1.8% of customers per month. Undiscounted LTV: $500 × 0.78 / 0.018 = $21,667. Average customer lifetime: 1 / 0.018 ≈ 55.6 months. With a 10% annual discount rate, LTV drops to roughly $19,000. If their blended CAC is $4,000, the LTV/CAC ratio is around 5×, indicating efficient acquisition.

What LTV doesn't account for