Erlang C Assumptions, Limitations, and When to Use It
Understand the assumptions behind Erlang C, the operational warning signs it misses, and when to use Erlang A, simulation, or empirical testing instead.

Key takeaways
- Erlang C models one stable queue with Poisson arrivals, exponential service times, identical agents, and no abandonment.
- The formula uses productive capacity, not paid or scheduled headcount.
- Abandonment, skills, concurrency, arrival bursts, and deferred work can materially change the answer.
- Use Erlang A for customer patience and simulation for routing or workflow complexity.
- Back-test predicted service against actual intervals to decide whether the model is accurate enough.
Erlang C is useful when a contact center resembles one stable inbound queue with no abandonment. Its weakness is not the mathematics. Its weakness is using a clean model for an operation whose behavior violates the assumptions that make the formula work.
This guide explains those assumptions, shows the warning signs that matter in practice, and helps planners decide when Erlang C is a reasonable baseline and when to use Erlang A, simulation, or empirical scenario testing instead.
The core Erlang C assumptions
Arrivals are random but stable within the interval
The M/M/N model assumes arrivals follow a Poisson process with a constant average rate. Contact centers usually approximate this by calculating each 15- or 30-minute interval separately. A launch, outage, campaign, or sharp intrainterval spike can make the average rate a poor description of what agents actually face.
Service times are independent and exponentially distributed
The model represents service time with one average and an exponential distribution. Real handle-time distributions may be more concentrated, more variable, or influenced by contact type and agent skill. Averages can conceal the long cases that create queue pressure.
Customers wait until they are served
Erlang C has no abandonment. That makes it unsuitable when a meaningful share of customers hang up, time out, or leave the conversation. Research on call-center queues treats abandonment as a central difference between Erlang C and Erlang A.
Agents and contacts are statistically identical
One Erlang C queue assumes one service pool. Skill-based routing, specialist queues, language requirements, priority customers, and blended teams break that simplification because not every available agent can serve every waiting contact.
The system has reached steady state
The calculation assumes the queue has settled under stable conditions. Real queues carry work across intervals, open the day with a backlog, or experience a rate change before reaching equilibrium. The Wharton and Technion empirical analysis of call-center data describes the M/M/N model as restrictive because it omits impatience, time-dependent parameters, customer heterogeneity, and differences in agent skills.
Agents are continuously available
The model uses productive agents, not paid headcount. Breaks, meetings, coaching, absence, system issues, and offline work must be handled separately through shrinkage and scheduling. Applying Erlang C directly to scheduled headcount usually overstates capacity.
When Erlang C is a reasonable baseline
- The queue is predominantly synchronous and inbound.
- Abandonment is low enough that excluding it does not materially change the decision.
- One agent pool handles one reasonably homogeneous contact type.
- Intervals are stable enough that a stationary approximation is informative.
- The result is treated as a requirement baseline before shrinkage and roster constraints.
In these conditions, Erlang C is fast, explainable, and useful for sensitivity testing. It can show how service risk changes when volume, handle time, or staffing moves.
Warning signs that the model is misleading
- High abandonment: the no-abandonment queue overstates how many customers remain and changes the waiting-time dynamics.
- Occupancy near 100 percent: small forecast errors create disproportionate waiting, and the steady-state model may become unstable.
- Bursting arrivals: average demand hides peaks that matter to service.
- Multiple skills or priorities: aggregate capacity cannot represent who can serve which work.
- Chat concurrency: one agent may handle several conversations whose service times interact.
- Deferred work: email and back-office tasks can wait across intervals, unlike a simple live queue.
- Callbacks, redials, and reconnects: customer behavior feeds future demand back into the system.
Choose the next model based on the missing behavior
- Use Erlang A for abandonment. It extends the queue with customer patience and is often more realistic when people leave before service.
- Use separate queues or network models for skills. Skill-based routing requires more detail than a single pooled queue.
- Use simulation for operational complexity. Simulation can represent routing, concurrency, priorities, callbacks, breaks, and changing arrival rates together.
- Use empirical scenario testing when data is stronger than the model. Back-test predicted service levels against actual intervals and calibrate the planning rule.
The Technion Service Engineering course supports Erlang C, Erlang A, and richer queueing analysis, reflecting the practical need to match the model to the operating context.
How to validate Erlang C in your operation
- Reconstruct historical inputs. Use actual arrival volume, handle time, productive agents, and service threshold for each interval.
- Calculate the predicted result. Record probability of waiting, ASA, and service level.
- Compare prediction with reality. Measure bias by volume band, occupancy, day, queue, and interval.
- Investigate systematic misses. Check abandonment, arrival bursts, skill constraints, handle-time variation, and carryover work.
- Choose the simplest model that is accurate enough. Complexity is worthwhile only when it changes a staffing or service decision.
Use the Erlang C formula guide for the calculation itself, then compare Erlang C, Erlang A, and simulation when the assumptions do not fit.
Use Erlang C as a model, not a promise
A queueing result is a structured estimate under stated assumptions. Good workforce planning keeps those assumptions visible, validates them against actual performance, and adds shrinkage, schedules, skills, and operational judgment before turning the requirement into a staffing commitment.
Tool
Compare staffing models in the calculator
Test how Erlang C, Erlang A, and other staffing approaches respond to your workload assumptions.
Explore