← ccPlanning Academy · Capacity planning track
From forecast to FTE
Slides done? Here’s the same idea in a bit more depth — the part worth keeping.
In depth: turning a year of contacts into bodies on seats
Capacity planning doesn’t run Erlang on every fifteen-minute interval of next year — you don’t have an intraday profile that far out, and you don’t need that precision. Instead it works in aggregate: total the workload over a month and convert it into the number of full-time-equivalent staff needed to carry it. The conversion is a chain of gross-ups, and the discipline is to apply every link — because each one makes the number bigger, and skipping any of them quietly under-staffs the plan.
The chain, link by link
Start with workload — forecast contacts times forecast AHT — which gives the raw handling hours to be done. Add a service buffer, because a live channel can’t run at 100% efficiency; you need slack to hit service level, so you gross the workload up to the productive agent-hours actually required (and larger operations need a smaller buffer than small ones, thanks to pooling). Then convert hours to bodies by dividing by the productive hours one agent really delivers — which is where the biggest gross-up of all comes in: shrinkage. If 30% of paid time is lost to leave, training, sickness and breaks, each agent only gives 70% of their contracted hours to contacts, so you need more contracted FTE than the productive-hours figure alone suggests.
Per month, and always sense-checked
Volume, AHT and shrinkage all move through the year, so required FTE is a profile, not a single annual number — an average hides the months you’ll be desperately short. And whatever the bottom-up build says, cross-check it top-down against a simple contacts-per-FTE ratio from history, adjusted for known change. If the two are wildly apart, an assumption is wrong, and that reconciliation catches the spreadsheet error before it reaches the budget. The required-heads profile that falls out is the spine of everything downstream: the hiring plan, the cost, and ultimately the schedules.
The principle to remember: workload → service buffer → shrinkage gross-up → FTE, month by month, sense-checked top-down. Get this conversion right and the rest of capacity planning is bookkeeping; get it wrong and every downstream plan inherits the error.
Quick quiz
Five questions. Pick an answer to each, then check your score.
1. Why isn’t long-range FTE done with interval Erlang?
Capacity planning aggregates monthly workload into FTE rather than running interval-level Erlang.
2. How is workload calculated?
Workload = contacts × AHT — and AHT must be forecast too, not assumed.
3. Why add a service/occupancy buffer to raw workload?
Raw hours assume 100% efficiency; the buffer grosses up to the productive hours actually required.
4. Why gross up for shrinkage when converting hours to FTE?
At 30% shrinkage an agent gives 70% of hours to contacts — the biggest gross-up in the calc.
5. Should required FTE be a single annual number?
An annual average hides the months you’ll be short — build a profile of required heads.
Build shrinkage up with the shrinkage calculator.