A customer almost never opens with "I'm thinking about cancelling." What actually happens is quieter and slower: a reply that used to come back the same day now takes a week, a feature they used constantly stops showing up in the usage numbers, a check-in gets rescheduled twice and then just doesn't happen. None of those, on their own, look like a churn signal. Stacked together, over three or four weeks, they are the whole story, told in advance. The businesses that catch a customer leaving before they say so aren't reading minds. They're reading the same signals everyone has access to, they're just reading them consistently instead of only after the cancellation email arrives.
This matters because of when the information is actually useful. By the time a customer says the account is cancelling, the decision is usually already made, often weeks earlier, during exactly the quiet stretch nobody was watching. The signals below aren't a mystery. They're mostly things a business already has data on. The gap is rarely "we don't have this information," it's "nobody is looking at it every day, on every account, until it's already too late to matter."
Why "the renewal date is fine" is the wrong signal to trust
The most common way businesses track account health is the renewal date on a spreadsheet or in a CRM field. That date tells you exactly one thing: when the contract is up. It tells you nothing about whether the account is happy, whether the champion who signed the deal still works there, or whether the product has been opened in six weeks. A renewal date sixty days out feels like safety. It isn't. It's just a calendar entry that hasn't come due yet, and a quiet account with sixty days on the clock is not meaningfully different from a quiet account with five, except that nobody's paying attention to it yet.
The businesses that get blindsided by cancellations are almost never the ones with accounts actively complaining. Complaints are loud, and loud problems get attention by default. It's the quiet accounts, the ones that stopped engaging without ever raising a hand, that walk out the door with the least warning, because there was never a moment where the warning was impossible to miss.
The actual signs a customer is about to churn
These are the signals worth tracking, roughly in the order they tend to show up before a cancellation:
- Usage tails off before anyone says anything. Logins drop, a feature that was core to why they bought stops getting touched, activity that used to be daily becomes weekly. This is usually the earliest tell, and the easiest one to miss, because nobody's checking usage graphs daily on every account.
- Replies slow down. An account that used to answer an email same-day now takes three or four. Slower replies don't always mean disengagement, but a consistent slowdown across several touchpoints, not one busy week, is a real pattern.
- The champion goes quiet, or leaves. The person who bought the product, who used to show up on calls and answer emails, stops being the one responding. Sometimes they've left the company and nobody updated the account record. A champion change with no new relationship built is one of the strongest predictors of churn there is, and it's also one of the easiest to miss if nobody's tracking who's actually replying versus who's listed as the contact.
- Check-ins get skipped or rescheduled. One skipped check-in is a scheduling conflict. Two in a row, especially without a reschedule request coming from their side, is an account deprioritizing the relationship.
- Support tickets go quiet, in the wrong way. A drop in support volume looks like good news. Sometimes it is. But a previously active account that suddenly stops filing tickets, alongside a usage drop, usually means they've stopped trying to make the product work rather than that everything's suddenly fine.
- Expansion conversations stall or go cold. An account that was mid-conversation about adding seats or upgrading, and then just stops responding to that specific thread, is telling you something different from an account that was never in an expansion conversation to begin with.
- Nobody's opened the last two account update or newsletter emails. A small signal alone, but combined with the others it's one more data point that attention has left the relationship.
None of these individually means an account is leaving. A slow week of replies happens to healthy accounts constantly. What makes the pattern real is more than one of these showing up together, sustained over more than a few days, on an account that used to look different.
Why this is a "when," not a "what" problem
Most businesses that lose an account to churn didn't lack the information. The usage data existed. The reply times were sitting in the inbox. The skipped check-in was on the calendar, crossed out. What was missing wasn't the data, it was somebody looking at it, on every account, before the renewal conversation, rather than during the post-mortem after the cancellation. A weekly glance at the accounts that are loudest, the ones with open tickets or active complaints, will always miss the quiet ones, because quiet accounts don't generate a reason to look.
This is exactly the gap Sanaf, the AI employee, working the customer success job, is built to close. Reviewing account health daily, across every account rather than the handful making noise, is the difference between catching a quiet account three weeks before a renewal and finding out at cancellation. That job includes reading usage and engagement trends every day, flagging the accounts going quiet with what changed and when, and running the check-ins on a schedule rather than whenever someone has a free hour. That's not a replacement for judgment about what to do with a quiet account. It's making sure the quiet account gets surfaced early enough that judgment has time to act.
What to actually do when an account goes quiet
Catching the signal is only useful if it changes what happens next. A few honest, non-gimmicky moves once an account looks quiet:
- Reach out with something specific, not a generic check-in. "Just checking in" gets ignored by an account that's already disengaging. "We noticed [specific feature] usage dropped, want to talk through what's not working" gets a reply, because it shows the outreach is based on something real.
- Find out if the champion changed. If the person who bought the product isn't the person replying anymore, that's the actual problem to solve, not the surface-level quiet.
- Bring renewal or account history to the conversation, not a blank page. An account that feels unseen is more likely to leave. Showing up to a check-in with the account's actual history, what changed, what was promised, what's outstanding, signals the opposite.
- Escalate genuinely at-risk accounts to a person immediately. Once a quiet account looks like it's headed toward cancellation, or the conversation turns to pricing or contract terms, that's a judgment call for a person, not something to automate further. Sanaf's job description says so plainly: the account gets handed off with full context the moment it needs a human decision.
Does this matter more for some accounts than others?
Not every quiet account carries the same weight, and treating all of them identically wastes attention on the wrong ones. A few practical ways to prioritize:
- Weight by revenue, not just by how loud the account has been historically. A high-value account that's always been low-touch can look "normal" right up until it's gone, precisely because low engagement was already its baseline. The signal to watch there isn't absolute activity, it's the change from that account's own normal.
- Weight accounts near a renewal date higher, but don't wait for the date to start watching. A quiet account ninety days from renewal has time to be fixed. The same account flagged the week before renewal usually doesn't, because there's no runway left for a real conversation.
- Weight accounts with a recent champion change highest of all. A new primary contact who hasn't been onboarded into the relationship is the single highest-risk state an account can be in, higher than a quiet-but-stable long-term contact.
This is also where a spreadsheet-based process tends to fall apart in practice, not because the logic is wrong, but because prioritizing forty or a hundred accounts by several shifting signals every week is exactly the kind of standing, repetitive judgment call that's easy to describe and tedious to actually execute by hand, week after week, without something dropping.
The honest limit of "watching for signals"
Reading engagement signals doesn't save every account. Some customers have a real reason to leave, budget cuts, a strategy change, a genuine mismatch with the product, and no amount of early warning changes that outcome. What early warning does change is which accounts get a real conversation before the decision is final, instead of a cancellation notice after it's made. It also means the accounts that were fixable, the ones that went quiet because a feature broke, a champion left, or a check-in got dropped, get caught while there's still a conversation to have.
The bottom line
A customer leaving rarely announces itself. It shows up first as slower replies, thinner usage, a skipped check-in, a champion who's gone quiet. Watching for the renewal date alone means missing all of that, because the date doesn't move until the decision's already made. Watching the accounts every day, and treating a stack of small quiet signals as the real warning it is, is what turns "we found out when they cancelled" into "we caught it while there was still time to call."
See how Sanaf on the customer success job reads account health and flags the quiet ones before a renewal is at risk, explore every job it can take, or get in touch to talk through your own account book.