353. Erlang B

The Erlang B formula: probability that all servers in an M/M/c/c queue (Poisson arrivals, exponential service, 𝑐 servers, 𝑐 capacity = no queue) are busy. Arriving customers facing all-busy are blocked / lost.

353.1. Formula

𝐵(𝑐,𝑎)=𝑎𝑐𝑐!𝑘=0𝑐𝑎𝑘𝑘!

where 𝑎=𝜆𝜇 is the offered load (in Erlangs).

𝐵(𝑐,𝑎) is the blocking probability — proportion of arrivals turned away.

353.2. Telephony origin

Developed by A. K. Erlang for telephone networks (1917). 𝑐 servers = trunk lines; blocked calls are dropped (no queue — caller hears busy signal).

Used for over a century to size phone networks: how many trunk lines do I need to keep blocking probability below some threshold (typically 1% or 0.1%)?

353.3. Worked example

𝜆=50 calls/hour, average call lasts 3 minutes = 0.05 hr. So 𝑎=500.05=2.5 Erlangs.

How many trunks to keep blocking below 1%?

𝑐𝐵(𝑐,𝑎)
335%
59%
71.3%
80.4%

Need 𝑐=8 trunks for <1% blocking with offered load 2.5 Erlangs.

353.4. Recursive formula (numerically stable)

𝐵(𝑐,𝑎)=𝑎𝐵(𝑐1,𝑎)𝑐+𝑎𝐵(𝑐1,𝑎),𝐵(0,𝑎)=1

This recursion avoids the factorials that overflow in direct computation. Standard implementation.

353.5. Erlang B vs Erlang C

ModelSystemBlocked customer
Erlang B (M/M/c/c)c servers, no queuelost (dropped)
Erlang C (M/M/c)c servers, infinite queuewaits

Erlang B is the blocking probability (proportion lost). Erlang C is the waiting probability (proportion who must wait > 0).

For the same parameters, Erlang B < Erlang C.

353.6. Where it shows up

353.7. Insensitivity to service distribution

Surprisingly: Erlang B is insensitive to the service-time distribution — only the mean matters. So even if call durations are highly variable, Erlang B’s blocking probability formula stays exact. Holds because of PASTA (Poisson Arrivals See Time Averages) + reversibility.

353.8. See also