CALL CENTER · 7 MIN READ

Erlang B vs Erlang C: which one do you need?

Hassan Mamoon
Updated 17 October 2026

Both formulas come from telephone traffic theory and both take the same kind of input: how much traffic arrives. The difference is what happens to a call that cannot be answered straight away. Getting that wrong is the most common reason people pick the wrong calculator.

Erlang B: blocked calls are lost

Erlang B assumes that when every line is busy, the caller gets a busy signal and goes away. The call is blocked.

That matches phone lines and SIP trunks. If you have 10 channels and an 11th call arrives, it fails. So Erlang B answers: how many channels do I need so that no more than a small share of calls is blocked?

Inputs: busy-hour traffic (calls × call length) and the blocking you can accept, often 1%. Output: the number of channels or lines.

Example. 120 calls in the busy hour, 3 minutes each, is 120 × 3 ÷ 60 = 6 erlangs. At 1% blocking you need 13 channels, which in practice blocks about 0.5% of calls. Use the Erlang B calculator to try your own numbers.

The Erlang B formula

For N channels and A erlangs of traffic, the probability that a call is blocked is:

B(N, A) = (A^N ÷ N!) ÷ Σ (A^k ÷ k!), for k = 0 to N

Nobody computes that by hand. Calculators use an equivalent step-by-step form: start with B(0) = 1, then for each extra channel n, B(n) = A × B(n−1) ÷ (n + A × B(n−1)). This is how the calculator on this site finds the smallest number of channels that meets your target.

Channels needed for different traffic

Traffic Channels at 1% blocking At 2% At 5%
1 erlang 5 4 4
2 erlangs 7 6 5
4 erlangs 10 9 8
6 erlangs 13 12 10
10 erlangs 18 17 15
20 erlangs 30 28 26
30 erlangs 42 39 36

Notice how the spare capacity you need shrinks, proportionally, as the traffic grows. One erlang needs 5 channels, which is 5 channels for every erlang of traffic. Thirty erlangs needs 42 channels, only 1.4 for every erlang. Larger groups are more efficient, which is why combining small groups of lines into one pool saves money.

Erlang C: callers wait

Erlang C assumes that when every agent is busy, the caller waits in a queue. Nobody is turned away. So Erlang C answers: how many agents do I need so that most callers are answered within my target time?

Inputs: calls per hour, average handle time and a service level target such as 80/20. Output: the number of agents on the phones, plus the average wait and occupancy.

Example. 120 calls an hour at 240 seconds each is 8 erlangs of traffic. To answer 80% within 20 seconds you need 11 agents, with an average wait of about 20 seconds and agents busy about 73% of the time. With 30% shrinkage you schedule 16. The Erlang C calculator does this instantly, and the full walkthrough explains each step.

The Erlang C formula

Erlang C builds on Erlang B. With N agents and A erlangs, the probability that a call has to wait is:

C(N, A) = N × B(N, A) ÷ (N − A × (1 − B(N, A)))

It only holds when N is larger than A: with fewer agents than erlangs, the queue grows without limit. From that probability, the service level and the average speed of answer follow:

  • Service level = 1 − C × e^(−(N − A) × t ÷ AHT), where t is the target answer time.
  • ASA = C × AHT ÷ (N − A).

How the numbers move

For 8 erlangs and a 20-second target:

Agents Service level Average wait Calls that wait Occupancy
9 40% 157 seconds 65% 89%
10 65% 49 seconds 41% 80%
11 81% 20 seconds 25% 73%
12 90% 8 seconds 14% 67%
13 95% 4 seconds 8% 62%

Side by side

Erlang B Erlang C
Caller who finds no free resource Is blocked (busy signal) Waits in a queue
Sizes Lines, trunks, SIP channels Agents
Target Blocking % (for example 1%) Service level (for example 80/20)
Typical use Telecom capacity Call center staffing

When to use Erlang B

  • Sizing SIP trunk channels or phone lines.
  • Sizing an IVR, where callers either get a port or a busy tone.
  • Sizing any resource where a customer who can't be served leaves rather than waits.
  • Checking whether a provider's channel count is enough for your busy hour.

When to use Erlang C

  • Sizing the agents answering a queue.
  • Setting a service level and finding the staff to meet it.
  • Any pool where customers wait their turn.

You usually need both

A call center has two separate capacity problems. The lines have to be big enough for the callers who are waiting as well as the ones talking, and the agents have to be enough to answer in time. Size the agents with Erlang C, then check that the trunk has room with Erlang B, counting both talking and queued callers. Then work out the connection itself with the codec bandwidth calculator.

Sizing a small call center end to end

Take the same example, 120 calls an hour, each handled in 240 seconds, with a 20-second average wait.

  1. Agents (Erlang C). The traffic is 8 erlangs. To answer 80% within 20 seconds you need 11 agents on the phones, or 16 scheduled with 30% shrinkage.
  2. Lines (Erlang B). Each call holds a line for its whole life, which includes the wait. So the line traffic is 120 × (240 + 20) ÷ 3,600 = 8.7 erlangs. At 1% blocking that needs 16 channels, or 15 at 2% blocking.

So this team needs 11 agents and 16 lines. The two numbers answer different questions, and neither can stand in for the other. If you set the line count to match the agents, you would block calls that could have waited for a free agent.

The limits of each

  • Erlang B assumes blocked callers do not try again. In practice many redial straight away, so it can underestimate the lines you need.
  • Erlang C assumes nobody hangs up while waiting, so it slightly overestimates the agents you need. If many of your callers give up, the Erlang A model, which includes impatience, is closer to reality.
  • Both assume calls arrive at random and that call lengths vary in a typical way. Real traffic has peaks, so plan for your busiest realistic hour.
  • Neither knows about skills. If different agents handle different call types, you need to size each pool separately, or use simulation.

Both are a sound starting point. Check the result against a few weeks of your own data, and keep a margin for the days that don't look like the average.

FAQ

Do I need both Erlang B and Erlang C?

A call center usually does. Erlang B sizes the lines or SIP channels that carry the calls. Erlang C sizes the agents who answer them.

Which one gives a larger number?

They answer different questions, so the numbers are not comparable. One counts simultaneous calls on a trunk, the other counts agents.

Who invented the Erlang formulas?

They are named after the Danish engineer Agner Krarup Erlang, who developed the theory for telephone exchanges in the early twentieth century.

What is the Erlang A formula?

Erlang A is an extension of Erlang C that also models callers who give up while waiting. It is more realistic when abandonment is high, but needs an extra input: how patient your callers are.

Hassan Mamoon

Backend engineer who has built VoIP platforms on Asterisk, with years of Laravel and AWS work behind them. More about us

Keep reading