A customer with 94% product adoption can still churn. Maybe their executive sponsor left. Maybe the team is logging in because the workflow is mandatory, while the business case quietly disappeared three quarters ago.
That is why it takes more than a usage dashboard to create a customer health scoring model. Health is not a mood ring for your customer base. It is a decision system: a compact signal that helps a human decide where to look, what to ask, and what to do next.
The useful version is less like a polished executive KPI and more like a good old dashboard widget from a 2000s strategy game. It does not pretend to explain the whole map. It tells you which territory is about to catch fire.
Start with the decision, not the data
Most health scores fail before anyone opens a spreadsheet. The team starts with every field available in the warehouse, applies a few weights, and produces a suspiciously precise number: 72.4.
Then someone asks what a CSM should actually do with a 72.4. Silence.
Choose the decision your model needs to support. For most subscription businesses, that is one of three things: identify accounts likely to churn or contract, identify accounts ready for expansion, or prioritize a CSM's book of business. You can support all three eventually, but they are different models wearing similar clothes.
A risk model should optimize for early warning. It is acceptable if it occasionally flags a healthy account, as long as it catches meaningful risk with enough time to act. An expansion model needs stronger evidence of realized value, stakeholder momentum, and capacity to buy. A prioritization model needs to consider commercial value too, because losing a $4,000 account and a $400,000 account should not create identical work queues.
Write a plain-language rule before building anything:
> An account is at risk when product engagement, perceived value, or relationship coverage declines enough that renewal confidence is reduced.
That sentence becomes your filter. If an input cannot help assess engagement, value, relationship coverage, or renewal confidence, it probably does not belong in version one.
Use signals that explain the score
A health score is only useful if a CSM, account manager, or founder can explain it in a customer conversation. โYour model says you are yellowโ is not a conversation. โYour weekly active users fell 35%, and we have not met your new operations leadโ is one.
Start with four signal groups. They cover most SaaS businesses without turning the model into an airport control tower.
| Signal group | What it measures | Example inputs |
|---|---|---|
| Product engagement | Whether the product is part of real work | Active users, key workflow completion, feature adoption, usage trend |
| Value realization | Whether the customer is getting the promised outcome | ROI milestone achieved, time saved, revenue influenced, goals completed |
| Relationship | Whether the account has durable human support | Executive sponsor activity, champion strength, stakeholder coverage, meeting quality |
| Commercial context | Whether the contract creates urgency or friction | Renewal date, open invoice, seat utilization, support escalation, plan fit |
The trick is to measure behavior, not mere access. A login is often junk data. Someone can log in every day and still avoid the feature that produces value. For a forecasting tool, the meaningful behavior may be publishing a plan and revisiting assumptions. For an ecommerce retention app, it may be sending campaigns, seeing attributable revenue, and keeping automations active.
Pick one or two product events that represent the customer reaching the product's โaha, this is workingโ moment. Those events deserve more weight than vanity activity.
Relationship signals are usually messier because they live in notes, calendars, and the heads of the people managing accounts. That is not a reason to omit them. It is a reason to define them simply. A confirmed executive sponsor, an active champion, and a multi-threaded stakeholder map can be captured as structured fields. Better a lightly maintained signal than a model that ignores the person with renewal authority.
Create a customer health scoring model with simple weights
For a first model, use a 100-point score. It is familiar, readable, and easy to debug. Do not begin with machine learning. You need enough historical outcomes and clean definitions before that becomes more than expensive wallpaper.
A practical starting allocation might be 35 points for product engagement, 30 for value realization, 20 for relationship health, and 15 for commercial context. The weights should reflect your business model. A self-serve product may lean harder on behavior. Enterprise software with annual contracts and political buying committees may give relationship coverage more influence.
Within each group, assign clear thresholds. For example, a customer might earn the full 35 engagement points when core workflow usage is stable or growing, 20 points when it is slightly down, and zero to 10 when it has fallen sharply for two consecutive periods.
Avoid pretending every signal is continuous and scientific. A three-state scale often beats fake precision:
- Green means the signal supports renewal confidence.
- Yellow means it needs attention or context.
- Red means a concrete risk exists.
Here is a simple example:
```text
Engagement: 28/35
Value realization: 12/30
Relationship: 18/20
Commercial context: 15/15
Customer health score: 73/100
Status: Yellow
Primary reason: Value milestone has not been achieved
Suggested next move: Reconfirm success metric and build a 30-day value plan
```
That last line matters. Every low score should have a reason code and a suggested next action. Without them, health scoring becomes an anxiety generator with nicer colors.
Add time, because a snapshot lies
A health score is a moving object. An account at 68 that rose from 42 after a recovery plan may be in better shape than an account at 82 that has slid for four months.
Store the score history and show the trend next to the current score. Use a rolling baseline where possible. A customer that uses your product twice a week may be perfectly healthy if that matches its established pattern. A weekly active-user target copied from a different segment will call normal behavior a crisis.
Segmenting is not optional once your customer base has meaningful variety. Compare like with like: enterprise accounts with enterprise accounts, annual contracts with annual contracts, implementation-stage customers with mature customers. The health of a new customer should emphasize onboarding milestones. The health of a mature customer should emphasize durable usage, realized outcomes, and renewal readiness.
This is where many models become unfair. They penalize customers for behaving exactly as their plan, team size, or purchase motion predicts.
Let humans override the machine, but make them explain why
Some of the most useful information in customer success arrives as a sentence: โTheir CFO froze discretionary spend,โ or โThe new VP is a former customer and wants to expand.โ A model will miss that until someone gives it a field.
Allow CSMs to override a score, but require a short reason and an expiry date. A manual override should be a visible note, not a secret trapdoor. Review overrides monthly. If the same reason keeps appearing, promote it into the model as a structured input.
This is a small operating habit with a big payoff. It turns the health model into a learning system instead of a static artifact. The spreadsheet becomes a product. Every exception is user research.
Validate against outcomes before trusting the colors
Build the first version from your best judgment, then test it against reality. Pull accounts that churned, contracted, renewed, and expanded over the last 6 to 12 months. Ask whether the model would have identified risk early enough to change the outcome.
You are not chasing perfect prediction. You are looking for useful separation. If accounts below 50 churn at three times the rate of accounts above 80, the score is doing work. If every churned account looked green until the final month, your inputs are late, your weights are wrong, or your team is not recording the actual risk signals.
Review false positives, too. A flagged account that renews may reveal a healthy exception, but it may also reveal good intervention. Check the timeline before declaring the model wrong.
Keep a lightweight scorecard for the model itself: churn rate by health band, expansion rate by health band, number of days between red status and renewal, and percentage of scores with a documented reason. That last metric catches a common failure mode: a score built from data nobody trusts.
Build the smallest useful version
You do not need a sprawling CS platform implementation to begin. A spreadsheet, a CRM report, or a small internal app can hold the first version. The point is to run it in the weekly account review, see where it is wrong, and tune it with real customer context.
At Slam Dunks Studios, this is the kind of system worth building as a small instrument panel, not a cathedral. Give the team the score, the trend, the reasons, the owner, and the next move. Leave the ornamental machinery for later.
The best health score creates a useful pause before a renewal becomes an emergency. If it helps one person ask a sharper question at the right moment, it is already earning its place on the screen.
