
Customer Health Score: How to Build One That Actually Predicts Churn

Most customer health scores are decoration. They sit in a dashboard as a green, yellow or red pill next to an account name, everyone nods at them in the weekly meeting, and nobody changes what they do because of them. Then an account marked green cancels, and the score quietly loses whatever credibility it had left.
A health score earns its place only if it does one thing: tell you which customers are drifting toward cancellation while there is still time to act. Everything else about it, the colours, the weights, the dashboard, is packaging.
This guide covers what a customer health score is, which signals actually predict churn, how to weight and calculate them, a template you can copy today, how to test whether your score works, and the mistakes that turn a good idea into a wall decoration.
What Is a Customer Health Score?
A customer health score is a single number, usually on a 0 to 100 scale, that summarises how likely an account is to keep paying you. It combines several separate signals about how a customer uses your product, engages with your team and behaves commercially, and rolls them into one figure your team can sort by.
The point is aggregation with a purpose. You already have login data, support tickets, feature usage, invoice history and survey responses. Each of those tells you something, but none of them is worth checking one account at a time across a book of four hundred customers. The score compresses all of it into a value you can rank, filter and set alerts on.
Two things follow from that definition, and both get ignored constantly.
First, a health score is a prediction, not a report. It should be judged the way you judge any prediction: did the accounts it marked as unhealthy actually churn more often than the ones it marked healthy? If you have never checked that, you do not have a health score, you have a formula.
Second, the score exists to trigger action. A score that nobody is responsible for acting on has no reason to exist. Before you build one, decide what happens when an account drops below the threshold, and who does it.
Why Health Scores Have a Trust Problem
Ask around a customer success team and you will find people who ignore the health score on their own dashboard. There are usually four reasons, and they are all fixable.
The score is built from what is easy to measure, not what predicts churn. Logins are easy to count, so logins get a heavy weight, even at companies where a customer can be perfectly happy logging in twice a month because the product runs in the background.
The score never changes. If an account has sat at 82 for eight months, it is not measuring anything dynamic. Health scoring is about movement. A customer at 60 and falling is a bigger problem than a customer sitting steady at 45.
Nobody validated it. The weights were set in a meeting, based on opinion, and never checked against actual cancellations. That makes it a shared guess with a number attached.
The score is a single blended figure with no explanation. If a rep sees “67” and cannot tell whether that is a support problem, a usage problem or a champion problem, the number gives them nothing to work with. Always show the components, not just the total.
If you fix those four, your team will use the score. If you fix none of them, no amount of dashboard polish will help.
The Signals Worth Scoring
Health scores usually pull from five categories. You do not need all five to start. You need the two or three you can actually measure well.
Product Usage
This is the backbone of almost every good health score, because it is behavioural. People say they are happy in surveys and then stop using the product. Usage does not lie.
Useful measures:
- Active usage frequency. How many days in the last thirty did the account do something meaningful in the product? “Meaningful” matters. Opening a dashboard is not the same as running a job, sending a campaign or exporting a report.
- Breadth of adoption. How many of your core features has the account used? Customers who use one feature are far easier to replace than customers who have wired three of them into their week.
- Depth within the core workflow. For most products there is one action that represents the value the customer bought. Count it. If your product is a scheduling tool, count events scheduled, not page views.
- Seat activation. For per-seat products, the ratio of active users to purchased seats is one of the strongest signals you have. An account paying for fifty seats with nine active users is going to right-size or leave at renewal.
- Trend rather than level. A 30 percent drop in usage month over month tells you more than the absolute number does. Score the direction as well as the position.
Engagement With Your Team
This is about the relationship, not the software.
- Response rate to your emails and check-in requests
- Attendance at scheduled calls, including how often they get rescheduled
- Whether you currently have a named, reachable champion
- Whether an executive sponsor has been involved in the last two quarters
- Participation in webinars, training sessions or your community
The champion signal deserves attention on its own. If the person who bought your product leaves the company and you have not built a second relationship inside the account, your risk went up sharply and nothing in your usage data will show it. Track champion changes explicitly.
Support and Product Experience
Support data is useful, but it is easy to misread. A customer filing tickets is talking to you, and silence is often worse than complaints.
Score these carefully:
- Ticket volume relative to the account’s size and normal pattern, not raw count
- Severity mix, weighted toward bugs and outages rather than how-to questions
- Time to resolution, especially unresolved tickets older than a week
- Repeat tickets on the same issue, which signal an unsolved problem rather than an active user
A rising number of low-severity how-to tickets from new users on a growing account is a healthy sign. Three unresolved severity-one tickets is not. Treat them differently.
Sentiment and Survey Data
NPS, CSAT and customer effort scores belong in a health score, with two caveats. Response rates are low, so most accounts will have stale or missing data, and sentiment tends to lag behavioural change rather than lead it. Weight it modestly, and treat a missing survey response as missing data rather than a neutral score. If you are working out what a usable benchmark looks like, our guide on what counts as a good NPS score covers how to read the number in context.
Non-survey sentiment is worth capturing too. A negative comment in a support thread, a complaint about pricing, a mention of evaluating an alternative. These are hard to automate, which is exactly why a manual sentiment field that a rep can set is worth having.
Commercial and Account Signals
- Payment history, including late payments and failed charges
- Contract length remaining and time to renewal
- Recent downgrades, seat reductions or a shift from annual to monthly
- Growth in spend over the relationship
- Whether the account is on a discount that expires soon
Failed payments deserve special handling because they are a churn cause dressed as a health signal. A customer whose card expires is not unhappy, they are unattended. That is a recovery problem rather than a relationship problem, and it belongs in a dunning management process rather than a customer success escalation. Our guide on voluntary versus involuntary churn explains why mixing the two produces bad conclusions.
How to Calculate a Customer Health Score
The mechanics are simpler than most people expect. There are four steps.
Step 1: Pick Your Signals
Start with four to six. Not twelve. Every signal you add dilutes the ones that matter, and each one is something you have to maintain.
Choose signals that meet three tests: you can measure them reliably today, they move over time, and you have a reason to believe they relate to renewal. If you cannot argue why a signal predicts churn, leave it out for now.
Step 2: Normalise Each Signal to a 0 to 100 Scale
You cannot add “12 logins” to “3 support tickets” to “NPS of 8” without putting them on a common scale first. For each signal, define what counts as bad, acceptable and excellent, then map to points.
An example for active days in the last thirty:
| Active days | Points |
|---|---|
| 0 to 2 | 0 |
| 3 to 7 | 25 |
| 8 to 14 | 50 |
| 15 to 21 | 75 |
| 22 or more | 100 |
Do the same for every signal. Banding like this is easier to explain and easier to fix than a continuous formula, and explainability is what makes a team trust the score.
Set the bands from your own data, not from a template. Look at what your retained customers actually do and what your churned customers did in the ninety days before they cancelled. The gap between those two distributions is where your bands belong.
Step 3: Weight the Signals
Assign a weight to each category so the weights sum to 100 percent. A reasonable starting point for a self-serve SaaS product:
| Signal | Weight |
|---|---|
| Active usage frequency | 30% |
| Core action volume trend | 25% |
| Feature breadth | 15% |
| Seat activation | 15% |
| Support severity | 10% |
| Sentiment | 5% |
For an enterprise product with quarterly business reviews and named champions, shift ten to fifteen points from usage toward relationship signals. For a product used daily by one person, push almost everything into usage.
The weights are a hypothesis. You will change them after you validate, which is step 4.
Step 4: Calculate and Band the Result
Multiply each normalised score by its weight and add them up.
A worked example for one account:
| Signal | Raw value | Points | Weight | Contribution |
|---|---|---|---|---|
| Active days (last 30) | 9 | 50 | 30% | 15.0 |
| Core action trend | Down 18% | 25 | 25% | 6.25 |
| Feature breadth | 2 of 6 | 33 | 15% | 4.95 |
| Seat activation | 14 of 40 | 25 | 15% | 3.75 |
| Support severity | 1 open bug | 50 | 10% | 5.0 |
| Sentiment | NPS 7 | 50 | 5% | 2.5 |
| Total | 37.45 |
Then band the total into categories your team can act on. Three bands is usually enough:
- 70 to 100, healthy. No intervention needed. Candidates for expansion, referrals and case studies.
- 40 to 69, at risk. Needs a specific play. Not a generic check-in email.
- Below 40, critical. Needs a human, this week, with a named owner.
The account above scores 37, which puts it in critical. The reason is visible in the table: low seat activation, declining usage, and only two features adopted. That is an adoption problem, not a support problem, and it should route to an adoption play.
A Customer Health Score Template You Can Copy
If you want something usable this week without buying software, build it in a spreadsheet. It works fine up to a few hundred accounts and it forces you to understand the logic before you automate it.
Set up one row per account, with these columns:
- Account name
- MRR or ARR
- Renewal date
- Raw value for each signal, one column each
- Normalised points for each signal, one column each
- Weighted score for each signal
- Total health score
- Band, calculated from the total
- Previous period score
- Change since last period
- Owner
- Last action taken and date
Columns 9 and 10 are the ones people skip and the ones that create most of the value. An account that fell from 78 to 61 in a month is more urgent than one that has sat at 58 all year, and you can only see that if you keep history. Snapshot the sheet weekly or monthly and never overwrite the old values.
Sort by total score ascending, filter to accounts renewing within ninety days, and you have your working list.
Move off the spreadsheet when one of three things happens: you pass roughly three hundred accounts, you need the score to trigger something automatically, or you need product usage data that is too granular to export by hand.
How to Tell Whether Your Score Actually Works
This is the step almost everyone skips, and it is what separates a health score from a decoration.
Run it backwards. Take the accounts that churned in the last six to twelve months. Calculate what their health score would have been ninety days before they cancelled, using the data you had at the time. Then do the same for a comparable set of accounts that renewed. If churned accounts do not score meaningfully lower, your weights are wrong or your signals are wrong.
Check the false greens. List every account that churned while sitting in your healthy band. These are the most instructive cases you have. Read what actually happened in each one. If half of them lost a champion, you are missing a champion signal. If half of them were acquired, that is outside your control and should be excluded from the analysis rather than blamed on the score.
Check the false reds. Accounts that scored critical and renewed anyway. A few are fine and expected. A lot of them means your thresholds are too aggressive, and the cost is real: your team burns hours on accounts that were never at risk, and stops believing the red band.
Track precision over time. Of the accounts you flagged as at risk last quarter, what share churned or downgraded? Of the accounts that churned, what share had you flagged? Those two numbers are the health of your health score. Review them quarterly.
Re-weight based on what you find. This is normal maintenance, not an admission of failure. Products change, customer mix changes, and a scoring model built two years ago is describing a company that no longer exists.
If you want to go further than a weighted average, this is the point where a model trained on your historical churn data starts to make sense. It will find combinations of signals that human weighting misses. The trade-off is explainability: a rep can argue with a weighted score and act on its components, and a model output is harder to translate into a next step. Most teams get more value from a well-validated simple score than from an unexplainable accurate one. Our overview of churn prediction software covers the tooling side if you are evaluating that route.
Turning Scores Into Action
A score with no attached play is a number. Define what happens in each band before you roll the score out, and make sure each play is specific.
Critical accounts. Named owner, contact within five business days, and a diagnosis before a pitch. Find out which component drove the score down and address that one thing. An account failing on seat activation needs a training session, not a discount.
At-risk accounts. Route by cause. Low feature breadth goes to an adoption sequence. Rising severity tickets go to a support escalation. A missing champion goes to a relationship mapping exercise. Sending everyone the same “just checking in” email is how teams learn to ignore the at-risk band.
Healthy accounts. Do not leave them alone entirely. These are your expansion, referral and case study candidates, and a rising score is the best time to ask.
Every band. Log the action taken and the score four weeks later. Over a year this tells you which plays actually move health and which ones just consume time. Most teams have never measured this, and it is usually the most surprising thing they learn.
Health scoring also needs a partner at the exit point. Even a good score will miss accounts, and when a customer reaches the cancel button you want that moment to be a conversation rather than a form submission. A cancellation flow that offers a pause, a plan change or a targeted offer catches customers your score never flagged. The cancellation reasons it collects then feed straight back into your scoring model, because they tell you what your signals failed to detect. If a recurring reason is “too expensive during a quiet period,” a subscription pause option solves it better than any score can.
Where Health Scoring Fits With Your Other Metrics
A health score is an account-level leading indicator. It sits alongside, not instead of, your aggregate retention reporting.
Gross and net revenue retention tell you what already happened across the whole base. Health scores tell you what is likely to happen next, account by account. You need both, and they answer different questions.
Churn analysis is the backward-looking work that feeds your scoring model. Every churn post-mortem should end with the question of whether your health score saw it coming, and if not, what signal was missing.
Your broader retention metrics and KPIs provide the context that stops you overreacting. If you are working out whether your overall numbers are normal for your segment, B2B SaaS churn benchmarks are the place to calibrate.
And retention analytics is where the whole picture comes together, including the cohort work that shows whether your interventions are actually changing outcomes.
Health Scoring for Different Business Models
The same framework applies, but the weights should not be identical.
Self-serve SaaS with a large customer base. Almost entirely usage-driven, because you have no relationship data at scale. Weight active usage, feature breadth and trend heavily. The score’s job here is to segment automated campaigns rather than to trigger human outreach. This is the core of a digital customer success approach.
Enterprise B2B with named accounts. Relationship signals carry much more weight. Champion status, executive engagement and QBR attendance can reasonably make up a third of the score. Usage still matters, but a low-usage enterprise account with a strong sponsor and a signed three-year contract is a different situation from a low-usage self-serve account.
Consumer subscriptions. Usage frequency and payment health dominate. Sentiment surveys rarely get enough responses to be useful at the individual level. Watch for the pattern where someone stops using the product entirely but keeps paying, because that is a cancellation waiting for the next renewal notice.
Usage-based pricing. Your health score and your revenue metric start to overlap, which is a trap. Consumption going down means both lower health and lower revenue, so the score becomes a lagging revenue report rather than a leading indicator. Add signals that are independent of consumption, such as seat activation, admin logins and integration status.
Common Mistakes to Avoid
Scoring everything. Twelve signals means twelve maintenance burdens and a diluted score. Four good signals beat twelve mediocre ones.
Treating missing data as a zero. If an account has never responded to an NPS survey, that is not a score of zero, that is no data. Scoring it as zero drags healthy accounts into the red band and destroys trust in the score. Redistribute the weight across the signals you do have.
Using the same model for a two-week-old account and a three-year customer. A new account with low feature breadth is normal, that is what your early retention work is for. Either exclude accounts under ninety days from the standard model or run a separate onboarding-stage score for them.
Ignoring account size. A 30 point drop at a customer paying two hundred a month and a 10 point drop at one paying eight thousand a month are not the same priority. Sort your working list by score and revenue together, not score alone.
Setting it once and never touching it. Review weights quarterly against actual outcomes. A model nobody has validated in a year is being used on faith.
Hiding the components. Always show the breakdown next to the total. The total tells you who to call. The breakdown tells you what to say, and without it your team will make something up.
Letting the score replace conversations. The score tells you where to look. It does not tell you what is happening inside the customer’s business, whether their budget changed, or whether their champion is about to resign. Those things come from talking to people. Some of the best early warnings will never appear in your data at all, which is why spotting at-risk customers is part judgement and part measurement.
Building Your First Score in Two Weeks
If you have nothing today, this is a realistic sequence.
Days 1 to 3. List the churn from the last twelve months. For each account, write one sentence on why they left. Group the reasons. This tells you which signals matter for your business specifically, rather than which signals are popular in blog posts.
Days 4 to 6. Pick four to six signals that map to those reasons and that you can pull data for. Export the raw values for every current account into a sheet.
Days 7 to 9. Set your bands by comparing retained and churned customers on each signal. Set initial weights. Calculate scores for the whole base.
Days 10 to 12. Validate backwards. Score your churned accounts as of ninety days before cancellation and check whether they land lower than your retained accounts. Adjust weights if they do not.
Days 13 to 14. Define one play per band, assign owners, and set the review cadence. Run it for a quarter before you change anything else.
You will not get the weights right the first time. That is fine. A score you have validated once and will revise is far more useful than a perfect model you never ship.
Frequently Asked Questions
What Is a Good Customer Health Score?
There is no universal number, because the scale is one you defined. What matters is the separation: do accounts in your top band renew at a meaningfully higher rate than accounts in your bottom band? If your healthy accounts renew at roughly the same rate as your at-risk accounts, the score has no predictive power regardless of what the numbers look like. Set your bands from your own retained and churned populations, and judge the score by the gap it produces, not by the value.
How Do You Calculate a Customer Health Score?
Pick four to six signals, normalise each one to a 0 to 100 scale using bands, assign weights that sum to 100 percent, multiply each normalised value by its weight, and add the results. Then group the totals into healthy, at-risk and critical bands. The worked example earlier in this guide shows the full calculation for a single account.
How Often Should Health Scores Be Recalculated?
Weekly is right for most subscription businesses. Daily creates noise, because a customer who takes a week off looks like a crisis. Monthly is too slow to intervene before a renewal. Whatever you choose, keep the history so you can see direction, since the change in score is usually more informative than the score itself.
How Do You Include NPS in a Customer Health Score?
Include it with a modest weight, typically 5 to 15 percent, and handle missing responses properly. Treat an account that has never responded as missing data and redistribute its weight across the other signals rather than scoring it as zero. Also age the data. An NPS response from fourteen months ago should not carry the same weight as one from last month.
Does HubSpot Have a Customer Health Score Feature?
HubSpot supports health scoring through custom properties and calculated fields in the CRM, and Service Hub adds ticket and survey data you can pull into it. It is workable if your usage data already flows into HubSpot. If your product usage lives in a separate analytics or warehouse system, you will spend most of your effort on the data pipeline rather than the scoring itself, and a dedicated tool is usually less work.
Can You Build a Customer Health Score in a Spreadsheet?
Yes, and for a first version you probably should. A spreadsheet forces you to define your bands and weights explicitly, which is the part that determines whether the score works. It stays practical to a few hundred accounts. Move to dedicated tooling when you need automatic triggers, more granular product data, or you outgrow manual updates.
Should the Health Score Be Visible to Customers?
No. Health scores contain internal judgements about risk and are calibrated for your team’s use, not for a customer conversation. Share the underlying facts if they are useful, such as seat activation or feature adoption, but keep the score itself internal.
What Is the Difference Between a Health Score and a Churn Prediction Model?
A health score is a transparent weighted average of signals you chose, and anyone can see why an account scored what it did. A churn prediction model is trained on historical outcomes and finds patterns you did not specify, usually with better accuracy and worse explainability. Many teams run both: the model for prioritisation, the score for diagnosis.
The Short Version
A customer health score is worth building when you have more customers than you can personally keep track of and enough behavioural data to see what they are doing. Start with four to six signals tied to the reasons your customers actually leave. Normalise, weight, calculate, band. Then validate it backwards against real churn before you ask anyone to trust it, and re-check it every quarter.
The score is not the goal. The goal is that the right person has the right conversation with the right customer while there is still time for it to matter.
ChurnFree helps on the other side of that equation, catching customers at the cancel button with pause options, targeted offers and cancellation reasons that tell you exactly what your health score missed. Start free with ChurnFree and turn cancellations into a source of retention data.


