Home / Insights / Health scoring
Health scoring

Your health score is probably a mood ring. Here is how to make it predict something.

NRR Partners3 September 20266 min read

The green account that churned last month and the red one that renewed and expanded are not bad luck. They are what a non-predictive score looks like when reality shows up.

Most CS teams have a health score. Very few have a predictive one. The difference is not sophistication. It is whether anyone has ever checked the score against what actually happened.

Why the traffic light fails

Traditional health scoring was designed to make dashboards legible, not to forecast outcomes. It fails in three ways that compound.

Sentiment dominates the inputs. A pulse column filled in by the CSM usually carries most of the weight. That is recency and rapport rather than data, and it is systematically kind to accounts the CSM likes and harsh on the ones that are hard work. Neither has much to do with renewal.

The indicators lag. By the time usage drops and support tickets spike, the decision to leave has already been made somewhere inside the customer. The score is reading the autopsy when it should be reading vital signs.

Nobody backtests. Did green accounts renew at a higher rate than yellow last year? If nobody has run that query, the score is decoration. Well-intentioned decoration, but decoration.

What a predictive score looks like

A predictive score weighs signals across several dimensions and, this is the part that matters, has been validated against real outcomes on accounts it did not learn from. The dimensions we tend to design around:

Finding your weights

There is no universal formula. A product-led business with monthly contracts weights technical health and trajectory heavily. An enterprise business with eighteen-month contracts weights relationship depth and commercial posture. There is, however, a universal process for finding the weights that fit you:

  1. Pull twelve months or more of renewal, churn, contraction and expansion outcomes. Thirty outcomes is the floor. A hundred is comfortable.
  2. Score every historical account on each dimension as it stood before the outcome, not after.
  3. Run correlation and lift analysis to find which dimensions actually predicted what happened, and which were noise.
  4. Set weights from the analysis and thresholds from the alert volume the team can realistically act on.
  5. Validate on a holdout set of accounts the model has not seen. If it does not beat the current score on the holdout, it does not ship.

This is a week or two of careful work on a few hundred rows. It does not need a data science team. It needs someone comfortable with the analysis and honest about the results.

What you need to start

Twelve months of outcomes with at least thirty churn and renewal events. Access to product usage, support history, engagement records and billing. And a willingness to discover that the current score has been predicting nothing, which is the usual finding and the reason to do the work.

Making it usable

A model that lives in a dashboard tab has not been implemented. The output has to be a ranked list of accounts by predicted risk, with the driving signals per account visible, in the view the CSM opens on Monday morning. Trajectory flags and alert routing come next. Run the new score beside the old one for two to four weeks so the team can see it catching things they would have missed. Cut over when they trust it, not before.

The test

If you cannot say which of your green accounts are most likely to churn in the next ninety days, the score is not predictive. It is performative, and it is costing renewals that someone could have saved three months earlier. A predictive score is not an enterprise luxury. It is the minimum instrument for a team that is expected to own a retention number.

Want this built for your team?

We design and validate predictive health models from your own outcome history and build them into Planhat where the CSM plans the week. Bring twelve months of renewals and churn to the call.

Request a strategy call
Request a strategy call