LealUp Docs
For Admins

Health model

Dimensions, weights, thresholds, presets, and segment benchmarks — how LealUp calculates 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 classic mistakes when configuring it.

How it's calculated

A customer's score is a 0–100 number, calculated daily (early morning in your timezone). The formula:

score = Σ (dimension_value × dimension_weight)

Where each dimension_value is 0–100 and the weights sum to 100%.

Example (Balanced preset):

DimensionValueWeightContribution
Product usage7240%28.8
Engagement6530%19.5
Support8020%16.0
Sentiment6010%6.0
Total100%70.3

Default ranges

RangeStatusColor
70–100Healthygreen
50–69Neutralyellow
0–49At riskred

You can adjust thresholds at Admin → Health → Thresholds.

The 4 standard dimensions

Product usage

Measures how much the customer uses your product. Signals:

  • Login frequency — how many times per week users from the customer log in.
  • Features used — how many distinct features they touch.
  • DAU/MAU — ratio of daily to monthly active users.
  • New-feature adoption — % of users who used features shipped in the last 90 days.

Data source: event ingestion via API (POST /v1/ingest/events). See Event ingestion.

If you don't have ingestion: this dimension stays as "N/A" and its weight is automatically redistributed to the others.

Engagement

Measures the interaction with your CS/CX team. Signals:

  • Bidirectional email frequency — emails to and from the customer.
  • Meetings — frequency and duration.
  • Response to outreach — % reply to proactive CSM emails.
  • Champion response time — how long they take to reply.

Data source: Gmail, Outlook, Google Calendar (via integrations).

Support

Measures support load and resolution. Signals:

  • Ticket volume — open, closed, pending.
  • Resolution time — average per ticket.
  • Severity — % of critical/high tickets.
  • Escalations — to engineering or outside the normal flow.

Data source: Zendesk, Jira, Intercom (via integrations).

Sentiment

Measures the customer's emotional tone. Signals:

  • NLP over emails — positive/neutral/negative tone in the last 30 days.
  • NPS — latest score if you capture it.
  • Critical keywords — mentions of competitors, "cancel", "terminate contract".

Data source: synced emails + optional survey integrations.

The 4 presets

Pick one during onboarding (or change at any time):

Balanced

Default. Fits most B2B SaaS.

Usage 40%, Engagement 30%, Support 20%, Sentiment 10%

Usage Heavy

For products where usage = value (data tools, analytics, APIs).

Usage 60%, Engagement 20%, Support 15%, Sentiment 5%

Engagement First

For services, consulting, high human touch.

Usage 20%, Engagement 50%, Support 20%, Sentiment 10%

Support Critical

For products where support quality defines retention (infrastructure, dev platforms).

Usage 30%, Engagement 20%, Support 40%, Sentiment 10%

Customize the model

Admin → Health → Custom model

You can:

  • Adjust weights of standard dimensions (must sum to 100%).
  • Disable dimensions — if you don't have Zendesk, disable Support.
  • Create your own dimensions (enterprise) — e.g., "Reported ROI" fed by a custom field.
  • Adjust thresholds — e.g., healthy = ≥75 instead of 70.

Custom dimensions

To create your own dimension:

  1. It must have a clear formula that returns 0–100.
  2. It can be fed by custom fields, ingested events, or integrations.
  3. Expressed as a spreadsheet-like expression:
= CLAMP(0, 100, (field_value_X / target_value) * 100)

Example: a "Reported ROI" dimension based on the monthly_savings_usd field:

= CLAMP(0, 100, (monthly_savings_usd / mrr) * 10)

(If the customer reports savings 10× greater than their MRR, score = 100.)

Segment benchmarks

When a customer belongs to a segment, their health is compared to the segment average. On the customer record, you'll see:

Acme: 72 (Enterprise LATAM avg: 65) → above

This helps you distinguish "low in absolute terms" from "low for their segment". An SMB with health 60 might be fine; an enterprise with health 60 is probably in trouble.

Segments are configured at Admin → Segments (see Configure your workspace).

Manual recalculation

If you changed the model or just imported a lot of data:

Admin → Health → Recalculate

  • Triggers immediate recalculation for all customers in the workspace.
  • Takes ~5 min for 100 customers, ~30 min for 1000.
  • History is recalculated backwards (last 90 days) with the new model.

Common mistakes

"All my customers are red"

Symptom: average health < 60.

Typical causes:

  1. You don't have active usage ingestion — the Usage dimension sits at 0, not N/A. Fix: disable the dimension until you connect ingestion.
  2. Aggressive thresholds — "healthy ≥85" is too strict. Lower to 70.
  3. Support weight too high with low volume — if you have 3 tickets per customer, the dimension saturates quickly.

"No customer is red"

Symptom: average > 80, no one in red.

Causes:

  1. Without integrations, everything is N/A — the score sits at baseline.
  2. Loose thresholds — "at risk <30" almost no one reaches.
  3. Poorly balanced weights — if Sentiment weighs 80% and there are never negative words, the score stays high.

"The score jumps day to day"

Causes:

  1. High-variance dimensions — usage can drop one day and rise the next.
  2. Minimal smoothing — LealUp defaults to a 7-day rolling average. If you lowered it, raise it.

Admin → Health → Smoothing — moving-average window (3, 7, 14, 30 days).

Audit a customer's score

In Customer 360 → right panel → Score detail → click a dimension:

  • See the time series of the last 90 days.
  • The events that contributed most (positively or negatively).
  • The segment benchmark in that dimension.
  • The last recalculation time.

Useful for understanding "why does this customer have 42?" before acting.

Health alerts

Admin → Health → Alerts

You can configure automatic notifications:

  • Sharp drop — customer lost >15 points in 7 days.
  • Threshold crossing — customer went from healthy to neutral, or neutral to risk.
  • Baseline misalignment — customer below the segment average by >20 points.

Alerts are sent to the customer's owner (in-app + email + optional Slack).

On this page