The account that’s been emailing your support team twice a week, pushing back on your roadmap, and demanding to know why their last ticket took four days to close? That account isn’t going anywhere. People don’t argue with things they’re about to leave.
The one you should be worried about is the one you haven’t heard from in six weeks.
Most customer health scores are built on login frequency, NPS, and ticket volume. Metrics that are easy to pull from a CRM. So a dashboard that reads green, with no tickets, feature requests or reply to the last QBR invite could belong to the account that doesn’t renew
The five signals that actually matter
If you want to catch churn before the invoice fails, these are the indicators worth tracking:
- Support ticket velocity drops
A customer raising two or three tickets a month who suddenly raises none has stopped expecting resolution.
- Feature usage narrows
The customer was using five modules. Now they’re using two. Usage breadth is one of the cleanest early signals because it shows whether the product is still embedded in the workflow or just existing in the background.
- Check-ins and QBRs go quiet
The contact who used to confirm meetings within an hour now doesn’t respond for three days. Or at all. When the person who championed the purchase stops showing up to the conversation, the relationship is already at risk.
- Logins without activity
This one requires visibility your CRM alone can’t give you. A customer logging in daily but never completing a meaningful action, e.g. updating records, running reports, triggering workflows, is a passive user.
- A change in champions
Your champion leaves, or a new exec comes in above them. Either way, the relationship you built no longer exists. The new person didn’t choose you, doesn’t know your roadmap conversations, and has every incentive to re-evaluate everything their predecessor signed off on.
The 90-day retention number
If you want one metric that gives you an honest read on the health of your customer base, it’s this: how many customers from 90 days ago are still paying today?
Annual retention numbers smooth out the signal. Customers who’ve been with you for three years and are quietly disengaging look fine on an annual basis…until they don’t renew. The 90-day view catches the early churn problem, the onboarding failures, and the accounts that are technically active but behaviorally dormant.
Our benchmark: gross retention below 90% is a warning sign. It means you’re losing more than 10% of existing recurring revenue, and at that rate, acquisition has to work harder just to maintain the baseline, let alone grow it.
The average annual B2B SaaS churn rate sits around 4.9%. Top performers push NRR past 120%, meaning expansion revenue from existing customers more than offsets whatever they lose to churn. The gap between average and elite isn’t primarily a sales gap. It’s a retention gap.
A 5% improvement in retention increases profits by 25–95%, depending on your business model. Existing customers spend 67% more than new ones. The math has always been compelling. The challenge is building the operational visibility to act on it before the signal disappears.
What your stack can actually see
Most B2B tech companies are trying to track customer health across three or four separate systems that don’t talk to each other:
- CRM has the account record and the renewal date.
- Help desk has the support history.
- PSA has the project delivery data and the utilization picture.
- Finance has the billing and the invoice status.
(And none of them know what’s in the others.)
So, when someone asks, “how is this account doing?”, the answer involves opening four tabs, cross-referencing manually, and hoping nothing got missed. Which means it usually doesn’t get asked until something goes wrong.
The support ticket that wasn’t followed up on. The project delivery that slipped and was never escalated to the account owner. The renewal coming in 30 days that nobody flagged because it lives in a billing system that doesn’t connect to the CRM. The contact who stopped responding three weeks ago, which nobody noticed because their last login still shows as recent.
What to actually do about it
You don’t need new software to start. A few changes catch the silent accounts faster, regardless of what you’re running on.
Track velocity, not just volume. A monthly ticket count tells you nothing about direction. Look at the trend over the last three cycles: slowing is the signal, not the absolute number.
Make usage breadth a tracked metric, not an afterthought. Most teams know total logins. Few track how many distinct features or modules an account touches each month.
Put a name on every account, not just a tier. “Enterprise” and “SMB” don’t tell you who the champion is or whether they’re still responding. If nobody can answer “who’s our contact and when did we last hear from them” without checking three places, that’s the gap to close first.
Flag champion changes the moment you see them, not at renewal. A LinkedIn title change, an out-of-office reply naming someone new, a contact who stops showing up. Any of these should trigger an immediate check-in, not wait for the next scheduled call. The new person needs to hear from you before they decide you’re worth keeping.
Set a re-engagement trigger, not a renewal trigger. Most teams only act 30–60 days before renewal. By then, an account that’s gone quiet has been quiet for months. A trigger at “no meaningful activity in 21 days” catches it while there’s still time to act.
Ask one question every QBR cycle, account by account: when did we last hear from them unprompted? Not the last scheduled call, but the last time they came to you. If the honest answer is “I don’t remember,” that account needs attention before the next renewal date, not at it.
How TekStack helps
TekStack gives you a single view of every customer, across CRM, help desk, PSA, and revenue management, in one place, on one database, without a manual reconciliation step.
That means:
- Renewal visibility built in: Upcoming renewals surface automatically, with account health context attached.
- Support + CRM in the same record: When a ticket goes unresolved, the account owner sees it. When ticket volume drops suddenly, that’s visible.
- Customer 360 that actually covers 360 degrees: Project delivery status, billing history, open tickets, and sales activity all on the same screen. The question “how is this account doing?” has a real answer, in real time.
- Marketing automation that acts on the signal: Journeys can be built to trigger off CRM conditions – a renewal approaching, a contact going quiet, a usage pattern changing. Campaign attribution ties straight to revenue, so retention campaigns get measured as rigorously as pipeline ones.
- Agentic alerts that catch what people miss: Max, TekStack’s AI agent layer, can be configured to flag accounts showing the early indicators – narrowing feature usage, declining engagement, approaching renewals with open issues – before they become a conversation you’re having too late.
Churn is rarely a surprise in hindsight. The signals were there. The problem is that they were in the wrong systems, in the wrong order, seen by the wrong people.
If your gross retention is below 90%, or your NRR is below 105%, it’s worth asking not just what’s happening with your customers, but whether your stack is actually built to tell you.
TekStack is a B2B operations platform built on Microsoft 365. CRM, PSA, Help Desk, Revenue Management, and AI agents – in one place. See how it works →



