What Is a SaaS Health Score — and How to Use It to Predict Churn

  • Why a Single Metric Isn't Enough

  • What Goes Into a SaaS Health Score

    • Usage Signals

    • Billing Signals

    • Lifecycle Signals

  • How to Weight the Inputs

  • The Baseline Problem

  • What to Do With the Score

  • The Gap Between Knowing and Acting

  • Health Scores at Different MRR Stages

  • One Pattern Worth Watching

  • FAQs

Most founders check Stripe when something feels off. By then, the user who just cancelled had been disengaging for weeks. A health score is the tool that would have caught it earlier — if you were using one.

A SaaS health score is a composite signal. It takes multiple behavioral and billing indicators for each user and collapses them into a single number that tells you whether that account is moving toward retention or toward cancellation. It doesn't replace judgment. It replaces the silence between a user going quiet and a cancellation appearing in your dashboard.

This article covers what goes into a health score, how to build a simple version without an engineering project, and what to do with the signal once you have it.

Why a Single Metric Isn't Enough

Churn rate tells you what already happened. MRR tells you where you stand today. Neither tells you what's about to happen.

That gap is where most early-stage SaaS companies bleed. A user who logged in daily six weeks ago and now logs in once a week isn't yet churned. They won't appear in any default Stripe report. But they're almost certainly gone within 30 to 60 days unless something changes.

A health score exists to make that trajectory visible before it becomes irreversible.

What Goes Into a SaaS Health Score

There's no universal formula. The right inputs depend on your product. But most useful health scores pull from three categories.

Usage Signals

These are the behavioral indicators that show whether a user is actually getting value from your product.

  • Login frequency relative to their personal baseline

  • Core feature usage — the features tied to your product's primary value

  • Session depth and duration

  • Collaboration or output actions (exports, invites, publishes — whatever "doing the thing" looks like in your product)

The key word is relative. A user who logs in twice a week isn't inherently healthy or at risk. A user who used to log in daily and now logs in twice a week is drifting. That distinction matters enormously, and it's exactly what most dashboards miss.

Billing Signals

  • Payment history (failed charges, retries)

  • Plan tier relative to usage

  • Upcoming renewal date proximity

A failed payment isn't always a churn signal — sometimes it's just a card expiry. But a failed payment combined with declining usage is a very different story.

Lifecycle Signals

  • Days since activation

  • Time since last meaningful action

  • Support ticket history, especially cancellation-adjacent questions

A user who submitted a "how do I export my data" ticket last week and hasn't logged in since isn't a support issue. That's a churn signal.

How to Weight the Inputs

Weighting is where most founders overcomplicate this. Start simple.

Assign each signal a score from 0 to 10. Weight core feature usage most heavily — it's the strongest predictor of retention in almost every SaaS product. Login frequency is a secondary signal. Billing health is a modifier.

A basic version might look like this:

  • Core feature usage in the last 14 days: 0–40 points

  • Login frequency vs. personal baseline: 0–30 points

  • Payment health: 0–20 points

  • Days since last meaningful action: 0–10 points

A score above 70 is healthy. Between 40 and 70 is a watch zone. Below 40 is at risk.

That's not a precise model. It's a working model — and a working model beats no model by a significant margin.

The Baseline Problem

The most common mistake founders make when building health scores is using absolute thresholds instead of personal baselines.

If your threshold for "at risk" is "logged in fewer than 3 times this week," you'll miss the power user who normally logs in 15 times and is now at 4. You'll also flag the light user who has always logged in twice a week and is perfectly content.

Behavioral drift — the gap between a user's established pattern and their current behavior — is a far more reliable churn predictor than any fixed threshold. This is explored in depth in the piece on behavioral drift as a silent retention killer, which covers why the drift signal matters more than the absolute usage level.

What to Do With the Score

A health score is only useful if it triggers action. A number sitting in a spreadsheet nobody checks isn't a retention system. It's a comfort object.

When a user's score drops below your at-risk threshold, three things should happen — and they should happen without you manually initiating them.

First: a re-engagement email goes out. Not a generic "we miss you" message. A message that references what the user was doing before they drifted, and offers something specific — a tip, a feature they haven't tried, a direct line to help.

Second: the user gets tagged in your at-risk segment so you have visibility if you want to intervene manually.

