Erlang

Why Erlang exists

Before Erlang formulas, staffing decisions were guesswork. You’d schedule agents based on gut feel, historical patterns, and hope. Too few agents meant queues backing up and customers abandoning. Too many agents meant people sitting idle whilst costs mounted.

Erlang removed the guesswork by providing a mathematical relationship between contact volume, handle time, service level, and staffing. Instead of guessing, you calculate. Instead of hoping you’ve got it right, you know – within the limitations of your assumptions.

Every contact centre using workforce planning software relies on Erlang formulas, whether they realise it or not. When the system tells you that you need 47 agents to hit 80% of calls answered in 20 seconds, that number comes from Erlang calculations running in the background.

Erlang C: the one contact centres use

Erlang C is the formula contact centres use most. It calculates the probability that a contact will need to queue, and for how long, based on the number of agents available, the expected contact volume, and average handle time.

Here’s what Erlang C needs to know:

  • Contact volume: How many calls, chats, or emails are arriving (expressed as “arrivals per hour”)
  • Average handle time (AHT): How long each contact takes to complete
  • Number of agents: How many people are available to handle contacts
  • Service level target: What percentage of contacts you want answered within what timeframe (e.g., 80% in 20 seconds)

Feed these numbers into Erlang C and it tells you the probability of contacts queuing, average wait time, and service level performance. Or work backwards – tell it your target service level and it calculates how many agents you need.

The key insight Erlang C provides: you need more agents than you’d intuitively think. If contacts arrive at exactly the same rate they’re handled, you’d assume one agent could handle one contact at a time with no queue. But contacts don’t arrive evenly – they cluster randomly. Erlang C accounts for this randomness and tells you the buffer needed to absorb the peaks.

Erlang B: when there’s no queue

Erlang B calculates the probability that all agents are busy and an incoming contact gets blocked (receives a busy signal rather than queuing). This matters less in modern contact centres where contacts queue rather than getting rejected, but it’s still used for calculating trunk line requirements and overflow scenarios.

The difference: Erlang B assumes blocked contacts disappear. Erlang C assumes they queue and wait. Most contact centre staffing uses Erlang C because customers queue rather than getting busy signals.

The assumptions Erlang makes

Erlang formulas rely on specific assumptions about how contacts arrive and how agents work. When reality matches these assumptions, Erlang predictions are remarkably accurate. When reality diverges, predictions become less reliable.

Erlang assumes:

  • Contacts arrive randomly: No patterns or predictability in exactly when contacts hit the queue
  • All agents are identical: Same skills, same speed, same capability
  • Customers wait indefinitely: They don’t abandon the queue
  • Service times are random: Handle times vary unpredictably around an average
  • One queue, one group: All contacts go to one queue served by one group of agents

In practice, none of these assumptions hold perfectly. Contacts often arrive in patterns (post-email campaigns, after TV adverts, Monday morning spikes). Agents vary in skill and speed. Customers absolutely do abandon queues. Handle times often follow patterns rather than true randomness. And modern contact centres run multiple queues, skill groups, and channels.

Despite these limitations, Erlang remains useful because it’s approximately right most of the time, and being approximately right beats guessing.

Why you can’t just guess

The relationship between staffing and service level is non-linear and counterintuitive. Small changes in volume or handle time create large swings in required staffing. Small reductions in agent availability cause service levels to collapse.

Example: You’re handling 100 calls per hour with 3-minute average handle time, targeting 80% answered in 20 seconds. Erlang C says you need 8 agents. What happens if you only schedule 7?

Your intuition might say performance drops proportionally – maybe 70% of calls answered in 20 seconds. But the maths says service level collapses to around 35%. One agent short doesn’t mean slightly worse performance. It means queues backing up, wait times spiralling, and abandonment spiking.

This non-linear relationship is why workforce optimisation tools matter and why you can’t wing it with spreadsheets and gut feel.

Real-world complications

