Formula
Traffic Intensity (Erlangs) = (Calls/Hour × Handle Time) / 3600; Erlang C = Probability of Waiting; Service Level = 1 - Erlang C × e^(-(Agents-Intensity) × (Target Time / Handle Time))
Traffic intensity measures workload in Erlangs: calls per hour multiplied by average handle time in seconds, divided by 3600. For 120 calls/hour with 300-second handle time, intensity is 10 Erlangs—meaning the work requires at least 10 full-time equivalents. Erlang C formula calculates the probability a caller must wait (all agents busy). Service level combines Erlang C with exponential decay based on target answer time. This determines what percentage of calls will be answered within the target time given a specific agent count. The formula works because it models queuing theory—random arrivals, finite servers (agents), and waiting customers. By iterating agent counts, we find the minimum needed for target service levels. Adding shrinkage (breaks, absence) converts available agents to required scheduled FTE.
Worked Examples
Example 1: Standard Inbound Center
Problem:120 calls/hour, 5-minute (300s) average handle time. Target: 80% in 20 seconds. 30% shrinkage.
Solution:Traffic: 10 Erlangs. Required: 14 agents for 80% SL. With shrinkage: 20 FTE scheduled. Occupancy: 71%. Healthy operation.
Result:14 agents | 20 FTE | 80% SL | 71% occupancy | Optimal
Example 2: High-Volume Sales Center
Problem:300 calls/hour, 4-minute (240s) handle time. Target: 90% in 15 seconds. 25% shrinkage.
Solution:Traffic: 20 Erlangs. Required: 27 agents for 90% SL. With shrinkage: 36 FTE. Occupancy: 74%. Healthy but expensive.
Result:27 agents | 36 FTE | 90% SL | High staffing cost
Example 3: Understaffed Support Desk
Problem:80 calls/hour, 8-minute (480s) handle time. Only 12 agents. 35% shrinkage.
Solution:Traffic: 10.7 Erlangs. 12 agents achieves only 45% SL. Need 15 agents for 80%. Severely understaffed.
Result:45% SL actual | Need 15 | Critical understaffing | Customer impact
Frequently Asked Questions
What is Erlang C?
Erlang C is a mathematical formula used in call center workforce management to calculate the number of agents needed to achieve target service levels. It accounts for queuing theory—callers waiting in line when all agents are busy. Named after Danish mathematician A.K. Erlang.
What's the difference between Erlang B and Erlang C?
Erlang B assumes no waiting—callers get busy signal if all agents occupied (used in telephony circuits). Erlang C assumes callers queue and wait for available agents (used in call centers). Erlang C is appropriate for staffing where customers wait on hold.
What is traffic intensity (Erlangs)?
Traffic intensity measures workload: call arrival rate × average handle time. In Erlangs, it represents the minimum number of agents needed to handle the load (if agents were 100% occupied). 10 Erlangs means at least 10 agents needed, but more for service level targets.
What is a good service level target?
Industry standard is '80/20': 80% of calls answered within 20 seconds. Premium support may target 90/15 or 95/10. Cost-sensitive operations might accept 70/30. Higher targets require more agents but improve customer satisfaction.
What is shrinkage in call centers?
Shrinkage is the percentage of scheduled time agents aren't handling calls: breaks, training, meetings, absenteeism, after-call work. Typical shrinkage is 25-35%. If shrinkage is 30%, you need to schedule ~143 agents to have 100 available.
What is occupancy in call centers?
Occupancy = time agents spend handling calls / total available time. 85% means agents are on calls 85% of time. Too high (>90%) causes burnout. Too low (<70%) is inefficient. Target 80-85% for balance.
How does handle time affect staffing?
Handle time (talk time + after-call work) directly impacts staffing. Reducing handle time by 10% can reduce staff needs by ~10%. Focus on training, knowledge bases, and process improvement to reduce handle time without sacrificing quality.
What are the limitations of Erlang C?
Erlang C assumes: Poisson call arrivals, consistent handle times, infinite patience (no abandonment), single queue. Real call centers have peaks, variable handle times, and callers who hang up. Use as starting point, then adjust based on real data.
How do I handle variable call volumes?
Create staffing schedules by interval (typically 15 or 30 minutes). Calculate Erlang C for each interval based on forecasted volume. Use part-time agents, flexible schedules, and overtime to match staffing to demand curves.
What about multi-skill routing?
Erlang C assumes single queue/skill. Multi-skill centers use simulation or more complex models (Erlang X, skill-based routing algorithms). As complexity increases, simulation often replaces analytical models.
Background & Theory
Erlang C call center staffing calculates the number of agents needed to achieve target service levels by modeling call arrival rates, handle times, and queueing behavior.
## Concept Overview
Call centers balance service quality against labor costs. More agents mean shorter wait times but higher costs. Erlang C quantifies this tradeoff—given call volume and handle time, how many agents achieve target service levels?
Traffic intensity (Erlangs) is the fundamental measure: call arrival rate × handle time. 120 calls/hour with 5-minute handles = 10 Erlangs. At minimum, 10 agents are needed just to keep up. More are needed for service levels since not all agents are always free.
Service level typically targets 'X% of calls answered in Y seconds' (e.g., 80/20). Erlang C calculates the probability of waiting, enabling service level prediction for any agent count.
## Key Variables & Intuition
• **Calls per hour** — Inbound call volume (forecast)
• **Average handle time** — Talk time + after-call work
• **Service level target** — Percentage of calls answered in target time
• **Target answer time** — Time threshold for service level (e.g., 20 seconds)
• **Shrinkage** — Percentage of scheduled time unavailable (breaks, training, absence)
• **Occupancy** — Percentage of time agents are on calls
## Assumptions
• Call arrivals follow Poisson distribution (random)
• Handle times are exponentially distributed
• Callers have infinite patience (don't abandon)
• Single queue, homogeneous agents
• First-come-first-served routing
## Limitations & Edge Cases
• **Call abandonment** — Real callers hang up; Erlang C overestimates wait tolerance
• **Variable handle times** — Long calls aren't exponentially distributed
• **Multi-skill routing** — Skills and priorities add complexity
• **Intraday variation** — Single-hour calculations miss peaks within hours
• **Blended channels** — Email/chat handled alongside calls breaks assumptions
**Scenario:** Erlang C recommends 15 agents for 80% service level. But actual data shows 20% of callers abandon if wait exceeds 30 seconds. With abandonment, you might achieve 80% SL with 14 agents—those who would have waited are gone. Erlang C overcounted needed staff because it assumed infinite patience.
## Interpretation Guide
**Service Level Targets:**
- 90/10: Premium support (expensive)
- 80/20: Industry standard
- 70/30: Cost-conscious operations
- 60/60: Minimum acceptable
**Occupancy Targets:**
- Under 70%: Overstaffed
- 70-80%: Efficient
- 80-85%: Optimal
- Over 85%: Burnout risk
- Over 90%: Unsustainable
## Practical Tips
• **Forecast accurately** — Garbage in, garbage out; invest in forecasting
• **Calculate by interval** — Not just hourly; 15-30 minute granularity
• **Account for shrinkage realistically** — Track actual shrinkage data
• **Monitor real-time** — Adjust intraday as conditions change
• **Balance metrics** — Service level, occupancy, handle time, cost
• **Use simulation for complexity** — Multi-skill, omnichannel needs more than Erlang
• **Validate against actuals** — Compare predictions to real outcomes
• **Plan for peaks** — Size for peaks, flex for troughs
• **Cross-train agents** — Skill flexibility improves scheduling efficiency
• **Consider customer value** — VIP customers may warrant better service levels
## Common Mistakes
• **Using daily averages** — Missing peak intervals that need more staff
• **Ignoring shrinkage** — Scheduling without shrinkage buffer
• **Targeting 100% SL** — Impossibly expensive; diminishing returns
• **Forgetting occupancy** — High SL with high occupancy isn't sustainable
• **Static scheduling** — Not adjusting for known variation (Mondays, post-holiday)
• **Neglecting handle time** — Reducing handle time can be cheaper than adding staff
• **Assuming perfection** — Agents get sick, systems fail; build contingency
• **Over-relying on formula** — Erlang C is a starting point, not final answer
• **Ignoring agent experience** — New agents have higher handle times
• **No feedback loop** — Not learning from forecast vs. actual differences
## When NOT to Use
• **Low volume** — Under 10 calls/hour, statistical assumptions break down
• **High abandonment** — If many callers hang up, Erlang C overestimates
• **Complex routing** — Multi-skill, priority-based routing needs simulation
• **Non-phone channels** — Chat/email have different workload patterns
History
Call center staffing evolved from intuitive scheduling through Erlang formulas to sophisticated workforce management systems that optimize service levels against labor costs in real-time.
## Origins & Why It Emerged
A.K. Erlang, a Danish mathematician working for Copenhagen Telephone Company (1909), developed queueing theory to determine how many telephone circuits were needed for traffic loads. His formulas predicted blocking probability given traffic intensity.
Call centers emerged in the 1960s-1970s as businesses centralized customer service. Manual scheduling was guesswork—either overstaffed (expensive) or understaffed (poor service). Erlang's mathematics offered scientific staffing.
Erlang C specifically modeled queued calls—callers waiting on hold rather than receiving busy signals. This matched call center reality where customers waited in queue for available agents.
## Evolution in Practice
Early adopters (1980s) used Erlang C calculations manually or with basic software. Workforce Management (WFM) systems productized the math, adding forecasting, scheduling, and real-time adherence monitoring.
Forecasting improved. Historical patterns, marketing calendars, and seasonal factors fed models predicting call volumes by 15-30 minute intervals. Erlang C converted forecasts to staffing requirements.
Simulation supplemented analytical models. As call centers became multi-channel (phone, email, chat) with skill-based routing, pure Erlang C became insufficient. Discrete event simulation modeled complex routing and blended operations.
## Modern Usage Today
Modern WFM platforms (NICE, Verint, Genesys) embed Erlang C alongside machine learning forecasting. Real-time dashboards show service levels, enabling intraday adjustments.
Omnichannel complexity challenges traditional Erlang. Agents handling phone, chat, and email simultaneously need different models. Some platforms use modified Erlang or simulation for blended work.
AI is entering workforce optimization. Predictive models adjust staffing recommendations based on factors Erlang can't capture: agent skill levels, customer sentiment, handle time patterns. Human + AI collaboration optimizes better than either alone.
## Common Misconceptions
• **Erlang C is exact** — It's a model with assumptions that don't perfectly match reality
• **Service level is the only metric** — Occupancy, handle time, and cost matter too
• **More agents always improve service** — Diminishing returns; 95% SL costs far more than 80%
• **Shrinkage is fixed** — Shrinkage varies by time of day and can be managed
• **One calculation covers all day** — Call patterns vary; recalculate by interval