Erlang C overstates the agents you need whenever customers hang up, because it assumes every caller waits as long as it takes. Real callers do not. They abandon, and the model that accounts for that is called Erlang A. If you only use the Excel version, you should know what it leaves out.
I built that version in my Excel post on the Erlang C calculator and flagged the weakness there in one paragraph. Here is the longer answer, because the weakness changes decisions.
What does Erlang C assume about the caller?
That nobody ever gives up. Every call joins the queue and stays there until an agent picks up. That is the maths of the 1917 formula, written for telephone exchanges where the operator was the only way through. Nothing about it describes a customer who has been listening to a recorded message for four minutes.
Take the worked example from the calculator post: 120 calls in a half hour, 300 seconds handle time, 24 agents. The sheet says 29.8% of calls have to wait, with an average speed of answer of 22.4 seconds. That is about 36 calls waiting out of 120. Now say five of those 36 hang up before an agent answers. Treat that as a hypothetical, not a benchmark. That is 5 abandoned calls out of 120, or 4.2%.
The sheet knows nothing about those five. It still counts them in the queue as if they waited and were served, and it still plans the staff to answer them. The result is a requirement that is a little too high.
What is Erlang A?
Erlang A adds one more input to the five from the calculator: how long callers are willing to wait before they give up. The model treats patience as a random figure with an average, the same way Erlang C treats handle time. Feed it that average, and it returns the abandonment rate along with the service level.
The standard reference is the 2002 paper by Garnett, Mandelbaum and Reiman, Designing a Call Center with Impatient Customers, which studies call centres where customers are impatient and gives rules of thumb for sizing them. A draft is hosted by the Technion’s service engineering group. I am not a mathematician and I will not pretend to follow all of it, but the point comes through in the abstract and the introduction: the Erlang C formula you have been using is a special case where patience is infinite.
That is a better way to say it than “Erlang C is wrong.” It is not wrong. It is the case where nobody leaves. For a real queue, that case does not exist.

Why does abandonment change the staffing answer?
Because abandoned calls shorten the queue. A caller who hangs up after 40 seconds no longer takes up an agent’s time, so the people still waiting move forward faster. A model that ignores this thinks the line is longer than it really is.
That has two practical effects.
- Erlang C asks for too many agents. If your abandonment rate is meaningful, the true requirement for an 80/20 target is lower than the sheet says. The gap grows as your queue gets longer and your callers get less patient.
- Service level can look better than the customer experience. Depending on how your phone system reports it, calls that hang up quickly may not count against you. You can post a good number and still lose a lot of people.
That second point is the uncomfortable one. A team can run a healthy service level and a poor abandonment rate at the same time. I would rather report both numbers side by side, every day.
Does this mean you should stop using the Excel sheet?
No. Keep the sheet. Use it as an upper bound and then check it against what your own phone system shows. I thought the answer was to find the more advanced model. It is to understand which direction the simple one errs in.
Here is the routine I would run in a month:
- Pull the abandonment rate by half hour for the last four weeks.
- Compare it with the Erlang C waiting probability for the same intervals. In the example, 29.8% of calls wait at 24 agents.
- Look at how long the abandoned calls waited. If most leave inside the first 10 to 20 seconds, treat them as short abandons and strip them out of the volume you plan against, as Call Centre Helper suggests.
- If a lot leave after a minute or more, that is a real service failure, and no staffing model will solve it. Treat it as a staffing or process problem and fix the queue itself.
What do you do about the callers who leave?
First, learn who they are. An abandoned call is a customer who wanted something and did not get it. Some will call back, which inflates your volume in the next interval and makes your forecast worse. Some will not call back at all, and you will never see them again. That is the cost the sheet cannot show.
If callbacks are a large share of your volume, you are double counting. A caller who rings three times in ten minutes is one customer and three calls on the report. I covered the pressure that builds in a queue like that in my post on staffing for a launch you cannot forecast. The pattern is the same: the queue punishes you twice, first with the wait and then with the repeat.
Second, give them a reason to stay. A message that says where they are in the queue, or how long the wait will be, changes how patient people are. A callback option does more. It removes the wait and the abandonment in one move, and it is a staffing tool, because you control when the callback gets made.
How long will your callers actually wait?
Nobody knows until they measure it. Pull the time-to-abandon for every call that hung up in a week and look at the spread. In most queues I have seen, the bulk of abandons happen in the first 20 to 30 seconds, from callers who were never going to wait, and then a smaller group leaves after a minute or two, which is where the real damage is.
Here is why it matters, with hypothetical figures. Say your median time to abandon is 45 seconds. If your average speed of answer is 22 seconds, as in the 24-agent row, most people who wait will still be on the line when an agent frees up. If your average speed of answer is 90 seconds, more than half of those waiting have gone before anyone picks up. The same staffing sheet describes two very different customer experiences, and only one of them shows up as lost callers.
What should a service level target look like?
The 80/20 target is a convention, not a law of nature. It is a fine start, but a target with one number invites you to optimise one number. Pair it with an abandonment ceiling. I use 5% as a conversation starter, not as a standard. If you are hitting 80/20 and abandoning 8%, the target is being met and the customers are still leaving, so the target needs rewriting.
The same logic applies at the vendor level. If your outsourcer reports 80/20 monthly, ask for abandonment by half hour as well. An average hides the Monday mornings. It is the half hours that fail, not the month.
What should you take away?
One more habit worth building: log the abandonment rate against the staffing level of each half hour for a month, then plot the two. You will see a rough curve where each extra agent buys fewer saved callers than the last. That curve is your own, built from your own customers, and it is a better guide to the right headcount than any textbook figure, mine included.
It also gives you something concrete to show the person who signs off the budget. Two agents more at the Monday peak saves a stated number of callers. Two agents fewer loses a stated number. Leaders argue less about a number they can see.
Erlang C is a good first estimate and a poor description of your customers. Erlang A is closer, and it needs one input you probably do not track yet: how long your callers will wait. Start measuring it. Average time to abandon, by half hour, takes ten minutes to pull from most phone systems.
Then put abandonment on the same page as service level in every report you share. The dashboard does not tell you which callers you lost. You have to go and look.
Hutch Morzaria is a Director-level CX and Support Leadership professional with 19 years of experience building global support organizations across SaaS, Fintech, and enterprise technology. He has hired dozens of support and CX leaders across his career and holds ITIL Expert certification across V3 and V4.



