Support capacity planning worksheet
A fill-in worksheet that turns a volume forecast into a defensible headcount number — how many reps you need to clear the work at the service level you promised, and how far that is from what you have — for planning a hiring case or a quarter's staffing.
This worksheet turns a demand forecast into a headcount you can defend in a budget meeting: how many reps it takes to clear the expected work at the service level you promised, and how big the gap is between that and the team you have today. Run it once per channel, replace everything in [brackets], and keep the arithmetic visible so anyone can check it.
Two failure modes it exists to prevent:
- Staffing to raw volume. A rep does not spend 100% of a paid hour on tickets. Between breaks, training, meetings, admin, and time simply waiting for the next contact, a full-time rep gives you far fewer productive hours than their contract says. Plan to the contract and you will be understaffed by a third before the quarter starts.
- Staffing to the average. The daily average hides the Monday 10am spike. Real-time channels (phone, live chat) have to be staffed for the peak interval, not the mean — averaging them silently guarantees you miss the service level exactly when it matters.
Before you start — inputs to gather
- A volume forecast for the planning period, by channel and by month (Step 1)
- Average handle time (AHT) per channel — including after-contact work, not just talk/type time
- Your target service level / response promise per channel (e.g.
[80% of chats answered in 30s],[email first response < 4h]) - Contracted paid hours per FTE per week:
[40] - A shrinkage estimate — the share of paid time not available for the queue (see Step 2)
- Current headcount per channel, in FTE (count part-timers as fractions)
- Your ramp time for a new hire to reach full productivity:
[6] weeks - Notice period + hiring lead time you actually observe:
[8] weeks
Step 0 — Pick a model per channel
You run the same math either way; the difference is how hard you buffer at the end.
| Channel type | Examples | How work arrives | Buffer approach |
|---|---|---|---|
| Async / workload | Email, tickets, async messaging | Can be smoothed across the day and week | Average FTE + a backlog buffer (Step 4a) |
| Real-time / concurrency | Phone, live chat | Must be answered now, at the peak | Interval-level staffing above the average (Step 4b) |
Do the whole worksheet once for each channel, then sum the headcount at the end. Do not blend a phone forecast and an email forecast into one AHT — they behave differently.
Step 1 — Forecast the demand
Fill one row per month of the planning period. Volume is contacts offered, not resolved.
| Month | Forecast volume | AHT (min) | Basis for the forecast |
|---|---|---|---|
[Jan] | [8,000] | [12] | [last year + 15% from launch] |
[Feb] | [ ] | [ ] | [ ] |
[Mar] | [ ] | [ ] | [ ] |
- Volume is grounded in something real (trailing actuals, a known driver, a launch), not a round number picked to fit a budget
- Seasonality and known one-offs (a migration, a pricing change, a product launch) are in the numbers, not in your head
- AHT reflects the current product, not last year's — new features and new bugs both move it
Step 2 — How many productive hours one rep actually gives you
This is the number most plans get wrong. Start from paid hours and subtract everything the rep is paid for but not on the queue.
Shrinkage = breaks + paid lunch + PTO + sick + training + team meetings + coaching + 1:1s + admin + system downtime, as a share of paid hours. Industry shrinkage typically lands between 30% and 35% (Call Centre Helper); use your own if you have it, and default to [32%] if you don't.
Paid hours / FTE / month = [40] hrs/wk × 52 ÷ 12 = ~173 hrs
Net staffed hours / FTE = 173 × (1 − shrinkage)
= 173 × (1 − 0.32) = ~118 hrs
Net staffed hours are the hours a rep is logged in and available. But you should not plan for them to be busy every second of it — a rep at 100% occupancy has no gap between contacts and burns out. Cap planned occupancy at about 85%; sustained occupancy above 90% is a well-documented driver of agent burnout and attrition (Call Centre Helper).
Handling capacity / FTE / month = Net staffed × target occupancy
= 118 × 0.85 = ~100 hrs
- I used a shrinkage number I can justify, not zero and not a guess
- I capped occupancy at
[85%]rather than assuming reps run flat out
Step 3 — Turn volume into required FTE
Workload hours = Volume × AHT ÷ 60
= 8,000 × 12 ÷ 60 = 1,600 hrs
FTE required = Workload hours ÷ Handling capacity per FTE
= 1,600 ÷ 100 = 16.0 FTE
Do this per month and take the peak month, not the average, as your planning number — you cannot un-hire in the quiet months without hurting people.
| Month | Workload hrs | ÷ capacity/FTE | FTE required |
|---|---|---|---|
[Jan] | [1,600] | [100] | [16.0] |
[Feb] | [ ] | [ ] | [ ] |
[Mar] | [ ] | [ ] | [ ] |
Step 4 — Add the right buffer
4a. Async channels — backlog buffer. The average FTE clears the average day, but variance builds a backlog on bad days that good days never fully drain. Add a modest cushion and hold a little standing backlog headroom.
- Added
[5-10%]to required FTE for volume variance - Sanity-checked against your backlog trend — if backlog is already growing at current staffing, the buffer is too small
4b. Real-time channels — staff the peak interval. For phone and live chat, the average badly understaffs the peak. Required agents at the peak are non-linear in volume and do not come from a simple division — use an Erlang C calculator (many are free online) with your peak-interval volume, AHT, and target service level to get the interval requirement, then take the busiest interval as your floor.
- Real-time headcount is sized on the peak interval, not the daily mean
- The Erlang inputs (interval volume, AHT, service-level target) match Steps 1-2
- Concurrency for chat (
[2-3]chats per rep) is reflected in the effective AHT
Step 5 — Reconcile against who you have
| Channel | FTE required (peak month) | Current FTE | Gap (need − have) |
|---|---|---|---|
[Tickets] | [16.0] | [14.0] | [+2.0] |
[Chat] | [ ] | [ ] | [ ] |
[Phone] | [ ] | [ ] | [ ] |
| Total | [ ] | [ ] | [ ] |
A positive gap is your hiring number. A negative gap means you have slack — spend it on QA, coaching, backlog, or proactive work before you cut it, and say so out loud so it isn't quietly reassigned.
Step 6 — Adjust for ramp and lead time
A new hire is not one FTE on day one. Over a [6]-week ramp they deliver perhaps half an FTE on average, so filling a 2.0-FTE gap takes more than 2 heads and more than 2 weeks.
Start hiring = Peak month − ramp weeks − hiring lead time
= [start of peak] − [6] − [8] → begin the req [14] weeks out
- Requisition opens
[ramp + lead time]before the month the capacity is needed - Ramp productivity is modelled (new hires counted at a fraction, climbing to full)
- The plan survives one hire falling through or one leaver — if it doesn't, it's too tight
Scenario table — pressure-test the number
Run the base case and one worse case before you take it upstairs. A plan that only works at the forecast is not a plan.
| Scenario | Volume | Workload hrs | FTE required | Gap vs current |
|---|---|---|---|---|
Low ([−15%]) | [6,800] | [1,360] | [13.6] | [−0.4] |
| Base | [8,000] | [1,600] | [16.0] | [+2.0] |
High ([+20%]) | [9,600] | [1,920] | [19.2] | [+5.2] |
Assumptions register
Write these down so that when reality diverges, you know which dial to turn — not whether to panic.
| Assumption | Value used | If wrong, headcount moves… |
|---|---|---|
| Shrinkage | [32%] | Up fast — every point of shrinkage is real hours lost |
| Target occupancy | [85%] | Up if you cap lower for wellbeing |
| AHT | [12] min | Directly — a 1-min AHT rise on 8,000 tickets ≈ [1.3] FTE |
| Volume growth | [+15%] | Directly with volume |
| Ramp time | [6] wks | Changes when you hire, not how many |
When to re-run this
- Monthly: compare actual volume and AHT against the forecast; if either is off by more than
[10%], re-run - Whenever a product launch, migration, pricing change, or known incident is coming — model it before it lands
- When backlog or your service level starts drifting the wrong way for two weeks running
- Before every hiring request — this worksheet is the business case
- After any change to hours, shrinkage drivers (new training programme, more meetings), or channel mix
If you can't explain your headcount number from the volume, the AHT, and the shrinkage in three sentences, you don't have a capacity plan — you have a wish. This worksheet is the three sentences.
Continue exploring