Research & Evidence

Search for a method

Search titles, questions, territories and MSC identifiers.

41 results
  1. MSC-P-001How do you turn a marketing claim into a testable question?Decision Science↗
  2. MSC-P-002Correlation or causality: what can an analysis actually support?Marketing Measurement↗
  3. MSC-P-003How should uncertainty in a marketing result be expressed?Decision Science↗
  4. MSC-P-004Statistical significance or effect size: which result should be interpreted?Decision Science↗
  5. MSC-P-005How do you measure a marketing construct that is not directly observable?Market Research↗
  6. MSC-P-006How do you design and validate a measurement scale?Market Research↗
  7. MSC-P-007Alpha or omega: how should scale reliability be assessed?Market Research↗
  8. MSC-P-009PCA, EFA or CFA: which method should you choose?Market Research↗
  9. MSC-P-010When should you run a marketing experiment?Marketing Measurement↗
  10. MSC-P-011How do you design an A/B test that actually estimates an effect?Marketing Measurement↗
  11. MSC-P-012How many observations does an experiment need?Decision Science↗
  12. MSC-P-013How do you measure campaign incrementality with a control group?Marketing Measurement↗
  13. MSC-P-017How do you detect selection, contamination and attrition in an experiment?Marketing Measurement↗
  14. MSC-P-018Predictive or causal regression: what are you trying to estimate?Marketing Models↗
  15. MSC-P-019How do you diagnose a marketing regression before interpreting it?Marketing Models↗
  16. MSC-P-022How do you estimate price elasticity and its uncertainty?Pricing Science↗
  17. MSC-P-026Logit vs Probit: how do you choose for purchase probability?Customer Science↗
  18. MSC-P-029Which customers have the highest probability of churn?Customer Science↗
  19. MSC-P-027TAM, UTAUT or UTAUT2: which framework should be used to study technology acceptance?Market Research↗
  20. MSC-H-001Measurement and causality: how can a marketing effect be established?Marketing Measurement↗
  21. MSC-H-002Marketing response models: shape, delay and saturationMarketing Models↗
  22. MSC-H-003Pricing science: connecting price, demand and contributionPricing Science↗
  23. MSC-H-004Customer and choice science: behavior, value and heterogeneityCustomer Science↗
  24. MSC-H-005Measurement science: building valid indicatorsMarket Research↗
  25. MSC-H-006Statistical decision methods: choose, quantify, validateDecision Science↗
  26. MSC-P-008How do you validate a marketing measurement scale?Market Research↗
  27. MSC-P-014How do you design a marketing geo experiment?Marketing Measurement↗
  28. MSC-P-015How do you estimate an effect with difference-in-differences?Marketing Measurement↗
  29. MSC-P-020How do you address price endogeneity?Pricing Science↗
  30. MSC-P-021Fixed or random effects: which panel model should you choose?Marketing Models↗
  31. MSC-P-023How do you estimate a demand function?Pricing Science↗
  32. MSC-P-024How do you simulate a price-volume-margin scenario?Pricing Science↗
  33. MSC-P-028How do you estimate CLV with BG/NBD and Gamma-Gamma?Customer Science↗
  34. MSC-P-030How do you analyze retention with a survival model?Customer Science↗
  35. MSC-P-043What is a subscriber worth with only six months of retention data?Customer Science↗
  36. MSC-P-031How do you build a useful customer segmentation?Customer Science↗
  37. MSC-P-032How do you test segmentation stability?Customer Science↗
  38. MSC-P-033How do you validate a marketing forecast?Decision Science↗
  39. MSC-P-034How do you build a Monte Carlo simulation for a marketing decision?Decision Science↗
  40. MSC-P-035How do you model saturation and adstock?Marketing Models↗
  41. MSC-P-039Which statistical test should you choose?Decision Science↗
← All methods
METHOD DOSSIERMSC-P-029Customer scienceVerified scientific dossier

Which customers have the highest probability of churn?

Churn is predicted for a fixed decision date and horizon. Temporal separation, leakage prevention and calibration matter as much as discrimination.

Scientific editorial team: Marketing Science Center

Direct answer

Prioritize human review using calibrated probabilistic risk.

Churn is predicted for a fixed decision date and horizon. Temporal separation, leakage prevention and calibration matter as much as discrimination.

scikit-learn average_precision_scoreDimitriadis et al., 2023

01

Operational summary

Scientific question and scope

Which customers have the highest probability of churn?

Supported

Prioritize human review using calibrated probabilistic risk.

Forbidden

Claim which action will reduce churn from the predictive model alone.

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

Churn is predicted for a fixed decision date and horizon. Temporal separation, leakage prevention and calibration matter as much as discrimination.

04

Scientific question and scope

Which customers have the highest probability of churn?

