Data Science · ML Systems Lab

LTV, Churn, and Retention: How to Model the Revenue a Customer Will Generate

Lifetime Value (LTV) is the expected revenue a customer generates over their relationship with the product. It drives acquisition budget decisions, pricing strategy, and retention investment. Getting it wrong means either under-investing in valuable customers or over-spending on cheap ones. This is how subscription businesses, marketplaces, and consumer apps model LTV — and where the models break.

Customer Lifetime Value (LTV) is the net present value of all future revenue from a customer. It answers: how much is this customer worth to us over their lifetime? The answer drives CAC decisions (you can spend up to LTV * margin to acquire a customer), personalisation (serve high-LTV customers differently), and retention investment (intervene before high-LTV customers churn).

The contractual vs non-contractual distinction

Two fundamentally different settings. Contractual (subscriptions, SaaS): the customer relationship has an explicit end event — the customer cancels. Churn is observable. You know exactly when a customer churned. Non-contractual (e-commerce, marketplaces): customers can become inactive without telling you. "Churned" means "probably won't come back" but you never receive an explicit signal. Each requires different models.

Contractual setting: survival analysis for churn

In subscription businesses, churn is a time-to-event problem: how long until this customer cancels? Survival analysis models this with a survival function S(t) = P(churn time > t) and a hazard function h(t) = P(churning in [t, t+dt] | survived to t). The Kaplan-Meier estimator gives a non-parametric S(t) from observed churn times, accounting for censored observations (customers still active at the end of the observation window who have not yet churned).

Cox Proportional Hazards regression extends this to covariates: h(t | X) = h_0(t) * exp(β^T X). The baseline hazard h_0(t) is left unspecified; covariates shift it multiplicatively. This is the workhorse for understanding which features predict churn: recency of last activity, engagement frequency, plan type, days since last support ticket. The hazard ratio exp(β_j) for feature j gives the multiplicative change in churn hazard per unit increase in X_j.

Non-contractual setting: BG/NBD and Pareto/NBD models

For e-commerce, LTV models must jointly estimate: how many transactions will this customer make? and will this customer become inactive? The BG/NBD model (Fader et al., 2005) models these jointly. Each customer has a latent transaction rate λ (Poisson-distributed purchases when active) and a dropout probability p (geometric distribution over when they go inactive). The model is estimated from observed purchase frequency and recency. From it you can predict: E[X(t)] = expected purchases in next t days, P(alive) = probability the customer is still active.

Simple LTV formula and its problems

The heuristic LTV = ARPU * (1/churn_rate) assumes constant monthly revenue and constant churn. Under these assumptions, expected lifetime = 1/churn. With monthly churn of 5%, expected lifetime = 20 months. LTV at $100/month = $2,000.

The problems: churn rate is not constant — newer cohorts have higher initial churn (product not yet sticky); older, surviving cohorts have lower churn (they are the committed ones). Using the aggregate churn rate on the full user base conflates these cohorts. Cohort-level survival curves give a much better picture of true customer lifetime.

Predicting LTV at acquisition time

The most useful application is early LTV prediction: given what you know about a new customer in their first 7 days (activation rate, engagement depth, acquisition channel), predict their 12-month LTV. This lets you: bid differently in ad auctions based on predicted customer value, identify high-value customers for white-glove onboarding, and personalise retention interventions.

Features for early LTV models: number of sessions in week 1, core feature adoption, social network depth (connected friends), number of content pieces created, referral sent, payment method added. Target: 12-month revenue. Model: gradient boosted trees or a survival model with time-varying covariates. The key challenge is right-censoring: for recently acquired customers, 12-month revenue is not yet observed.

Discounting: NPV of future cash flows

Future revenue is worth less than present revenue (time value of money, customer relationship risk). LTV as NPV: LTV = Σ_{t=0}^{T} revenue_t / (1+d)^t, where d is the discount rate (typically monthly: 1-2%). Discounting flattens the contribution of distant future revenue and biases toward near-term retention.

Try on Colab: on a subscription dataset (e.g., Telco churn dataset), fit a Kaplan-Meier survival curve. Stratify by plan type — compare survival functions across groups. Then fit a Cox PH model with covariates. Compute the predicted churn probability at 6 and 12 months for each customer. Multiply by ARPU to get predicted LTV, and rank customers by predicted LTV to simulate a "prioritise for retention" campaign.

Continue interactively
Read this post inside ML Systems Lab — with Simplify toggle, interview Q&As, inline glossary, and the MLE Path forward pointer.
Open in MSL →