THE SHORT ANSWER
Customers decide to leave about 90 days before they say so. The first signal is silence from your champion, not a complaint. A renewal question from procurement means the decision is already made. Health scores average signals. Averages hide the ones that matter.
By the time a customer tells you they are leaving, they have told three people internally. Their manager. Whoever holds the budget. Whoever has to approve the replacement.
You are the last person in that sequence, not the first. The cancellation email is not the start of the decision. It is the paperwork at the end of one.
KEY TAKEAWAYS
- Customers decide to leave about 90 days before they say so
- The first signal is silence from your champion, not a complaint
- A renewal question from procurement means the decision is already made
- Health scores average signals, and averages hide the ones that matter
IN THIS POST
How far ahead can you actually predict churn?
Sixty to ninety days is realistic. Thirty days is easy and close to useless, because by then the decision is made and you are negotiating rather than fixing.
Past 120 days you are guessing. Anyone selling a model that predicts six months out is selling you a correlation with company size.
The honest range is narrow. It is also enough. Sixty days is a full renewal cycle. Time to fix something real instead of offering a discount.
My pipeline is dry
Reading about pipeline at 11pm won't fill yours. We rebuild how B2B SaaS gets found and chosen. Real work, not tips.
1. 90 to 60 days out, the quiet signals
Nothing looks wrong yet. That is what makes this window valuable and why almost everyone misses it.
Your champion stops replying quickly. Not silence. Just slower. Two days instead of two hours.
Seat usage flattens. You are not losing seats. New ones simply stop being added. Growth inside the account stops before decline starts, and flat reads as fine on every dashboard you own.
The advanced features go quiet first. The ones that needed a training session to adopt. People fall back to the basics, and the basics are what a competitor can also do.
Nobody complains. Nobody escalates. The account is green everywhere you look.
I watched a client at around 4M ARR lose an account nobody had flagged. Going back through it afterwards, the champion had stopped forwarding their reports internally about eleven weeks before the cancellation. Nothing else had moved. That signal was sitting in an inbox, not in any dashboard.
The tell I look for is not any one of these. It is that all of them are movements against that account’s own baseline, not against an industry benchmark. A customer who logs in twice a week and always has is fine. A customer who logged in daily and now logs in twice a week is leaving.
2. 60 to 30 days out, when it gets visible
Now it shows up where people notice.
Login frequency drops properly. Not one bad week. Three or four weeks of decline against that account’s normal.
Support tone changes, and the volume goes down rather than up. People stop asking for help once they have stopped caring whether it works. A quiet support queue is not a healthy one.
Meetings move. The quarterly review gets pushed once, then again. Someone junior attends in place of your champion.
A new face appears on calls, often from procurement or finance. That is not curiosity. That is a review already underway.
This is where most teams I work with first notice, which is why most saves are expensive. You are now arguing with a decision that is already half made.
3. Under 30 days, what is still saveable
Be honest with yourself here. Most of this window is already gone.
You will see contract dates being checked. Downgrade questions dressed up as budget questions. Data export requests. A quiet ask for a list of your integrations, which is someone checking how hard it would be to leave.
The saves that land in this window are the ones where you fix something concrete inside a week. Not the ones where you offer twenty percent off.
Discounting this late buys one renewal and a worse customer. They come back next year with the same problem and less patience, and now your price is anchored lower.
The last save I was part of at this stage was not clever. The customer had a broken integration they had stopped reporting, because they assumed we already knew. We fixed it in four days and they renewed. The two before that, we discounted, and lost them anyway a year later.
What to do when each signal fires
This is the part the dashboards leave out, because a dashboard’s job ends the moment the alert fires.
Champion slows down. Get on a call that is not a check-in. Ask what changed on their side. A reorg, new priorities, a budget review. The cause is usually not your product, and you cannot fix what you have not asked about.
Seats flatten. Find out who stopped being onboarded. New joiners not getting access is the clearest sign your product has left the workflow and become optional.
Advanced features go quiet. That is a training gap, not a value gap. It is the cheapest thing on this list to fix and the one most often ignored, because it looks like a customer problem rather than yours.
Logins drop. Stop emailing. Call. Bring one specific observation about how they are using the product, not a health score. I have never once seen an account saved by being shown an amber dot.
Review pushed twice. Escalate on your side, not theirs. A founder joining the call changes the conversation, because it tells them the account matters to someone with authority to fix things.
Procurement appears. Ask directly whether a review is happening. People will usually tell you. The question costs nothing. The guessing costs the account.
Under 30 days. Pick the one thing you can genuinely fix in a week, and fix it. Nothing else moves the decision at this point.
Why customer health scores usually fail
Most health scores I see average five or six signals into one number between zero and a hundred.
The averaging is the problem. An account with strong support sentiment and collapsing usage comes out amber. An account with mediocre everything also comes out amber. Same colour, entirely different situations, and only one of them is leaving.
The signal that matters is almost never the average. It is the one moving fastest against its own baseline, and averaging is precisely the operation that hides it.
Health scores also get built once and never recalibrated. The weights that predicted leavers two years ago stop working the moment you change pricing or ship a new core feature.
Keep the score if it helps you triage. Just keep the underlying signals visible next to it. The score is a summary. It is not the finding.
What this costs you in net revenue retention
SaaS Capital surveys more than a thousand private B2B SaaS companies each year. For companies between three and twenty million in ARR, median net revenue retention sits at 103 percent and median gross retention at 91 percent. The ninetieth percentile reaches 117.9 percent.
Read the gap rather than the number. The median company that size is holding roughly flat inside its existing base. Everything it grows comes from new customers, bought again every quarter at full price.
ChartMogul studied over 2,100 SaaS businesses and found companies above 100 percent net retention grow 43.6 percent a year. Companies below 60 percent grow 13.1 percent. Same market, same conditions, three times the growth rate.
That is the real argument for watching these signals. Not damage control. Growth you have already paid for and are giving back.
A customer leaving is never one number going down. It is the expansion you will not get, the reference you will not have, and the quarter you spend replacing revenue you already earned.
The real problem is not prediction
Every signal in this post is already sitting in a tool you pay for.
Product usage lives with product. Support tone lives with support. Contract behaviour lives with finance. Meeting patterns live in somebody’s calendar and nowhere else. Four owners, four tools, and no one whose job it is to read them together.
That is why customers leave quietly at companies with good products and good people. Not because the signals were subtle. Because nobody was looking at all of them at once.
Fixing that is not a tooling decision. It is deciding who owns the whole picture, what they look at every week, and what they are expected to do when something moves. If customers are leaving quietly and you want the system that catches it, that is the work we do in Keep and Grow.
FAQs
Slower replies from your champion, seat growth flattening, advanced features going unused, and login frequency falling against that account’s own baseline. The earliest signals are all quiet ones. Nothing breaks and nobody complains.
Sixty to ninety days is realistic if you are watching usage at feature level. Thirty days is easy but too late to fix anything. Past 120 days, prediction stops being reliable.
Sustained decline against that customer’s own normal, not against an average. Watch seat utilisation, whether new joiners get onboarded, and whether the features that took effort to adopt are still being used. Compare each account to its own history.
Complaining is work. Once someone has decided the product is not worth fixing, raising a ticket is effort spent on a relationship they are already ending. Silence is not satisfaction. It is often the last stage before leaving.
Call rather than email, and bring one specific observation about their usage. Ask what changed on their side. Do not lead with a discount and do not lead with a health score.