TLDR: A customer health score is a numeric prediction of whether an account will renew, expand, or churn. The best ones flag at-risk customers 30-60 days early so CS teams can actually intervene. Most teams build them wrong by over-weighting NPS and under-weighting usage trend. Here's what works:
- Usage trend (40-50% of the score) is the strongest single signal. Specifically: usage this week vs the account's own 30-day baseline.
- Time since last meaningful login by a key user is the next strongest.
- Support sentiment matters more than support volume.
- NPS trend beats NPS absolute score.
- Contract events (seat removals, downgrades) are the strongest leading indicator at enterprise.
The best health score I've seen in practice catches 70% of churners 45 days out. The average score catches 30%. The difference is almost entirely in how you weight usage trend.
What is a customer health score?
A customer health score is a single number (usually 0-100) or a tier (Green/Yellow/Red) that summarizes how likely an account is to renew, expand, or churn. It's the at-risk queue for your CSMs, the input to automated playbooks, and the leading indicator your CRO watches.
The goal is not perfect prediction. The goal is to give CS enough lead time that they can do something useful. A score that turns red the day someone cancels is just expensive accounting. A score that turns yellow 45 days before cancellation is a saved customer.
What goes into a good customer health score?
In order of predictive power, here are the signals that actually move the score:
Usage trend (40-50% of the score)
Not raw usage. Trend. Specifically: usage this week vs the account's own rolling 30-day baseline.
Why trend and not absolute usage? Because a tiny customer using your product 20 times a week is healthier than a huge customer who dropped from 500 times a week to 200. Absolute thresholds lie to you. Trends do not.
The cleanest implementation: for each account, compute a weekly usage score, then divide by the trailing 30-day average. A score under 0.7 (using less than 70% of their own baseline) is a hard yellow flag. Under 0.5 is red.
Last meaningful login by a decision-maker (20-25%)
Track logins by role, not by user. The CFO logging in 1x a quarter to check billing is fine. The product champion who used to log in daily disappearing for 14 days is a five-alarm fire.
Most CS tools log "last activity" at the account level. That's lossy. The signal you want is last meaningful login by the user whose departure would kill the account.
Support sentiment, not volume (10-15%)
A customer opening 5 tickets means they're using the product. A customer opening 1 ticket with the word "frustrated" or "disappointed" in it means something else. Modern tools (Zendesk, Intercom) tag sentiment automatically.
One angry ticket from the buyer outweighs ten neutral tickets from end users.
NPS trend, not absolute (5-10%)
An absolute NPS of 7 sounds fine. An NPS that dropped from 9 to 7 between surveys is a warning. Track the trend, not the score.
Most teams plug NPS into health scores wrong by treating "passive" responses (7-8) as neutral. They are not. They are downgrades from promoters who used to love you and now don't.
Contract events (10-15% at enterprise)
Seat removals, plan downgrades, expansion negotiations going quiet, contract renewals delayed past their natural date. These are the strongest leading indicators at enterprise scale, where the buyer signal arrives via procurement long before it shows up in product usage.
What signals should you NOT use?
A few signals that look useful but aren't:
- Total revenue. Your biggest accounts are not your healthiest. They're just your biggest. Stop conflating size with health.
- Tenure alone. Long-tenured accounts churn too. Tenure correlates with health, but it's not a leading signal.
- Total feature adoption count. Quantity of features adopted matters less than adoption of the right features. The features that predict retention are the ones that drive the core habit, not all of them.
- Email opens. Apple Mail Privacy Protection broke this signal in 2021. It is mostly noise now.
Should you use a rule-based score or an AI health score?
For most SaaS, rule-based scoring outperforms ML scoring. Specifically:
- Under 1000 customers: rule-based wins. Not enough churn examples to train ML.
- 1000-10000 customers: rule-based still usually wins. ML adds 5-10% precision but loses interpretability.
- 10000+ customers: AI/ML scoring starts to win cleanly. You have enough volume to train.
The marketing for AI churn prediction is louder than the results. Most teams I talk to who switched to AI scoring at smaller scale ended up reverting because their CSMs could not explain why an account was flagged red. Rule-based scoring is interpretable: "Usage dropped 60% and they haven't logged in for 14 days." A CSM can act on that. "The model gave them a 23" is harder to action.
What tools should you use for customer health scoring?
By stage:
- Under 200 customers: a spreadsheet pulled from your product event data. PostHog or Amplitude + a CSV + a weekly review. Don't buy a CS platform yet.
- 200-1000 customers: Custify ($199/mo) or HubSpot with custom properties. Good enough.
- 1000-5000 customers, modern SaaS: Vitally ($300/mo+). Best modern UI and the warehouse integration is class-leading.
- 5000+ customers, sales-led: ChurnZero or Gainsight. Enterprise-grade with deeper playbook orchestration.
If you have a data warehouse and a half-decent analyst, build the score in dbt or SQL and pipe it into whatever CS tool you use. This is what most data-mature teams do because it lets the score evolve faster than vendor UIs allow.
Full playbook: health-score-monitoring-enterprise. Buyer's guide for the tools: best CS software for startups and all 34 buyer's guides.
How do you know if your health score is working?
Three numbers, tracked monthly:
- Precision: when the score flags an account as at-risk, what % actually churn or contract within 60 days. Best-in-class is 60-75%. Most teams hit 30-50% on day one.
- Recall: of accounts that churned, what % were flagged as at-risk 30+ days in advance. Best-in-class is 70-80%.
- Coverage: what % of your active customer base has a current health score. Aim for 80%+.
If precision is below 30% your CSMs will stop trusting the score within a quarter. If recall is below 40% your save rate caps out fast because you're missing too many churners. Improving these comes from rebalancing component weights based on which signals actually predict churn for your business, not by switching tools.
If you want a fast diagnostic on whether you have the right pieces in place, take the Churn Health Check. It scores your health-scoring setup along with the rest of your retention infrastructure in 60 seconds.