What is Erlang? Contact-centre staffing maths, in plain English
Introduction
Type a call volume into any staffing calculator and it hands back a number of agents. Behind that number, almost always, is Erlang — a piece of century-old maths that quietly underpins workforce planning in every contact centre on earth. Most planners use it daily without ever being told what it is. This article opens the black box, with no equations: what Erlang is, the problem it solves, and the difference between Erlang B, C, A and X, in language you could explain to your operations director.
The man, briefly
Erlang is named after Agner Krarup Erlang, a Danish mathematician who, in the early 1900s, worked for the Copenhagen Telephone Company. His problem was telephone exchanges: how many lines does an exchange need so that callers rarely meet an engaged tone, without paying for lines that mostly sit idle? In 1909 and 1917 he published the formulae that answer it. A century later the exact same maths sizes contact-centre agents, IT servers, checkout lanes and hospital beds — anywhere random demand meets finite capacity. The unit of workload, the erlang, carries his name.
The problem Erlang solves
Here is the trap every beginner falls into. If 100 calls arrive in an hour and each takes six minutes, that’s 600 minutes of work, or ten hours — so ten agents should cover it, right? Wrong, and not by a little. The reason is that calls don’t arrive in a tidy queue, one every 36 seconds. They arrive randomly: three at once, then a gap, then two more. With exactly ten agents for ten hours of work, every short lull is wasted capacity you can never get back, while every little cluster forms a queue. Average out a whole interval and ten agents would leave callers waiting a very long time. You need a cushion above the raw workload — and Erlang is how you work out exactly how big that cushion must be to hit a service target.
Offered load: the number it all hangs on
The starting point is offered load, measured in erlangs. It’s simply the amount of work arriving: contacts multiplied by average handle time, divided by the length of the interval. One erlang means one hour of work arriving every hour — enough to keep exactly one agent busy with no slack. Our example above is ten erlangs. Offered load is the foundation; every Erlang calculation builds on it, which is why a wrong volume or a wrong AHT quietly wrecks everything downstream.
Erlang C: the workhorse
The model planners use most is Erlang C. Feed it the offered load and a number of agents, and it tells you the probability that a caller has to wait, and from there your service level (the percentage answered within a target time), your average speed of answer, and your agents’ occupancy. Turn it around — ask it for the smallest number of agents that hits “80% answered in 20 seconds” — and you have your staffing requirement.
The diagram above captures the one thing every planner should take from Erlang C: the relationship is an S-curve, not a straight line. When you’re below target, adding a single agent can lift service level by several points — this is the “power of one.” Once you’re comfortably above target, extra agents buy almost nothing but idle time. That non-linearity is why intuition fails and why the maths earns its keep. You can see it move for yourself in the free Erlang C calculator.
The rest of the family: B, A and X
Erlang C assumes every caller waits patiently forever, which is its biggest fiction. The other models relax different assumptions. Erlang B is the original: it assumes there’s no queue at all, so a caller who can’t be served immediately is simply turned away — the right model for sizing phone lines or trunks rather than agents. Erlang A adds patience: it accepts that real callers abandon if the wait gets too long, which both relieves the queue and represents lost service, so it usually staffs a little lower than Erlang C. Erlang X goes furthest, folding in abandonment, a finite number of lines (busy tones), and the redials that failed callers generate — the most realistic of the classical models. Each has its own free calculator: Erlang A and Erlang X.
Where Erlang stops being trustworthy
Erlang is exact, but only for the idealised world it assumes: random (Poisson) arrivals, one pooled queue, and agents who are interchangeable. Those assumptions bend in the real world. A marketing blast or an outage makes arrivals burstier than the maths expects. And the big one — the moment agents have different skills and contacts are routed between them, there is no closed-form Erlang at all. Pooled, cross-skilled operations beat the sum of their parts (the “pooling gain”), and only simulation captures that. Knowing when Erlang is good enough — and when to reach for simulation instead — is the deeper skill. Understanding why arrivals are random in the first place is worth a read on Poisson and natural noise.
Using it without the maths
The good news is that you never have to compute any of this by hand. The free Erlang C, Erlang A and Erlang X calculators do it instantly. And if you want to genuinely understand the engine — to rebuild every formula in a spreadsheet you control and never take a black-box calculator’s word again — the free white paper From Erlang to Excel walks through it from beginner to expert, with a live companion workbook. Start with the calculator, and reach for the paper when you’re ready to look inside.
Put it into practice: the Erlang C staffing calculator, or read From Erlang to Excel to build it yourself.