Erlang-C

From WFM Labs

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)=ann!nnak=0n1akk!+ann!nna

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:

  1. 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.
  2. 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).
  3. Identical servers. All c agents are interchangeable. False whenever skill differences matter — multi-skill routing breaks this.
  4. Infinite queue. No queue limit. Real ACDs have queue limits; usually not the binding constraint.
  5. 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.
  6. 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:

  1. Forecast volume and AHT for the planning interval.
  2. Compute offered load a = λ × AHT in Erlangs.
  3. Iterate agent count n upward, computing SL(T) at each, until SL crosses target.
  4. 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

Interactive tools

  • Erlang Suiteerlangcalculator.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 Onepowerofone.wfmlabs.com. The Erlang-C sensitivity to a single-agent change visualized.
  • Minimal Interval Varianceminimal-variance.wfmlabs.com. The Poisson-floor-of-variance companion to Erlang-C planning — what variance the queue cannot eliminate even with a perfect plan.