The churn radar for B2B SaaS·Book a call·Setup in 10 minutes·Trusted by CS teams·SOC 2 · GDPR · AES-256·
The churn radar for B2B SaaS·Book a call·Setup in 10 minutes·Trusted by CS teams·SOC 2 · GDPR · AES-256·

Understanding health scores

Learn how FirstDistro calculates health scores, what each component means, and how to improve scores for your customer accounts.

The 30-second version

Your health score is a number from 0 to 100 that tells you how well a customer account is doing.

  • 70-100: Healthy (green) — the account is active, engaged, and adopting your product.
  • 40-69: At-risk (amber) — something needs attention. Usage may be declining or key milestones haven't been reached.
  • 0-39: Critical (red) — the account is in danger. Immediate outreach is recommended.

The score combines four signals: Activity, Engagement, Milestones, and Recency. If your CRM is connected, a fifth signal (CRM health) is added.

How the overall score is calculated

Each component has a weight that determines how much it contributes to the overall score.

Without crm

ComponentWeight
Activity40%
Engagement30%
Milestones20%
Recency10%

With crm connected

ComponentWeight
Activity35%
Engagement25%
Milestones15%
Recency10%
CRM health15%

Worked example

Let's say a customer has these component scores:

  • Activity: 80 x 40% = 32 points
  • Engagement: 50 x 30% = 15 points
  • Milestones: 75 x 20% = 15 points
  • Recency: 60 x 10% = 6 points

Overall score: 68 — This account is at-risk. Engagement is the biggest area for improvement.

Activity score

The activity score measures how many events the account generated in the last 30 days.

Events in last 30 daysScore
00
1-520
6-1540
16-3060
31-5080
50+100

"Why is my activity score 80?" — The account generated between 31 and 50 events in the last 30 days. That's strong usage but not yet at the highest tier. Reaching 50+ events would push the score to 100.

How to improve activity scores

  • Ensure your SDK is tracking all meaningful user actions (page views, feature usage, key workflows).
  • Look for accounts that were recently active but have gone quiet — they may need a check-in.
  • Consider adding event tracking for features you've recently launched.

Engagement score

The engagement score measures how deeply users interact with your product. It has three sub-components:

Sub-componentWeightWhat full marks mean
Session length40%Average session lasts 5+ minutes
Session depth40%Average of 10+ events per session
Consistency20%Active every day of the month

The formula:

Engagement = (
  min(avgSessionDuration / 300s, 1) × 40 +
  min(avgEventsPerSession / 10, 1) × 40 +
  (daysActive / 30) × 20
) × 100

"What does engagement 100 mean?" — A score of 100 means users are spending at least 5 minutes per session, performing 10+ actions per session, and logging in every day. This represents deep, consistent product usage.

How to improve engagement scores

  • Focus on onboarding: guide users to valuable features early.
  • Look at session depth — if users visit but don't do much, the UI or workflow may need attention.
  • Track consistency: accounts that log in regularly are healthier than those with sporadic bursts.

Milestone score

The milestone score tracks key product adoption moments. It's based on how many distinct milestones the account has reached.

Milestones reachedScore
00
150
275
3+100

Default milestones include events like account_created, first_feature_used, and integration_connected. You can configure custom milestones in your event settings.

How to improve milestone scores

  • Define milestones that map to your product's "aha moments".
  • Use milestone data to identify accounts stuck in onboarding.
  • If an account has 0 milestones, they likely need hands-on help getting started.

Recency score

The recency score measures when the account was last active. More recent activity scores higher.

Last seenScore
Less than 1 day ago100
1-3 days ago80
4-7 days ago60
8-14 days ago40
15-30 days ago20
More than 30 days ago0

How to improve recency scores

  • Set up alerts for accounts that haven't been seen in 7+ days.
  • Use autopilot emails to re-engage accounts showing inactivity.
  • Investigate sudden drops — they may indicate a product issue or personnel change.

Crm score (when connected)

When your CRM (HubSpot or Attio) is connected, FirstDistro adds a fifth scoring component that incorporates relationship and support data.

The CRM score has three sub-components:

Support health (40%)

SignalScoring
No open tickets100
1-2 open tickets60
3+ open tickets20
High-priority ticket open0

Relationship health (40%)

SignalScoring
Recent meeting (last 14 days)100
Recent email (last 7 days)80
Some contact (last 30 days)50
No recent contact0

Commercial health (20%)

SignalScoring
Active deal, recently updated100
Active deal, stale50
No active deal / churned0

How to improve crm scores

  • Resolve support tickets promptly — open tickets drag down the score.
  • Maintain regular contact with accounts, especially at-risk ones.
  • Keep deal stages up to date in your CRM.

Risk levels and what to do

Risk levelScore rangeWhat it meansRecommended action
Healthy70-100Account is thrivingMonitor and nurture. Look for expansion opportunities.
At-risk40-69Warning signs presentInvestigate the lowest-scoring component. Reach out proactively.
Critical0-39Immediate attention neededPrioritize this account. Schedule a call. Check for product issues.

Trends indicate whether a score is getting better or worse compared to recent history.

  • Improving: Current score is 10+ points above the 7-day average.
  • Declining: Current score is 10+ points below the 7-day average.
  • Steady: Score is within 10 points of the 7-day average.

Trends are calculated for both the overall health score and each individual component.

Frequently asked questions

What does 68 mean?

A score of 68 means the account is in the at-risk range (40-69). The score is calculated from the weighted average of Activity, Engagement, Milestones, and Recency. To understand why it's 68, look at the component breakdown — the lowest-scoring component is your biggest opportunity.

Why is my activity score 80?

An activity score of 80 means the account generated between 31 and 50 events in the last 30 days. This is strong but not at the maximum tier. The score reflects event volume, not a count — "80" doesn't mean "80 events."

What does engagement 100 mean?

An engagement score of 100 means users are deeply and consistently using the product: 5+ minute sessions, 10+ actions per session, and logging in daily. This is the best possible engagement level.

Is it 80 activities or activity score of 80?

It's an activity score of 80, not 80 activities. The score is calculated from event volume buckets. An activity score of 80 corresponds to 31-50 events in the last 30 days.

How do i get it up?

Look at the component breakdown to find the lowest scorer — that's your biggest lever. Each component section above includes specific improvement tips. Generally: increase product usage (Activity), deepen engagement (Engagement), ensure key features are adopted (Milestones), and maintain regular activity (Recency).

How often do scores update?

Health scores recalculate in real-time when you view a customer detail page. The nightly batch job updates all scores for trend tracking and alerts.

Why did a score change suddenly?

Common causes:

  • A user stopped logging in (Recency drops fast after 3 days)
  • A burst of activity from a product launch (Activity spikes)
  • A milestone was reached for the first time (Milestone jumps from 0 to 50)
  • CRM data changed (support ticket opened/closed)

Can i customize the scoring?

You can customize which events count as milestones in your event settings. The scoring weights and buckets are standardized across all accounts to ensure consistent benchmarking.