Every customer success team eventually asks the same question: give us a customer health score template we can start with. Fair enough — a blank sheet is a bad place to design a scoring model. Below is the structure Kith ships out of the box, with the formulas and default weights spelled out. Copy it, argue with it, tune it. It's a starting line, not a finish line.
The five components
Each is scored 0–100. Higher is healthier.
1. Relationship health (weight: 30%)
Strength and recency of communications with the account's buying committee, weighted by seniority.
relationship = min(100, 100 × sum(contact_strength × seniority_weight) / target)
Where contact_strength is a decayed activity score per contact (email + meeting volume, 90-day half-life), seniority_weight is 1.0 for C-suite / partner, 0.6 for director, 0.3 for manager, and target is the weighted strength you'd expect for a healthy account of this size.
2. Stakeholder coverage (weight: 20%)
How many buying-committee roles have a live relationship on your side.
coverage = 100 × covered_roles / expected_roles
Default expected roles: economic buyer, technical buyer, champion, user, coach. An account with only the champion covered scores 20. That's the point — you should wince.
3. Delivery signal (weight: 20%)
Support tickets, escalations, CSAT, project health.
delivery = 100 − (escalations_90d × 15) − (open_p1 × 10) + (csat_avg − 3) × 10
Clamp to [0, 100]. Tune the multipliers to your ticket volumes.
4. Commercial signal (weight: 15%)
Outstanding invoices, renewal proximity, unresolved scope changes.
commercial = 100 − (overdue_invoices × 20) − (renewal_within_90d ? 15 : 0) − (open_scope × 10)
Renewal proximity is a warning, not a penalty. It drops the score so leadership sees the account in time to act, not because anything is wrong yet.
5. Strategic signal (weight: 15%)
Champion job change, competitor mentions in meeting transcripts, tech-stack changes, negative sentiment in the last 30 days.
strategic = 100 − (champion_left ? 30 : 0) − (competitor_mentions_30d × 5) − (negative_sentiment_30d × 10)
The roll-up
health = 0.30 × relationship + 0.20 × coverage + 0.20 × delivery + 0.15 × commercial + 0.15 × strategic
Bands: 75+ Healthy, 55–74 Watchlist, < 55 At Risk.
Rules that keep the score honest
- Show the components. Never publish only the roll-up. If a partner sees "68," they should see the five numbers behind it in the same view.
- No manual overrides. A one-click "actually we're fine" button destroys the model inside a quarter.
- Decay all activity. A meeting six months ago is not the same as a meeting last week. Give it a half-life and stop debating.
- Recompute weekly, at least. Monthly is too slow for the delivery and commercial signals.
- Do not tie it to comp. If it moves anyone's bonus, the inputs get gamed within two quarters. We've watched this happen, so has everyone else in this category.
Adapt before adopt
Weights should reflect what actually predicts churn in your firm. If your last five losses were commercial disputes, raise the commercial weight. If they were champion departures, raise the strategic weight. Rebalance every six months. Nothing here is sacred — the components mostly are, the weights aren't.