<!-- llms-explorer concept facts · https://llms-explorer.com/tree/customer-lifetime-value-modeling/ · pack 2026-09-08 · ~5651 tokens -->

# Customer Lifetime Value Modeling

> Customer Lifetime Value (CLV) is the present value of the future cash flows attributed to a customer relationship. This skill covers the probabilistic "buy-till-you-die" (BTYD) family — statistical mo

Parent: [Data Analysis](https://llms-explorer.com/tree/data-analysis/) · 21 facets · 69 facts · page: https://llms-explorer.com/tree/customer-lifetime-value-modeling/

## Overview

- Customer Lifetime Value (CLV) is the present value of the future cash flows attributed to a customer relationship. This skill covers the probabilistic "buy-till-you-die" (BTYD) family - statistical models that decompose CLV into (1) how often a customer transacts while active, (2) whether/when they silently churn, and (3) how much they spend per transaction - then discount the expected future stream to present value. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#overview`
- Two orthogonal axes define the model landscape (Fader/Hardie taxonomy): — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#overview`
- Choosing the wrong quadrant is the #1 modeling error. Subscriptions/SaaS are contractual (you see the cancellation) → sBG / survival. Retail, e-commerce, donations are non-contractual (you infer churn) → Pareto/NBD family. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#overview`
- Authoritative source corpus: Bruce Hardie's notes (brucehardie.com), the Fader/Hardie/Lee Marketing Science papers, and the three reference implementations - lifetimes (Python, archived), CLVTools (R), and PyMC-Marketing (Python, Bayesian, the active successor). — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#overview`

## 1. The buy-till-you-die (BTYD) framework

- A customer is "alive" until an unobserved dropout, transacting stochastically while alive. Models pair a counting process (transactions while alive) with a timing process (lifetime/dropout), each with cross-customer heterogeneity. First introduced by Schmittlein, Morrison & Colombo, "Counting Your Customers: Who Are They and What Will They Do Next?", Management Science 33(1):1–24 (1987) (https://pubsonline.informs.org/doi/10.1287/mnsc.33.1.1). Lineage: Retina.ai "History of BTYD" (2023). — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#1-the-buy-till-you-die-btyd-framework`

## 2. Pareto/NBD

- The original non-contractual continuous-time model. NBD (Poisson–gamma mixture) for transaction counts while alive; Pareto (exponential–gamma mixture) for the unobserved lifetime. Four parameters (r, α, s, β). Powerful but numerically awkward (Gaussian hypergeometric functions), which motivated BG/NBD. (Schmittlein et al. 1987; CLVTools pnbd; PyMC-Marketing Pareto/NBD notebook.) — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#2-paretonbd`

## 3. BG/NBD ("Counting Your Customers the Easy Way")

- The workhorse. Replaces Pareto's continuous dropout with a beta-geometric story: a customer flips a coin to churn immediately after each transaction (prob. p, beta-distributed across customers); active counts are NBD. Far easier to fit (estimable in Excel), nearly identical predictive accuracy. Fader, Hardie & Lee, Marketing Science 24(2):275–284 (2005) (http://brucehardie.com/papers/018/fader_et_al_mksc_05.pdf). Quirk: in BG/NBD a customer cannot churn until after their first repeat purchase, so it understates one-and-done customers - which MBG/NBD fixes. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#3-bgnbd-counting-your-customers-the-easy-way`

## 4. MBG/NBD (Modified BG/NBD)

- Adds a dropout opportunity at time zero (right after the first purchase), so customers who never repeat can be "dead". Expected-repeat estimates nearly match BG/NBD, but alive/dead classification of zero-repeat customers is more realistic. Batislam, Denizel & Filiztekin, IJRM 24(3) (2007); implemented as ModifiedBetaGeoModel. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#4-mbgnbd-modified-bgnbd`

## 5. Gamma-Gamma monetary model

- Separately models spend per transaction (frequency models only predict counts). Assumptions: (a) value varies randomly around the customer's mean; (b) mean spend varies across customers but not over time; (c) spend is independent of the transaction process - verify frequency and monetary value are roughly uncorrelated before trusting it. Fit only on repeat purchasers. Fader, Hardie & Lee, "RFM and CLV: Using Iso-Value Curves", JMR 42(4):415–430 (2005) (https://www.brucehardie.com/papers/rfm_clv_2005-02-16.pdf). — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#5-gamma-gamma-monetary-model`

## 6. RFM as model inputs (sufficient statistics)

- BTYD models need only per-customer Recency, Frequency, and "T" - R and F are sufficient statistics for the likelihood. Conventions (easy to get wrong): — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#6-rfm-as-model-inputs-sufficient-statistics`
  - frequency = number of repeat purchases (total − 1). — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#6-rfm-as-model-inputs-sufficient-statistics`
  - recency = time between first and last purchase (NOT time since last purchase, the marketing-RFM convention). — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#6-rfm-as-model-inputs-sufficient-statistics`
  - T = customer "age" = first purchase to end of observation. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#6-rfm-as-model-inputs-sufficient-statistics`
  - monetary_value = average value of repeat transactions. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#6-rfm-as-model-inputs-sufficient-statistics`

## 7. Discounted Expected Residual Transactions (DERT) → CLV

- CLV (non-contractual) = (expected spend from Gamma-Gamma) × DERT, where DERT is the present value of all expected future transactions discounted to the end of the calibration period (integral from T to ∞). Use a continuously-compounded discount rate (e.g. 15%/yr ≈ 0.0027/week). Fader/Hardie originally called this DET. (RFM-CLV 2005; CLVTools pnbd_DERT; Fader/Hardie note 033.) — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#7-discounted-expected-residual-transactions-dert-clv`

## 8. sBG — shifted-beta-geometric (contractual / discrete churn)

- Subscriptions/contractual settings: each period a customer renews with prob. θ or cancels with 1−θ; θ is fixed per customer, beta-distributed across the base. Projects observed retention into a full survival curve and explains the observed rise in aggregate retention over time as a heterogeneity sorting effect, not behavior change. Fader & Hardie, "How to Project Customer Retention", J. Interactive Marketing 21(1):76–90 (2007); extended in "Customer-Base Valuation in a Contractual Setting", Marketing Science 29(1):85–93 (2010). — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#8-sbg-shifted-beta-geometric-contractual-discrete-churn`

## 9. BG/BB — discrete-time non-contractual

- Discrete-time analog of Pareto/NBD: transactions per period are Bernoulli (buy/no-buy) instead of Poisson, paired with a beta-geometric dropout - for "transaction opportunities" data (annual donations, periodic catalog buyers). Closed-form. Fader, Hardie & Shang, Marketing Science 29(6):1086–1108 (2010); lifetimes BetaGeoBetaBinomFitter. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#9-bgbb-discrete-time-non-contractual`

## 10. Predictive vs. historical CLV

- Historical CLV sums realized past margin (backward-looking). Predictive CLV forecasts future value via models (BTYD, ML, or naive ARPU/churn). The naive ARPU ÷ churn shortcut assumes a single constant retention rate - biased low when retention is heterogeneous (Fader/Hardie 2010). Prefer model-based predictive CLV with uncertainty intervals. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#10-predictive-vs-historical-clv`

## 11. Cohort-based CLV

- Group customers by acquisition period and track value per cohort. Reveals retention dynamics and acquisition-quality drift a base-wide average masks; pairs with sBG on multicohort data. (Keep retention-curve fitting itself in da-34; here it is a CLV input/segmentation lens.) — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#11-cohort-based-clv`

## 12. CAC:LTV ratio (unit economics)

- LTV:CAC measures payback on acquisition spend. Rules of thumb: ~3:1 healthy target (B2C SaaS ≈ 2.5:1, B2B SaaS ≈ 4:1); below 2:1 = unsustainable; above ~5:1 = likely under-investing. CAC payback: healthy 6–12 months, elite < 3 months. Use a margin-based, discounted predictive LTV - gross-revenue LTV inflates the ratio. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#12-cacltv-ratio-unit-economics`

## Methodology (non-contractual continuous: common case)

- Confirm the quadrant. Non-contractual + continuous → proceed. Contractual → sBG/survival. Discrete opportunities → BG/BB. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#methodology-non-contractual-continuous-common-case`
- Build RFM summary (rfm_summary() / lifetimes summary_data_from_transaction_data). Watch the recency definition. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#methodology-non-contractual-continuous-common-case`
- Fit a frequency/dropout model (BG/NBD default; MBG/NBD if many one-and-done; Pareto/NBD as benchmark). — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#methodology-non-contractual-continuous-common-case`
- Check the model: holdout calibration, tracking plot, P(alive) distribution. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#methodology-non-contractual-continuous-common-case`
- Fit Gamma-Gamma on repeat purchasers; first verify low corr(frequency, monetary). — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#methodology-non-contractual-continuous-common-case`
- Compute discounted CLV = E[spend] × DERT over a finite horizon, continuously-compounded discount rate. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#methodology-non-contractual-continuous-common-case`
- Validate on a holdout window by RFM decile. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#methodology-non-contractual-continuous-common-case`
- Segment / act: rank by predicted CLV and P(alive); feed CAC:LTV. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#methodology-non-contractual-continuous-common-case`

## Anti-Patterns

- Wrong quadrant (Pareto/NBD on a subscription business, or sBG on e-commerce). — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#anti-patterns`
- Marketing-RFM recency ("days since last purchase" instead of "first-to-last span") - silent severe bias. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#anti-patterns`
- Gamma-Gamma without the independence check. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#anti-patterns`
- Naive ARPU ÷ churn as ground truth - biased low under heterogeneity. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#anti-patterns`
- Un-discounted / infinite-horizon CLV - inflates value and LTV:CAC. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#anti-patterns`
- Fitting Gamma-Gamma on all customers instead of repeat purchasers only. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#anti-patterns`
- Trusting lifetimes for new long-lived projects - it's archived. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#anti-patterns`

## Troubleshooting

- P(alive) implausibly high for everyone → BG/NBD with many one-and-done customers; switch to MBG/NBD. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#troubleshooting`
- Optimizer fails / NaN log-likelihood (Pareto/NBD) → numerical instability in hypergeometric terms; use log-sum-exp-patched BTYD or BG/NBD. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#troubleshooting`
- Gamma-Gamma returns absurd spend → filter to frequency > 0; use average repeat value, not total. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#troubleshooting`
- Holdout over-predicted → calibration window caught a promo spike; re-split or model seasonality outside BTYD. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#troubleshooting`
- CLV explodes → infinite horizon or zero discount rate; cap horizon, set continuously-compounded rate. — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#troubleshooting`

## References

- Schmittlein, Morrison & Colombo, Management Science 33(1):1–24 (1987) - https://pubsonline.informs.org/doi/10.1287/mnsc.33.1.1 — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- Fader, Hardie & Lee, BG/NBD, Marketing Science 24(2):275–284 (2005) - http://brucehardie.com/papers/018/fader_et_al_mksc_05.pdf — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- Fader, Hardie & Lee, RFM and CLV / Gamma-Gamma + DERT, JMR 42(4):415–430 (2005) - https://www.brucehardie.com/papers/rfm_clv_2005-02-16.pdf — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- Fader & Hardie, Gamma-Gamma note 025 - https://www.brucehardie.com/notes/025/gamma_gamma.pdf — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- Fader & Hardie, sBG / "How to Project Customer Retention", J. Interactive Marketing 21(1):76–90 (2007) — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- Fader & Hardie, "Customer-Base Valuation in a Contractual Setting", Marketing Science 29(1):85–93 (2010) - http://brucehardie.com/papers/022/fader_hardie_mksc_10.pdf — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- Fader, Hardie & Shang, BG/BB, Marketing Science 29(6):1086–1108 (2010) - http://www.brucehardie.com/papers/020/fader_et_al_mksc_10.pdf — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- Batislam, Denizel & Filiztekin, MBG/NBD, IJRM 24(3) (2007) — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- Fader & Hardie, "What's Wrong With This CLV Formula?" note 033 - http://www.brucehardie.com/notes/033/what_is_wrong_with_this_CLV_formula.pdf — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- PyMC-Marketing CLV docs (v0.15.x, 2024–2025) - https://www.pymc-marketing.io/en/stable/notebooks/clv/clv_quickstart.html — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- CLVTools (R) - https://www.clvtools.com/ — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- lifetimes (Python, archived) - https://github.com/CamDavidsonPilon/lifetimes — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`
- Phoenix Strategy Group, LTV:CAC SaaS benchmarks - https://www.phoenixstrategy.group/blog/ltvcac-ratio-saas-benchmarks-and-insights — source: `https://llms-explorer.com/sources/mdb-context-hub/da-23-customer-lifetime-value/#references`

## Project ideas

- Fit a BG/NBD frequency model plus a Gamma-Gamma monetary model on non-contractual transaction data to produce a discounted, per-customer predictive CLV instead of a naive ARPU-over-churn estimate. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Build an sBG (shifted-beta-geometric) survival model for a subscription business to project the full retention curve from a few periods of observed renewal data. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Segment a customer base by predicted CLV and P(alive) from a fitted BTYD model, and feed that segmentation into a CAC:LTV ratio to evaluate acquisition-channel health. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Set up a holdout-calibration validation pipeline — fit on a calibration window, evaluate tracking-plot accuracy on a holdout window by RFM decile — before trusting any CLV model's output for a real budgeting decision. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Where this helps

- Any non-contractual, repeat-purchase business such as e-commerce, retail, or donations that needs a rigorous predictive CLV instead of an ARPU-divided-by-churn shortcut that's biased low under customer heterogeneity. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Subscription or contractual businesses where you can observe the cancellation directly, which calls for an sBG/survival approach instead of a Pareto/NBD-style inferred-churn model. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Justifying or capping customer-acquisition spend against a CAC:LTV ratio, where the LTV side needs to be a properly discounted, finite-horizon predictive value to be trustworthy. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Businesses with periodic, opportunity-based transactions such as annual donations or periodic catalog purchases that fit the discrete-time BG/BB model better than either continuous-time model. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Common mistakes

- Fitting a Pareto/NBD or BG/NBD model on a subscription business, or an sBG survival model on non-contractual retail data — picking the wrong contractual/non-contractual quadrant for the business model. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Using the marketing convention of recency, days since last purchase, instead of the BTYD convention of span from first to last purchase — a silent but severe input-definition bias. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Fitting the Gamma-Gamma monetary model without first checking that spend is roughly independent of transaction frequency, an assumption the model relies on. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Reporting an un-discounted or infinite-horizon CLV number, which inflates both the CLV figure itself and any CAC:LTV ratio built on top of it. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Known issues

- The original Pareto/NBD model is numerically awkward, relying on Gaussian hypergeometric functions, which is exactly why the easier-to-fit BG/NBD became the practical workhorse despite giving nearly identical predictions. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- The widely-used lifetimes Python package is archived and no longer actively maintained, making PyMC-Marketing the more future-proof choice for a new project despite a steeper Bayesian learning curve. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Predictive CLV assumes the observed calibration window's behavior projects forward; a calibration window that happens to catch a promotional spike or seasonal anomaly will bias the resulting holdout predictions. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Cohort-based CLV analysis reveals retention and acquisition-quality drift that a single base-wide average masks, but interpreting it correctly requires enough historical cohorts to compare, which a young business may not yet have. — [source](https://llms-explorer.com/tree/customer-lifetime-value-modeling/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
