Factor Weights
Each of the six scoring factors contributes a percentage of the overall 0–100 score. Adjust weights to reflect what matters most to your team. Weights should sum to 100%; setting a factor to 0% disables it. Without CSM Pulse:| Factor | Default Weight |
|---|---|
| Email Response Time | 25% |
| Open Requests | 20% |
| Meeting Frequency | 20% |
| Issue Resolution | 20% |
| Recent Activity | 15% |
| Contact Activity | 0% |
| Indicators | 0% |
Contact Activity and Indicators default to 0%. Opt into them once you have the underlying data flowing —
Vitally / API for contact activity, Segment or PostHog for
indicators. See Indicators below for the participation flow.
| Factor | Default Weight |
|---|---|
| Email Response Time | 20% |
| Open Requests | 16% |
| Meeting Frequency | 16% |
| Issue Resolution | 16% |
| Recent Activity | 12% |
| Contact Activity | 0% |
| Indicators | 0% |
| CSM Pulse | 20% |
Tier Configuration
Health tiers map score ranges to labels and colors used throughout the app. Each tier has aminScore, a label, and a hex color.
| Tier | Score Range | Default Color |
|---|---|---|
| Healthy | 80–100 | Green (#22c55e) |
| Needs Attention | 60–79 | Yellow (#eab308) |
| At Risk | 40–59 | Orange (#f97316) |
| Critical | 0–39 | Red (#ef4444) |
Scoring Thresholds
Thresholds define what counts as excellent, good, fair, or poor for each factor. Tune these to match your team’s service level expectations.| Factor | Excellent | Good | Fair | Poor |
|---|---|---|---|---|
| Email Response Time | < 4 hrs | < 12 hrs | < 24 hrs | < 48 hrs |
| Open Requests | 0 | ≤ 2 | ≤ 5 | ≤ 10 |
| Meeting Frequency | ≥ 4 / 6mo | ≥ 2 / 6mo | ≥ 1 / 6mo | — |
| Issue Resolution | < 3 days | < 7 days | < 14 days | < 30 days |
| Recent Activity | < 3 days | < 7 days | < 14 days | < 30 days |
| Contact Activity | < 1 day | < 3 days | < 7 days | < 14 days |
Extreme Pulse Settings
When a CSM gives an account a pulse of 1 or 10, that high-conviction signal overrides automated metrics:- Pulse = 1 → account lands in Critical, regardless of other metrics
- Pulse = 10 → account lands in Healthy, regardless of other metrics
Options
| Setting | Description | Default |
|---|---|---|
| Enabled | Toggle extreme pulse amplification on or off | On |
| Amplifier | Multiplier applied to CSM Pulse weight (1.0–3.0×) | 1.5× |
| Extreme Pulse Expiration | Days until a pulse=1 or pulse=10 rating expires | 30 days |
| Normal Pulse Expiration | Days until a pulse=2–9 rating expires | 90 days |
- ↑ (green) — boosted by pulse = 10
- ↓ (red) — reduced by pulse = 1
Indicators
The Indicators tab lets you fold any of your saved Indicators into the health score as a single weighted factor. Useful when product-usage signals like Power user or Active in last 7 days should drive the health number — not just inform it.Setup flow
Set the Indicators weight
On the Weights tab, set Indicators above 0. This unlocks the Indicators tab. The slider participates in
the 100% weight sum just like any other factor.
Pick which indicators participate
On the Indicators tab, check each indicator you want to include in the composite. Indicators come from Settings
→ Indicators.
Set sub-weights
Each included indicator gets a Sub-weight input. Sub-weights are relative within the composite — they don’t sum
to 1 — they just determine how much each indicator pulls relative to its peers. Equal weights make every indicator
count the same.
Configure scoring per indicator
How each indicator’s value maps to a 0–100 component score:
- Yes / no indicators — set the score for
true(default 100) and the score forfalse(default 0). - Number indicators — set four thresholds (excellent / good / fair / poor) that map to 100 / 80 / 60 / 40 / 20,
plus a Direction dropdown (
Higher is betterorLower is better).
How the composite scores
Per indicator:- Boolean →
value === true ? trueScore : falseScore(defaults100 / 0) - Number → threshold curve. Example with
direction: higher_is_betterandexcellent: 50, good: 20, fair: 5, poor: 0:value ≥ 50→ 100value ≥ 20→ 80value ≥ 5→ 60value ≥ 0→ 40- else → 20
