The Customer Signal Library
40 churn, renewal, and expansion signals, organized by where they hide.
Every signal below ships with three things most signal lists skip: a precise definition, concrete detection logic you can implement as a query or rule, and honest notes on when it lies to you. Because a signal without false-positive notes is just a superstition with a dashboard.
What a signal is — and what it isn't
A metric tells you what happened. A signal tells you what to do before it happens. Most CS teams drown in the first and starve for the second: their dashboards report the past in exquisite detail while the future walks out the door unnoticed.
“NPS is 32” is a metric. “The champion's reply latency doubled over 60 days” is a signal. The difference isn't sophistication — it's actionability. A signal points at a specific account, a specific change, and a specific next step. A metric points at a slide.
Every entry in this library passes three tests before it earns the name:
Test 1
It leads the outcome
The change is observable weeks or months before the renewal, downgrade, or churn — not concurrently with it. Lagging indicators are autopsies.
Test 2
It has detection logic
You can write it as a query, a rule, or a report — against systems you already own. If it requires a feeling, it's an intuition, not a signal.
Test 3
It names its false positives
Every signal misfires in known ways. We document them, because a signal you can't argue with is a signal you'll eventually ignore.
The signal matrix
All 40 signals, filterable by source. Lead time is how far in advance the signal typically appears; false-positive risk is how often it cries wolf. Full definitions live on the source pages.
| Signal | Source | Typical lead time | False-positive risk |
|---|---|---|---|
| Stalled expansion pipeline | CRM | 60–120 days | Medium |
| Renewal close-date slippage | CRM | 30–90 days | Medium |
| Champion goes quiet | CRM | 45–120 days | Medium |
| Executive sponsor change | CRM | 60–180 days | Low |
| Risk language in activity notes | CRM | 30–120 days | Medium |
| Support cases spike pre-renewal | CRM | 30–90 days | Low |
| Contract redlines multiply | CRM | 30–60 days | Medium |
| Sponsor stops attending calls | Call transcripts | 60–120 days | Medium |
| "Remind me what we pay for" | Call transcripts | 30–90 days | Medium |
| Sentiment drop across calls | Call transcripts | 60–120 days | High |
| Competitor named by the customer | Call transcripts | 30–90 days | Medium |
| Value language disappears | Call transcripts | 60–180 days | Medium |
| Meeting no-show rate climbs | Call transcripts | 30–90 days | Medium |
| New stakeholder asks fundamentals late | Call transcripts | 30–90 days | High |
| Ticket volume spike vs baseline | Support tickets | 30–90 days | Medium |
| Severity mix shifts up | Support tickets | 30–60 days | Low |
| Reopened tickets climb | Support tickets | 30–90 days | Low |
| "How do I export my data" tickets | Support tickets | 14–60 days | Medium |
| Ticket sentiment turns negative | Support tickets | 60–120 days | Medium |
| SLA breaches cluster on one account | Support tickets | 30–90 days | Low |
| Champion shifts to transactional channels | Support tickets | 60–120 days | High |
| Core user activity drop | Product usage | 60–120 days | Medium |
| Feature breadth narrows | Product usage | 90–180 days | Medium |
| Power-user attrition | Product usage | 60–120 days | Medium |
| API and integration usage decline | Product usage | 60–180 days | Low |
| Seat utilization falls | Product usage | 90–180 days | Medium |
| New team activation stalls | Product usage | 90–180 days | Medium |
| Late payments start | Billing & payments | 60–120 days | Medium |
| Seats or modules cut | Billing & payments | 0–30 days | Low |
| Payment failures increase | Billing & payments | 30–90 days | Medium |
| Discount pressure escalates | Billing & payments | 30–60 days | Medium |
| Shorter term requested | Billing & payments | 30–60 days | Medium |
| Usage true-up disputes | Billing & payments | 30–90 days | Medium |
| Champion reply latency doubles | Email & Slack | 60–120 days | High |
| Thread participants shrink | Email & Slack | 60–120 days | High |
| QBRs and business reviews skipped | Email & Slack | 60–120 days | Medium |
| Shared Slack channel goes quiet | Email & Slack | 30–90 days | Medium |
| Unknown evaluator looped into threads | Email & Slack | 30–90 days | High |
| Detractor feedback goes unanswered | Email & Slack | 60–180 days | Medium |
| Renewal conversation moves to procurement only | Email & Slack | 14–60 days | Low |
Lead times are practitioner-observed typical ranges, not guarantees. Every signal's definition, detection logic, and false positives are documented on its source page below.
Browse by source
Signals hide in six places. Each source page covers why that source matters, every signal in it with detection logic and false positives, how to instrument it, and the pitfalls that burn teams.
7 signals
CRM
Salesforce, HubSpot — where commercial truth lives: opportunities, contacts, activities, and contract history.
Explore the signals7 signals
Call transcripts
Gong, Chorus, Fireflies — what people actually say on QBRs, cadence calls, and escalations.
Explore the signals7 signals
Support tickets
Zendesk, Intercom, Freshdesk — the support queue is where frustration shows up first, in writing.
Explore the signals6 signals
Product usage
Mixpanel, Amplitude, your warehouse — what accounts do inside the product, not what they say about it.
Explore the signals6 signals
Billing & payments
Stripe, Chargebee, NetSuite — money behavior rarely lies: late payments, downgrades, discount pressure.
Explore the signals7 signals
Email & Slack
Gmail, Outlook, Slack Connect — the relationship layer: reply times, thread participants, ritual engagement.
Explore the signalsDeep dive
Churn signals hiding in Salesforce
Five queries that surface renewal risk from the system you already own — close-date pushes, champion quiet periods, stakeholder changes — with honest notes on where Salesforce data lies.
Read the deep diveHow this library was built
These 40 signals were assembled from churn post-mortems, CS practitioner interviews, and thousands of buyer conversations in public CS communities — then filtered hard. For every ten candidate signals we considered, roughly six were cut: too vague to implement, too lagging to matter, or indistinguishable from a metric wearing a costume.
What survived had to be observable in a real system your team already owns — Salesforce, Gong, Zendesk, Mixpanel, Stripe, Gmail. Nothing here requires new software. That constraint is deliberate: we work alongside the CS platform you already own, and so should your signal layer.
A note on honesty: lead times are practitioner-observed typical ranges, not research findings and not guarantees. Your segments will differ — enterprise cycles run longer, SMB cycles shorter. Calibrate every signal against your own history before trusting it. The library is versioned below; when we learn a signal misfires more than documented, we update the entry and log it.
Update log
- v1.0 — October 2026: Initial release. 40 signals across 6 sources, each with definition, detection logic, and false-positive notes.
Want these signals running on your accounts?
The Signal Stack Audit maps which of these 40 signals your stack can already detect, which data you're missing, and where your blind spots are. Three business days, $1,500, async.