t0ddc3by/claude-for-customer-success/capacity-planner
Claude Code and agent skill by t0ddc3by/claude-for-customer-success
- community
Checking that the SKILL.md file is still in the repository.
Assess CSM capacity and coverage across the book — current load vs. target ratios, coverage gaps by segment and motion, headcount recommendations, and account redistribution options. Use for quarterly planning cycles, headcount requests, CSM departure coverage, or when Red-tier concentration suggests a coverage problem rather than a product or relationship problem. Produces a capacity assessment with specific redistribution or hiring recommendations.
Install
npx vskill@latest install t0ddc3by/claude-for-customer-success/capacity-plannerSKILL.md
/cs-ops:capacity-planner
Know whether CSMs have too much on their plate — and what to do about it.
[PROPOSED]
Use when
- Quarterly planning requires current CSM load vs. target ratio analysis
- Building a headcount request and need data to justify the hire
- A CSM is departing and you need to assess coverage impact and redistribution options
- Red-tier concentration in a segment suggests a coverage problem rather than a
product or relationship issue
- A segment analysis has flagged a coverage gap and you need the capacity follow-up
Downstream dependency: After this skill produces capacity analysis, use the Rev-Ops plugin's closed-won-to-cs-capacity-modeling skill to model whether CS can absorb projected closed-won volume given current capacity (if the rev-ops plugin is installed, run /rev-ops:closed-won-to-cs-capacity-modeling).
Do NOT use for
- Segment-level health analysis (use
/cs-ops:segment-analyzer) - Updating target CSM-to-account ratios in config (use
/cs-ops:customize --section ratios) - Updating the CSM team roster (use
/cs-ops:customize --section team) - Individual account ownership reassignment (handle directly in CRM)
Typical Activation
/cs-ops:capacity-planner— current capacity snapshot across all segments (default)/cs-ops:capacity-planner --current— same as default; explicit current-state view/cs-ops:capacity-planner --headcount— headcount requirement analysis with hire justification/cs-ops:capacity-planner --redistribution— account redistribution options given current team/cs-ops:capacity-planner --departure <csm-name>— coverage impact of a named CSM departure
Pre-flight
Read ~/.claude/plugins/config/claude-for-customer-success/cs-ops/CLAUDE.md and ~/.claude/plugins/config/claude-for-customer-success/company-profile.md.
If either is missing or contains [PLACEHOLDER] markers, stop and prompt for /cs-ops:cold-start-interview.
Critical configuration to apply:
- Target CSM-to-account ratios per segment and motion
- Total CSM headcount and motion breakdown
- Segment definitions and assignment method
- CS motion type per segment
G-code dependency: All G-code guardrails referenced in this skill (G1–G9) are defined in the CLAUDE.md config loaded above. If Pre-flight halts or config is missing, G-codes are undefined — do not proceed with partial config.
Reasoning Protocol
Before generating output, apply these primers:
- CLASSIFY: What type of capacity planning request is this?
- Current-State Audit: Snapshot of existing capacity — actual vs. target ratios, load distribution, overloaded/underloaded CSMs. Default mode.
- Headcount Justification: Building a hiring case — required FTEs at current or projected ARR against target ratios. Needs cost context and growth assumptions.
- Redistribution / Rebalancing: Balancing load across existing CSMs without adding headcount — account moves constrained by relationship continuity and renewal proximity.
- Departure / Coverage Crisis: CSM leaving or on leave; portfolio must be absorbed with urgency triage. Red accounts and imminent renewals get 24-hour assignment SLA.
- CONSTRAINTS: What limits the solution space?
- G4: Verify a named capacity alert escalation path is configured before surfacing over/under-allocation flags — no generic "tell your manager."
- G5: Capacity reports contain ARR, contract terms, and per-CSM load — confidentiality check required before distributing beyond CS leadership.
- G7: Flag stale data with source date — CRM >7 days, CS Platform >3 days. Never silently present stale ratios as current state.
- G1: Capacity ratios are targets, not verdicts. A CSM at 110% is a flag, not a failure — surface deviation with context, not judgment.
- G2: Red accounts and accounts within 60 days of renewal are not movable without a warm handoff plan — redistribution math must respect relationship constraints.
- EXPERT CHECK: What would a veteran CS Ops leader verify first?
- Are segment-level ratios decomposed, or is a healthy portfolio average masking a segment at 2x target? Always decompose before declaring capacity healthy.
- Are unassigned accounts (no CSM owner) surfaced separately with ARR and health distribution, or silently excluded from per-CSM averages?
- In departure scenarios: is the portfolio triaged into immediate-priority (Red + renewal <60 days + active escalation) vs. standard-priority, with different assignment SLAs?
- ANTI-PATTERNS: Common capacity planning mistakes to avoid:
- Reporting portfolio-wide account-per-CSM averages without segment and motion breakdown — averages mask pockets of severe overload.
- Recommending account redistribution purely by count without checking renewal proximity, health status, or active escalations — relationship-blind moves worsen churn risk.
- Producing headcount recommendations without cost context or interim redistribution plan — hiring takes 3-6 months; the gap needs a bridge.
- Distributing a departing CSM's accounts evenly without urgency triage — flat distribution treats a Red account approaching renewal the same as a healthy Green account.
- Assigning accounts to receiving CSMs without showing their post-assignment capacity — solving one overload by creating another.
- Excluding unassigned accounts from the analysis — every account without a CSM owner is a coverage gap that must be surfaced.
After execution, verify:
- Does the assessment answer the implicit question ("do we have enough CSMs, and are they allocated correctly")?
- Are all ratios decomposed by segment and motion, not just portfolio-wide averages?
- Is the output mode (--current / --headcount / --redistribution / --departure) matched to the actual need?
- Confidence: [High] if CRM + CS Platform live and ratios configured / [Medium] if user-provided roster or partially stale / [Low] if ratios assumed or conversation-context only — state which.
Mode
--current: Current capacity state — actual vs. target ratios per CSM, load distribution, overloaded and underloaded CSMs. Default.
--headcount: Headcount requirement analysis — how many CSMs are needed based on current ARR, segment mix, and target ratios. Suitable for hiring requests or board presentations.
--redistribution: Account redistribution plan — which accounts should move between CSMs to balance load without hiring. Produces a specific redistribution recommendation.
--departure <csm-name>: Coverage plan for a CSM departure or leave — how to redistribute their accounts, which accounts need immediate attention.
Data gathering
Connector error categorization: When a connector call fails, distinguish the error type before proceeding:
- Rate-limited (transient): Connector returns HTTP 429 or equivalent throttle signal. Note the rate limit explicitly in output ("CRM data temporarily rate-limited — retry in 60 seconds recommended") and offer to retry rather than proceeding with degraded output.
- Unavailable (permanent for this session): Connector is not configured, authentication has expired, or service is down. Fall back to the manual-input path below and label all affected sections as "connector unavailable — manual input used."
Do not conflate these — a rate-limited connector will return data shortly; an unavailable connector will not.
Pull from connected integrations:
- CRM: account list with ARR, segment, CSM owner
- CS Platform: health scores per account, lifecycle stage, active CTAs
- CS-Ops config: target ratios per segment, headcount, motion assignments
If nothing is connected:
"For capacity planning, I need: total accounts, ARR, segment, health tier,and CSM owner for each account. Share a roster export and I'll run the analysis."
Minimum required: account count per CSM, segment classification per account, and configured target ratios.
Current capacity assessment (--current)
CSM Capacity Assessment [Date] · [N] CSMs · [N] accounts · $[total ARR] · INTERNAL
Portfolio capacity summary
| Metric | Actual | Target | Status | |
|---|---|---|---|---|
| Total accounts | [N] | — | — | |
| Total CSMs | [N] | — | — | |
| Avg accounts per CSM | [N] | [configured target] | [✅ / ⚠️ Over / ⚠️ Under] | |
| Avg ARR per CSM | $[amount] | — | — | |
| CSMs at or over capacity | [N] ([%]) | 0 | [⚠️ Flag if > 0] | |
| Accounts with no CSM | [N] ($[ARR]) | 0 | [⚠️ Flag if > 0] |
CSM-level capacity view
| CSM | Motion | Accounts | Target | Over/Under | ARR managed | Red accounts | Yellow accounts | |
|---|---|---|---|---|---|---|---|---|
| [CSM 1] | [High-touch] | [N] | [N] | [+N / -N] | $[amount] | [N] | [N] | |
| [CSM 2] | ||||||||
| [Unassigned] | — | [N] | 0 | +[N] | $[amount] | [N] | [N] |
Capacity flags:
For each CSM carrying more than the configured target:
"[CSM name] is carrying [N] accounts vs. the [target]-account target for[motion] CSMs — [+N] over capacity. Their Red account count is [N],which is [above / at / below] the expected proportion for an over-capacity CSM.This load should be relieved before the next renewal cycle."[review]
For each CSM carrying fewer than 80% of target:
"[CSM name] is at [N] accounts ([%] of target). They have availablecapacity to absorb [N] additional accounts without exceeding the target ratio."
Capacity by segment
| Segment | Accounts | CSMs assigned | Actual ratio | Target ratio | Status | |
|---|---|---|---|---|---|---|
| [Enterprise] | [N] | [N] | 1:[N] | 1:[target] | [✅ / ⚠️ Over / ⚠️ Under] | |
| [Mid-market] | [N] | [N] | 1:[N] | 1:[target] | ||
| [SMB] | [N] | [N] | 1:[N] | 1:[target] |
Segment interpretation: [1-2 sentences on the most significant segment capacity finding — where the gap is worst, and what it implies for health outcomes in that segment.]
Headcount requirement analysis (--headcount)
Headcount Requirement Analysis [Date] · For planning / hiring request use
Baseline inputs:
- Current ARR: $[total]
- Current accounts: [N]
- Target ratios: [Enterprise 1:[N] / Mid-market 1:[N] / SMB 1:[N]]
- ARR growth assumption: [If provided by user / Not provided — analysis uses current ARR only]
Required CSM headcount at current ARR:
| Segment | Accounts | Target ratio | CSMs required | CSMs current | Gap | |
|---|---|---|---|---|---|---|
| [Enterprise] | [N] | 1:[N] | [N needed] | [N have] | [+N hire / -N over] | |
| [Mid-market] | [N] | 1:[N] | [N needed] | [N have] | ||
| [SMB] | [N] | 1:[N] | [N needed] | [N have] | ||
| Total | [N] | — | [N needed] | [N have] | [Net gap: +N / -N] |
Scenario: [N]% ARR growth (if growth assumption provided):
| Segment | Projected accounts | CSMs required | Current | Additional hires needed | |
|---|---|---|---|---|---|
| [Enterprise] | [N projected] | [N] | [N] | [N] |
Headcount recommendation:
"[N] additional CSMs are needed to bring coverage to target ratios at currentARR. Prioritize hiring for [segment] — this segment has the largest gap andthe highest ARR concentration. If headcount cannot be approved, redistributionwithin the current team will bring [segment] to [N] accounts per CSM — stillabove target, but lower than the current [N]."[review — confirm with CS lead]
Cost context: [If CSM fully-loaded cost is configured or provided: "At [cost] per CSM, [N] additional hires represent $[amount] in annualized cost." Otherwise omit.]
Account redistribution plan (--redistribution)
Account Redistribution Plan [Date] · For load balancing without hiring
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingcs-ops/skills/capacity-planner/SKILL.md
Popularity
- Repository stars
- 62
- Repository forks
- 21
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/t0ddc3by/claude-for-customer-success/capacity-planner)