Matches operational capacity to expected demand — forecasting load, sizing teams and systems, managing queues, and deciding when to add capacity. Use this to plan staffing for expected volume, diagnose a queue that keeps growing, size support or fulfillment capacity, or decide whether a bottleneck needs more capacity or better flow.
npx skills add https://github.com/cbrock84/headcount --skill capacity-and-demand-planning
This is operational throughput — how much work the organization can absorb. Allocating people
across projects is portfolio work, handled in pmo:portfolio-governance.
Separate the three components, because they need different treatment:
unknown ones are what headroom is for.
Forecast in the unit the work actually arrives in — tickets, orders, shipments, minutes of handling
— not in revenue. Revenue divided by an average is a forecast of an average, and averages are where
capacity planning goes to die.
Usable capacity is people multiplied by available hours multiplied by the fraction spent on the work
in question. The last term is the one everyone omits and it is rarely above 70%: meetings, training,
holiday, and the interruptions that come with the job are real.
Plan against realistic effective capacity. Planning at 100% guarantees the plan fails on its first
ordinary week.
Utilisation above roughly 80% makes wait times rise sharply and non-linearly — a system at 95% is not
slightly slower than one at 85%, it is qualitatively worse. This is why "we have spare capacity on
paper" coexists with a queue that never clears.
Watch the trend in queue age, not the queue length. A stable-length queue whose oldest item keeps
getting older is a queue that is quietly failing its slowest customers.
Before adding capacity, establish which it is:
capacity.
cost and often makes throughput worse by increasing coordination. Send this to
operations:process-design.
The tell: if work spends most of its life waiting rather than being worked, it is a flow problem.
Take cbrock84/capacity-and-demand-planning from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.