Erlang C Calculator for Call Center Staffing
Work out how many agents you need to hit your service level target, for phone queues or live chat, including shrinkage. Free, no sign-up.
Forecast calls arriving in one 30-minute interval.
Talk time plus hold plus after-call work.
e.g. 80% of calls answered within 20 seconds.
Time paid but not available: breaks, training, meetings, absence.
| Agents | Service level | ASA | Occupancy |
|---|---|---|---|
| 12 | 64% | 40.4s | 83.3% |
| 13 | 79.6% | 17.1s | 76.9% |
| 14 (min) | 88.8% | 7.8s | 71.4% |
| 15 | 94.1% | 3.7s | 66.7% |
| 16 | 97.1% | 1.7s | 62.5% |
Assumes contacts the AI resolves never reach the queue and the rest keep the same handle time. Staffing does not fall in a straight line: small queues lose efficiency, so the saving is usually smaller than the share of contacts removed. Bund AI answers web chat and email, not phone, so for calls this models moving questions to self-serve chat.
Free. No sign-up. Everything is calculated in your browser, nothing you enter is sent anywhere.
How it's calculated
- Traffic intensity
- A (Erlangs) = contacts per interval x AHT (sec) / interval length (sec)
- Erlang B, built up one agent at a time
- B(0) = 1, B(k) = A x B(k-1) / (k + A x B(k-1))
- Erlang C, chance a contact waits
- Pw = N x B(N) / (N - A x (1 - B(N)))
- Service level
- SL = 1 - Pw x e^(-(N - A) x target time / AHT)
- Speed of answer and occupancy
- ASA = Pw x AHT / (N - A) Occupancy = A / N
- Headcount to schedule
- Scheduled = agents / (1 - shrinkage %)
Worked examples
Erlang C staffing examples
Four queues worked through the calculator, including the standard textbook reference case.
A phone queue with an 80/20 service level target.
100 calls per 30 minutes, 180 second handle time, 80% answered within 20 seconds, 30% shrinkage.
Traffic is 100 x 180 / 1,800 = 10 Erlangs. 14 agents reach an 88.8% service level with a 7.8 second average speed of answer and 71% occupancy. With shrinkage you schedule 20.
The same queue with 13 agents instead of 14.
100 calls per 30 minutes, 180 second handle time, 13 agents.
Service level drops to 79.6%, just missing 80/20, and average speed of answer more than doubles to 17 seconds. Queues are very sensitive to the last agent or two.
A chat team where each agent runs two chats at once.
200 chats per hour, 480 second handle time, 2 chats per agent, 80% answered within 30 seconds.
Effective handle time per chat slot is 240 seconds, so traffic is 13.3 Erlangs. 17 agents hit an 83.7% service level. After 30% shrinkage you schedule 25.
The textbook queue if an AI agent resolved 40% of contacts first.
60 contacts reach the team instead of 100, same handle time and target.
Traffic falls to 6 Erlangs and 9 agents meet the target, 13 scheduled instead of 20. That is 35% fewer seats for 40% fewer contacts, because small queues are less efficient.
Using the results
Getting from Erlang C to a real rota
Erlang C is a model with assumptions. These are the adjustments most workforce planners make.
Erlang C assumes nobody hangs up
The model treats every contact as waiting until answered. Real customers abandon, so Erlang C tends to overstaff slightly. That is usually the safe side to be wrong on.
Keep occupancy below about 85%
High occupancy looks efficient but leaves no recovery time between contacts. Sustained occupancy above 85 to 90% is linked to burnout and attrition.
Plan for 30 to 35% shrinkage
Breaks, training, meetings, coaching and absence typically remove a third of paid time. Measure your own and use that figure.
Staff each interval separately
Volume changes through the day. Run the calculator for each 30 or 60 minute interval of your forecast rather than for a daily average.
FAQ
Questions people ask
What is an Erlang?
One Erlang is one hour of work arriving per hour, or continuous work for one agent. 100 calls of 3 minutes each in 30 minutes is 300 minutes of work in 30 minutes, which is 10 Erlangs.
How does the Erlang C formula work?
Erlang C gives the probability that a contact has to wait, given the traffic in Erlangs and the number of agents. From that it derives service level and average speed of answer. The calculator tries increasing agent counts until your service level target is met.
What does 80/20 service level mean?
80% of contacts answered within 20 seconds. It is a common phone target. Live chat teams often use 80% within 30 to 60 seconds, and email is usually measured in hours with a response time SLA instead.
Can I use Erlang C for live chat?
Yes, with an adjustment. Because an agent can handle several chats at once, divide the handle time by the number of concurrent chats. Switch to live chat mode and set chats per agent and the calculator does this for you.
What is shrinkage and why add it?
Shrinkage is paid time when agents can't take contacts: breaks, training, meetings, sickness and holidays. Erlang C tells you how many agents must be answering. Dividing by 1 minus shrinkage gives how many you need to schedule.
Is anything I enter stored?
No. The calculator runs entirely in your browser. Nothing you type is sent to a server or saved.
More free tools
The cheapest contact to staff is the one that never reaches the queue.
Bund AI answers routine questions on web chat and email instantly, using your own help content, and hands anything that needs a person to your team with the full conversation. Fewer contacts in the queue means fewer seats to fill at peak.