Roll up a customer book into moves, not colors.
Sorts a book into at-risk, renewing, expansion, and going-quiet, each with the one move it needs.
Inside: The at-risk list, renewals by date, expansion candidates, and a quiet-account detector.
Install it in one line, or paste it in.
~/.claude/skills/ and runs automatically when it is relevant.Connect your context. Set it to your motion.
it reads the whole book automatically, renewal dates and values included.
adds real usage momentum, so at-risk is behavior, not a guess.
tightens the going-quiet check with real last-touch dates.
This was built for a B2B SaaS org running recurring-revenue accounts. Set these to your stack:
Run any health model you like. The skill sorts your book against your own signals and thresholds, so point it at your fields, not anyone else's.
| Set this | What it is | Default / Example |
|---|---|---|
| CRM | your CRM connector | |
| VALUE field | contract or account value | ARRMRRcontract value |
| RENEWAL field | when the contract renews | renewal dateterm end |
| HEALTH signal | how you read account health | a health scoreusagesupport load |
| USAGE source | where product momentum lives | a product-analytics tool |
| RENEWAL window | days out that means act now | 90 (re-tune to your cycle) |
| QUIET_DAYS | no-contact days that mean going dark | 30 (re-tune) |
Everything the skill does, in full.
Reads a book of accounts and sorts them into the four groups a CSM works from: at risk, renewing soon, ready to expand, and going quiet. Every account that surfaces comes with the one move that changes its trajectory. It is a health rollup that ends in outreach, not a grid of green and red.
- 1At-risk accounts
An account is at risk when the signals turn: usage falling, support load rising, a health score dropping, a key contact gone. Rank by value at risk, not by count, so the biggest exposure leads. Name why, from a signal you can see.
- 2Renewals due
Every account inside the renewal window, sorted by date then value. A renewal is not safe because it is far away and not lost because it is close. Show days to renewal and the health signal together, so risk and timing sit on one line.
- 3Expansion candidates
Accounts healthy and using the product hard enough to grow. Strong usage plus headroom is an expansion signal. Surface the few worth a real conversation, not every green account.
- 4Going quiet
Accounts with no contact past QUIET_DAYS. Silence before a renewal is the risk that hides, because nothing looks wrong until it is too late. Show days dark and the next date that matters.
- 5The one move
Each surfaced account gets a single move: book the renewal conversation, run a usage review, open the expansion talk, re-engage a quiet champion. One move per account beats a plan nobody runs.
- At-risk ranks by value at risk, never by a raw count of flags.
- No "at risk" without naming the signal that turned. A color is not a reason.
- Renewals show days-to-renewal and a health signal on the same line.
- Every surfaced account carries exactly one move, owned and specific.
BOOK HEALTH · 24 accounts, $1.4M ARR At risk (by value) 3 accounts, ~$180K Acme Corp $90K usage down 40% over 6 weeks, champion left Vertex $55K support tickets up, health score falling Renewals due (90d) 5 accounts, ~$310K Blend Labs $70K renews in 22d, health steady Northwind $48K renews in 61d, usage soft Expansion candidates 2 accounts Orbit Inc $60K power usage + seats near cap Going quiet 4 accounts, no contact 30d+ Delta Co $32K dark 44d, renews in 75d Moves 1. Acme Corp: book a save conversation this week, name a new champion. 2. Delta Co: re-open contact before the renewal clock runs down. 3. Orbit Inc: open the seat-expansion talk on the next call.
The renewal window (90 days) and QUIET_DAYS (30) are defaults, not laws. They suited a mid-market SaaS book on annual terms. If your terms are monthly, shorten both. If they run multi-year, widen them. The logic does not change. The thresholds are yours.
Where an operator takes this next.
The read is step one. Here's where an operator takes it once the manual version proves out.
You built the read once; now it runs itself.
Point a scheduled Claude task at Salesforce and Amplitude weekly and post the four groups to the CSM team channel before standup.
Set the going-quiet check to fire the moment an account crosses the threshold, not on a weekly cadence, via a Slack alert to the account owner.
Chain this into comms-agent so "book a save conversation" becomes a drafted email or calendar hold, not just a line on a list.
One skill is the on-ramp.
A single skill does one job. Chained into a playbook, or run as a full build, it becomes a system. Here is where this one plugs in.