TLDR: You do not need machine learning, a data science hire, or clean event pipelines to predict churn. For almost every SaaS under ~10,000 accounts, a weighted rule-based score beats an ML model in practice, because it is interpretable and your CSMs can act on it.
- Four signals do most of the work: usage trend vs the account's own baseline, days since a key user last logged in, support sentiment, and contract changes.
- Turn them into one 0-100 score with fixed weights, then set Green / Yellow / Red thresholds.
- Expect 60-75% precision once tuned. Even a rough first version beats CSM gut feel by 2-3x.
- ML only wins once you have 10,000+ accounts, clean events, and a year of churn history to train on.
The best "churn prediction" I've seen at a Series A wasn't a model. It was a nightly SQL query with four weighted signals and a Slack alert. It caught 70% of churners 45 days out. The team that replaced it with an ML model six months later got worse results, because nobody could explain the flags.
Do you actually need ML to predict churn?
Almost certainly not yet. The marketing for AI churn prediction is louder than the results at the scale most companies operate at. Machine learning needs three things to earn its keep: a lot of accounts, clean historical event data, and enough past churn examples to train on. Most SaaS teams have none of the three.
What you actually have is a handful of obvious signals that predict churn perfectly well on their own. The job is to combine them into one number, set thresholds, and route the risky accounts to a human. That is rule-based scoring, and it is the practical version of churn prediction for the vast majority of companies.
Before anything else, work out whether the effort is even worth it for your account base. Move the sliders to a representative account and watch the score.
Rule-based churn risk score
No model. Four weighted signals turned into one 0-100 risk score, the same way you would build it in SQL.
Where these numbers come from: the score is a weighted sum of four signals, each normalized to a 0-to-1 risk value and then multiplied by a fixed weight: usage trend 45%, login recency 25%, support sentiment 15%, contract change 15%. Usage is measured against the account's own 30-day baseline, not an absolute threshold, because a small customer using the product lightly can be perfectly healthy while a big customer who halved their usage is on fire. The thresholds (Green under 34, Yellow 34-66, Red 67+) are starting points you tune once you see which scores actually preceded churn in your data. Nothing here needs a model. It is arithmetic you can write in a SQL query, which is exactly why a CSM can read the output and know what to do.
What signals predict churn without any model?
You can build a strong score from four inputs. In order of how much they move the needle:
| Signal | Suggested weight | Why it works |
|---|---|---|
| Usage trend vs the account's own baseline | 40-50% | The strongest single predictor. A drop below 70% of an account's normal usage is a hard yellow flag. |
| Days since last login by a key user | 20-25% | Track it by role, not by account. The champion going dark for two weeks matters more than total account activity. |
| Support sentiment (not volume) | 10-15% | One frustrated ticket from the buyer outweighs ten neutral tickets from end users. Modern tools tag sentiment automatically. |
| Contract events (seat cuts, downgrades) | 10-15% | The strongest leading signal at enterprise, where the buyer decision shows up in procurement before it shows up in usage. |
Usage trend and login recency alone get you most of the accuracy. If you only measure two things, measure those two. For the full breakdown of what belongs in a score and what to leave out, see what is a customer health score.
How do you turn signals into a score?
Three steps, no data science required:
- Normalize each signal to 0-1. Usage at 100% of baseline is 0 risk, at 40% it is full risk. Zero days since login is 0 risk, 21+ days is full risk. This puts every signal on the same scale so you can combine them.
- Multiply by a weight and sum. The weights above are a fine starting point. The total is your 0-100 score.
- Set tier thresholds and route. Green accounts get normal treatment, Yellow gets a proactive CSM touch, Red gets an immediate save play. The score exists to trigger action, not to sit on a dashboard.
That is the entire method. You can prototype it in a spreadsheet this afternoon and move it into a nightly SQL job next week.
When does machine learning actually beat rules?
ML earns its place at scale, not before. Here is the honest map of where each approach wins.
The pattern: account count alone does not move you into ML territory. You also need clean, high-volume event data and a year of labeled churn history. A 10,000-account business with messy tracking still does better with rules. Only when scale and data quality line up together does a trained model reliably out-predict a good weighted score. Our take on the model side, when you get there, is in AI churn prediction models.
How accurate is a rule-based churn score?
Two numbers to track:
- Precision: when the score flags an account, how often it actually churns or contracts within 60 days. Best-in-class rule-based scores hit 60-75%. Most teams start at 30-50%, which already beats gut feel by two to three times.
- Recall: of the accounts that churned, how many the score flagged 30+ days in advance. Aim for 70%+.
You improve both by looking back each quarter at which signals actually preceded churn and rebalancing the weights. That tuning loop, not switching to a fancier algorithm, is where the accuracy gains come from at most companies.
An interpretable score at 65% precision beats a black-box model at 70% every time, because your CSMs will actually act on the first one and quietly ignore the second.
What tools do you need to build it?
Less than you would think. By layer:
- Product signals: PostHog (free tier), Amplitude, or Mixpanel for usage and login data. All three have retention and cohort reports you can pull the baseline from.
- Support signals: Zendesk or Intercom, both of which tag ticket sentiment automatically.
- Billing signals: Stripe for downgrades, failed payments, and seat changes.
- Where the score lives: a nightly SQL job or a dbt model if you have a warehouse. If you would rather buy the plumbing, Vitally, Custify, and ChurnZero all ship rule-based health scoring out of the box.
If you are weighing build versus buy on the CS platform side, the best churn prediction software and best CS software for startups roundups break down the options. The full implementation spec is in the health score monitoring experiment.
What are the common mistakes?
- Over-weighting NPS. Survey scores are lagging and sparse. Usage trend predicts churn far better. Use NPS trend as a minor input, never the backbone.
- Using absolute usage instead of trend. A big account dropping from 500 to 200 actions a week is in trouble even though 200 is a big number. Always compare an account to its own baseline.
- Counting email opens. Apple Mail Privacy Protection broke this signal years ago. It is mostly noise now.
- Adding too many signals. Five well-chosen inputs beat twenty noisy ones. Every weak signal you add dilutes the strong ones and makes the score harder to explain.
- Scoring but never acting. A score that does not trigger a CSM reach-out or a save play is expensive decoration. Wire it to an action from day one.
How long does this take to build?
Less than a sprint for a first version. A rough two-signal score in SQL or a spreadsheet is an afternoon of work. Wiring it to a nightly job and a Slack or email alert is another day or two. Getting it to 60%+ precision is the slow part, and it happens over the first two or three quarters as you tune weights against real churn outcomes. The mistake is treating this as a big project. It is a small thing you ship fast and improve continuously, which is one more reason rules beat waiting six months on a model.
One practical note from doing this across teams: start the score as advisory, not automated. For the first month, let CSMs see the score and tell you when it looks wrong. Those corrections are how you find the weight that is off, because a human who knows the account can spot a false flag faster than any backtest. Automating save plays on day one, before the score has earned trust, is how good scoring systems quietly get switched off.
Where to start
Do not build the whole thing at once. Start with your two strongest signals, ship a rough score, and validate it against accounts you already know churned. Then add signals and tune.
- Take the Churn Health Check to see whether prediction is even your weak spot, or whether the leak is upstream in activation or billing.
- Follow the health score monitoring experiment for the full build spec.
- Read what causes customer churn to make sure your signals map to the reasons accounts actually leave.
Prediction is only worth anything if it buys you time to act. Get a rough score live, route the red accounts to a human, and improve it from there. That beats waiting six months for a perfect model that nobody trusts.