If you've been in contact center operations for more than five minutes, you've heard the term Erlang C. It comes up in every staffing conversation, every WFM tool, every capacity planning spreadsheet. But most people using it have never had it explained clearly.
Here's the plain-English version — no statistics degree required.
Who Was Erlang?
A.K. Erlang was a Danish mathematician and engineer who worked for the Copenhagen Telephone Company in the early 1900s. His job was to figure out how many telephone operators the exchange needed to handle incoming calls without keeping customers waiting too long.
He developed a set of formulas — now called Erlang A, B, and C — that became the foundation of queuing theory and are still used over a century later in every contact center on the planet.
What Does Erlang C Actually Calculate?
Erlang C answers one specific question: given a certain volume of calls arriving randomly, how many agents do you need to achieve a target service level?
The key word is randomly. Calls don't arrive in a perfectly spaced, predictable stream. In any given minute, you might get zero calls, three calls, or seven calls. The math has to account for that randomness — which is exactly what Erlang C does.
The formula takes three inputs:
- Arrival rate — how many calls arrive per unit of time
- Average Handle Time (AHT) — how long each call takes
- Number of agents — what you're solving for
And it outputs the probability that a caller will have to wait — which you can then use to calculate your service level (what percentage of callers get answered within X seconds).
The Key Assumption Behind Erlang C
Erlang C assumes that callers who encounter a busy queue will wait indefinitely until an agent is free. Nobody hangs up. In reality, of course, people do abandon — especially if they've been on hold for two minutes.
This assumption means Erlang C slightly overestimates the agents you need compared to real life. In practice, some callers abandon before being served, which reduces actual queue load. So Erlang C gives you a slightly conservative headcount — which most operations managers consider acceptable. Better to staff slightly high than to miss your service level.
Note: There is an extended formula called Erlang A that accounts for caller abandonment and gives a more precise answer. BuildMyShift uses Erlang C, which is the industry standard and produces reliable results when combined with a realistic shrinkage factor.
Why Can't You Just Divide Calls by AHT?
This is the question every new manager asks. If I get 90 calls per hour and each call takes 5 minutes, that's 450 minutes of work — which is 7.5 agents worth of work. So why can't I just schedule 8 agents?
Because of random arrival. Even with 8 agents, there will be moments within that hour where 10 or 12 calls arrive in a short burst and all agents are simultaneously busy. Some callers will queue. Whether that queue grows or clears quickly depends on how many agents you have above the minimum — and that relationship is non-linear.
Here's the counterintuitive part: going from 8 agents to 9 doesn't improve your service level by a small amount. In many configurations it can improve it dramatically. And going from 9 to 10 might improve it by almost nothing. Erlang C captures exactly this non-linearity.
The practical takeaway: You can't use simple division to staff a queue. You need the Erlang C calculation, or you'll consistently miss your service level targets even when headcount looks "right" on paper.
Erlang B vs Erlang C — What's the Difference?
Erlang B models a scenario where callers who hit a busy signal simply go away and don't try again. It's used for dimensioning telephone trunk lines — how many circuits do you need so that less than X% of calls get a busy signal.
Erlang C models a scenario where callers wait in a queue. This is the model for staffing agent-handled contacts, whether phone, chat, or any other queued channel.
For contact center staffing, Erlang C is always the right formula.
What Erlang C Does Not Cover
Erlang C is a single-interval calculation. It tells you how many agents you need in a specific 30-minute window given the volume and AHT for that window. It does not:
- Build your shift schedules
- Account for agent breaks and lunches overlapping with peak periods
- Optimize your roster to minimize overtime
- Handle multi-skill or blended queues
Those are scheduling problems that sit on top of the Erlang C output. The staffing number is just the starting point — getting from that number to an actual schedule and roster requires additional work.
Do You Need to Understand the Formula?
No. You need to understand the inputs, the outputs, and the assumptions. The formula itself is a series of nested calculations that nobody does by hand. Every WFM tool — including BuildMyShift — runs Erlang C automatically once you provide the inputs.
What you do need to understand is why a small change in AHT or arrival rate can have a large impact on staffing requirements, and why hitting your service level target is more expensive at high occupancy levels. Erlang C explains both of those dynamics.