What a health score is
A health score is a 0–100 number Halo computes for each company (or user) based on a weighted blend of four signals:- Activity — how recently and how often users are active in your product (from SDK identify calls)
- Support — open and priority ticket load relative to team size
- Sentiment — conversation sentiment and feedback ratings from recent transcripts
- Payment — Stripe subscription status and delinquency (when connected)
Automatic enablement
Health scores turn on automatically once your workspace has real customer data (at least one company and recent user activity). Halo picks recommended defaults based on what it detects:- Stripe connected with active subscriptions - scoring is limited to companies with an active Stripe subscription
- No billing data - everyone is scored and the payment signal is skipped
Tiers
Default tier boundaries:- Healthy — 80–100 (green)
- Neutral — 60–79 (blue)
- At Risk — 40–59 (yellow)
- Critical — below 40 (red)
- Not scored — no score calculated yet (shown when a company is unscored or ineligible)
Setup wizard
The setup wizard walks through four steps:- Who gets scored — companies, users, or both
- Who qualifies — Active subscribers (recommended), custom Stripe statuses, or everyone
- Signal presets — Balanced, Usage-first, Support-heavy, Revenue-first, or No billing data
- Review and activate — plain-English summary before turning scores on
Who qualifies
Three scope options control which customers get a score:- Active subscribers (recommended) - only companies (or users) with an active Stripe subscription. Keeps tiers focused on paying customers.
- Custom statuses - pick exactly which Stripe subscription statuses qualify (for example, include trials or past-due accounts).
- Everyone - no payment filter. Every account gets a score, including churned and free accounts.
Default weights
Out of the box, weights are:- Activity 40%
- Support 25%
- Sentiment 20%
- Payment 15%
Signal details
- Activity — 60% active-user ratio in the activity window, 40% recency of last activity
- Support — fewer open and priority tickets is healthier; each priority ticket costs 15 points (capped at 50)
- Sentiment — average transcript sentiment blended 50/50 with positive feedback ratings when both exist
- Payment — Active = 100, Trialing = 80, Past Due = 30, and so on; delinquent subtracts 20
Settings page
Everything lives on one settings page:- On/off switch — pause or resume scoring at any time
- Status — how many accounts are scored, last full refresh, Recalculate all
- Who gets scored — companies, users, or both
- Which customers qualify — the scope options above, with live counts
- What drives the score — presets plus advanced weight and window tuning
- Tiers — customize Healthy / Neutral / At Risk thresholds
- When scores update — realtime or nightly only
Recalculation
Two modes:- Realtime — recalculates after important changes (activity, tickets, payments, feedback) plus a nightly refresh
- Daily — only the nightly job runs
Company profile breakdown
On each company profile, expand Score breakdown to see how each signal contributed to the composite score and when the score was last calculated.Where scores show up
- Companies list — health bar, tier sidebar filters, avatar dot
- Company profile — score ring, tier badge, breakdown panel
- Contacts list — health column when entity mode is users or both
- Contact profile — score bar, tier badge, and breakdown when entity mode is users or both
- Segment filters —
health_scoreandhealthtier filters - Renewals settings — auto-status rules using health score
- Slack — optional
health_score_dropalerts
Where to go next
Renewals
Health scores power the auto-status rules for renewals.
Slack Integration
Get notified in Slack when health scores drop.