Call centre capacity planning — the complete WFM guide
Capacity planning is the discipline of ensuring the right number of agents are available, at the right time, across the right channels, to hit your service level target. This guide walks through the full seven-step cycle, from raw contact data to an intraday monitoring process.
The seven steps
Collect and clean historical contact data
Capacity planning starts with data. You need at minimum 8–12 weeks of interval-level data: contacts received per 15- or 30-minute interval, AHT, and channel. The longer your history and the more granular the interval, the better your forecast will be. Clean out outliers (major incidents, bank holidays, system outages) before using data to build a forecast.
Forecast demand by interval and channel
A forecast breaks your expected volume into intervals, typically 15 or 30 minutes. Good forecasts apply day-of-week and intraday patterns multiplicatively: Monday midday is not simply the average of all intervals. Add planned volume drivers (campaigns, product changes, seasonal events) on top of the baseline. Use MAPE or weighted MAPE to measure forecast accuracy and iterate.
Calculate agent requirements: the right model for each channel
This is where most operations make the critical error: applying Erlang C to every channel. Voice queues need Erlang C. Live chat needs a concurrency model. Email, back-office, and case processing need a backlog flow model. Using the wrong model will overstaff or understaff your operation. The channel mix in your operation determines which calculators you need.
Apply shrinkage to convert seated to scheduled headcount
The Erlang C result tells you how many agents need to be actively handling calls: your seated requirement. Your scheduled headcount must be higher to account for all the time agents are not available: breaks, meals, meetings, training, coaching, administrative tasks, sickness, and lateness. Shrinkage is the total of these as a percentage. Scheduled = seated ÷ (1 − shrinkage).
Design shift patterns and schedule agents
With a scheduled headcount requirement by interval, you can design shifts. Shifts must cover the intervals that need coverage, respect working-time rules, and be acceptable to agents. Shift design is a constrained optimisation: you want to match supply to demand as closely as possible without creating unsustainable patterns. Most operations use a combination of fixed core shifts and flexible cover shifts.
Model cost and build the budget
Once you have a schedule, you can calculate labour cost: agents × shift length × hourly rate × employer on-costs. Compare this to your headcount budget. If cost exceeds budget, test whether AHT improvements or FCR gains can reduce the requirement before cutting headcount. Cost per contact is the most useful efficiency metric: it combines staffing cost with throughput in a single number.
Monitor intraday and manage deviation
A capacity plan is a model of the future. Reality will deviate. Intraday management is the discipline of detecting deviation early and responding: volume arriving higher than forecast, AHT longer than modelled, agent absence not captured in the plan. The faster you detect and respond, the smaller the impact on service level. Real-time adherence (RTA) monitoring feeds into this loop.
The right model for each channel
The biggest capacity planning error operations make is applying a single model to all channels. Each channel has a structurally different arrival and handling pattern that requires a different model.
Voice / inbound calls
Calls queue and are served in order. Erlang C models an M/M/N queue: random arrivals, random service times, N agents. It correctly captures the non-linear relationship between occupancy and service level.
Open the Erlang C calculator →Live chat
Chat agents handle 2–4 concurrent sessions. Erlang C assumes one interaction per agent at a time, so it cannot model concurrency. Little's Law (L = λW) gives the expected active sessions. Agents needed = sessions ÷ concurrency cap.
Open the Live chat calculator →Email, tickets, cases
Email doesn't queue like a call; it accumulates. SLAs are measured in hours or days, not seconds. The backlog flow model computes agents needed to process the inflow and clear the existing backlog within the SLA window.
Open the Email / backlog calculator →Multi-channel operations
Most operations handle more than one channel. A tower model adds the headcount for each channel side by side. The multi-channel calculator does this: each channel still uses its own correct model, but you see the combined team size.
Open the Multi-channel calculator →The shrinkage bridge
Erlang C and other models calculate the seated requirement: agents actively handling contacts. Your scheduled headcount must be higher to cover all the time agents are not handling contacts.
The shrinkage bridge
Seated agents needed: 10
Add shrinkage: breaks 10% + meetings 5% + training 5% + sick 4% + other 6% = 30% total
Scheduled headcount = 10 ÷ (1 − 0.30) = 14.3 → 15 agents
Six common capacity planning mistakes
Using Erlang C for chat
Chat concurrency means Erlang C overstates agents needed by 40–60%. Use the concurrency model.
Ignoring shrinkage
Staffing to the seated requirement rather than the scheduled requirement leaves teams 20–35% understaffed from day one.
Planning to a single average
Volume varies by interval. Planning to the weekly average understaffs peak intervals and overstaffs quiet ones.
Chasing 100% occupancy
High occupancy means no idle time to absorb volume spikes. SL degrades catastrophically above 85–90%.
No intraday process
A plan without a monitoring and response process is just a number. Deviation is inevitable; early detection is the variable.
Not modelling attrition buffer
If attrition means you always have agents in ramp, effective capacity is lower than headcount suggests. Buffer this in.
Frequently asked questions
What is capacity planning in a contact centre?
Capacity planning in a contact centre is the process of ensuring you have the right number of agents, at the right time, across the right channels, to handle your expected contact volume while meeting your service level targets. It begins with demand forecasting, meaning predicting how much contact volume you will receive by interval, day, and week, then works forward through agent requirement calculation, shrinkage adjustment, shift scheduling, and intraday monitoring.
What is the difference between capacity planning and scheduling in a contact centre?
Capacity planning answers the question 'how many agents do we need, across what hours?'. It produces headcount requirements. Scheduling answers the question 'which specific shifts should agents be rostered on?'. It produces individual rosters. Scheduling takes capacity requirements as its input. You cannot schedule correctly if your capacity plan is wrong. The two are sequential, not interchangeable.
How do I calculate how many agents I need in a contact centre?
The calculation method depends on the channel. For voice: use Erlang C. Inputs are calls per interval, average handle time, service level target, and target window in seconds. For live chat: use a concurrency model (Little's Law). Agents needed = (contacts per interval × AHT in minutes) ÷ (concurrency cap per agent × available minutes). For email and back-office: use a backlog flow model. Agents needed = (daily inflow + backlog clearance rate) ÷ (productive hours per agent × 3600 ÷ AHT). Apply shrinkage to convert seated agents to scheduled headcount for all channels.
What is the right service level for a contact centre?
There is no universal right answer. Service level targets are set based on customer expectations, contractual obligations, and competitive positioning. The most common targets for inbound voice are 80% of calls answered within 20 seconds (80/20) or 80% within 60 seconds (80/60). Email targets are typically 80–95% responded within 4, 8, or 24 hours. Back-office case SLAs are typically measured in working days (5, 10, or 15 business days). The target you choose directly determines how many agents you need, so choose it deliberately, not by default.
Run your capacity plan in Turnella
Import your data, generate an interval-level forecast, calculate requirements by channel, apply shrinkage, and build a schedule, all in one workspace. Free to start.
Related guides and calculators
Erlang C explained
The math behind voice queue staffing
Volume forecasting
Interval-level demand planning
Shrinkage explained
Converting seated to scheduled headcount
Intraday management
Real-time deviation monitoring and response
Occupancy explained
The Erlang C occupancy constraint
Schedule adherence
Protecting the plan in real time
CC metrics guide
KPIs for the full planning cycle
All calculators →
Full library of free staffing calculators