01
Why a green score still churns
Christine B., a post-sale consultant, described the pattern in a post asking CSMs which metric actually predicts renewal risk: "Green health score. Strong adoption. Plenty of engagement." Then the renewal forecast turns.
The score was not wrong about the numbers in it. It was wrong about which numbers matter.
Look at how scores get built. In an r/CustomerSuccess thread asking for health score examples that work, the first answer suggested product adoption at 65%, ticket count at 20% and meeting attendance at 15%, offered honestly as an example. Another commenter used usage at 40% and tickets at around 20%. Both are reasonable guesses. Both are guesses. A weight nobody tested against a real renewal is an opinion with a decimal point.
The same thread had the fix in it, and it is the method below.
02
List last year's renewals, and what happened
Day 1 · Owner: CS ops
Every account that came up for renewal in the last 12 months. Mark each one renewed, churned or contracted. Contraction counts as a loss for this exercise: a customer who cut seats in half was telling you something.
One commenter in that thread put the starting point plainly: the weights are already sitting in the accounts you lost last year, and ten recent churns are usually enough to see the pattern. If you have fewer than ten, add the contractions and the renewals that needed a discount to close.
03
Rebuild each account as it looked 90 days before renewal
Day 1 · Owner: CS ops
This is the step that makes the score predictive. Today's data describes an account after the outcome. You need what it looked like when there was still time to act.
For each account, fill one row with the candidate signals as they stood at renewal minus 90 days. Use the trend, not the level: a customer whose logins fell by a third is a different story from a customer who has always logged in rarely.
Account | Outcome (renewed / churned / contracted) | Renewal date
Usage trend, 90 days before up / flat / down
Active seats vs purchased %
Support ticket trend up / flat / down
Sponsor still in role Y / N
Days since last sponsor contact n
Stakeholders engaged n (people, not meetings)
NPS or CSAT, if you collect it score
Promises past due to this account n, and the oldest in days04
Keep only the signals that separated the two groups
Owner: CS lead
Put the churned and renewed rows side by side and read each column. A signal that looks about the same in both groups goes, however much the team likes it.
Ticket volume is the usual casualty. Several people in the thread made the same point from different directions: customers who adopt the most often talk to support the most, accounts with more users naturally file more tickets, and nobody can say what the right number is. One team found tickets skewed their score for exactly that reason, and weighted executive and champion relationships higher, because those had been their strongest predictors of churn.
You want three or four signals. A score with twelve inputs is a score nobody can explain in a renewal forecast meeting.
05
Start at equal weight, then tune against accounts you know
Owner: CS lead
Do not calculate the weights. Give every surviving signal the same weight, score each account, and compare the result with what you already know about that account.
That method came from the same commenter, and it is better than any formula. Where a healthy account scores red, one signal is carrying too much weight. Lower it and run the sheet again. Two or three passes gets close enough. In their words: "A rough score your CSMs trust beats a precise one they ignore."
=SUMPRODUCT(B2:E2, $B$1:$E$1) / SUM($B$1:$E$1)
Start: B1=1 C1=1 D1=1 E1=1
Tier: under 40 red, 40 to 69 amber, 70 and above green
(starting cut-offs, move them after the first back-test)06
Add the input a usage score cannot see
Owner: CS lead
Usage, tickets, NPS and seats all measure what the customer did. None of them measures what your company said it would do.
Add one signal for promises past due: every commitment made to the account on a call or in an email, a feature date, an integration, a fix, that is now late. Weight a late promise to the economic sponsor above everything else in the row. A sponsor waiting on something you said would ship in March does not show up in a login graph, and they will bring it up at the renewal.
This data does not live in any one system. It is spread across call recordings, email threads and people's memory, which is the honest reason it is missing from usage-based scores. The pre-renewal review shows how to collect it by hand for the accounts renewing next quarter. Our own version reads it off call recordings, described in renewal risk flagging.
07
Back-test the score against what actually renewed
Every quarter · Owner: CS ops
Take every account that renewed or left in the quarter. Look up the score it had 90 days before its date. Count two kinds of miss: green accounts that churned, and red accounts that renewed without trouble.
The first kind costs revenue. The second costs CSM time spent rescuing accounts that were fine. Both mean a weight is off.
One team in the thread found their new score put most of their customers low, and the team did not like it. Resist tuning the weights until the dashboard looks comfortable. A score that makes everyone feel good is the green score from the first step, and you already know how that renewal goes.
08
Where this breaks
Small books. With a handful of churns a year there is not enough history to separate signals, and a weighted formula gives false precision. One commenter's team used a three-level qualitative rating for relationships instead, absent, supporter, active, and that is the right shape for a small book: a judgement, written down, checked at renewal.
Leadership that wants a number and will not define what it predicts. Someone in the thread summed it up in one line: "Leadership wants X, refuses to define X." The quarterly back-test is the answer to that meeting. It turns the argument about weights into a count of misses.
Whether to show the score to the customer is a question this playbook leaves open. Some teams share it in the QBR as a joint health check. Others keep it internal because a customer who sees amber starts negotiating. Either way, the score is only as good as the last renewal it got right.
Template · CSV
Customer health score back-test sheet
One row per account at renewal minus 90 days, the outcome, and a scoring block. Starting weights and cut-offs are assumptions to replace after your first back-test.
FAQ
What is a customer health score?
A single score, usually a weighted average of a few account signals such as usage trend, sponsor engagement and support activity, meant to predict whether a customer will renew. It is only useful if it is tested against real renewals; otherwise it describes activity rather than risk.
How do you calculate a customer health score?
Score each signal as red, amber or green (0, 50 or 100), multiply each by its weight, and divide the total by the sum of the weights. In a spreadsheet that is SUMPRODUCT of the scores and weights divided by SUM of the weights. Start with equal weights and adjust them by checking the score against accounts whose outcome you already know.
What should a customer health score include?
Only the signals that separated accounts that churned from accounts that renewed in your own history, typically three or four. Common candidates are usage trend, whether the sponsor is still in role and in contact, how many stakeholders are engaged, and promises made to the customer that are past due. In one r/CustomerSuccess discussion, several teams found ticket volume did not separate the groups.
Why do customers with a green health score still churn?
Because the weights were chosen by opinion and the score measures what the customer did, not what your company promised. A falling sponsor relationship or an overdue commitment to the buyer can sit behind strong usage numbers until the renewal conversation.
How often should you update health score weights?
Check the score every quarter against the accounts that renewed or left, and change a weight when the score misses in either direction: green accounts that churned or red accounts that renewed easily.
Want this run for you instead of by you?
Mindlyft builds post-call workflows inside your own CRM, drafts every customer-facing action, and holds it for a human to approve. We engineer the first workflow free.
Apply for a slot