A practical way to build HubSpot health scores that actually flag churn before it happens.
Why most health scores fail in mid-market B2B
Most "health scores" in mid-market B2B are either ignored or actively distrusted. You've probably seen one of these:
- A single green/yellow/red field in a spreadsheet that never seems to match what the CSMs are saying
- A model someone built in Sheets two years ago that nobody owns anymore
- A "score" that's really just a CSM's gut feeling, color-coded after the fact for the QBR slide
When we sit down with Heads of CS at mid-market companies, we usually find one of two situations. Either HubSpot's Customer Success Workspace hasn't been turned on at all — the team is running CS out of deal records, spreadsheets, and Slack threads — or someone enabled it during onboarding, set up two or three default fields, and never came back to finish the job. The workspace is sitting there, mostly empty, while the real work happens somewhere else.
That's not a HubSpot problem. That's a "we never made the time to actually build the system" problem.
The workspace is a foundation, not a finished product
HubSpot's Customer Success Workspace gives you the right bones — centralized records, account-level views, timelines, automation, and a real place for a health score to live. But out of the box, it doesn't know what your version of "healthy" looks like. That part is on you.
And if you haven't done that part, the signs are pretty consistent: your renewal_date property is optional and only half-populated. Product usage data syncs for your top 10 accounts and nobody else. Tickets get logged in HubSpot but escalations live in Slack. The CSMs are tracking risk in their heads, and the system is tracking nothing.
You don't have a bad health score. You don't have a health score at all — you have a vibe, and vibes don't forecast renewals.
What this looks like when you actually use it
We use Customer Success Workspace at Pivot, and the value isn't theoretical — it's daily. Being able to open one view and instantly see which clients are healthy, neutral, or at-risk changes how the team spends its time. The best part: we define what "healthy" means for our business. Not HubSpot's definition. Not a vendor's default. Ours.
A few things that make the workspace genuinely useful once it's set up:
- You see clients by health band, not by alphabetical list. Mondays start with "who's red this week" instead of "let me click through 80 records."
- Projects live inside the workspace too. Onboarding projects, implementation projects, expansion plays — the work that's happening on an account shows up next to the account itself, not in a separate tool.
- The signals are yours. We picked our success criteria based on what actually predicts a healthy Pivot retainer client. A SaaS company with usage telemetry would pick completely different signals. That's the point.
If you've turned on the workspace but haven't done this part — defined what success looks like for your business and configured the score to reflect it — you're using maybe 20% of what's there.
The better question to ask
The better question is not "What's the perfect health formula?" It's:
What are the 5–7 signals that would have told us this customer was at risk 90 days before they churned?
For a lot of mid-market teams we work with through Service & CS engagements, the first step is literally re-running the last 10–15 churned accounts and asking, "What did we know, and when?" Pull the records, walk the timeline, and write down every signal the system could have surfaced if anyone had been looking.
That list — not somebody's whiteboard from a 2023 offsite — becomes the shortlist for your first health score version.
Building a signal-based health score in HubSpot
A useful health score is a weighted mix of observable behavior, value, and risk. The mistake most mid-market teams make is either:
- Overfitting: 20+ inputs, nobody trusts it, the formula reads like tax code
- Oversimplifying: NPS only, or "last login date" — a single brittle signal pretending to be a system
The three signal categories that actually matter
A defensible starting pattern covers three buckets:
- Product engagement: logins, feature usage, integration activity — are they actually using the thing they're paying for?
- Commercial posture: contract term remaining, renewal date proximity — how close is the next decision?
- Support and sentiment: open ticket volume, escalation flags, survey responses — is the relationship healthy or quietly fraying?
What that looks like in HubSpot
In practice, that means consolidating signals into a small set of properties on the Company record:
last_product_activity_date(synced from your app or integration)open_ticket_countandlast_ticket_close_daterenewal_dateandcontract_term_lengthnps_valueorcsat_last_90_days
From there, Customer Success Workspace lets you configure a health score with point values or rules. HubSpot's how-to is worth reading line by line: Create a health score in the Customer Success Workspace.
Three bands, not seventeen
For a mid-market book of 40–200 customers, you don't need a PhD model. You need three bands your CSMs recognize on sight:
- Green: healthy product usage, no serious support or payment risk
- Yellow: one or two early warnings — slipping usage, renewal close with low engagement, recent escalations
- Red: multiple converging risks — renewal soon, low usage, negative survey, or active escalation
The trick is to make each band feel like something your CSMs would have flagged on their own anyway. If a CSM looks at a "red" account and says "yeah, that tracks" — you've built a good score. If they say "huh?" — you've built a Magic 8 Ball that finance is going to forecast against.
Operationalizing health scores in Customer Success Workspace
The health score itself doesn't save an account. The playbook does.
A score sitting on a record is a thermometer. The playbook is the doctor. You need both, and you really need the second one.
Wire it into the workflow
Once you have a signal your team trusts, build the operational layer around it:
- Build views by health band and segment — ARR, product line, region. The CSM should open HubSpot in the morning and see exactly where their attention belongs that day.
- Define explicit plays when a customer drops a band — green to yellow, yellow to red. "Reach out" is not a play. "Schedule an exec sync within 5 business days and log a renewal risk note" is a play.
- Timebox the reviews — weekly for red, biweekly for yellow, monthly for green. Otherwise reds quietly become "we'll get to it" until they become "we lost them."
HubSpot's doc covers where the score actually shows up on records: Access the health score card on records.
The cultural part is the hard part
The bigger shift is cultural, and it's the part nobody puts in the launch plan.
If CS leadership treats the score as a gotcha metric — something to wave around in QBRs when a CSM "should have known" — reps will work around it. They'll game the inputs, dispute the bands, or just stop trusting it. And then you're back to a spreadsheet.
If you use it as a shared early-warning system across Sales, Product, and Finance, it becomes the opposite: a way for a small team to spend its limited time on the accounts that actually need it. That's the version that compounds.
Want help building it?
If you want outside help designing the whole system — the data model, the signal definitions, the score config, and the plays that hang off of it — that's core to how we work with service and CS leaders: Who We Help: Service Teams.