Core-X Solutions

One score, two questions

The signals that tell you an account is about to leave are the same signals that tell you it is ready to buy more. Most teams build two disconnected systems and act on neither. Build one, and point it in both directions.

Why one score, not two

Churn scoring and expansion scoring get built by different teams, at different times, on different data. Customer success owns one, sales owns the other, and the two disagree about the same account often enough that people stop trusting either.

They disagree because they are reading the same inputs and drawing opposite conclusions from the middle of the range. Heavy usage plus rising support tickets is either a customer in trouble or a customer outgrowing their plan. Nothing in a one-directional model can tell you which.

One score, read at both ends, forces the argument into the open. An account cannot be a red churn risk and a green expansion candidate at the same time, and when the model says it is, that is a definition problem you want surfaced rather than averaged away.

What the score weighs

Weights are a starting point, not a result. They should move once you can compare scores against accounts that actually renewed or actually left — until then they are an assumption you have written down, which is still better than one you have not.

40%Product usage
Frequency, breadth and depth: how often they log in, how many of the modules they paid for they actually touch, and whether that is trending up or down against the account's own baseline.
25%Engagement
Are they answering, attending, adopting? A quarterly business review that keeps being rescheduled is a stronger churn signal than most usage dips.
20%Support health
Ticket volume matters less than resolution time and reopen rate. A customer raising tickets is engaged; a customer whose tickets sit open is leaving.
15%Commercial signal
Seat growth, payment failures, downgrade requests, invoice disputes. This is the shortest-latency signal you have and it is usually the one nobody wires in.

The three decisions that decide whether it works

Score against the account’s own baseline, not an absolute. A customer who logs in twice a week and always has is healthy. A customer who logged in daily and now logs in twice a week is the one you want flagged, and an absolute threshold will rank them identically. Almost every score that gets ignored fails here first.

Weight recency hard. Behaviour from nine months ago tells you about a relationship that no longer exists. A 30-day window with a 90-day comparison catches direction; a twelve-month average catches nothing in time to act on it.

Agree what an account is before you score one. If the CRM has three records for the same customer — and after two migrations it usually does — you are scoring fragments. This is unglamorous and it is the step that most often has to happen first. See CRM data quality for what that involves.

Reading it down: churn risk

A score with no attached action is a dashboard. Each band below names who does what, and by when — that is the part that makes it a system rather than a report.

Red — acting now

Trigger: Score below 40, or any single hard signal: failed payment, downgrade request, champion left

A person calls. Not an email sequence. The purpose is to find out what changed, and the call happens inside two working days or the alert has failed.

Amber — watching

Trigger: Score 40–65, or a 20-point drop in 30 days regardless of absolute score

Enablement rather than rescue: targeted content, a training session, a check-in booked a week out. Re-score after the intervention and record whether it moved.

Green — expansion candidate

Trigger: Score above 80 with seat growth or new-department usage

Route to the expansion play below. A healthy account with no expansion motion is revenue you have already earned the right to ask for.

Reading it up: expansion

The expansion signals are the churn signals inverted, plus two the churn model does not care about: seat growth and use-case spread. A team adding users, or a second department appearing in the usage data, has made the buying decision already — the only question left is whether anyone notices in time to have the conversation.

Keep upsell and cross-sell separate in the model, because they need different evidence. Upsell — more of what they have — is justified by hitting the ceiling of the current plan. Cross-sell — a different product — is justified by a use case appearing that the current product does not serve. Scoring them as one number produces confident recommendations that the account manager cannot defend in the meeting.

Both are cheaper than acquisition, which is the usual argument for doing them. The better argument is that the evidence is already sitting in your systems and costs nothing to read.

The renewal clock the score feeds

Renewals go wrong at T−30 because the work should have started at T−90. Putting the score on a clock is what converts it from a monitoring exercise into a forecast you can defend.

  1. T−90 daysScore snapshot taken and owner assigned. Red accounts escalate here, not at T−30.
  2. T−60 daysCommercial conversation opens. Expansion case built if the account is green.
  3. T−30 daysPaperwork in motion. Anything still red is now a named risk on the forecast.
  4. T−14 daysEscalation if unsigned. Silence at this point is a decision, not a delay.
  5. T−0Renewal booked, and the outcome written back onto the score so the model learns.

What we did on one of these

A subscription business with five years of history had leads never contacted, opportunities abandoned mid-pipeline, and customers who had lapsed quietly. None of it was visible, because answering the question meant joining four systems by hand.

Every dormant record was scored against last contact, acquisition cost, previous value and the stage it stalled at, then surfaced as a working queue with the reason attached — refreshed each morning rather than exported once. 4,800 records re-scored, £240k of pipeline surfaced from data the business had already paid for.

The mechanism is the one described above: a score built from signals that already existed, attached to an action, and refreshed on a clock. Full case study.

How these fail

Nobody owns the alert. The score fires into a channel and everyone assumes someone else is on it. If a red account does not create a named task with a date, the model is decoration.

It is built on what is easy to measure. Logins are easy and weak. Whether the customer achieved the thing they bought the product for is hard and strong. Weight toward the second even when it takes work to capture.

It is never recalibrated. A score that has not been checked against actual renewal and churn outcomes is an opinion with a number attached. Write the outcome back and review the weights quarterly.

It measures the account and ignores the person. Accounts do not churn, buyers do. A green account whose champion just left is a red account that has not been re-scored yet.

Build the score, and the actions that hang off it

We connect the systems the signals live in, agree the weights with the people who have to act on them, and put the whole thing on a clock.

Discuss a project

Have a messy system?

That is usually where we can help.

Tell us what is not working, what is still manual, or what you cannot currently see clearly. If it is not something we should take on, we will tell you that too.

hello@core-x.solutions