Example · churn · public data
Save revenue before it leaves
Walk the build: see the data, mark the target, train a model, catch the miss pattern, rebalance, train again, then put both screeners to work.
01 · Data
Start with customer history you can see
Public telecom records from a Kaggle churn benchmark. One row per customer: tenure, services, billing, and outcomes. Same shape as a CRM or billing export.
| Contract | Internet | Tenure | Monthly | Churn |
|---|---|---|---|---|
| One year | Fiber optic | 9 mo | $65.6 | No |
| Month-to-month | Fiber optic | 13 mo | $98 | Yes |
| Month-to-month | Fiber optic | 3 mo | $83.9 | Yes |
| Two year | DSL | 58 mo | $78.35 | No |
| Month-to-month | Fiber optic | 18 mo | $78.2 | No |
02 · Target
Highlight what we want to protect
The Churn column is the label: the outcome we already know from the past. That is the revenue signal. Everything else is context the model can use before a customer is gone.
Target label
Churn = Yes / No
Predict Yes early enough that retention can still save the account, and the revenue attached to it.

03 · First model
Train a baseline model on the natural mix
EasyDeploy searches pipelines on the raw training data and keeps a strong performer. Fast to get a first screener with a real pipeline, report, and holdout scores.
04 · Errors
Notice what the baseline misses
Accuracy can look fine while the model still misses nearly half of real churners. Those misses are revenue that was about to be lost and never made the save list. The training mix was skewed toward customers who stayed, so the model learned the majority class too well.
Missed churners on holdout
48%
Almost 1 in 2 at-risk customers never reached retention.
Training class mix
~2.8 stayed : 1 churned
Rare outcomes get under-learned unless you rebalance training.
05 · Rebalance
Balance classes, then train again
Rebalance training so churn and retained customers are equally represented. Keep the holdout in the real-world mix so the score stays honest. EasyDeploy runs a second search and returns another production-ready model quickly.

Before: 4,139 stayed vs 1,495 churned. After balancing training: 1:1. Holdout stays unbalanced on purpose.
Missed churners now
17%
Same untouched holdout. Far more at-risk revenue makes the save list.
06 · Use both
Match the screener to the save motion
Both models are useful. Pair each ranked list with a different technique so spend and effort track how sure you are that revenue is about to leave.
Precision lane · baseline
High-certainty saves
Misses more churners (48%), but when it flags an account, confidence is higher. Reserve this list for promotions, discounts, or other costly interventions when you are very sure revenue is about to be lost.
Best when a false alarm wastes real budget.
Coverage lane · rebalanced
Wider early outreach
Catches more at-risk revenue (17% misses). Use this broader list for light check-ins: a status call, a success touchpoint, or a simple how-are-things outreach before anyone needs a heavy save offer.
Best when an extra check-in is cheap compared with losing the account.
Try it on your revenue at risk
Bring a labeled CSV. Train a baseline, catch the miss pattern, rebalance, train again, then route both screeners so your team can save revenue before it is lost.
