Purpose
Convert raw account signals — usage, support, sentiment, and contract data — into a single weighted health score with a defensible risk tier and the specific drivers behind it, so CS teams can prioritize outreach and catch churn risk before renewal conversations begin.
When to Use
Invoke this skill when the user asks to:
- Calculate a health score for one account or a full book of business
- Flag which customers are at risk of churn or downgrade
- Prioritize CSM outreach based on account health
- Build or standardize a health scoring methodology for the CS team
- Understand why a specific account's health is declining
- Segment accounts into Green/Yellow/Red tiers for QBR or renewal planning
Inputs Required
Before starting, collect:
- Account identifier(s): Name or ID for each account being scored (single or batch)
- Product usage metrics: Login frequency, active users vs. licensed seats, feature adoption breadth, usage trend over last 30/90 days
- Support signals: Ticket volume, ticket severity mix, average resolution time, escalations in last 90 days
- NPS / sentiment: Most recent NPS or CSAT score, and prior score if available (for trend)
- Contract data: ARR/MRR, contract start date, renewal date, tenure, plan tier, prior expansions or contractions
- Custom weights (optional): Desired weighting across the four categories
- Scoring intent (optional): Renewal prioritization vs. expansion targeting vs. general health monitoring
If custom weights are not provided, use the default weighting: Product Usage 40%, Support Signals 20%, NPS/Sentiment 20%, Contract/Relationship 20%. State the weights used at the top of the output.
Instructions
Step 1: Normalize Each Input to a 0–100 Sub-Score
Score every input category on a 0–100 scale before weighting. Use these rubrics:
Product Usage (default 40%)
- Adoption depth (0–100): % of purchased seats active in last 30 days. 90%+ = 100; 70–89% = 75; 50–69% = 50; 30–49% = 25; <30% = 0
- Feature breadth (0–100): % of core features adopted vs. plan's intended set
- Usage trend (0–100): Compare last-30-day usage to prior 30 days. Growing = 100; flat = 60; declining <15% = 35; declining ≥15% = 10
- Blend: adoption depth 50%, feature breadth 25%, usage trend 25%
Support Signals (default 20%)
- Start at 100, subtract for risk signals:
- Ticket volume above normal baseline for the account size: −15 to −30
- Any P1/critical escalation in last 90 days: −25
- Average resolution time exceeding SLA: −15
- Rising ticket trend week-over-week: −15
- Floor the sub-score at 0. Note: healthy accounts can open tickets — weight severity and escalation over raw volume.
NPS / Sentiment (default 20%)
- Promoter (9–10) = 100; Passive (7–8) = 60; Detractor (0–6) = 20; No recent survey = 50 (neutral, flag as data gap)
- Apply a trend modifier: score dropped vs. prior survey = −20; improved = +10 (cap at 100)
Contract / Relationship (default 20%)
- Tenure: >2 years = +baseline stability; new account in first 90 days = flag onboarding risk
- Renewal proximity: renewal within 90 days sharpens risk sensitivity (apply the score, don't inflate)
- Expansion history: prior upsell = +15; prior contraction = −25
- Executive sponsor / champion known and engaged = +10; champion departed or unknown = −20
- Anchor the sub-score around 70 and adjust with the modifiers above, clamped 0–100.
Step 2: Compute the Weighted Health Score
Multiply each sub-score by its weight and sum:
Health Score = (Usage × W₁) + (Support × W₂) + (NPS × W₃) + (Contract × W₄)
Round to the nearest whole number. Verify weights sum to 100%.
Step 3: Assign Risk Classification
- Green (Healthy): 75–100 — On track. Candidate for expansion or advocacy.
- Yellow (At Risk): 50–74 — Watch. Specific driver dragging the score; intervene before renewal.
- Red (Critical): 0–49 — Churn risk. Requires immediate CSM action and likely escalation.
Apply override rules regardless of numeric score:
- Detractor NPS + renewal within 90 days → cap at Yellow
- Usage declining ≥15% AND champion departed → flag Red
- P1 escalation unresolved → cannot be Green
Step 4: Identify Top Drivers and Recommended Plays
For each account:
- List the top 2 positive drivers and top 2 negative drivers (the sub-scores moving the total most).
- Recommend 1–3 specific CS plays tied to the negative drivers: - Low adoption → targeted enablement session or in-app adoption campaign - Declining usage trend → executive check-in to re-establish value - Detractor NPS → service recovery call + closed-loop follow-up - Renewal within 90 days + Yellow/Red → renewal risk plan and multi-threading - Champion departed → new-stakeholder discovery and relationship rebuild
Step 5: Batch Roll-Up (When Scoring Multiple Accounts)
If more than one account is provided:
- Produce a summary table sorted by risk (Red first, then Yellow, then Green)
- Show: Account, Health Score, Tier, ARR, Renewal Date, Top Negative Driver, Priority Play
- Add a portfolio line: count and total ARR in each tier, and total ARR at risk (Yellow + Red)
Output Format
- Structure: Weights header → per-account scorecard (single) OR summary table + per-account scorecards (batch) → portfolio roll-up (batch only)
- Length: 250–400 words per account scorecard; batch summaries scale with account count
- Format: Per-account scorecards as structured blocks; batch roll-up as a sorted table
- Sections: Weighting used → Score breakdown by category (with sub-scores) → Weighted total & tier → Top drivers → Recommended plays → (batch) Portfolio roll-up
- Tone: RevOps analyst — quantitative, transparent about the math, decisive on classification
Quality Checklist
Before delivering output, verify:
- [ ] Weights are stated explicitly and sum to exactly 100%
- [ ] Every category shows its 0–100 sub-score AND its weighted contribution
- [ ] The weighted total equals the sum of the four weighted contributions (arithmetic checks out)
- [ ] Risk tier matches the numeric score OR an override rule is cited by name
- [ ] Each account lists specific top drivers — not "usage is low" without the number
- [ ] Recommended plays map directly to the identified negative drivers
- [ ] Batch output is sorted Red → Yellow → Green with total ARR at risk quantified
Notes
- Usage trend is more predictive of churn than absolute usage — a shrinking heavy user often outranks a stable light user for risk.
- No-survey NPS is scored neutral (50) but should always be flagged as a data gap; a missing signal is itself a risk indicator.
- If any category's data is entirely missing, redistribute its weight proportionally across the available categories and disclose the adjustment — never silently score a gap as zero.
- Recalibrate thresholds after one renewal cycle: if too many Greens churned, the usage weight or trend sensitivity likely needs tuning.
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills