TL;DR

  • A customer health score combines behavioral, commercial, and sentiment signals into a single number (0–100) that ranks accounts by churn risk. The best health scores use 3–5 signals, not 20.
  • The 4 strongest signals: engagement velocity (week-over-week change in activity), feature breadth (number of distinct features used), support pattern (ticket frequency and sentiment), and billing signals (failed payments, seat reductions, contract end proximity).
  • Engagement velocity is the single strongest predictor. A 40% drop in weekly logins predicts churn with 78% accuracy — higher than any NPS score or survey response.
  • Health scores should update weekly, not daily. Daily scores are too noisy. Weekly scores smooth out the noise while catching meaningful trends. Monthly scores are too slow — by the time the score drops, the customer has already decided to leave.
  • The health score is only valuable if it triggers action. A score of 35 means nothing without a playbook: "At 35, the CSM schedules a value review within 48 hours." Without the playbook, the score is a dashboard decoration.
  • The recovery rate metric: If 70%+ of customers who hit friction resume meaningful usage within 48 hours, your product relationship is healthy. Below 60%, customers are building workarounds or mentally cataloging reasons to leave.
  • Most health scores fail because they're built on vanity metrics. Page views, login counts, and "time in product" don't predict churn. Feature adoption depth, engagement velocity, and support sentiment do.

Signal 1: Engagement Velocity (Weight: 25%)

Engagement velocity as a predictive churn signal
The Dominant Signal: Why engagement velocity is the strongest predictor of churn intent.

What it measures: The week-over-week change in total user activity for the account.

How to calculate:

Velocity = (events_this_week - events_last_week) / events_last_week * 100

Churn thresholds:

  • Velocity > -20%: Healthy (stable or growing activity)
  • Velocity -20% to -50%: Warning (declining activity)
  • Velocity < -50%: Critical (rapid disengagement)

Why it works: Users don't churn all at once. They use the product less and less until they stop. Engagement velocity catches this decline 2–6 weeks before the cancellation.

Predictive accuracy: A 40% drop in weekly logins predicts churn with 78% accuracy. This is the strongest individual predictor we've found — stronger than NPS, stronger than support ticket count, stronger than feature adoption rate.

Real example: In our work with a healthcare SaaS ($15M ARR), engagement velocity decline started an average of 37 days before cancellation. The customers who said "it came out of nowhere" had a visible 37-day warning they weren't measuring. Tracking this single signal was the foundation of a 23% churn reduction in 90 days.

Signal 2: Feature Breadth (Weight: 25%)

What it measures: The number of distinct features the account used in the last 14 days, compared to their 30-day average.

How to calculate:

Breadth Ratio = features_used_last_14_days / features_used_last_30_days_average

Churn thresholds:

  • Ratio >= 0.7: Healthy (using most of their normal feature set)
  • Ratio 0.4–0.7: Warning (narrowing usage)
  • Ratio < 0.4: Critical (using only core features)

Why it works: When users start churning, they don't stop using all features simultaneously. They drop features one by one until only the core workflow remains — and then even that fades.

Real example: In an HR platform engagement, retained users used an average of 8.3 distinct features in their first 30 days, while churned users used 2.1. The gap wasn't just in volume — it was in which features. Churned users clustered on reporting features but never configured integrations, which is where the product's real value lives. That analysis identified 6 distinct churn drivers and a $250K–400K conversion opportunity.

Signal 3: Support Sentiment (Weight: 25%)

What it measures: The pattern of support interactions — frequency, resolution time, and sentiment.

Two churn patterns:

  • Frustration spike: Increasing ticket frequency + escalating language ("third time," "still broken," "this is unacceptable") + longer resolution times. Bad customer service accounts for 14% of all churn.
  • Silent disengagement: Users who previously filed tickets regularly stop filing them. They didn't solve the problem — they stopped caring enough to report it.

How to measure: If you have NLP capabilities, score ticket sentiment. If not, use ticket frequency trend: a sudden spike or a sudden drop are both warning signs.

