Ops Capacity Planner
Sizes queued-work ops teams with Erlang-C math: required FTE, utilization risk bands, and a 12-month ramp- and attrition-aware hiring sequence.
Data & AnalyticsIntermediate★ 24,151⑂ 3,405AI score 8/10Last updated: Aug 9, 2026
What it does
- Capacity sizing: Erlang-C model of required FTE across 70/80/90% utilization against P50/P90/P99 demand, with P(SLA breach) at each point and a SAFE/WATCH/AT_RISK/CRITICAL risk band, shrinkage-adjusted.
- Utilization health: per-member traffic lights plus a team verdict (HEALTHY/SQUEEZED/OVERLOADED/UNBALANCED); a spread over 30 percentage points means rebalance before hiring.
- 12-month quarterly hiring plan: ramp curves, attrition replacement, QoQ demand growth, max-hires-per-quarter limits, and an automatic manager-hire trigger past 7 ICs per manager.
- Seven forcing questions covering bottleneck confirmation, service trade-offs, P90/P99 gap, breach probability, attrition backfill, span of control, and the P99 surge plan.
- Three stdlib-only Python scripts (
capacity_modeler.py,utilization_analyzer.py,hiring_sequencer.py) with--sample,--input, and--outputflags, plus canon references and a fill-out brief template.
Who it's for
- Support, CX, Customer Success, BizOps, IT Ops, and Finance Ops leaders whose teams handle queued work (tickets, cases, work items).
- Teams running sustained utilization above 80% or growing more than 50% in 12 months.
- Anyone who has to defend a headcount ask to a CFO with arithmetic instead of intuition.
- Not for engineering throughput (DORA/cycle time) or 1–5 year strategic workforce planning.
Example uses
- Annual planning (Oct–Nov): pull 90 days of daily ticket P50/P90/P99 from Zendesk, run
capacity_modeler.py --profile support, and use the 80%-utilization row as next year's sizing point. - SLA slippage diagnostic: a team at 88% utilization is missing SLA —
utilization_analyzer.pytells you whether it's undersizing or an unbalanced workload distribution. - Budget sequencing: 20 FTE today, 28 by year-end, 30% attrition, 60-day ramp →
hiring_sequencer.pyfront-loads Q1 hires and names the quarter you must add a manager.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/alirezarezvani/claude-skills/HEAD/.gemini/skills/capacity-planner/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the .gemini/skills/capacity-planner folder from the GitHub repo alirezarezvani/claude-skills into my ~/.claude/skills/capacity-planner/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/alirezarezvani/claude-skills.git && mkdir -p ~/.claude/skills && cp -r claude-skills/.gemini/skills/capacity-planner ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and go to your working directory.
- Clone the repo:
git clone https://github.com/alirezarezvani/claude-skills.git - Create the skills folder:
mkdir -p ~/.claude/skills - Copy the skill:
cp -r claude-skills/.gemini/skills/capacity-planner ~/.claude/skills/- Verify with
ls ~/.claude/skills/capacity-plannerthatscripts/,references/, andassets/came along. If not, locate them withfind . -name capacity_modeler.pyinside the repo and copy them in.
- Verify with
- Confirm Python 3 is available:
python3 --version - Smoke-test it:
cd ~/.claude/skills/capacity-planner && python3 scripts/capacity_modeler.py --sample - Restart Claude Code, then ask something like "size my support team for P90 demand at 80% utilization".
- Before real use, gather 90+ days of demand distribution (P50/P90/P99), average handle time, SLA target, current FTE, and your shrinkage percentage.
View source on GitHub ↗License: MIT