Erlang C calculator
Enter your call volume, average handle time and service-level target. The calculator returns the number of agents needed on the phones, the number to roster once shrinkage is accounted for, and what happens to service level either side of that answer.
Occupancy at this staffing is 80.7%. The service-level target is what set this headcount, and occupancy is within your 83.0% ceiling.
What happens either side of that answer
| Agents | Service level | ASA | Occupancy |
|---|---|---|---|
| 21 | 23.8% | 348s | 96.0% |
| 22 | 45.9% | 118s | 91.7% |
| 23 | 62.4% | 56s | 87.7% |
| 24 | 74.3% | 30s | 84.0% |
| 25← your answer | 82.9% | 17s | 80.7% |
| 26 | 88.8% | 9.6s | 77.6% |
| 27 | 92.9% | 5.5s | 74.7% |
| 28 | 95.6% | 3.2s | 72.0% |
| 29 | 97.3% | 1.8s | 69.5% |
| 30 | 98.4% | 1.0s | 67.2% |
Red marks a row that misses your service-level target or breaches your occupancy ceiling.
How this is calculated
Erlang C models a queue where calls arrive at random and wait until an agent is free. It takes the offered load — call volume multiplied by handle time — and returns the probability that an arriving call has to wait at all. From that you get service level, average speed of answer and occupancy for any given number of agents.
Offered load, measured in Erlangs, is call volume multiplied by average handle time and divided by the length of the interval. Erlang C then gives the probability that an arriving call has to wait, and service level follows from that probability and the number of agents in excess of the offered load:
A = (calls × AHT) / interval offered load, in Erlangs B(n, A) = (A · B(n−1, A)) / (n + A · B(n−1, A)) C(N, A) = B(N, A) / (1 − (A/N) · (1 − B(N, A))) SL(N) = 1 − C(N, A) · e^(−(N − A) · T / AHT) ASA = C(N, A) · AHT / (N − A) occ = A / N roster = agents / (1 − shrinkage)
We compute Erlang B by recurrence rather than evaluating the factorial form directly. The textbook expression contains AN/N!, which overflows to infinity long before N reaches the sizes real contact centres staff to. The recurrence is stable at any headcount.
Worked example
100 calls arrive in a 30-minute interval, each taking 180 seconds to handle. That is (100 × 180) / 1,800 = 10 Erlangs of offered load. To answer 80% of them within 20 seconds you need 14 agents on the phones, which delivers 88.8% service level and an average speed of answer of about 8 seconds. Thirteen agents reaches only 79.6% — just under target. At 30% shrinkage, those 14 agents mean 20 people rostered.
Where the model breaks
Erlang C assumes calls arrive at random, that every caller waits indefinitely rather than abandoning, that all agents are interchangeable, and that conditions hold steady across the interval. Real queues break all four. Where abandonment is high, Erlang C over-staffs — models such as Erlang A account for callers hanging up. Where routing is skills-based, a single pooled calculation understates what each skill group needs. Treat the output as a well-grounded starting point rather than a finished roster.
Where the defaults come from
Every input above is editable — these are starting points, not claims about your operation. Benchmarks current as of July 2026.
| Default | Value | Source |
|---|---|---|
| Average handle timeInbound customer-service handle time. Outbound conversations and Finn-billed call length are different quantities. | 363 seconds | Call Centre Helper — industry standards for call centre metrics |
| Service level targetA convention, not a standard. Some centres target 90% in 15 seconds; others deliberately run lower. | 80% | Call Centre Helper — industry standards for call centre metrics |
| Target answer time | 20 seconds | Call Centre Helper — industry standards for call centre metrics |
| ShrinkageQuoted standard is 30%; measured average is nearer 26.6%. Includes breaks, training, meetings, absence. | 30% | Call Centre Helper — industry standards for call centre metrics |
| Maximum occupancySustained occupancy above 85% is associated with burnout and attrition. | 83% | Call Centre Helper — industry standards for call centre metrics |
Frequently asked questions
- What is Erlang C?
- Erlang C is a queuing formula that estimates how many agents a contact centre needs to answer a given call volume within a target time. It was derived by Danish mathematician A. K. Erlang for telephone exchanges and remains the standard basis for contact-centre workforce planning.
- How many agents do I need for 80% of calls answered in 20 seconds?
- It depends on volume and handle time, not on the target alone. As a worked example: 100 calls in a 30-minute interval at a 180-second handle time is 10 Erlangs of offered load and needs 14 agents on the phones to hit 80% in 20 seconds. At 13 agents the same interval reaches only about 80%, just under target. Enter your own numbers above.
- What is an Erlang?
- One Erlang is one hour of call traffic per hour — a single line occupied continuously. Offered load in Erlangs is call volume multiplied by average handle time, divided by the length of the interval. 100 calls of 180 seconds each in a 30-minute interval is 10 Erlangs.
- Why does the calculator add agents for shrinkage?
- Erlang C tells you how many agents must be on the phones. It says nothing about breaks, training, meetings, sick leave or admin time. Shrinkage grosses that number up to the headcount you actually roster. At 30% shrinkage, 14 agents on the phones means 20 scheduled.
- Is 80% of calls answered in 20 seconds the industry standard?
- It is the most common convention, not a rule. Call Centre Helper is explicit that 80/20 is a convention rather than a best practice — plenty of centres target 90% in 15 seconds, and others deliberately run lower service levels where cost matters more than speed to answer. Pick the target your customers and budget justify.
- What occupancy should I plan for?
- Between 75% and 85% is the commonly cited healthy band, with roughly 83% observed as a working maximum in practice. Sustained occupancy above 85% is associated with burnout and attrition, which is why this calculator lets occupancy act as a binding constraint — if hitting your service level would push agents past the ceiling, it staffs to the ceiling instead and tells you that is what happened.
- Where does Erlang C break down?
- It assumes calls arrive at random (Poisson), that nobody hangs up while waiting, that every agent handles every call equally, and that conditions hold steady across the interval. Real queues have abandonment, skills-based routing and intra-interval peaks. Erlang C tends to over-staff where abandonment is high — models like Erlang A account for it. Treat the output as a well-grounded starting point, not a final roster.
- What interval length should I use?
- Use 30 minutes for most planning, or 15 minutes where call arrival is spiky. Erlang C assumes steady state within the interval, so a long interval that spans a large swing in volume will understate the staffing needed at the peak.
Put this calculator on your site
Free to embed on any site, commercial or not. No signup, no API key, nothing to break when we ship changes — the embed always runs the current version.
<iframe src="https://www.hirefinn.ai/embed/tools/erlang-c-calculator" title="Erlang C calculator" width="100%" height="880" style="border:1px solid #E7DFD0;border-radius:12px;max-width:100%" loading="lazy"></iframe> <p style="font:14px/1.5 system-ui,sans-serif;margin:8px 0 0">Erlang C calculator by <a href="https://www.hirefinn.ai/tools/erlang-c-calculator">Finn</a></p>
The credit line sits outside the iframe on purpose: a link inside a frame belongs to the framed document and does nothing for the page hosting it. Keeping that line is the only thing we ask in return — remove it and the calculator still works.
Default frame height 880px, responsive to full width.
Related reading
Staffing the queue is one option. Answering it with AI is another.
Finn handles inbound and outbound calls at per-minute rates, with no shrinkage and no occupancy ceiling to plan around. Book a demo and we will run it against your own volume.