A customer health score is a single number, usually 0 to 100, that combines weighted signals such as product usage, usage trend, support activity, relationship strength, and value delivered, to estimate how likely an account is to renew and expand. The formula is the sum of each normalized signal multiplied by its weight. The score is only useful if a change in it triggers a specific action by a specific person.

Health scores have a bad reputation, and most of it is earned. A team picks eight signals, weights them by instinct, ships a green-amber-red column in the CRM, and six months later discovers that the accounts that churned were green the week they cancelled. The problem is almost never the arithmetic. It is that the signals measured activity instead of value, and nobody was accountable for acting when the number moved.

Done properly, a health score is the only leading indicator you have. Churn rate and net revenue retention tell you what already happened, months after the decision was made. A health score tells you which accounts are deciding right now.

What is a customer health score?

A customer health score is a composite index of the signals that, in your business, precede a renewal or a cancellation. It compresses several dimensions into one number so that a team managing 200 accounts can decide where to spend Tuesday.

The compression is the value and also the risk. One number is actionable. One number also hides which of its components moved. Any health score worth running has to be expandable: click the 62 and see that usage is fine, the sponsor has gone silent, and two escalations landed last month.

What is the customer health score formula?

The standard model is a weighted sum:

Health score = (Weight₁ x Normalized signal₁) + (Weight₂ x Normalized signal₂) + ... + (Weightₙ x Normalized signalₙ)

Two mechanics make it work. Every signal has to be normalized onto the same scale, typically 0 to 100, before it can be combined, because raw seats and raw ticket counts are not comparable. And the weights must sum to 1.0, so the output stays on a 0 to 100 scale that anyone can read.

Normalization is where the judgment lives. A support ticket count of 14 is not inherently good or bad. Fourteen tickets from a 900-seat enterprise account in onboarding is healthy engagement. Fourteen from a 5-seat account in month nine is a fire. Normalize against a baseline for the segment, not against an absolute threshold.

Which signals should go into a health score?

Fewer than you think. Five to seven signals is the working range. Beyond that, the weights get so small that no realistic movement in any one signal changes the score, and the model becomes decorative.

SignalWhat it actually measuresLeading or laggingTypical weight
Usage depth (active seats / licensed seats)Whether the thing you sold is being usedLeading25% to 35%
Usage trend (30 or 90 day direction)Whether it is getting better or worseStrongly leading15% to 25%
Value milestone achievedWhether the business case is being metLeading10% to 20%
Relationship: sponsor engaged in last 90 daysWhether anyone senior still caresStrongly leading10% to 20%
Support signal (escalations, reopened tickets)Friction the customer is absorbingLeading10% to 15%
Invoice and payment behaviorCommercial intent, and involuntary churn riskLeading5% to 10%
Survey sentiment (latest NPS or CSAT)How they say they feel, when they answerLagging and sparse5% to 10%

Two notes that save teams a quarter of rework. Trend beats level: an account at 62 percent adoption and falling is in more danger than an account at 45 percent and rising, and a model that only reads the level cannot see it. And survey sentiment deserves a small weight, not a large one, because response rates are low and the customers who stop answering surveys are precisely the ones about to leave. Use NPS and CSAT as inputs, never as the score itself.

How do you calculate a customer health score?

Here is a full worked calculation for a mid-market account at the start of month nine. Each raw signal is normalized to 0 to 100, multiplied by its weight, and summed.

SignalRaw valueNormalized (0 to 100)WeightContribution
Usage depth62 of 100 seats active weekly620.3018.6
Usage trend, 30 daysDown 8%400.208.0
Support signal2 escalations vs baseline of 0450.156.75
Sponsor engagementMet twice in last 90 days1000.1515.0
Value milestonePartially achieved500.105.0
Payment behaviorAll invoices paid on time1000.055.0
Survey sentimentLatest CSAT 4.2 of 5700.053.5
Total1.0061.9

The account scores 61.9, which lands in the watch band. And here is where a good CSM overrides a good model: the two signals dragging the score are trend and support, both leading indicators, while the two propping it up are payment behavior and sponsor meetings, one of which is administrative and the other of which is easy to fake with a calendar invite. A 62 with usage falling 8 percent in a month should be worked like an at-risk account, not a watch-list one.

That is not a failure of the score. It is the score doing its job: surfacing the account and showing you which component to look at.

What is a good customer health score?

