April 22, 2026 · 4 min read · customer success

5 Churn Signals Hiding in Your HubSpot Data (That No One Is Looking At)

Most CS teams build health scores from one signal: usage. The signals that actually predict churn 60-90 days out are sitting in HubSpot, untouched. Here are five of them.

Most Customer Success teams I look at build their health score from one signal: product usage. If usage is up, the account is "green." If it drops, the account is "yellow." If it falls off a cliff, the account is "red."

The problem is that by the time usage falls off a cliff, the renewal conversation has already happened in the customer's head. They have already mentally cancelled. The CSM is just the last to know.

Better churn signals exist, and most of them are sitting in HubSpot already, in fields no one queries. Here are five.

1. Time since last meaningful contact, segmented by stakeholder role

The HubSpot field: last_contact_date on the contact record.

The mistake CS teams make is averaging last_contact_date across all contacts at an account. That hides the signal you actually want.

What predicts churn is silence from the economic buyer. If your CSM has talked to the day-to-day user three times this month but the VP who signed the contract has been silent for 90 days, you have a problem. The user likes you. The buyer is not paying attention. When renewal lands on the buyer's desk, you are an unjustified line item.

The metric to track:

buyer_silence_days = today - max(last_contact_date) where contact.role = "Decision Maker" or "Economic Buyer"

If buyer_silence_days > 60, escalate. If > 120, you are probably already losing this one.

2. Support ticket sentiment trend, not volume

The HubSpot field: ticket priority and ticket close reason on the support pipeline.

Volume of tickets is a noisy signal. Some of your healthiest customers file the most tickets because they are deeply embedded in the product. Some of your soon-to-churn customers file fewer tickets because they have given up.

What is predictive is the trend in ticket close reasons. Track:

If the ratio of (won't fix + no response) / (total closed) climbs above 30% over a 60-day window, that is a churn signal stronger than any usage drop.

3. NPS score change, not absolute value

The HubSpot field: custom property nps_score (if you survey through HubSpot's feedback tool).

Absolute NPS is not predictive. Plenty of accounts at NPS 7 renew. Plenty of accounts at NPS 9 churn three months later for reasons unrelated to satisfaction (their champion left, they got acquired, budget cycle changed).

What is predictive is the delta. An account that drops from 9 to 6 between surveys is at higher churn risk than an account that has been steady at 6 for two years. Compute:

nps_delta = current_nps - previous_nps

If nps_delta <= -2 and the time between surveys is under 90 days, this is a hot signal. If it stays negative across two consecutive surveys, you are now in a confirmed downward trajectory.

4. Internal champion role change

The HubSpot field: jobtitle and lifecyclestage on the contact record, plus engagement events (hs_email_open, hs_email_click).

Your champion is the contact at the customer who advocates for you internally. When their role changes, your renewal probability changes with it.

The signals to look for:

Any one of these is a yellow flag. Two of them in the same 30-day window and you should be on the phone, not waiting for the QBR.

5. Deal-stage history on associated open opportunities

The HubSpot field: dealstage history on the deals object, joined to the company.

If your sales team has open expansion or renewal deals against the account, the path that deal takes through stages is a churn signal you are probably not using. Specifically:

Any of these mean the buyer is buying time, not value. Buying time is the polite way of saying "I am evaluating alternatives." Treat every renewal where the close date slips by more than 14 days as a high-risk account, regardless of what the CSM thinks.

Putting it together

You do not need to build a machine learning model to use these five signals. A simple weighted sum, scored 0 to 100, will outperform most off-the-shelf health scores:

Signal Weight Trigger
Buyer silence > 60 days 25 Boolean
Support ratio (won't fix + no response) > 30% 20 Boolean
NPS delta <= -2 15 Boolean
Champion role change OR engagement drop 25 Boolean
Renewal deal slipped > 14 days 15 Boolean

Score above 50 = mid-risk. Score above 75 = high-risk. Pull the data weekly, not monthly.

Two of these five signals can be calculated directly in a HubSpot list view. The other three need a join to deals or tickets, which means either a workflow or a tool that can read across HubSpot objects. You do not need to write SQL for it, but you do need a tool that crosses the object boundary.

If you want to see what this looks like as an actual scoring agent that runs on your HubSpot data without code, that is what NoCodePredict does. But the formulas above are useful with or without us.

What signal does your team rely on that did not make this list?