Skip to main content
aibizhub
Hand-written methodology As of 2026-04-24

How Customer Lifetime Value Calculator works

What the tool assumes, what data it pulls from, and what it cannot tell you.

Education · General business information, not legal, tax, or financial advice. Editorial standards Sponsor disclosure Corrections

1. Scope

The CLV Calculator estimates the revenue and gross profit an average customer generates, using a single repeat-purchase model: average purchase value × purchase frequency × customer lifespan, then margin-adjusted. It does not have a subscription (ARPU / churn) mode, does not discount future cash flows to net present value, and does not run probabilistic cohort models (Pareto/NBD, BG/NBD).

2. Inputs and outputs

Inputs: average purchase value, purchase frequency per year, customer lifespan in years (entered directly, not derived from churn or retention), acquisition cost (CAC), and gross margin (%).

Outputs: annual value per customer, monthly value, lifetime revenue (CLV), margin-adjusted CLV (gross-profit lifetime value), the LTV:CAC ratio, and CAC payback in months.

Engine source: src/lib/customer-lifetime-value-calculator/engine.ts.

3. Formula / scoring logic

annual_value        = avg_purchase_value * purchase_frequency_per_year
monthly_value       = annual_value / 12
clv                 = annual_value * customer_lifespan_years        # lifetime revenue
margin_adjusted_clv = clv * (gross_margin_pct / 100)               # gross-profit LTV
ltv_cac_ratio       = margin_adjusted_clv / acquisition_cost
payback_months      = acquisition_cost / (monthly_value * gross_margin_pct / 100)

4. Assumptions

  • Customer lifespan is a direct input. You enter the average number of years a customer stays; the tool does not derive it from churn or a retention rate.
  • Constant purchase value and frequency. Average purchase value and purchases per year are held flat across the whole lifespan.
  • Gross margin is variable-cost margin. Include inference, hosting, payment-processing, fulfilment. Exclude fixed overhead.
  • No discounting. Lifetime value is undiscounted — a dollar in year three counts the same as a dollar today.
  • No expansion revenue. Upsells, cross-sells, and price-tier migrations must be folded into the average purchase value.

5. Data sources

The tool ingests no external data — every figure is user-entered. The formula is the standard repeat-purchase lifetime-value model taught in marketing and managerial-accounting curricula. Probabilistic CLV model references, for readers who need cohort-level CLV:

  • Schmittlein, Morrison, Colombo — Counting Your Customers: Who Are They and What Will They Do Next? Management Science, 1987 (Pareto/NBD).
  • Fader, Hardie, Lee — "Counting Your Customers" the Easy Way: An Alternative to the Pareto/NBD Model, Marketing Science, 2005 (BG/NBD).

6. Known limitations

  • Aggregate, not cohort-level. The formulas treat all customers as equivalent. For a business with heterogeneous cohorts (different channels, tiers, regions), aggregate CLV misleads — compute per-cohort CLV from timestamped data.
  • Fixed lifespan is a simplification. A single average lifespan hides the spread between one-time buyers and loyalists. If your retention curve is steep early and flat later, a flat average under-states the sticky tail.
  • No customer-heterogeneity modelling. Probabilistic CLV (Pareto/NBD, BG/NBD) accommodates heterogeneous purchase rates and drop-out — out of scope here.
  • The Reichheld "5% retention lift = 25–95% profit boost" claim is context-dependent. It applies to businesses where retention is a major profit driver and cost-to-serve declines with tenure. We do not use it as a benchmark.

7. Reproducibility

Input
avg_purchase_value = $100, purchase_frequency = 4/year, customer_lifespan = 2.5 years, gross_margin = 30%, CAC = $150.

Expected output
annual_value = $400, monthly_value ≈ $33.33. clv (revenue) = $1,000 (= $400 × 2.5). margin_adjusted_clv = $300 (= $1,000 × 0.30). LTV:CAC = 2.0 (= $300 / $150). CAC payback ≈ 15 months (= $150 / ($33.33 × 0.30)).

8. Change log

  • 2026-04-24methodology page first published. Subscription and transactional modes documented with limits.

Worked example

Run live against the same engine this site ships (/engines/customer-lifetime-value-calculator.js). The inputs and outputs below are recomputed on every build and independently re-verified in CI — they are never hand-authored.

Input

tool
customer_lifetime_value
avg_purchase_value
50
purchase_frequency_per_year
4
customer_lifespan_years
3
acquisition_cost
100
gross_margin_pct
60

Output

clv
600
annualValue
200
monthlyValue
16.666666666666668
marginAdjustedClv
360
ltcRatio
3.6
paybackMonths
10

Frequently asked questions

What does the CLV Calculator estimate?
It estimates the value of an average customer relationship with one transactional model: average purchase value × purchase frequency per year × customer lifespan in years gives revenue CLV, which is then margin-adjusted. There is no separate subscription (ARPU/churn) mode — lifespan is a direct input.
What does it not do?
It does not perform cohort-level CLV from raw purchase logs, and it does not implement Pareto/NBD or BG/NBD probabilistic CLV models.
Can I verify it with a worked example?
Yes. With avg_purchase_value = $100, purchase_frequency_per_year = 4, customer_lifespan_years = 2.5, gross_margin_pct = 30, acquisition_cost = $150: annual value = $400, revenue CLV = $1,000, margin-adjusted CLV = $300, LTV:CAC = 2.0, payback ≈ 15 months.