Erlang A Calculator
Real callers hang up. Erlang A is the staffing formula that knows it: tell it how patient your callers are and it gives you agents, abandon rate and service level, with the Erlang C answer right next to it so you can see the difference. No email, no signup.
- Service level
- 88.9%
- Abandon rate
- 3.8%
- ASA, answered
- 3.9 s
- Occupancy
- 74.0%
- Chance a call waits
- 24%
- Avg wait, everyone
- 4.6 s
Loading the math.
Erlang A against Erlang C, agent by agent
Same calls, same handle time, same target. The solid line is Erlang A with your callers' patience, the dashed line is Erlang C pretending nobody ever hangs up.
| Agents | Service level | Abandons | ASA | Occupancy | Erlang C SL | On schedule |
|---|
The math, with your numbers in it
- Working it out.
What is Erlang A?
Erlang A is Erlang C with one honest change: every caller brings a patience clock. If they reach an agent before it runs out, great. If not, they hang up. The Swedish statistician Conny Palm worked it out in 1946, which is why you will also see it called Palm's model or M/M/N+M, and the A stands for abandonment. You give it the same inputs as Erlang C plus average patience, and it tells you the service level, the abandon rate and the wait for the callers who stay.
Every abandon is a customer who needed something and did not get it, which is why the abandon rate belongs right next to service level in a staffing plan. Erlang C cannot even tell you what that number will be, it assumes it is zero. I have run a call center, and that blind spot is exactly why I wanted this one on the shelf. That is the gap this page fills.
Erlang A vs Erlang C: which should I staff with?
Erlang C assumes infinite patience, so as the queue gets long it keeps piling up waiting callers who in real life would have hung up. That makes it pessimistic about waits and it usually staffs more agents than you need to hit a service level. Mandelbaum and Zeltyn's Technion paper on Erlang A has a clean example: 50 agents, 48 calls a minute, one minute calls. Erlang C says the average wait is 20.8 seconds. With callers who average two minutes of patience, only 3.1% hang up and the average wait drops to 3.7 seconds! And it is not just because there are 3.1% fewer calls: cut the arrivals by 3.1% in Erlang C and you still get 8.8 seconds. Abandons take work off the queue exactly when it is longest, and everyone behind them moves up.
So which one? Plan with Erlang A when you know your callers' patience and you have an abandon target you care about. Keep the Erlang C number next to it as the cautious ceiling. When the two are far apart, the difference is being paid for by callers hanging up, and the abandon ceiling is how you decide how much of that you will accept.
How do I find my callers' patience?
You cannot measure it directly, because you only see the patience of the people who ran out of it. But there is a neat shortcut from the same paper: in this model the abandon rate equals average wait divided by average patience. Flip it around and patience = average wait of all calls ÷ abandon rate. So if your phone system says the average wait across every call (answered and abandoned) was 30 seconds and 10% abandoned, your callers' patience is about 30 ÷ 0.10 = 300 seconds. Use a few weeks of data, not one wild afternoon. The paper did this on a bank's full year of data and got 446 seconds; yours will be its own number, and it can change by queue and time of day.
How is service level counted here?
- Service level is calls answered within your target time divided by all calls offered, so a caller who hangs up counts as a miss. This is the stricter way, and the honest one to report.
- ASA, answered is the average wait of callers who reached an agent. Avg wait, everyone includes the time abandoners spent before giving up.
- Some centers drop very short abandons (a few seconds) from the count entirely. If yours does, your reported service level will run a little higher than this one.
What Erlang A still gets wrong
It assumes calls arrive at random at a steady rate through the interval, handle times and patience follow the classic exponential shape, one queue, identical agents, and nobody calls back after hanging up. Callbacks and redials are the big one: a caller who abandons and redials shows up twice in your volume. Real data breaks every one of those a little, and the models still earn their keep. Treat the output as a very good first answer, then check it against what your queue actually did.
Can I trust these numbers?
The math follows Mandelbaum and Zeltyn's formulas for Erlang A, computed with log-scale incomplete gamma functions so large queues do not overflow, and Erlang B by the recursion instead of factorials. Before it ships it has to reproduce the paper's Table 1 (3.1% abandoning, 3.7 second average wait, 93% utilization), collapse to Erlang C when patience is huge, collapse to Erlang B when patience is zero, and agree with a simulation of the queue run in the tests. If you catch it disagreeing with a source you trust, tell me!
Your homework: take your worst interval from last week, work out its patience with the shortcut above, and see which number, Erlang A or Erlang C, lands closer to the abandon rate you actually saw.