Est. 2012
Work Tools · Operations

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.

Patience: how long callers wait, on average, before hanging up. How to find yours is below the table.
Service level counts all calls, so hang-ups are misses.
Blank for no ceiling.
100 turns it off.
Breaks, training, PTO. Build yours.
13agents on the phones (Erlang A), 19 on the schedule
14what Erlang C would staff for the same target
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.

Erlang A service levelErlang C service levelYour target
AgentsService levelAbandonsASAOccupancyErlang C SLOn schedule

The math, with your numbers in it

  1. 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?

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.

More operations calculators