Hierarchical Bayesian Models for Customer Lifetime Value Across Cohorts
A marketing analytics team allocating next quarter's acquisition and retention budget across customer cohorts faces a modeling choice first: fit one customer lifetime value (CLV) model per cohort, fit a single global model, or let cohorts partially share information with each other. The choice matters most for small or newly acquired cohorts, where the wrong model turns sampling noise into a budget decision.
Why cohort-by-cohort models break down
Probabilistic transaction models such as BG/NBD (Beta-Geometric / Negative Binomial Distribution) estimate purchase frequency and customer dropout from transaction history; BG/NBD alone has no monetary component, so a full CLV figure requires pairing it with a spend model such as gamma-gamma and a discount rate. A common workaround for seasonal or cohort-level differences is to fit one BG/NBD model per acquisition month.
This unpooled approach carries three costs:
- Model proliferation. A company running in 10 markets with two years of monthly cohorts needs 240 separate models.
- Cold start. A newly acquired cohort has too little transaction history to produce a stable estimate on its own.
- Arbitrary boundaries. Treating a customer acquired May 31 as fundamentally different from one acquired June 1 is rarely justified by the underlying behavior.
A single global model avoids all three problems, but it erases real differences between cohorts: a new, high-intent cohort gets the same parameters as an old, lapsed one.
Partial pooling: the middle path
A hierarchical Bayesian model treats each cohort's BG/NBD parameters as draws from a shared population-level distribution, rather than fitting each cohort in isolation or forcing every cohort to share one set of parameters. This partial pooling lets small cohorts borrow statistical strength from the population while keeping their own signal.
The worked comparison behind this technique comes from Fader, Hardie, and Lee's original BG/NBD formulation, estimated by maximum likelihood over gamma and beta heterogeneity distributions (Marketing Science), and Abe's hierarchical Bayes extension of the related Pareto/NBD model, with customer-specific parameters drawn from a multivariate lognormal population distribution (Marketing Science). Both use the CDNOW dataset, transaction records from an online CD retailer, as the standard benchmark for this class of model.
What the CDNOW example shows
The CDNOW customers were split into four acquisition-cohort groups of uneven size: 1065, 815, 353, and 124 customers. The fourth group is a realistic stand-in for a small or newly acquired cohort.
Fitting an independent BG/NBD model to each group produced four latent parameters, r, α (alpha), a, and b, governing purchase rate and dropout probability. For the two smallest groups, the a and b estimates showed high volatility and wide credible intervals: exactly the instability that makes an unpooled model risky to act on.
Refitting the same four groups under a hierarchical structure, where group-level parameters are drawn from a shared global prior, narrowed the credible intervals for the small groups substantially, while their point estimates shrank partway toward the population mean, with the smallest groups shrinking the most and the largest groups barely moving. This "shrinkage" toward the population estimate is what a hierarchical model buys.
Comparing the three approaches
| Approach | What it assumes | Failure mode |
|---|---|---|
| Fully pooled (one global model) | All cohorts share identical parameters | Erases real cohort differences |
| Unpooled (one model per cohort) | Cohorts are fully independent | Unstable estimates for small or new cohorts |
| Hierarchical (partial pooling) | Cohort parameters are draws from a shared population distribution | Over-shrinkage: if a small cohort is genuinely extreme, its estimate is biased toward the population mean and its narrowed interval can undercover |
Where this reasoning applies beyond CLV
The same logic applies whenever a team has to trust a per-segment estimate built on a small sample. Subconscious's causal experiments already report effects by segment; when a segment's sample is small, the defensible move is to pool the segment-level estimate toward the population-level effect rather than treat a noisy per-segment number as ground truth for a budget decision. See how segment-level results are structured in current research.
Limitations
This is a modeling technique for observed transaction histories, not a description of a Subconscious product feature. No Subconscious benchmark or customer case exists for hierarchical BG/NBD specifically. The technique also assumes cohort membership is a meaningful grouping variable; if cohorts are defined arbitrarily, partial pooling narrows the noise but cannot fix a poorly chosen grouping.
Extending this approach with time-varying global parameters for seasonality, covariates for acquisition channel or demographics, or additional levels of hierarchy for multi-market data is straightforward, but it adds inference complexity that should be weighed against the size of the decision it is informing.
Next step
Teams evaluating how segment-level estimates hold up under partial pooling can review how Subconscious structures segment-level causal results in case studies or read more on how we work.