Reference

Erlang C, explained

Erlang C is the queueing formula most contact centers use to work out how many agents a queue needs. Given the work arriving and the handle time, it gives the probability a caller waits, and from that the service level and the average wait for any number of agents.

A. K. Erlang, a Danish engineer at the Copenhagen Telephone Company, published the model in 1917 to size telephone exchanges.

What the model assumes

  • Contacts arrive at random, independently of one another, at a steady average rate within the interval.
  • Handle times vary at random around their average.
  • Every caller waits until answered: nobody hangs up and nobody gets a busy signal.
  • Any agent can take any contact, one at a time, and the next caller in line takes the next free agent.

The formulas

Offered load
Contacts per interval × AHT in seconds ÷ (interval minutes × 60)In Erlangs: the agents busy every moment if contacts arrived evenly.As published in the Staffing Requirement Calculator method, version 1.2.
Erlang C
Erlang B by recurrence, B(n) = A × B(n−1) ÷ (n + A × B(n−1)); then C = B ÷ (1 − (A ÷ n) × (1 − B))The probability a contact waits. The recurrence stays finite at any size.As published in the Staffing Requirement Calculator method, version 1.2.
Service level
1 − C × e^(−(agents − load) × threshold seconds ÷ AHT)The share answered within the threshold.As published in the Staffing Requirement Calculator method, version 1.2.
Speed of answer
C × AHT ÷ (agents − load)The average wait across all calls.As published in the Schedule Adherence Impact Calculator method, version 1.1.

A worked example

A load of 10 Erlangs, for example 200 calls an hour at 180 seconds each, with a target of answering within 20 seconds. Each row adds one agent. Computed by the same engine the Schedule Adherence tool runs.

AgentsChance a caller waitsAnswered in 20 sAverage waitOccupancy
110.682139.0%122.8 s90.9%
120.449464.0%40.4 s83.3%
130.285379.6%17.1 s76.9%
140.174188.8%7.8 s71.4%
150.102094.1%3.7 s66.7%
160.057397.1%1.7 s62.5%

Adding agents brings the wait down fast at first and then slowly, while occupancy falls with every agent added. That trade is the staffing decision.

Checked against

  • Erlang C probability of waiting, 10 Erlangs. Offered load 10 Erlangs on 11, 12, 13 and 14 agents. Expected: 0.6821, 0.4494, 0.2853 and 0.1741. Published value; Erlang C formula (A. K. Erlang, 1917), as tabulated in standard Erlang C probability-of-wait tables.
  • Erlang C by hand, 1 Erlang on 2 agents. Offered load 1 Erlang on 2 agents. The formula gives (1²/2! × 2/(2 − 1)) ÷ (1 + 1 + 1²/2! × 2/(2 − 1)) = 1 ÷ 3. Expected: 0.3333. Worked by hand from the formula; Erlang C formula (A. K. Erlang, 1917).
  • Agents for 80% in 20 seconds at 10 Erlangs. 100 calls a half hour at 180 seconds (10 Erlangs), target 80% answered in 20 seconds. Expected: 14 agents. Published value; Standard Erlang C staffing tables for a 10 Erlang load at an 80/20 service level.

Our test suite computes each case with the shipped engine and fails if any answer differs.

Where it falls short

  • Because nobody hangs up in the model, it slightly overstates the agents needed when callers do abandon. The Staffing Calculator shows an abandonment check beside the result.
  • It assumes agents take one contact at a time, so it does not fit chat or email, where an agent handles several at once.
  • It plans one interval. A day needs the calculation for each interval, and shrinkage on top.

Measure yours