Real example: In a HIPAA-compliant forms platform, we found that 37+ analytics events were available for churn prediction, including support ticket frequency, resolution time, and escalation patterns. Using these signals, we achieved a 40–50% save rate on cancellation attempts — protecting $105–155K in annual MRR.

Signal 4: Billing Signals (Weight: 25%)

What it measures: Commercial changes that precede churn.

Warning signals:

  • Failed payment (card expired, declined, limit hit)
  • Seat reduction (10-seat account drops to 6)
  • Plan downgrade (Pro → Starter)
  • Contract end date within 30 days (for annual contracts)
  • Usage decline (for usage-based pricing)

Why it works: Billing changes are the most concrete signal of churn intent. A user who stops logging in might be on vacation. A user whose card fails and doesn't update it is actively disengaging.

The financial context matters: for a company at $5M ARR with 5% monthly churn, each percentage point of churn reduction is worth $50K/year. A health score that catches even 5% of at-risk accounts early pays for itself many times over.

The Composite Health Score

SaaS customer health score risk thresholds
Risk Management: Calibrating thresholds to drive CS team action.

Combine the 4 signals into a single score:

Health Score = engagement_score + breadth_score + support_score + billing_score Each component: 0–25 points. Maximum score: 100. Minimum score: 0 (negative scores possible if signals are very bad).

Scoring Rubric

Signal25 Points15 Points5 Points0 Points
Engagement Velocity > -20% -20% to -50% -50% to -70% < -70%
Feature Breadth >= 0.7 0.4–0.7 0.2–0.4 < 0.2
Support Sentiment Neutral/positive, stable Slight escalation Strong escalation or silence Critical escalation or complete silence
Billing Signals No changes Minor (usage fluctuation) Moderate (seat reduction) Severe (failed payment, downgrade)

Risk Thresholds

ScoreRiskAction
75–100HealthyMonitor weekly. No outreach needed.
50–74WatchFlag for CSM awareness. Review in weekly meeting.
25–49At-riskCSM outreach within 48 hours. Match playbook to signal.
0–24CriticalImmediate senior CSM escalation. Executive outreach if ACV > $50K.

These thresholds should be calibrated to your product. Start with the defaults above, then adjust based on 3 months of outcome data. If 70%+ of churned accounts scored below 50 at least 30 days before churning, your thresholds are working.

Segment-Specific Thresholds

One health score doesn't fit all segments. Enterprise accounts ($50K+ ACV) have different behavioral patterns than SMB accounts ($1K ACV). An Enterprise account might have stable engagement velocity but a contract renewal approaching — a risk that SMB accounts don't have.

Our methodology uses segment-specific weights validated against historical churn data (r > 0.3 correlation threshold). For Enterprise, billing signals and relationship health carry more weight. For SMB, engagement velocity and feature breadth dominate.

The Recovery Rate Metric

There's a single metric that tells you whether your product relationship is healthy or dying: recovery rate — the percentage of customers who hit friction and resume meaningful usage within 48 hours.

Recovery RateProduct RelationshipChurn Trajectory
70%+Healthy90%+ retention
60–69%Stable but weakeningMonitor closely
50–59%At-riskHigh churn expected
Below 50%DeterioratingCustomers building workarounds

The 70%+ recovery threshold correlates with 90% retention. Below 60%, customers are either building workarounds outside your product or mentally cataloging reasons to leave. This metric should be tracked weekly alongside the health score — it's the lagging indicator that validates whether your leading indicators (health score signals) are accurate.

Building the Health Score Dashboard

Your dashboard should answer 3 questions:

Question 1: How many accounts are at risk?

A donut chart or bar chart showing the distribution of accounts across risk buckets (Healthy, Watch, At-risk, Critical).

The trend to watch: Is the "At-risk" bucket growing week over week? If so, something systemic is happening — not just individual account issues. A growing At-risk bucket that isn't matched by growing intervention activity means your system is detecting but not acting.

Question 2: Which accounts need attention this week?

A table of accounts with scores below 50, sorted by score (lowest first). Columns: account name, health score, top signal driving the score (e.g., "Engagement velocity: -45%"), churn archetype match (e.g., "The Quiet Quitter"), CSM owner, days since last CSM touch.

