The event that leaves no trace
A new customer produces a payment you can see. A price rise produces a different amount. A complaint produces an email. Every meaningful change in a customer relationship generates something — except the most important one.
When a customer stops paying, nothing appears anywhere. The statement for that month looks entirely normal: two hundred lines, all of them genuine. What is missing is one line among the many that could have been there, and no human scanning a list can notice an absence in that form.
This is not a data problem. The information is fully present in what you already have — it is simply arranged in the one layout that makes it impossible to see.
Why absences are invisible
People are good at spotting things that are wrong and poor at spotting things that are not there. A duplicate charge stands out. An unfamiliar payee stands out. A customer who used to appear and no longer does stands out to nobody, because there is nothing to stand out.
The consequence is a systematic delay. Most businesses without a billing system discover a lost customer when someone happens to think of them — which is typically months later and often only because of an unrelated conversation.
By then the situation has usually hardened. An expired card that would have taken a two-minute call in week one has become a customer who has been living without your service for a quarter and has arranged their work around its absence.
Everything on this page follows from that single observation: the value is not in detecting churn, which is easy after the fact. It is in detecting it in the first week.
Two kinds of stopping
They look identical in the data and require completely different responses, which is why conflating them is expensive.
| Involuntary | Voluntary | |
|---|---|---|
| What happened | The payment mechanism broke | The customer decided to leave |
| Typical cause | Expired card, cancelled mandate, closed account | Price, value, a competitor, a changed need |
| Customer's intent | Still wants the service | Has moved on |
| Recoverable? | Usually, if reached quickly | Sometimes, with a different conversation |
| Right response | Practical — fix the mechanism | Human — find out why |
| Cost of delay | High and rises steeply | High and mostly already incurred |
Bank data cannot distinguish the columns — both produce the same blank cell. The distinction comes from asking, and asking early is what makes the answer useful. A customer contacted in week one will generally tell you which it is; a customer contacted in month four has usually stopped thinking about you at all.
The involuntary column is where the recoverable money is, and it is systematically underestimated. A meaningful share of customers who “churned” from a business without a billing system never decided anything — their standing order was cancelled when they changed bank, and nobody told either party.
Making it visible
One change does almost all the work: put customers down the side and months across the top, instead of transactions in date order.
In that layout a missing payment becomes a blank cell in a row that has fifteen filled ones. Blank cells in a grid are visible instantly and need no calculation, no threshold and no alert. The eye does the detection.
It is worth pausing on how little technology this requires. It is a pivot table. What made it hard was never the analysis — it was getting two years of PDF statements into rows, which is the part worth automating and the part that contains no judgement at all.
Sort by the current month descending so your largest customers sit at the top, where a gap matters most. The full construction is in the MRR guide, and the pattern recognition underneath it on subscription detection.
The grace period
A blank cell is not automatically a problem, and treating it as one produces a process that cries wolf until people stop reading it.
Payments arrive late for entirely mundane reasons: a weekend, a bank holiday, an approver on leave, a customer who pays invoices in batches on the first Friday of the month. None of these mean anything.
So a grace period is required — two to four weeks past the expected date suits most businesses. The exact number matters far less than applying it identically every month, because a threshold that moves makes month-to-month comparison meaningless.
Set it against your own collection reality rather than a general rule. If most customers pay within three days of the due date, two weeks is generous. If your customers routinely pay a fortnight late, a two-week grace period will flag half your base every month and be ignored within a quarter.
Contraction comes first
The blank cell is a lagging signal — by the time it appears, the decision has been made. There is one leading signal available from payment data, and almost nobody watches it.
A customer who pays less than before has not left, and is telling you something. Fewer seats, a downgraded plan, a reduced retainer. Every one of those is a decision to spend less on you, taken by someone who is still a customer and still willing to talk.
Contraction typically precedes cancellation by several months. That is a long window in which a conversation is both possible and welcome — and it closes silently while everyone watches for the cancellation instead.
Most home-made trackers never compute it, because counting customers is easier than comparing amounts. It is one extra column in the grid and it is worth more than the churn number itself.
Annual customers give no signal at all
Everything above assumes a monthly rhythm whose interruption you can see. Annual customers break that assumption completely, and they are usually your largest.
An annual customer who does not renew produces no blank cell, because there was never a monthly payment. They simply are not there next March, and the eleven months of silence before that look exactly like the eleven months of silence in a perfectly healthy year.
The only mechanism that works is a renewal list: every annual customer with the month they are due, checked monthly against what actually arrived. Two minutes a month, and it is the difference between noticing a non-renewal within weeks and noticing it a year later.
The same applies to quarterly customers with a shorter horizon. Any interval longer than monthly needs an expected-date list, because the pattern is too sparse for an absence to register.
How it works
1 · Convert the statements
Every account, at least two years so annual patterns exist. Up to 100 files at once.
2 · Check the series
A missing statement produces a whole column of false blank cells — the worst possible failure for this exercise, so continuity is checked first.
3 · Group the payers
Name variants merged into one customer, recorded once so the grouping holds next month.
4 · Build the grid
Customers down, months across, sorted by current value so the largest gaps are at the top.
5 · Read the blanks and the drops
Absences past the grace period, and customers paying less than before.
6 · Contact this week
The list is short. Recovery rates fall steeply with time, so the timing is the whole point.
What to do about it
The list is short — in a healthy business, a handful of rows a month. That shortness is what makes a human response affordable.
Assume an oversight first. It is the most common explanation by a wide margin. A light note asking whether everything is in order costs nothing and preserves the relationship; an accusatory reminder damages it for no reason in the majority of cases.
Match the channel to the value. A short automated message is proportionate for small amounts. For your larger customers a person should make contact — treating a significant relationship as a dunning ticket is a poor trade.
Ask, do not assume. The message is not really about the payment. It is an opportunity to find out something you would otherwise never learn, and customers are usually candid when asked early and without pressure.
Record the reason. One field, kept consistently. After a year, the pattern of reasons is the most valuable retention data you will ever have, and it costs nothing to collect while you are already making the call.
A recovery sequence that is not annoying
Four contacts over a month, escalating in effort rather than in tone. The aim is to be helpful for as long as possible, because most of these people are not avoiding you.
| When | Contact | Tone |
|---|---|---|
| Day 3–5 after due | Short note: did this reach you? | Helpful, assumes an oversight |
| Day 10–14 | Follow-up with the invoice attached | Still helpful, slightly more specific |
| Day 21 | A person makes contact | Conversational — ask, do not chase |
| Day 30 | Decision: pause the service or write it off | Clear, and communicated |
Most recoveries happen at the first contact, which is the argument for making it early and making it gentle. The later steps exist for the minority, and their tone should not be set by that minority.
The fourth row is the one people avoid, and avoiding it is how a customer ends up receiving a service for six months without paying. Make the decision, communicate it plainly, and leave the door open.
Measuring whether recovery works
Two numbers, both simple, both responsive to actual improvement.
Days to first contact. Measured from the expected payment date. This is the number you control directly, and it is the one that drives everything else — nothing about recovery improves while it stays at forty.
Share of blanks resolved within thirty days. How many turned into payments. This is the outcome measure, and it responds to the first with a lag of a month or two.
Resist adding more. Recovery rate by segment, by channel and by reason are all interesting once you have two years of consistent data, and noise before that.
Track both against the same month last year rather than against the previous month — the reasoning is on period comparison, and it applies here because payment behaviour is seasonal in most businesses.
Who owns the list
The most common way this process fails is not analytical. The grid gets built, the blanks get surfaced, and then nobody is specifically responsible for the calls — so they happen when someone has a quiet afternoon, which is never in the week that matters.
Give the list one named owner and a standing slot. In a small business that is usually whoever runs finance; in a larger one it belongs with whoever owns the customer relationship, because the conversation is not really about money.
Set the expectation that the list is short and always gets cleared. A handful of rows a month is an achievable commitment; a backlog of forty is one that quietly becomes optional, and an optional retention process is the same as no retention process.
Record what happened against each row — recovered, cancelled, still chasing. Not for reporting, but because next month’s list needs to know which blanks have already been dealt with, and without that the same names come round again and the owner stops trusting it.
Six mistakes
Waiting for the customer to say something
The involuntary ones will never say anything — they do not know their payment failed.
Treating every blank cell as churn
Most are late payments. A process that cries wolf gets ignored, and then the real one is missed too.
Only watching cancellations
Contraction arrives months earlier and is the only leading signal payment data offers.
No renewal list for annual customers
Their non-renewal produces no signal whatsoever, and goes unnoticed for a year.
A missing statement read as a quiet month
Produces a column of false blanks — which is why continuity is checked before anything else.
Chasing rather than asking
Assumes bad faith in the majority of cases where there is only an oversight, and costs the relationship.
What this is not
It is not a dunning system. It does not send emails, retry cards or manage a sequence. It produces the list; the contacting is yours.
It is not a substitute for a payment processor where you have one. Stripe and GoCardless report failures directly and retry automatically, which is strictly better. This exists for customers who pay by transfer, standing order or invoice — where nobody reports anything at all.
It does not tell you why a customer left. It tells you that they might have, early enough that asking them is still realistic — which is generally the more useful of the two.
And it cannot separate involuntary from voluntary churn. That distinction does not exist in bank data and never will; it exists in a conversation, which is the entire argument for having one quickly.