Third: if they hit the cancel button anyway, the cancel flow they see isn't a generic "are you sure?" modal. It reflects their actual usage history. If they haven't logged in for two weeks, the offer is a pause. If they were using the product heavily until recently, it might be a targeted discount or a direct conversation.

That sequence — detect drift, send personalized outreach, serve a context-aware cancel offer — is what separates a health score that prevents churn from one that just documents it.

The Gap Between Knowing and Acting

Most early-stage founders have a rough sense of which users are disengaging. They can feel it. The problem isn't awareness — it's that acting on it requires time they don't have.

Writing a re-engagement email for each at-risk user, personalizing it to their usage, timing it correctly, and updating the cancel flow to match — that's a part-time CS job. Most teams at $2K to $20K MRR don't have that person.

This is exactly the problem Lokuna is built to solve. It monitors each user's behavioral baseline, detects downward drift, and sends personalized re-engagement emails without any manual input. When a user reaches the cancel button, it replaces the default flow with a modal tied to that user's actual usage history. The whole system runs from a Stripe integration and one JS snippet.

You can read more about how it works at lokuna.com.

Health Scores at Different MRR Stages

The inputs that matter most shift as your product matures.

At $2K–$10K MRR: Focus on login frequency and core feature usage. Your product probably has one or two features that define value delivery. Score against those.

At $10K–$30K MRR: Add billing signals and lifecycle stage. Users who have been on the platform for 90-plus days and still aren't using core features are a different problem than new users who haven't activated yet.

At $30K–$50K MRR: Segment your health scoring by plan tier and use case. A power user on your top plan and a light user on your entry plan have different baselines and different churn risk profiles.

The underlying logic stays the same at every stage. What changes is the precision.

One Pattern Worth Watching

There's a specific churn pattern that health scores catch better than anything else: the gradual fade.

A user who cancels after a billing failure is easy to understand. So is one who cancels after a bad support experience. But the user who quietly reduces their usage over six weeks, never complains, never contacts support, and then cancels at renewal — that user is invisible to every reactive system.

By the time they cancel, the decision was made weeks ago. The signs were visible the entire time. A health score, properly built and acted on, is the only way to catch that user in the window where intervention still works.

The article on why early-stage SaaS companies lose users until it's too late covers this pattern in detail — worth reading alongside this one.

FAQs

What is a SaaS health score?
A SaaS health score is a composite metric that combines behavioral, billing, and lifecycle signals for each user into a single number. It indicates whether an account is trending toward retention or toward cancellation, giving you visibility into churn risk before a user signals intent to leave.

What signals should I include in a SaaS health score?
The most predictive signals are core feature usage, login frequency relative to each user's personal baseline, payment health, and time since last meaningful action. Core feature usage typically carries the most weight because it reflects whether the user is actually getting value from the product.

How is a health score different from churn rate?
Churn rate measures what already happened. A health score is a leading indicator — it reflects what's likely to happen based on current behavioral trends. The two metrics serve different purposes: churn rate tells you the outcome, health scores help you prevent it.

How often should I recalculate health scores?
For most early-stage SaaS products, daily or every 48 hours is sufficient. What matters more than frequency is that the score triggers an action — a re-engagement email, a support flag, a modified cancel flow — rather than sitting in a report nobody checks.

Can I build a health score without an engineering team?
A basic version is achievable without significant engineering work. Tools that connect to your Stripe billing data and monitor JS-based behavioral events can calculate and act on health scores autonomously. Lokuna does this via a Stripe integration and a single JS snippet, with no ongoing configuration required.

What should happen when a user's health score drops?
A score drop should trigger an automated re-engagement email personalized to that user's actual usage, add the user to an at-risk segment for visibility, and modify the cancel flow they see if they reach that point. All three should happen without manual input — otherwise the system only works when someone remembers to check it.

At what MRR does a health score start to matter?
From the first paying user. Silent disengagement is hardest to spot at low MRR precisely because there's no CS team watching for it. A health score isn't a scaling tool — it's an early warning system, and it's most valuable before you have the team to monitor things manually.

A health score doesn't prevent churn on its own. It creates the window where prevention is possible. What you do in that window — and whether anything happens automatically when you're not watching — is what determines whether the score is useful or just informative.

If you want a system that acts on the score without requiring your attention, Lokuna is built for that.

Share on social media