P(churn within H | information available at t)

Required data

customer at decision date

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

  • Claim which action will reduce churn from the predictive model alone.
  • Was every feature available at the declared prediction time and was the holdout later in time?
  • Are tied prediction scores grouped consistently when average precision is computed?
  • Are calibration, discrimination and decision utility assessed separately on a sufficiently large deployment-representative sample?

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.

P(churn within H | information available at t)

07

Required data

Scientific symbol dictionary

p_i
Predicted churn probability for holdout customer i using only information available at the decision date. Unit: probability · Type: number strictly between 0 and 1 · Role: input
y_i
Observed binary churn outcome by the fixed horizon for holdout customer i. Unit: binary · Type: 0 or 1 · Role: input
Brier
Mean squared probability error on the temporal holdout. Unit: squared probability · Type: nonnegative number · Role: output
log_loss
Mean negative Bernoulli log likelihood on the temporal holdout. Unit: nat per observation · Type: nonnegative number · Role: output
calibration_gap
Mean predicted probability minus observed event rate; negative means average underprediction under this sign convention. Unit: probability · Type: number in [-1, 1] · Role: output
AP_threshold
Non-interpolated average precision computed over unique prediction thresholds with tied scores grouped; not generic PR-AUC. Unit: proportion · Type: number in [0, 1] · Role: output

Exact sealed engine inputs

predicted_risk_1
Value: 0.05 · Unit: probability · Type: number · Data status: synthetic
predicted_risk_2
Value: 0.10 · Unit: probability · Type: number · Data status: synthetic
predicted_risk_3
Value: 0.20 · Unit: probability · Type: number · Data status: synthetic
predicted_risk_4
Value: 0.30 · Unit: probability · Type: number · Data status: synthetic
predicted_risk_5
Value: 0.45 · Unit: probability · Type: number · Data status: synthetic
predicted_risk_6
Value: 0.60 · Unit: probability · Type: number · Data status: synthetic
predicted_risk_7
Value: 0.75 · Unit: probability · Type: number · Data status: synthetic
predicted_risk_8
Value: 0.90 · Unit: probability · Type: number · Data status: synthetic
outcome_1
Value: 0 · Unit: binary · Type: integer · Data status: synthetic
outcome_2
Value: 0 · Unit: binary · Type: integer · Data status: synthetic
outcome_3
Value: 0 · Unit: binary · Type: integer · Data status: synthetic
outcome_4
Value: 1 · Unit: binary · Type: integer · Data status: synthetic
outcome_5
Value: 0 · Unit: binary · Type: integer · Data status: synthetic
outcome_6
Value: 1 · Unit: binary · Type: integer · Data status: synthetic
outcome_7
Value: 1 · Unit: binary · Type: integer · Data status: synthetic
outcome_8
Value: 1 · Unit: binary · Type: integer · Data status: synthetic
temporal_holdout_declared
Value: 1 · Unit: binary · Type: integer · Data status: parameter

08

Formal model

Formal model

temporal_holdout_declared = 1; Brier = mean((p_i−y_i)^2); log_loss = −mean(y_i×log(p_i)+(1−y_i)×log(1−p_i)); calibration_gap = mean(p_i)−mean(y_i); AP_threshold = grouped_average_precision(p_i, y_i)

Evidence claims: MSC-P029-C01 · MSC-P029-C02 · MSC-P029-C03 · MSC-P029-C04 · MSC-P029-C05 · MSC-P029-C06 · MSC-P029-C07 · MSC-P029-C08 · MSC-P029-C09 · MSC-P029-C10

Scientific question and scope

P(churn within H | information available at t)

09

Declared calculation

  1. 01

    Freeze the temporal holdout and validate paired probabilities/outcomes with both outcome classes represented.

  2. 02

    Compute Brier score, log loss, threshold-grouped average precision and the predicted-minus-observed calibration gap.

  3. 03

    Report discrimination and calibration separately and label the tiny synthetic holdout as insufficient for deployment or causal validation.

10

Numerical example or application case

Synthetic illustration — teaching values, not observed — synthetic data or declared parameters; no real observations

Sealed inputs

  • predicted_risk_1=0.05 [probability]
  • predicted_risk_2=0.10 [probability]
  • predicted_risk_3=0.20 [probability]
  • predicted_risk_4=0.30 [probability]
  • predicted_risk_5=0.45 [probability]
  • predicted_risk_6=0.60 [probability]
  • predicted_risk_7=0.75 [probability]
  • predicted_risk_8=0.90 [probability]
  • outcome_1=0 [binary]
  • outcome_2=0 [binary]
  • outcome_3=0 [binary]
  • outcome_4=1 [binary]
  • outcome_5=0 [binary]
  • outcome_6=1 [binary]
  • outcome_7=1 [binary]
  • outcome_8=1 [binary]
  • temporal_holdout_declared=1 [binary]

