Ask a business why it lost a good customer and you'll usually hear about price, or a competitor, or a change of buyer. Ask when they noticed and the answer is almost always the same: when the orders had already stopped.
That's the interesting part. Customer loss is rarely an event. It's a slope — smaller orders, longer gaps, a narrower range — and the slope is recorded in perfect detail in your own systems for months before anyone mentions it in a meeting.
The reason it goes unnoticed isn't negligence. It's arithmetic. Nobody can hold the ordering rhythm of two hundred accounts in their head, and revenue totals hide the problem beautifully: three accounts sliding and one new one winning looks like a flat, unremarkable month.
Three signals, in order of usefulness
Cadence: the gap between orders
This is the strongest and most underused signal in small business data. Most repeat customers have a rhythm — every three weeks, every month, first week of the quarter. The rhythm is specific to them, which is exactly why an all-customer rule like "flag anyone who hasn't ordered in 60 days" performs so badly. It screams about the quarterly buyer and says nothing about the weekly one who's now on day eighteen.
The fix is to compare each customer against their own history, not against the average. Take their median gap between orders over the last year or so, then look at how far past it they now are. A customer at twice their normal gap is a genuine signal; the same absolute number of days might be completely normal for the account next door.
Median rather than mean matters here, because one Christmas order or one unusual bulk buy will drag an average around enough to hide a real change.
Volume trend: the quiet shrink
Some accounts don't stop; they thin out. Still ordering every three weeks, but two cases instead of five. This one is easy to miss because the customer is still active, still friendly, still on the list — and if you only look at "when did they last order", they look perfectly healthy.
Compare their last three orders against the three before that. A sustained fall of a third or more, without an obvious seasonal reason, usually means they've started buying somewhere else and you're now the second supplier. That's a much easier conversation to have while you're still in the building.
Range: how much of you they buy
The number of distinct products or services a customer takes is a good proxy for how embedded you are. An account that used to buy four lines and now buys one is fragile even if the revenue looks stable, because a single decision removes all of it.
Range is also the most actionable of the three, because the gap is specific: you know precisely what they've stopped taking, and you usually know which similar customers still take it.
Turning three signals into one list
Scores are seductive and often useless. A single "health score" out of a hundred hides the reason, and the reason is the only part your salesperson can use. "Account health: 62" prompts nothing. "Orders every 3 weeks, now at 5, and has dropped cask entirely" prompts a phone call with a purpose.
So keep the components visible. Rank by expected value at risk — roughly, what this account is worth annually multiplied by how far outside its own normal pattern it's drifted — but always carry the human-readable reason alongside it.
- Who, and what they're worth a year
- Why they're on the list — the specific pattern that broke
- What they usually buy, so nobody has to look it up first
- What similar accounts buy that they don't — the reason to ring beyond "checking in"
- When anyone last spoke to them, and what was said
Practical traps
Seasonality. A garden centre supplier is not losing customers in November. Compare like periods, or compare each account's drift against the drift of the whole book — if everyone's slowed, that's your market, not your relationship.
New accounts. A customer with two orders has no reliable rhythm. Exclude anyone below a handful of orders rather than generating noise about them.
Consolidated ordering. Sometimes a customer moves from weekly to monthly ordering of the same total volume. Cadence alone flags this as a crisis; cadence plus volume shows it for what it is — a purchasing-process change, worth knowing but not worth panicking about.
Alert fatigue. A list of forty at-risk accounts gets ignored exactly as fast as a forty-tile dashboard. Cap it at the five or ten that matter most this week. A short list that gets worked beats a complete list that doesn't.
Why this is worth more than new business
The arithmetic is uncomfortable. Winning a replacement customer costs marketing spend, discounting, and months of onboarding attention. Keeping an existing one costs a phone call made three weeks earlier than usual. Same revenue, wildly different cost — and the existing customer already knows how you work, pays on your terms, and doesn't need educating.
There's a subtler benefit too. Customers who are drifting rarely complain first; they simply reduce. When you ring an account that has gone quiet, you tend to find out something true about your product, your delivery or your prices that no survey would have surfaced.
What to do this month, without buying anything
You can test whether this is worth automating with a spreadsheet and an hour:
- Export two years of orders with customer, date and value.
- For each customer, calculate their median gap between orders and the days since their last one.
- Sort by days-since divided by median-gap, descending. Ignore anyone with fewer than four orders.
- Look at the top twenty. Ring the five you'd be most annoyed to lose.
If those calls turn up two accounts you didn't know had gone quiet, you've learned two things: the signal is real in your business, and doing it manually is a job nobody will keep doing every week. That's the point at which it's worth having software watch the pattern for you, and send the list to the person who makes the calls — every week, without being asked.