There is no cross-company benchmark, and anyone offering one is selling something. Health scores are internally calibrated, so a 70 at your company and a 70 at another have no relationship to each other. What matters is that your bands are drawn where they predict something.

BandScoreWhat it meansAction, and who owns it
Healthy75 to 100Adopting, sponsored, getting valueQualify for expansion; CSM, within 30 days
Watch55 to 74One or two signals softDiagnose the weakest component; CSM, within 14 days
At risk35 to 54Adoption or sponsorship failingLive conversation, written recovery plan; CSM plus manager, within 7 days
Critical0 to 34Renewal is unlikely without interventionExecutive outreach, rebuild the business case; leadership, within 48 hours

Calibrate the bands against your own churn history rather than picking round numbers. Take the accounts that cancelled in the last 12 months, compute what their score would have been 90 days before they cancelled, and set the at-risk threshold where those accounts cluster. If the churned accounts were sitting at 78, your model is measuring the wrong things and no threshold will rescue it.

Customer health score examples

The quiet enterprise account. Usage steady at 80 percent, zero support tickets, no complaints, score 84. It cancels at renewal. The model never asked whether the sponsor still worked there, and she had left in month four. Adding a single binary signal, has an executive sponsor engaged in the last 90 days, would have dropped this account into the watch band eight months before the loss.

The noisy SMB account. Nineteen support tickets in a month, score 48, flagged at risk. On investigation the tickets are all feature questions from a team rolling the product out to a second department. Usage trend is up 22 percent. This is expansion, misread as danger, because the support signal was normalized against an absolute threshold instead of a segment baseline.

The account with perfect scores and no value. Every seat logs in daily, adoption is 96 percent, score 91. At the renewal the customer says the tool never delivered the outcome they bought it for. Usage was measured, value never was. This is the most common failure mode, and it is why a value milestone signal, awkward and manual as it is to collect, belongs in the model.

How is a health score different from NPS or CSAT?

NPS and CSAT are survey instruments. They capture stated sentiment from whoever chose to respond, at one moment, usually after an interaction. A health score is a behavioral composite, computed for every account continuously, whether or not anyone responds to anything.

The practical difference is coverage and timing. CSAT tells you a specific ticket went badly. NPS tells you how a self-selected slice of your users feel about you overall. Neither tells you that account 214 has stopped logging in. The survey scores make good inputs to a health model precisely because they carry information the behavioral signals do not, but they are far too sparse to carry the whole model. Run them through a voice of customer program and feed the result in as one signal among several.

Why do customer health scores fail?

  • They measure activity, not value. Logins are cheap. Outcomes are the thing the customer will not pay to lose.
  • Weights are guessed, then never revisited. Recalibrate against churn history every two quarters. Your first set of weights is a hypothesis.
  • No trend component. A static level cannot distinguish an account settling into a healthy pattern from one on the way out.
  • Too many signals. Twelve signals at 8 percent each means nothing moves the score.
  • The score has no owner. If a red account does not create a task on somebody desk with a deadline, the model is a decoration.
  • Everyone can see it, nobody can explain it. If a CSM cannot open the score and name the component that changed, they will stop trusting it, and then they will stop looking at it.

The last two are the ones that kill programs. Scoring is a modeling problem for a week and an operating problem forever after.

How do you act on a health score?

Attach exactly one playbook to each band, and make the trigger a change in score rather than an absolute level. An account that falls from 88 to 71 is telling you something. An account that has sat at 71 for a year is not.

Three triggers cover most of the value. A drop of 15 points or more in 30 days opens a diagnostic task within 48 hours. Crossing from watch into at risk creates a live conversation, not an email. And a sustained healthy score for two quarters, with the value milestone signal at full marks, qualifies the account for an expansion conversation, which is the half of the score that most teams forget to use.

The natural forum for all of it is the quarterly business review, where the score stops being a number in a dashboard and becomes a question you ask the customer directly. Between reviews, the score is what decides who gets your attention. Feed it back into the retention program and into the operational metrics that predict churn, and check that the involuntary side is covered too, because an account can be perfectly healthy and still churn on a failed credit card.

Build the simplest model that separates your churned accounts from your renewed ones. Ship it. Then spend the next two quarters correcting it against what actually happened. That loop, not the elegance of the first formula, is what turns a health score into the earliest warning system a customer experience operation has.

M
Maya Renner
CX operations writer. Ten years running support and onboarding teams at B2B software companies; now writes about the operational side of customer experience.