Pure Erlang calculations assume steady-state conditions – volume and handle time remain constant. Real contact centres face changing conditions throughout the day. Volume spikes at 9am, drops at lunch, spikes again at 5pm. Handle times vary by query type and agent experience.

This is where workforce management (WFM) software earns its keep. Rather than running one Erlang calculation for the entire day, WFM systems break the day into intervals (typically 15 or 30 minutes) and run Erlang calculations for each interval based on forecasted volume and handle time patterns.

The system accounts for:

  • Shrinkage: Agents logged in but unavailable due to breaks, training, meetings, or system issues
  • Occupancy: The percentage of time agents spend handling contacts versus waiting for the next one
  • Abandonment: Customers leaving the queue before being answered
  • Multiple skills: Agents handling different query types with different handle times
  • Service level tolerance: Slight misses don’t matter as much as massive shortfalls

Modern WFM tools also layer on agent preferences, labour regulations, overtime costs, and business rules that pure Erlang doesn’t consider.

The Erlang calculator trap

Plenty of free Erlang calculators exist online. Plug in your numbers, get a staffing requirement, job done. Except it’s never that simple.

These calculators assume perfect conditions – no shrinkage, no variation, no skill groups, no abandonment. They give you a theoretical minimum under ideal circumstances. In practice, you need more agents than the pure Erlang calculation suggests because reality is messier than the maths assumes.

Contact centres using free Erlang calculators for real staffing decisions typically understaffed chronically and wonder why service levels never hit target.

Erlang and AI

As contact centres adopt AI for deflection, routing, and real-time support, Erlang calculations become more complex. AI changes both contact volume (through deflection) and handle time (through agent assistance).

Successful deflection reduces total volume but changes the mix – simple queries disappear whilst complex ones remain. This affects average handle time and therefore Erlang calculations. AI for customers that effectively handles simple queries means agents need different staffing because the work that reaches them is fundamentally different.

AI for agents through real-time assist or summarisation tools can reduce handle time, changing the Erlang inputs. But this reduction might not be consistent – AI might help on certain query types more than others, creating variation that complicates forecasting.

Workforce planners need to monitor how AI adoption changes the fundamental patterns that Erlang calculations rely on.

Beyond staffing: Erlang for capacity planning

Whilst Erlang is most commonly used for agent scheduling, the same principles apply to system capacity planning. How many concurrent chat sessions can your platform handle? How many phone lines do you need? How much server capacity is required?

The maths works the same way – predicted volume, average session time, target performance. Erlang tells you the capacity needed.

The human element Erlang can’t capture

Erlang treats agents as interchangeable units with average handle times. It doesn’t account for learning curves, fatigue, motivation, or morale.

Schedule exactly the number of agents Erlang suggests with zero buffer, and you create an environment where everyone is constantly busy with no breathing room. Handle times stretch because agents are rushed. Quality drops because there’s no time to do things properly. Burnout increases because the pressure never lets up.

Good workforce planning includes buffers beyond pure Erlang requirements – not because the maths is wrong, but because sustainable operations require slack in the system. Agents need time to breathe, learn, and recover between contacts.

Getting started with Erlang

Most contact centres don’t need to understand the detailed mathematics behind Erlang formulas – that’s what WFM software handles. But understanding the principles helps with better forecasting and scheduling decisions:

  • Small increases in volume or handle time require disproportionate staffing increases
  • Reducing agent availability even slightly causes service levels to collapse
  • You need more agents than intuition suggests because of random arrival patterns
  • The relationship between staffing and service level is exponential, not linear

The goal isn’t running Erlang calculations manually. It’s understanding why the staffing numbers your WFM system produces make sense, and why you can’t just cut one or two agents without serious consequences.

Erlang might be over a century old, but it remains the foundation of contact centre workforce planning because the fundamental problem – matching uncertain demand with finite capacity – hasn’t changed. The maths solved that problem in 1909, and it still solves it today.

Your Contact Centre, Your Way

This is about you. Your customers, your team, and the service you want to deliver. If you’re ready to take your contact centre from good to extraordinary, get in touch today.