The actionability rule: If the CSM can't look at this table and immediately know what to do, the score is a vanity metric. Every score should connect to a specific intervention playbook.

Question 3: Is the health score actually predicting churn?

A retrospective chart: for accounts that churned last month, what was their health score 30 days before churn? If most churned accounts had scores below 50 30 days prior, the health score is predictive.

Target metrics:

  • Recall: 70%+ of churned accounts should have scored below 50 at least 30 days before churning.
  • False positive rate: Fewer than 20% of non-churned accounts should score below 50 in any given month. Above 30%, the CS team will stop trusting the score.

Common Health Score Mistakes

  1. Too many signals. A health score with 15+ signals is impossible to interpret. When the score drops, nobody knows which signal caused it. Stick to 3–5 signals with clear individual meaning.
  2. Using vanity metrics. Page views, total logins, and "time in product" don't predict churn. They measure activity, not value. A user who spends 2 hours confused in your product has a high "time in product" but is about to churn. Feature adoption depth, engagement velocity, and support sentiment are value proxies.
  3. No action threshold. A health score without a trigger is a vanity metric. "Our average health score is 62" tells you nothing. "12 accounts dropped below 50 this week" tells you exactly what to do.
  4. Static weights. Signal weights should be reviewed quarterly. If engagement velocity is no longer predictive, reduce its weight and increase the weight of signals that are predictive. Model drift is real.
  5. Not calibrating against actual churn. Without checking whether low-scoring accounts actually churned, you have no idea if the score works. Run the retrospective validation monthly: what percentage of churned accounts scored below 50 30 days before churning? If it's below 70%, recalibrate.

FAQ

How often should the health score update?

Weekly. Daily is too noisy (a user taking a day off doesn't mean they're churning). Monthly is too slow (by the time the monthly score drops, the customer has already decided to leave). Weekly catches meaningful trends while smoothing out daily fluctuations.

Can I use NPS as a health score signal?

NPS is a lagging indicator — it measures sentiment after the experience, not behavior before the churn decision. It can be a supplementary signal, but it shouldn't be a primary signal. Behavioral signals (engagement, feature use, support patterns) are more predictive. Poor onboarding accounts for 23% of churn and weak relationship management for 16% — neither of which NPS catches until it's too late.

What's the minimum number of accounts to justify a health score?

100+. Below 100, your CSM team can track accounts individually through relationship knowledge. Above 100, the health score becomes necessary because no one person can monitor every account's behavioral trajectory.

Should I use rule-based scoring or machine learning?

Start rule-based. A composite health score with manually assigned weights captures 80% of what a machine learning model would produce. ML adds incremental accuracy but significant complexity — quarterly retraining, drift monitoring, and a data scientist to maintain it. Academic research shows Random Forest models achieve AUC scores of 0.90 on clean B2B SaaS datasets, but those scores require expertise most SaaS teams don't have. Add ML when you have 10K+ customers and a dedicated data scientist.

Should I share health scores with customers?

No. Health scores are an internal CS tool. Sharing them with customers creates anxiety ("why is my score 42?") and gaming ("how do I make my score look better without actually using the product?"). What you should share with customers is the outcome of the intervention: "We noticed you haven't been using X feature — can we help?"

How do I know if my health score is working?

Two metrics: Recall: 70%+ of churned accounts scored below 50 at least 30 days before churning. Precision: Fewer than 20% of non-churned accounts score below 50 in any given month. If recall is below 70%, your signals are wrong. If precision is below 80%, your CS team is wasting time on false alarms.

Sources

Jake McMahon

About the Author

Jake McMahon builds growth infrastructure for B2B SaaS companies — analytics, experimentation, and predictive modeling that turns product data into revenue decisions. He has built customer health scoring systems across multiple engagements, including a 23% churn reduction for a healthcare SaaS and 40–50% save rate on cancellation attempts for a HIPAA-compliant forms platform. Book a diagnostic call to discuss your churn prevention approach.

Next Step

Get Your Health Score Built in 2 Weeks

4-signal health score, at-risk account list, and intervention playbook — deployed inside your existing analytics. Week 1: detect. Week 2: act.