Skip to content

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:

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

Three CLV modeling approaches compared: shrinkage pulls a small cohort's noisy estimate toward the global mean, unlike a fully pooled or fully unpooled model.
Partial pooling narrows a small cohort's credible interval by borrowing strength from the population, without collapsing it into one global estimate.
ApproachWhat it assumesFailure mode
Fully pooled (one global model)All cohorts share identical parametersErases real cohort differences
Unpooled (one model per cohort)Cohorts are fully independentUnstable estimates for small or new cohorts
Hierarchical (partial pooling)Cohort parameters are draws from a shared population distributionOver-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.