A practical way to build HubSpot health scores that actually flag churn before it happens.
Most "health scores" in mid-market B2B are either ignored or actively distrusted. You've probably seen one of these:
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.
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.
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:
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 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.
A useful health score is a weighted mix of observable behavior, value, and risk. The mistake most mid-market teams make is either:
A defensible starting pattern covers three buckets:
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_count and last_ticket_close_daterenewal_date and contract_term_lengthnps_value or csat_last_90_daysFrom 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.
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:
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.
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.
Once you have a signal your team trusts, build the operational layer around it:
HubSpot's doc covers where the score actually shows up on records: Access the health score card on records.
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.
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.