How many people do I need on the phones?
Answer four questions in plain English and get a staffing number you can actually put in a roster, including the people you lose to breaks, training and absence. No jargon required, and every step of the sum is shown.
What each question means
If you have never staffed a contact center before, four of these will be unfamiliar. They are all simpler than they sound.
“How long does one call take?”
The industry calls this average handle time, or AHT. It is talk time plus any hold plus the wrap-up afterwards, because an agent finishing notes on the last call cannot take the next one. Leaving wrap-up out is the most common beginner mistake and it makes every number too small.
“How many should be answered quickly?”
This is your service level, and it is always a pair: a percentage and a number of seconds. 80% within 20 seconds is the most common target. It is a convention, not a rule. A sales line might sensibly run looser and an emergency line tighter.
“How hard can you work them?”
This is the occupancy cap, and it is the one people leave out and later regret. Occupancy is the share of an agent's available time spent actually on calls. Above roughly 85% sustained, burnout and resignations climb sharply, and replacing an agent costs far more than the seat you saved. The cap stops the maths handing you a number that only works on paper.
“Time lost to breaks, training, absence?”
This is shrinkage, and it is the difference between people on the phones and people on the payroll. Someone rostered for eight hours is not available for eight hours: breaks, coaching, team meetings, sickness and lateness all take a bite. Most centers land between 25% and 35%.
Why you cannot just divide
The intuitive sum is total call minutes divided by shift minutes. It gives a number, and the number is always too low.
Calls do not arrive politely spaced out. They cluster, and a queue with exactly enough capacity on average spends half its time behind. Covering the randomness is what the extra agents buy, and how many you need depends on how quickly you have promised to answer.
On the default numbers, the naive sum says 33.3 people. The real answer is 40. That gap is not padding; it is the cost of arrival randomness plus a humane occupancy ceiling.
Worked example, step by step
250 calls in half an hour, 4 minutes each, answering 80% within 20 seconds, capping occupancy at 85%, losing 30% to shrinkage.
- Work out the load. 250 calls × 240 seconds = 60,000 seconds of work, in an interval that is only 1,800 seconds long. That is 33.33 agents' worth of continuous work.
- Add cover for randomness. To answer 80% within 20 seconds you need 39 agents, not 33. The extra six absorb the clustering.
- Apply the humanity check. 39 agents leaves everyone at 85.5% occupancy, just over the ceiling. One more agent brings it to 83.3%, so the answer becomes 40 agents.
- Convert to real people. 40 agents must be on the phones. At 30% shrinkage you must roster 40 ÷ 0.70 = 57.1 people to keep 40 on the phones.
Notice step three. The service-level target was already satisfied at 39. The occupancy cap is what made it 40. That happens constantly on busy intervals, and most tools will not tell you which of the two constraints produced the number.
Common questions
How do I work out how many agents I need in a call center?
Four inputs: how many contacts arrive in an interval, how long each takes to handle including wrap-up, how fast you have promised to answer, and how much rostered time is lost to breaks, training and absence. Multiply contacts by handle time and divide by the interval length to get the workload, use Erlang C to find the headcount that meets your answer-speed target, then divide by one minus shrinkage to get the number of people to roster. For 250 calls per half hour at four minutes each, answering 80% in 20 seconds, that is 40 on the phones and 57.1 rostered at 30% shrinkage.
Why can I not just divide total call time by shift length?
Because calls arrive randomly rather than evenly spaced. A team sized to exactly match average workload spends roughly half its time with a queue building, so answer times run away. Erlang C prices that randomness. On the example above the naive division gives 33.3 agents and the correct answer is 40, a difference of about 20%.
How many rostered staff do I need for 40 agents on the phones?
Divide, never multiply. At 30% shrinkage it is 40 divided by 0.70, which is 57.1 people. Adding 30% instead gives 52, which is more than five people short. The multiply error always understates the requirement by the square of the shrinkage rate, so at 30% shrinkage you end up 9% under every single interval.
Does this work for chat and email?
Not directly. Erlang C assumes one contact at a time and no work carrying over between intervals. Chat with concurrency and deferred work such as email or tickets need a different model, because an agent handling three chats is neither one agent nor three. Use this for voice, and for anything where the customer is waiting on the line.
What if my volume is much smaller?
It still works, but the answer gets proportionally more expensive. Small queues cannot pool randomness, so a team taking 25 calls per half hour needs about 6 agents where the workload alone suggests 3.3. This is also the quantitative argument for multi-skilling: two separate queues of 125 calls need 42 agents between them, while one pooled queue of 250 needs 39.
Want the formula rather than the plain-English version?
This page and the Erlang C calculator run exactly the same engine. That one uses the industry vocabulary and shows the full queueing derivation, the decision curve and which constraint was binding.
Book a demo or open the Erlang C calculator
Related: shrinkage calculator · Erlang C explained