6 Customer Lifetime Value

Customer lifetime value (CLV) is the expected present value of future customer contribution. Define the horizon, margin, discounting, and customer state before comparing estimates.

6.1 Basic formulations

A historical value over an observation window is:

\[ \text{Historical value}_i = \sum_t (\text{revenue}_{it} - \text{variable cost}_{it}) \]

A forward-looking value is:

\[ CLV_i = \sum_{t=1}^{T} \frac{E[M_{it} \mid \mathcal{I}_0]}{(1+d)^t} \]

where \(M_{it}\) is future contribution margin, \(d\) is a period discount rate, \(T\) is the horizon, and \(\mathcal{I}_0\) is information available at the prediction date.

Using revenue instead of margin can overstate economically useful value. Subtract acquisition cost only when the decision requires a post-acquisition net value and avoid subtracting it twice.

6.2 Cohort analysis

Cohorts reveal retention and value patterns without pretending to predict each individual precisely. The data below are synthetic.

cohorts <- data.frame(
  cohort = c("A", "B", "C"),
  acquired = c(1000, 800, 1200),
  retained_month_3 = c(610, 520, 660),
  margin_90d = c(72000, 68000, 78000),
  acquisition_cost = c(30000, 28000, 42000)
)

cohorts$retention_3m <- cohorts$retained_month_3 / cohorts$acquired
cohorts$margin_per_customer_90d <- cohorts$margin_90d / cohorts$acquired
cohorts$net_margin_90d <- cohorts$margin_90d - cohorts$acquisition_cost

cohorts
##   cohort acquired retained_month_3 margin_90d acquisition_cost retention_3m
## 1      A     1000              610      72000            30000         0.61
## 2      B      800              520      68000            28000         0.65
## 3      C     1200              660      78000            42000         0.55
##   margin_per_customer_90d net_margin_90d
## 1                      72          42000
## 2                      85          40000
## 3                      65          36000

Comparisons require equivalent observation windows and maturity. A recent cohort has had less time to repurchase and churn.

6.3 Discounted expected value

Suppose a contractual customer has a probability of remaining active each month and produces an expected margin when active.

month <- 1:12
monthly_retention <- 0.92
expected_margin_if_active <- 18
monthly_discount <- 0.01

survival_probability <- monthly_retention ^ month
discount_factor <- 1 / (1 + monthly_discount) ^ month

expected_clv_12m <- sum(
  survival_probability * expected_margin_if_active * discount_factor
)

expected_clv_12m
## [1] 123.9635

This shortcut assumes stable retention and margin. Real cohorts may have tenure effects, seasonality, changing prices, reactivation, and heterogeneous customers.

6.4 Choose a model for the setting

  • Contractual businesses: survival or hazard models can estimate time to churn when an active/inactive state is observable.
  • Noncontractual purchases: probabilistic transaction models can estimate whether a customer remains active and how often they may purchase.
  • Rich feature settings: regression or machine-learning models can predict future value over a fixed horizon.
  • Strategic planning: cohort-level scenarios may be more interpretable and stable than individual rankings.

Use time-based validation. Randomly splitting customer rows can leak later behavior or give mature customers to both training and test sets.

6.5 Decision use

CLV can support acquisition bids, service levels, retention programs, and portfolio planning. Prediction alone does not identify the effect of an offer. The highest-value customers may purchase without intervention; targeting them can waste discounts. Use experiments or uplift methods when the decision is who should receive treatment.

6.6 Common failure modes

  • comparing revenue CLV with margin CLV;
  • treating all unobserved customers as churned;
  • ignoring right censoring and cohort maturity;
  • validating on information unavailable at scoring time;
  • assuming historical channel mix will remain stable;
  • presenting point estimates without uncertainty; and
  • using protected or sensitive attributes without appropriate governance.

The classic review Modeling Customer Lifetime Value summarizes several CLV model families and their managerial applications.

6.7 Interview checkpoints

  • When should acquisition cost be included in CLV?
  • Why is a random train/test split risky for CLV prediction?
  • How does contractual churn differ from noncontractual inactivity?
  • Why might targeting the highest predicted CLV customers produce little lift?