← Benjamin J. Sunter Staffing Headroom

Capacity planning

Staffing Headroom

Every staffing plan starts from a forecast, and every forecast misses. This works out how many people the forecast implies, then how many you should hire, given that being short and being over don't cost the same. Nothing you type leaves your browser.

Start from a scenarioLoads typical numbers for that kind of work. Change anything after.

Inputs

What the month looks like

These two move the answer most. Each choice sets the figure shown in brackets; pick "I know the number" to type your own.

Capacity assumptions
%
%
Cost
Hiring reality
%

Forecast says –
Hire to –
The gap saves –

What being wrong costs

  • Cost of being short
  • Cost of being over

The expected monthly cost of missing, at every headcount you could pick. This is just the waste. Payroll isn't in it, since you pay that either way. The curve is lopsided because the two mistakes don't cost the same, and its low point is almost never where the forecast lands.

What moves this answer most

If each input were 10% off, this is how far the recommendation would move. Put your effort into getting the top of the list right. You can estimate the rest.

    Keeping the team at that size

    How it works

    Effective hours per person are paid hours less shrinkage, times occupancy. Divide the month's work by that and you get the headcount the forecast implies. Your spreadsheet already does that part.

    The rest is the newsvendor problem, which is more than a century old and still works. If being short costs r times what being over costs, the cost-minimizing plan covers demand r / (r + 1) of the time. At 3× that's the 75th percentile. Staffing to the forecast means covering demand half the time, and treating both kinds of miss as if they cost the same.

    This doesn't assume demand is random. It assumes your forecast is good and still misses. Whatever you built it from (history, seasonality, market signal, third-party data), some error is left over, and that's what the error field describes. A better forecast shrinks it, and the buffer shrinks with it. Set it to zero and the model tells you to staff to the forecast, which is right for a forecast that never misses.

    That residual is treated as normal around the forecast, and expected shortfall and overage come from the standard normal loss function, so the curve is exact rather than simulated.

    Where it can mislead you: forecast error in operations is often skewed, because surges run further above plan than lulls run below it, so a normal residual will understate the upside tail. It models a single month in steady state, so a sharp ramp or a seasonal peak needs its own run. It assumes your people are interchangeable, which stops being true once skills specialize. And the short-versus-over ratio is a judgment call that carries most of the weight, which is why it sits at the top of the sensitivity list.

    Take it if it's useful. It's one file with no build step, no dependencies and no analytics, and nothing is sent anywhere. Save the page and it works offline. Change the numbers and copy the link, and your settings go with it.