Reproducible results

  • Brier=0.122188
  • log_loss=0.385684
  • threshold_grouped_average_precision=0.95
  • mean_predicted_minus_observed=-0.08125

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

  • Was every feature available at the declared prediction time and was the holdout later in time?
  • Are tied prediction scores grouped consistently when average precision is computed?
  • Are calibration, discrimination and decision utility assessed separately on a sufficiently large deployment-representative sample?

12

Diagnostics and uncertainty

Diagnostics and uncertainty

Was every feature available at the declared prediction time and was the holdout later in time? · Are tied prediction scores grouped consistently when average precision is computed? · Are calibration, discrimination and decision utility assessed separately on a sufficiently large deployment-representative sample?

Bounded diagnostic

The sign convention is predicted minus observed. Average precision is threshold-grouped and is not generic PR-AUC. Tiny synthetic illustration only.

Explicit uncertainty contract · not_estimable_from_sealed_inputs

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

Target: Sampling uncertainty of holdout calibration and discrimination metrics.

Engine evidence: diagnostic=average_precision_is_threshold_grouped_not_generic_pr_auc_tiny_synthetic_holdout_not_deployment_validation_or_causal_effect

Interpretation: Eight synthetic holdout observations are insufficient for defensible confidence intervals or subgroup uncertainty.

Stop when

Claim which action will reduce churn from the predictive model alone.

13

Result interpretation

  • Prioritize human review using calibrated probabilistic risk.
  • 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

Prioritize human review using calibrated probabilistic risk.

Forbidden

Claim which action will reduce churn from the predictive model alone.

15

Possible marketing decision

  1. 01

    Prioritize human review using calibrated probabilistic risk.

  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

Prioritize human review using calibrated probabilistic risk.

customer at decision date

Stop when

Claim which action will reduce churn from the predictive model alone.

Methodological alternatives

  • Use calibration curves with uncertainty by risk range and subgroup.
  • Use ROC analysis only for discrimination questions, not calibration.
  • Use decision-curve or cost-sensitive threshold analysis when action utility is the target.

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: 05348452a7d6e9c0921fab5459274f7d09e9ba76b92659dd05112935133f85f7

Formal model

temporal_holdout_declared = 1; Brier = mean((p_i−y_i)^2); log_loss = −mean(y_i×log(p_i)+(1−y_i)×log(1−p_i)); calibration_gap = mean(p_i)−mean(y_i); AP_threshold = grouped_average_precision(p_i, y_i)

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

    Which customers have the highest probability of churn? — customer at decision date

  2. 02

    p_i · y_i · Brier · log_loss · calibration_gap · AP_threshold

  3. 03

    temporal_holdout_declared = 1; Brier = mean((p_i−y_i)^2); log_loss = −mean(y_i×log(p_i)+(1−y_i)×log(1−p_i)); calibration_gap = mean(p_i)−mean(y_i); AP_threshold = grouped_average_precision(p_i, y_i)

  4. 04

    Was every feature available at the declared prediction time and was the holdout later in time? · Are tied prediction scores grouped consistently when average precision is computed? · Are calibration, discrimination and decision utility assessed separately on a sufficiently large deployment-representative sample?

  5. 05

    Prioritize human review using calibrated probabilistic risk. / Claim which action will reduce churn from the predictive model alone.

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-P029-C01 — Probabilistic scores should be evaluated on a declared test set.
  2. MSC-P029-C02 — Calibration concerns observed event frequency conditional on forecast probability.
  3. MSC-P029-C03 — ROC-based discrimination does not determine probability calibration.
  4. MSC-P029-C04 — Calibration and discrimination require distinct diagnostics.
  5. MSC-P029-C05 — Brier and logarithmic scores are proper probability-scoring rules.
  6. MSC-P029-C06 — Predictive and causal objectives alter the full modelling process, not just the final metric.
  7. MSC-P029-C07 — Predictive accuracy should be evaluated on observations excluded from model fitting.
  8. MSC-P029-C08 — The reported AP uses threshold-specific precision weighted by recall increments.
  9. MSC-P029-C09 — The executable convention is non-interpolated.
  10. MSC-P029-C10 — Average precision is not labeled as generic trapezoidal PR-AUC.
  1. scikit-learn average_precision_score
  2. Dimitriadis et al., 2023
  3. Shmueli, 2010

Method connections

Parent territoryCustomer and choice science: behavior, value and heterogeneity

Read next

MSC-P-026Logit vs Probit: how do you choose for purchase probability?→MSC-P-018Predictive or causal regression: what are you trying to estimate?→MSC-P-019How do you diagnose a marketing regression before interpreting it?→