Customer Churn Radar

Data & Processes • Work sample

Customer Churn Radar |full

Live: churn.bastian-brand.com

What it is

A churn-prediction tool that turns a score into an action. Most churn models hand you a black-box probability; the value is in the why and the so-what. This one trains on historical customers, scores the whole book, and produces this week’s call list — ranked not by raw risk but by revenue at risk (risk × MRR), because that is where a retention call actually pays off. For any customer, it explains why they’re at risk, driver by driver.

Runs on sample data for a fictional B2B-SaaS company (no real client).

How I built it

A gradient-boosting classifier (scikit-learn) is trained on 70% of customers and evaluated on a held-out 30% — the reported ROC-AUC is the honest test score, not an in-sample number. Every prediction is explained with SHAP: exact, additive contributions to the model’s log-odds, so each “why” is auditable rather than a heuristic. That’s the difference between “this customer scores 0.87” and “call them — they’re month-to-month, their usage is falling, and they’ve filed nine tickets this quarter.” A cumulative-gains view shows how targeting the riskiest first concentrates the retention effort.

Highlights

  • Ranks by revenue at risk, not raw probability — the metric a Head of CS optimises
  • SHAP per-customer explanations: auditable reasons, not a black box
  • Honest evaluation (held-out ROC-AUC, cumulative-gains curve)

Stack

Python · scikit-learn · SHAP · Streamlit · Plotly