Skip to content

Leading Indicators of Churn and a Simple Health Model

By Andrew Mark, Co-founder, Mir Tech

Published Updated 5 min read

RetentionCustomer SuccessAnalytics
On this page

The cancellation notice looks sudden. The decision usually is not. The customer spent weeks or months getting less value than they expected, and the signs sat in your data the whole time.

This post is about reading those signs early with a model small enough to run in a spreadsheet. If you later want it automated, the account health pipeline is the build guide for the same model.

Leading and lagging signals

Churn rate, a non-renewal notice and a low score at renewal are lagging indicators. They tell you what has already happened. By the time one moves, the customer has usually decided.

Leading indicators are behaviors that tend to appear first: usage falling, a champion who stops replying, onboarding that stalls. They give you a window in which the customer is still willing to talk. Keeping a customer usually costs less than replacing one, and retained accounts often expand, so for a small team a saved account is worth far more than the effort to save it.

What to watch

No list of signals transfers perfectly between products. Start from your own customers: which actions did the accounts you kept take in their first ninety days, and which did the accounts you lost never take? The answer is your usage signal.

Four groups cover most B2B cases.

Usage. Compare each account with its own recent past, not with a global average. A drop in weekly active users inside one account says more than a low absolute number. Track the one or two actions that deliver the value you sold, because logging in without doing them is a warning. Watch breadth too: an account that depends on one user collapses when that person leaves. Accounts that never reach their first success milestone are the riskiest group of all, since they never saw the value. A tight sales-to-CS handoff is the best defense against that stall.

Relationship. Note when your main contact stops replying, changes role or leaves. If you only ever talk to day-to-day users and have never met the budget holder, renewal rests on someone you cannot influence. Canceled check-ins are an early sign of lower priority.

Support. Look at volume and tone. A sudden rise in tickets matters, and so does the customer who used to ask questions and now says nothing. An open request that nobody has answered ages badly, so track its age.

Commercial. Late payments, requests for fewer seats and questions about cancellation terms are direct signals. Time to renewal does not predict churn alone, but it changes how much the other signals deserve.

We would keep survey scores such as NPS out of the model. They arrive late, many customers never answer, and the ones who do are not a random sample. The same goes for a mood you guessed during a QBR. Write down what you observed, and check it against behavior.

A health model in a spreadsheet

The model turns those signals into one status per account. It has to be cheap to run, easy to explain and easy to correct.

Pick one or two signals per group. A reasonable first set:

SignalSourceHealthyAt risk
Active users, last 30 days vs previous 30Product analyticsStable or risingFalling for two periods
Core-feature useProduct analyticsUsed weeklyNot used in a month
Champion engagementCRM and emailReplied this monthNo reply in six weeks
Open support issuesHelpdeskNone older than a weekAny older than two weeks
Time to renewalCRMOver six monthsUnder ninety days with other flags

The thresholds are placeholders. Set yours from what your kept and lost accounts really looked like.

Score each group 0, 1 or 2 (red, amber, green). Keep it coarse, because fine-grained scores suggest an accuracy the data cannot support. Usage takes the weaker of core-feature use and the active-user trend. Relationship is champion engagement. Support is the open-issue signal. Commercial counts against an account only when the renewal is close and another group is already weak.

Then weight the groups. Usage sits closest to value delivered, so it gets the most weight.

health = 0.35 * usage
       + 0.25 * relationship
       + 0.25 * support
       + 0.15 * commercial

The total runs from 0 to 2. At 1.6 or more the account is green, from 1.0 to 1.6 amber, below 1.0 red. These weights and cut-offs match the pipeline guide, so the spreadsheet and the automated version agree. They are a hypothesis. Change them when your own accounts show a different pattern.

Four health groups with weights of 0.35, 0.25, 0.25 and 0.15 feed one score that maps to green, amber or red.
The health score: four weighted groups, one band

Two rules keep the model honest. First, score a missing signal as bad. A blank cell that reads as green hides exactly the accounts you know least about. Second, write overrides as explicit rules: a champion who has left, a formal complaint or a cancellation request makes the account red whatever the score says, so nobody has to argue it in the meeting.

What each band triggers

A score only matters if each band starts something specific.

  • Green: keep the normal rhythm and look for expansion or references.
  • Amber: the owner contacts the customer within a week with a concrete reason, such as a usage review.
  • Red: the owner raises it in the weekly review, brings in a senior person and agrees a recovery plan with a date.

Run it as a thirty-minute weekly habit. Update the scores (by hand at first), spend most of the time on accounts that moved down, name one owner and one dated next action for each at-risk account, and log whether the outcome was a save, a loss or still open. If the meeting runs longer, you are tracking too many accounts at the same depth. Give smaller accounts a lighter treatment, and let a behavioral trigger replace some manual check-ins.

Match the response to the cause

An amber account is not one problem. The cause decides the response.

When adoption is low, offer a working session on the single workflow that delivers value. A generic tips email will not move it. When the champion has left, ask them for an introduction to their replacement, or find another user who gets value and build from there. When the customer cannot see the value, send a short summary of what they achieved, in their terms. When support has frustrated them, fix the problem first and follow up personally, because an account review before the fix reads as protecting the contract. When the pressure is budget, understand the constraint before you offer a discount. A smaller plan can keep the account where a discount only delays the loss.

Write these responses down. A documented response is easier to teach and improve than one in a single person's head, which is the same logic behind a written sales playbook.

Check the model against what happened

After a quarter, test it. For each account that churned, find its status 60 and 30 days earlier. If most were green, the model is missing a signal. If many red accounts renewed with no action, your thresholds are too sensitive and your team will start to ignore them. Change one weight or threshold at a time, then watch a full cycle.

One last warning. A health score is a tool for deciding where to spend time. Teams that treat it as a scorecard for themselves tend to nudge the numbers, and then it stops telling you anything.

Frequently asked questions

How many signals does a health score need?

Four to six. Pick signals that change before a renewal decision, such as use of the core feature, champion contact and old support tickets. A score with twenty inputs is hard to explain and hard to trust. Add a signal only when a churned account shows you that you were missing it.

Do we need machine learning to predict churn?

Not at the start. Machine learning needs a long history of churned and retained accounts, and a team with a few dozen or a few hundred customers rarely has one. A weighted checklist that a person can read and argue with does the job. Use it to log outcomes, and you build the labeled history a statistical model would need later.

What if we have no product usage data?

Score the signals you do have. Support tickets, email replies, meeting attendance, late invoices and stakeholder changes all say something about health. Then treat the missing usage data as a gap to close, because usage carries the most weight in the model below.

Related Content