Research & Evidence

Search for a method

Search titles, questions, territories and MSC identifiers.

    ← All methods
    METHOD DOSSIERMSC-P-028Customer scienceVerified scientific dossier

    How do you estimate CLV with BG/NBD and Gamma-Gamma?

    BG/NBD predicts future transactions in a noncontractual setting; Gamma-Gamma can model their mean value under additional assumptions. CLV then discounts the expected flows.

    Scientific editorial team: Marketing Science Center

    Direct answer

    Rank customers by expected future value with temporal validation.

    BG/NBD predicts future transactions in a noncontractual setting; Gamma-Gamma can model their mean value under additional assumptions. CLV then discounts the expected flows.

    Fader, Hardie & Lee, RFM and CLV, 2005Fader, Hardie & Lee, BG/NBD, 2005

    01

    Operational summary

    Scientific question and scope

    How do you estimate CLV with BG/NBD and Gamma-Gamma?

    Supported

    Rank customers by expected future value with temporal validation.

    Forbidden

    Interpret predicted CLV as the causal gain from a retention action.

    02

    Three reading levels

    1. 01

      Decision-maker — Connect the result to a declared decision, useful threshold and error cost.

    2. 02

      Practitioner — Fix population, unit, horizon, available variables and analysis rule before calculation.

    3. 03

      Analyst — Reproduce the calculation, quantify uncertainty and document diagnostics, failures and sensitivities.

    03

    Concrete marketing situation

    BG/NBD predicts future transactions in a noncontractual setting; Gamma-Gamma can model their mean value under additional assumptions. CLV then discounts the expected flows.

    04

    Scientific question and scope

    How do you estimate CLV with BG/NBD and Gamma-Gamma?

    Expected discounted future contribution under a declared BG/NBD transaction model and a separately validated value model

    Required data

    Customer × calibration window × holdout or forecast horizon

    Population, unit of analysis, origin date and horizon must be declared in the deliverable. Without them, the estimand silently changes.

    05

    Why a simple analysis can fail

    • Interpret predicted CLV as the causal gain from a retention action.
    • Noncontractual setting
    • BG/NBD calibration and holdout
    • Frequency-value dependence test

    06

    Method intuition

    The method does not automatically turn an association into evidence. It links a declared question to an estimand, specification, compatible data and a bounded interpretation rule.

    Expected discounted future contribution under a declared BG/NBD transaction model and a separately validated value model

    07

    Required data

    Scientific symbol dictionary

    predicted_transactions_t
    Expected transaction count in future period t from the declared transaction model. Unit: transaction · Type: nonnegative number · Role: input
    mean_value
    Calibrated mean monetary value per transaction under the declared monetary model. Unit: euro per transaction · Type: nonnegative number · Role: input
    margin_rate
    Contribution margin share applied consistently to transaction value. Unit: proportion · Type: number in [0, 1] · Role: input
    discount_rate
    Per-period discount rate aligned with the forecast period. Unit: rate per period · Type: number greater than -1 · Role: input
    t
    Future period index measured from the declared forecast origin. Unit: period · Type: positive integer · Role: index
    CLV
    Expected discounted contribution over the declared finite horizon, conditional on both calibrated models and the aggregation assumptions. Unit: euro · Type: number · Role: output

    Exact sealed engine inputs

    predicted_transactions_period_1
    Value: 0.8 · Unit: transaction · Type: number · Data status: synthetic
    predicted_transactions_period_2
    Value: 0.7 · Unit: transaction · Type: number · Data status: synthetic
    predicted_transactions_period_3
    Value: 0.6 · Unit: transaction · Type: number · Data status: synthetic
    mean_transaction_value_eur
    Value: 60 · Unit: EUR_per_transaction · Type: number · Data status: synthetic
    contribution_margin_rate
    Value: 0.40 · Unit: proportion · Type: number · Data status: parameter
    discount_rate_per_period
    Value: 0.02 · Unit: rate per period · Type: number · Data status: parameter
    frequency_value_correlation
    Value: 0.06 · Unit: dimensionless · Type: number · Data status: synthetic
    independence_diagnostic_completed
    Value: 1 · Unit: binary · Type: integer · Data status: parameter
    monetary_model_calibrated
    Value: 1 · Unit: binary · Type: integer · Data status: parameter

    08

    Formal model

    Formal model

    Gate: independence_diagnostic_completed = 1 and monetary_model_calibrated = 1; frequency_value_correlation is reported but does not prove independence. CLV = discounted_sum(predicted_transactions_t × mean_transaction_value_eur × contribution_margin_rate / (1 + discount_rate_per_period)^t)

    Evidence claims: MSC-P028-C01 · MSC-P028-C02 · MSC-P028-C03 · MSC-P028-C04 · MSC-P028-C05 · MSC-P028-C06

    Scientific question and scope

    Expected discounted future contribution under a declared BG/NBD transaction model and a separately validated value model

    09

    Declared calculation

    1. 01

      Require a completed dependence diagnostic and monetary-model calibration before multiplying frequency and value components.

    2. 02

      Convert mean transaction value to contribution, multiply by each expected transaction count and discount every period separately.

    3. 03

      Sum the discounted flows only after both gates pass and state that low sample correlation is not proof of independence.

    10

    Numerical example or application case

    Worked example — synthetic data or declared parameters; no real observations

    Sealed inputs

    • predicted_transactions_period_1=0.8 [transaction]
    • predicted_transactions_period_2=0.7 [transaction]
    • predicted_transactions_period_3=0.6 [transaction]
    • mean_transaction_value_eur=60 [EUR_per_transaction]
    • contribution_margin_rate=0.40 [proportion]
    • discount_rate_per_period=0.02 [rate per period]
    • frequency_value_correlation=0.06 [dimensionless]
    • independence_diagnostic_completed=1 [binary]
    • monetary_model_calibrated=1 [binary]

    Reproducible results

    • mean_contribution=€24
    • discounted_flows=[18.823529;16.147636;13.569442]
    • expected_discounted_CLV=€48.540607

    Verified dossier: claims are linked to passage-level sources, the Python/R calculation is reproduced, limits are explicit, and independent scientific review is complete.

    11

    Validity assumptions

    • Were transaction frequency and monetary value models calibrated on an appropriate holdout?
    • Is the dependence between transaction count and value assessed substantively rather than inferred from one small correlation?
    • Are horizon, margin and discount period aligned with the decision?

    12

    Diagnostics and uncertainty

    Diagnostics and uncertainty

    Noncontractual setting · BG/NBD calibration and holdout · Frequency-value dependence test · Gamma-Gamma eligibility · Margin and discount period conventions

    Bounded diagnostic

    Aggregation is allowed only after declared independence diagnostics and monetary-model calibration; a low sample correlation is not proof of independence.

    Explicit uncertainty contract · not_estimable_from_sealed_inputs

    Method: Explicit non-estimability assessment against the sealed input schema.

    Target: Uncertainty of finite-horizon discounted customer value.

    Engine evidence: diagnostic=aggregation_only_after_declared_independence_diagnostic_and_monetary_calibration_low_correlation_is_not_proof

    Interpretation: Point forecasts and binary calibration gates do not provide a predictive distribution; low correlation is not proof of independence.

    Stop when

    Interpret predicted CLV as the causal gain from a retention action.

    13

    Result interpretation

    • Rank customers by expected future value with temporal validation.
    • The result is conditional on the declared population, horizon, specification and diagnostics. It must not be extended to another decision without new justification.

    14

    Supported and forbidden conclusions

    Supported

    Rank customers by expected future value with temporal validation.

    Forbidden

    Interpret predicted CLV as the causal gain from a retention action.

    15

    Possible marketing decision

    1. 01

      Rank customers by expected future value with temporal validation.

    2. 02

      The result is conditional on the declared population, horizon, specification and diagnostics. It must not be extended to another decision without new justification.

    16

    When to use — when to stop

    Use when

    Rank customers by expected future value with temporal validation.

    Customer × calibration window × holdout or forecast horizon

    Stop when

    Interpret predicted CLV as the causal gain from a retention action.

    Methodological alternatives

    • Fit a joint frequency-value model when dependence is material.
    • Use nonparametric customer-level holdout value when model assumptions are weak.
    • Report a finite-horizon value distribution rather than a single point estimate when uncertainty is decision-relevant.

    17

    Reproducibility contract

    Python and R are the executable references. SPSS and SAS remain secondary syntaxes until checked on the same data, specification and diagnostics.

    The engine selects only this page’s explicit slice and branch. Its hash, outputs, and diagnostics remain sealed in the atomic dossier; no generic fallback branch is allowed.

    Slice fingerprint: a2f01105b3c5d241542a4a19ae1afc63bc39cddd8c5ac4fb926e84d214895d42

    Available asset · MSC-004

    Synthetic noncontractual CLV

    Formal model

    Gate: independence_diagnostic_completed = 1 and monetary_model_calibrated = 1; frequency_value_correlation is reported but does not prove independence. CLV = discounted_sum(predicted_transactions_t × mean_transaction_value_eur × contribution_margin_rate / (1 + discount_rate_per_period)^t)

    Verified dossier: claims are linked to passage-level sources, the Python/R calculation is reproduced, limits are explicit, and independent scientific review is complete.

    18

    Expected final deliverable

    1. 01

      How do you estimate CLV with BG/NBD and Gamma-Gamma? — Customer × calibration window × holdout or forecast horizon

    2. 02

      predicted_transactions_t · mean_value · margin_rate · discount_rate · t · CLV

    3. 03

      Gate: independence_diagnostic_completed = 1 and monetary_model_calibrated = 1; frequency_value_correlation is reported but does not prove independence. CLV = discounted_sum(predicted_transactions_t × mean_transaction_value_eur × contribution_margin_rate / (1 + discount_rate_per_period)^t)

    4. 04

      Noncontractual setting · BG/NBD calibration and holdout · Frequency-value dependence test · Gamma-Gamma eligibility · Margin and discount period conventions

    5. 05

      Rank customers by expected future value with temporal validation. / Interpret predicted CLV as the causal gain from a retention action.

    19

    Scientific sources and evidence status

    Verified dossier: claims are linked to passage-level sources, the Python/R calculation is reproduced, limits are explicit, and independent scientific review is complete.

    1. MSC-P028-C01 — The monetary model assumes stable individual transaction value.
    2. MSC-P028-C02 — The monetary-value and transaction processes require an independence assumption.
    3. MSC-P028-C03 — Model components are checked with holdout tests.
    4. MSC-P028-C04 — CLV is expressed as a discounted expected value for a defined customer base.
    5. MSC-P028-C05 — BG/NBD is the declared repeat-purchase model.
    6. MSC-P028-C06 — The cited comparison is empirical and bounded to the studied purchasing environments.
    1. Fader, Hardie & Lee, RFM and CLV, 2005
    2. Fader, Hardie & Lee, BG/NBD, 2005

    Dataset · Tool

    Dataset · MSC-004Synthetic noncontractual CLV→

    Method connections

    Parent territoryCustomer and choice science: behavior, value and heterogeneityCompare withHow do you analyze retention with a survival model?Compare withWhich customers have the highest probability of churn?

    Read next

    MSC-H-004Customer and choice science: behavior, value and heterogeneity→MSC-P-029Which customers have the highest probability of churn?→MSC-P-030How do you analyze retention with a survival model?→MSC-P-003How should uncertainty in a marketing result be expressed?→