Erlang-C
Erlang-C is the foundational delay-formula of contact-center workforce management. Given an arrival rate, a mean handle time, and a number of agents, Erlang-C returns the probability that an arriving contact has to wait — and from that, the expected wait, the Service Level at any threshold, and the Occupancy. It is the equation that translates demand and a service target into a staffing requirement. It matters because almost every WFM tool, schedule, and headcount plan in the contact-center industry runs Erlang-C either explicitly or under the hood.
Erlang-C is also the equation most often misapplied. It assumes infinite caller patience, Poisson arrivals, and exponential service times — and it returns sensible numbers right up to the point where one of those assumptions breaks. The Level 3+ practitioner knows when to use Erlang-C, when to switch to Erlang-A or simulation, and when to treat the Erlang-C number as a planning input rather than a planning truth.
Definition
Erlang-C describes the M/M/c queue: Markovian (Poisson) arrivals, Markovian (exponential) service times, c identical servers, infinite queue capacity, and infinitely patient callers (no abandonment). It was derived by Agner Krarup Erlang in 1917 to size telephone exchanges and is the standard delay-probability formula for any queue meeting these assumptions.
The output is the probability that an arriving customer must wait — i.e., that all c servers are busy. Combined with the exponential service-time distribution, this gives the full wait-time distribution.
Formula / mathematics
The Erlang-C formula. Let a = offered load in Erlangs (a = λ × AHT, or arrival rate × mean service time), n = number of agents, ρ = a/n (utilization or Occupancy):
C(n, a) is the probability that an arriving contact has to wait at all (P(Wait > 0)).
The probability of waiting more than time T is:
- P(Wait > T) = C(n, a) × e−(n − a) × T / AHT
Service Level at threshold T:
- SL(T) = 1 − C(n, a) × e−(n − a) × T / AHT
Average Speed of Answer (ASA):
- ASA = C(n, a) × AHT / (n − a)
The formula has no closed form for the staffing inverse — given a target SL, find the minimum n — so practitioners iterate n upward until SL crosses the target.
Assumptions
Erlang-C delivers a usable number when the following hold approximately:
- Poisson arrivals. Independent, memoryless arrival stream. Realistic at interval scale for most inbound voice queues. Breaks down for promotional surges, follow-on traffic from outbound campaigns, or any scheduled-arrival pattern.
- Exponential service times. Memoryless service-time distribution. Realistic on average; the empirical AHT distribution often has heavier tails than exponential (Erlang-2 or log-normal fits better for complex queues).
- Identical servers. All c agents are interchangeable. False whenever skill differences matter — multi-skill routing breaks this.
- Infinite queue. No queue limit. Real ACDs have queue limits; usually not the binding constraint.
- Infinite patience. No abandonment. The single most often-violated assumption — when expected wait exceeds typical caller patience, Erlang-C systematically over-states required staffing because it treats abandons as still-in-queue.
- Single queue, single skill. One service. Multi-skill operations require simulation or one of the modern multi-skill approximations.
When Erlang-C is appropriate
- Single-skill voice queues with stable AHT and modest abandonment (< 3%).
- Annual budgeting and headcount planning where the M/M/c approximation is good enough and simulation overhead isn't justified.
- Interval-level staffing for the bulk of contact-center hours (the assumptions hold for ~80% of intervals in a typical operation).
- Power-of-One-style sensitivity work — the relative effect of one more or one fewer agent is well-characterized even when absolute SL is approximate.
When Erlang-C breaks
- Abandonment > 3–5%. Erlang-C inflates required staffing because it treats abandoned callers as staying. Use Erlang-A.
- Heavy multi-skill routing. The pooling effect across skills is hidden by single-queue Erlang-C. Use simulation (see Discrete-Event vs. Monte Carlo Simulation Models).
- Outbound or scheduled-arrival. Poisson assumption fails. Use a different arrival model.
- Non-stationary intra-interval surge. Sub-interval bursts (a marketing email blast at 9:00 AM) violate the steady-state assumption. Use simulation or shorter intervals.
- Very small queues (n < 5–8). Approximations don't hold tightly. Behavior is dominated by integer effects rather than the smooth curve. Use exact small-system math or simulation.
- Caller patience much shorter than expected wait. Erlang-C ignores this; abandonment will dominate the queue dynamics. Use Erlang-A.
Practitioner use
The standard staffing workflow:
- Forecast volume and AHT for the planning interval.
- Compute offered load a = λ × AHT in Erlangs.
- Iterate agent count n upward, computing SL(T) at each, until SL crosses target.
- Apply Shrinkage gross-up to convert producing-FTE to required-FTE.
This loop is what every modern WFM platform runs under the hood. The Erlang-C number is rarely the final staffing number — it's the producing-FTE input to the cost-and-headcount math.
A subtle point: Erlang-C is most useful as a sensitivity tool. The absolute SL number is approximate, but the rates of change — how SL responds to ±1 agent (see Power of One), how SL responds to a 10% volume miss, how the AHT-vs-staff trade-off curves — are accurately captured by the formula. Practitioners who use Erlang-C as a sensitivity analyzer, not a precision instrument, get more value from it.
Common failure modes
- Treating Erlang-C as exact when abandonment is non-trivial. The number will be high. Use Erlang-A when expected abandonment exceeds ~3%.
- Running Erlang-C on multi-skill queues without correction. Single-queue Erlang-C systematically over-states staffing for skill-pooled operations. Use a multi-skill approximation or simulation.
- Using a single AHT across heterogeneous mixes. Erlang-C with mean AHT misses the variance contribution. A queue with bimodal AHT (mostly 2-min, occasionally 20-min) is staffed wrong by Erlang-C.
- Solving for SL with a wrong T. Some platforms default T to the SL threshold; others to AHT/4 or a fixed 20 seconds. Check before trusting the output.
- Ignoring interval-to-interval correlation. If a 30-min interval misses, the next 30-min interval is often correlated — the same volume surge usually crosses interval boundaries. Erlang-C treats intervals independently.
- Treating Erlang-C output as prescriptive rather than directional. The math returns a staffing number. The real staffing decision adds judgment about volume risk, abandonment cost, and customer experience.
Maturity Model Position
- Level 1 — Initial (Emerging Operations). Erlang-C either not used, or used through a calculator without understanding of assumptions. Staffing decisions made on volume-per-agent rules of thumb.
- Level 2 — Foundational (Traditional WFM Excellence). Erlang-C drives interval-level staffing, embedded in the WFM platform. Practitioners use it routinely; assumptions sometimes checked, sometimes not. Single-skill queues handled correctly; multi-skill queues handled approximately.
- Level 3 — Progressive (Breaking the Monolith). Erlang-C used appropriately — switched to Erlang-A when abandonment matters, switched to simulation when multi-skill or non-Poisson dynamics dominate. SL is reported as a distribution, not a point. Power of One sensitivity used in real-time decisions.
- Level 4 — Advanced (The Ecosystem Emerges). Erlang-C is one model in a portfolio that includes Erlang-A, simulation, and probabilistic envelope methods. The choice is automated based on queue characteristics. Plans report risk distributions (see WFM Labs Risk Score™), not single-point SL.
- Level 5 — Pioneering (Enterprise-Wide Intelligence). Erlang-C survives as a special-case fast approximation inside a richer learned model that adapts to non-stationarity, non-Poisson arrival, and multi-pool routing in real time.
References
- Erlang, A.K. (1917). Solution of some problems in the theory of probabilities of significance in automatic telephone exchanges. Originally published in Danish; the foundational delay-formula paper.
- Erlang, A.K. (1909). The theory of probabilities and telephone conversations. Nyt Tidsskrift for Matematik B, 20: 33–39. The earlier loss-formula paper that became Erlang-B.
- Cooper, R.B. (1981). Introduction to Queueing Theory (2nd ed.). Definitive M/M/c treatment.
- Koole, G. (2013). Call Center Optimization. MG Books. Modern Erlang-C use in contact centers, including pitfalls and extensions.
- Aksin, Z., Armony, M., & Mehrotra, V. (2007). The Modern Call Center: A Multi-Disciplinary Perspective. Production and Operations Management, 16(6), 665–688. Empirical departures from Erlang-C assumptions.
See Also
- Erlang-A — Erlang-C with abandonment (Palm 1946)
- Service Level — Erlang-C's principal output
- Average Speed of Answer (ASA) — Erlang-C's mean-wait output
- Occupancy — the ρ in the formula
- Abandonment — the assumption Erlang-C ignores
- Average Handle Time — the AHT input
- Power of One — Erlang-C sensitivity to single-agent change
- Capacity Planning Methods — where Erlang-C sits in the planning workflow
- Demand calculation — annual base FTE companion to Erlang-C interval staffing
- Discrete-Event vs. Monte Carlo Simulation Models — when to leave Erlang-C behind
- Probabilistic Forecasting — distributional inputs to risk-aware Erlang-C planning
- WFM Labs Risk Score™ — the WFM Labs methodology for Erlang-C plan risk
- Forecasting Methods — the demand-side companion
Interactive tools
- Erlang Suite — erlangcalculator.wfmlabs.com. The reference Erlang-C calculator with paired Erlang A, Power of One, and Day Planner. The right tool for routine interval staffing.
- Power of One — powerofone.wfmlabs.com. The Erlang-C sensitivity to a single-agent change visualized.
- Minimal Interval Variance — minimal-variance.wfmlabs.com. The Poisson-floor-of-variance companion to Erlang-C planning — what variance the queue cannot eliminate even with a perfect plan.
