← ccPlanning Academy · Advanced track
Beyond Erlang C
Slides done? Here’s the same idea in a bit more depth — the part worth keeping.
In depth: the model that runs the industry, and what it assumes
Erlang C is a brilliant, century-old approximation that staffs most contact centres well — but it’s a model, not the truth. Every model rests on assumptions, and when reality breaks them Erlang C can mislead, usually by over-staffing. Knowing those assumptions is exactly what separates an operator from a button-presser, because it tells you when to trust the number and when to reach past it.
The four assumptions
First, nobody abandons: Erlang C assumes every caller waits forever, so it models a longer queue than really forms and recommends more agents than you need — the fix is Erlang A, which adds a patience parameter, predicts abandonment, and usually hits the same service with slightly fewer agents (if you have abandonment data, it’s the better default). Second, calls arrive purely at random (Poisson) within the interval, but marketing blasts, outage call-storms and “everyone rings at 9:00” create bursts the smooth-arrival maths understates. Third, the interval is in steady state, yet a sharp surge that builds and clears within an interval never reaches equilibrium, and a queue overflowing into the next interval breaks the independent-intervals assumption entirely. Fourth, one queue, one identical agent type — the moment you have skills, priorities or callers routed to agent subsets, the simple formula no longer holds.
When it’s fine, and when to reach further
Most of the time, honestly, Erlang C is fine: for a single-skill voice queue with reasonable volume, modest abandonment and no extreme bursts it’s accurate enough and wonderfully simple, so don’t abandon a working tool for sophistication’s sake. Reach beyond it only when an assumption is clearly violated — abandonment pushes you to Erlang A, while skills-based routing, multi-step journeys, callbacks or interacting queues have no closed-form fit and hand over to simulation. Match the tool to how badly the assumptions are broken.
The principle to remember: know the assumptions and respect the limits. Erlang C assumes no abandonment, random arrivals, steady state and one agent pool — an excellent default when those roughly hold, and a misleading one when they don’t.
Quick quiz
Five questions. Pick an answer to each, then check your score.
1. What does Erlang C assume about abandonment?
It assumes infinite patience, so it models a longer queue than forms — tending to over-staff.
2. What does Erlang A add over Erlang C?
Erlang A adds patience — with abandonment data it’s the better default, often needing fewer agents.
3. What arrival pattern does Erlang assume?
In bursty conditions the smooth-arrival maths understates how bad a peak gets.
4. Why does classic Erlang struggle with skills-based routing?
The single-pool assumption fails as soon as callers route to subsets of agents.
5. When should you reach beyond Erlang C?
It’s an excellent default; reach further only when its assumptions are clearly broken.