
Retention scored against the renewal date, not the month
Cancellations cluster in the first 90 days and in the week around a renewal or a promotional price step, so the model runs on subscriber-day rows anchored to days-to-renewal. Billing state from Piano, Zuora or Omeda joins behavioural RFV from Snowplow or Deep.BI, with newsletter click rate rather than open rate — Apple Mail Privacy Protection made opens useless as a feature in 2021.
- A separate uplift model on randomised offer exposures, so saves reach persuadables only
- A permanent 5–10% untreated holdout; the quarterly number is incremental revenue, not AUC
- Involuntary churn split out first — that part is a payments project, not a modelling one




