Team
How many agents do you need? The Erlang method in plain language
19 Oct 2026 · 9 min read
The short answer
To work out how many agents you need, multiply calls per hour by average handle time to get your workload in erlangs, then use the Erlang C formula to find the fewest agents that meet your service level. Add shrinkage for breaks and leave. 60 calls an hour at 4 minutes each needs 7 on the phones for 80% answered in 20 seconds.
An Erlang calculator tells you how many agents you need to answer a given number of calls within a target time. It takes calls per hour, average handle time and a service level target, and a shrinkage allowance turns the answer into a roster. This page works through one full example with every figure checked.
The method is named after A. K. Erlang, a Danish mathematician and engineer who worked out how many operators a telephone exchange needed for a given call volume. Call centres still use it for inbound staffing and scheduling, and it explains why one extra agent can change the wait so much.
What do you need before you start?
You need these numbers for each hour you plan. Take them from your last few weeks of call records, not from a guess.
- Arrival rate: calls arriving per hour, for the hour you are planning. Plan one hour at a time, because 10am and 3pm are rarely the same.
- Average handle time (AHT): talk time plus hold plus wrap-up, in seconds. See customer service KPIs.
- Service level target: the share of calls to answer within a set time, such as 80% in 20 seconds.
- Shrinkage: the share of paid time agents are not available because of breaks, leave, sickness, training and meetings.
- Occupancy ceiling (optional): the highest share of time you will let agents be busy. Call Centre Helper’s example caps it at 85%.
Step 1: turn calls and handle time into workload
Workload in erlangs equals calls per hour multiplied by AHT in hours, as Wikipedia’s entry on the erlang) sets out. One erlang is one agent busy for a full hour. This is the only arithmetic you need to do by hand.
Example: a Nairobi clinic booking line gets 60 calls in its busiest hour, and each call takes 240 seconds (4 minutes) including wrap-up. Workload A = 60 × 240 ÷ 3,600 = 4 erlangs. Four agents would be busy for the whole hour if calls arrived perfectly evenly. They do not, so you need more than 4.
Step 2: why you need more agents than the workload
Calls arrive at random, so sometimes three land in one minute and none for the next two. When every agent is busy, the next caller waits. Erlang C estimates the chance that an arriving caller has to wait, given the workload and the number of agents.
With exactly 4 agents for 4 erlangs, the queue keeps growing. With 5, the chance a caller waits is still 55%. The chance then falls quickly with each added agent.
Step 3: find the fewest agents that meet your service level
Try 5 agents, then 6, then 7, and stop at the first number that meets your target. For each, Erlang C gives the probability of waiting (Pw). The service level is then 1 − Pw × e^(−(N − A) × T ÷ AHT), where N is agents, A is erlangs, T is the target answer time in seconds and AHT is in seconds.
| Agents on the phones | Callers who wait | Answered within 20 s | Average wait (all calls) | Agent occupancy | Meets 80/20? |
|---|---|---|---|---|---|
| 5 | 55.4% | 49.0% | 133.0 s | 80.0% | No |
| 6 | 28.5% | 75.9% | 34.2 s | 66.7% | No |
| 7 | 13.5% | 89.5% | 10.8 s | 57.1% | Yes |
| 8 | 5.9% | 95.8% | 3.5 s | 50.0% | Yes |
| 9 | 2.4% | 98.4% | 1.1 s | 44.4% | Yes |
The answer for this hour is 7 agents on the phones. Six miss the target at 75.9%, and going from 5 to 7 cuts the average wait from 133 seconds to about 11. Occupancy at 7 agents is 4 ÷ 7 = 57%, well under the 85% cap in Call Centre Helper’s example, which leaves room for work that is not calls.
Step 4: add shrinkage to get the roster size
Shrinkage is the time you pay for but cannot put on the phones. Divide the agents you need on the phones by (1 − shrinkage) to get how many to schedule. Call Centre Helper puts the industry average at around 30 to 35% and uses 30% in its own example.
Example: 7 agents needed on the phones, shrinkage 30%. 7 ÷ (1 − 0.30) = 7 ÷ 0.70 = 10 agents rostered for that hour. If your real shrinkage is 35%, 7 ÷ 0.65 = 10.8, so you would roster 11. Work out your own shrinkage from your rota: total hours lost to breaks, leave, sickness and training, divided by total paid hours.
What is a good service level target?
Pick a target your customers will tolerate and your budget can pay for. 80% in 20 seconds is a common example, and Call Centre Helper’s worked example uses it, but it is a convention, not a rule. Lines where a delay costs more, such as emergency bookings, justify a tighter target than a line that takes orders.
The table shows the price. At 7 agents you answer 89.5% in 20 seconds, at 6 only 75.9%, so one agent decides whether you meet 80/20. Set the target with the cost of that agent in front of you, and do not promise more than you can staff. The same target goes into your SLA.
How does this change through the day?
Run the calculation for every hour or half hour, because the busy hour is the only one where you need the full count. For the same clinic, take a quieter hour with 30 calls at 240 seconds: A = 30 × 240 ÷ 3,600 = 2 erlangs.
| Agents on the phones | Answered within 20 s | Meets 80/20? |
|---|---|---|
| 3 | 59.1% | No |
| 4 | 85.3% | Yes |
| 5 | 95.4% | Yes |
Half the calls need 4 agents rather than 7. Call centre scheduling means building a rota that follows this curve, with more people at the busy hours and fewer in the quiet ones. Put lunches and training in the quiet hours, and limit leave around the peaks.
What does the Erlang method get wrong?
Erlang C assumes callers never hang up while waiting. Real callers do, so, as Wikipedia notes), it predicts more agents than are really needed. Treat the result as a safe starting point, then check it against your real service level.
- Forecast error. The call count is a forecast. Compare it with actuals each week and adjust.
- Handle time moves. A new product or a bad week lengthens calls. Recheck AHT monthly.
- Mixed work. If agents also reply to WhatsApp and email, not all their time is on the phones. Plan the phone hours first, then add the message workload.
- Skills. The formula assumes one pool of agents. Separate queues for separate languages or topics each need their own count.
- Callbacks and outbound. They take agent time that the calculation above leaves out.
How can SautiDesk help with staffing?
On SautiDesk Pro, the How many people report applies Erlang C for you. It forecasts calls for each hour from the same weekday over the previous eight weeks, takes handle time as talk plus wrap-up from your recent calls, and uses the service level target in your workspace settings. The result is people needed on the phones for each hour, before shrinkage, so still apply Step 4.
Two more reports help you check the rota against the real day: Forecast vs actual compares what you expected with what came in, and Occupancy & utilisation shows how busy agents were. Reports are a Pro feature and Basic has none; see pricing. How callers are routed to those agents matters as much as the headcount, which call queues and ACD explained covers.