Health model
The 6 dimensions, weights, thresholds and presets - how LealUp computes the health score.
The health score is the heart of LealUp. This page explains how it's calculated, how to tune it, and how to avoid the classic configuration mistakes.
How it's calculated
A customer's score is a 0-100 number, computed daily. The formula:
score = Σ (dimension_value × dimension_weight)Each dimension value is 0-100 and the weights sum to 100%. If a dimension has no data (for example, you didn't connect support), its weight is automatically redistributed across the others instead of punishing the score.
Example (Balanced preset):
| Dimension | Value | Weight | Contribution |
|---|---|---|---|
| Engagement | 65 | 25% | 16.3 |
| Adoption | 72 | 18% | 13.0 |
| Activity | 70 | 17% | 11.9 |
| Support | 80 | 15% | 12.0 |
| Billing | 90 | 15% | 13.5 |
| Sentiment | 60 | 10% | 6.0 |
| Total | 100% | 72.7 |
Default ranges
| Range | State | Color |
|---|---|---|
| 70-100 | Healthy | green |
| 40-69 | Warning | yellow |
| 0-39 | At risk | red |
Thresholds (40 and 70 by default) are adjusted in Settings → Health.
The 6 dimensions
Engagement
Measures the customer's interaction with your CS team: two-way emails, meetings, response to outreach.
Data source: Gmail and Google Calendar (via integrations).
Adoption
Measures breadth of product usage: how many distinct features the customer uses and how that evolves.
Data source: event ingestion via API (POST /v1/ingest/events) or connectors.
Activity
Measures frequency and recency of customer activity: how often there are signs of life (events, interactions) and how long since the last one.
Data source: event ingestion + timeline.
Support
Measures support load and resolution: ticket volume, severity, times.
Data source: Zendesk or Jira (via integrations).
Billing
Measures the customer's payment health: invoices on time versus overdue.
Data source: LealUp's invoices module (invoice import or integration).
Sentiment
Measures the customer's emotional tone: sentiment analysis over synced communications plus surveys (NPS/CSAT) if you capture them.
Data source: synced emails and WhatsApp + surveys (optional).
The 4 presets
Pick one during onboarding (or change it anytime in Settings → Health):
Balanced
Default. Fits most B2B SaaS.
Engagement 25%, Adoption 18%, Activity 17%, Support 15%, Billing 15%, Sentiment 10%Usage Heavy
For products where usage = value (data tools, analytics, APIs).
Adoption 37%, Activity 22%, Billing 13%, Support 10%, Sentiment 10%, Engagement 8%Engagement First
For service products, consulting, high human touch.
Engagement 35%, Activity 17%, Adoption 13%, Billing 13%, Sentiment 12%, Support 10%Support Critical
For products where support quality defines retention (infrastructure, dev platforms).
Support 30%, Billing 18%, Activity 14%, Engagement 13%, Adoption 13%, Sentiment 12%Customize the model
Settings → Health
You can:
- Pick a preset as a starting point.
- Adjust the weights of the 6 dimensions (must sum to 100%). If a dimension doesn't apply to your business, lower its weight: with no data it also redistributes automatically.
- Adjust the thresholds for healthy and at risk.
Common mistakes
"All my customers are red"
Typical causes:
- No active usage ingestion and the adoption/activity dimensions score low. Fix: connect ingestion or lower their weights.
- Aggressive thresholds — "healthy ≥85" is too strict. The default is 70.
- Support weight too high with low volume — with 3 tickets per customer, the dimension saturates fast.
"No customer is ever red"
Causes:
- Without integrations, almost everything is N/A — the score is dominated by few signals.
- Loose thresholds — "at risk <20" is almost never reached. The default is 40.
- Unbalanced weights — if Sentiment weighs a lot and there are never negative signals, the score stays high.
"The score jumps a lot day to day"
Causes:
- High-variance dimensions — usage can drop one day and rise the next.
- Few signals — with little data, each event moves the average a lot. Connecting more sources stabilizes the score.
Audit a customer's score
In Customer 360 → health panel → score detail:
- See each dimension's contribution to the final number.
- Which data sources were used and which had no data.
- The last time it was computed.
Useful to understand "why does this customer have 42?" before acting.
Health alerts
Health alerts are configured as playbooks with a health trigger: create a playbook whose trigger is the health score (for example, "score crosses the risk threshold") and define the actions (task for the owner, notification). See Playbooks.