Calls and erlangs
Phone calls arrive at random, about 40 an hour. The exchange connects each one to a free trunk line: a circuit to the city that one call uses while it lasts, about 3 minutes on average.
Offered load A = arrival rate × average call length: 40 per hour × 0.05 hours = 2 erlangs. One erlang keeps one line busy all the time, so this traffic would keep 2 lines busy on average.
A call keeps its line until someone hangs up; then the line is free again. Calls do not arrive evenly, so sometimes several come close together, and sometimes none come for a while.
No room to wait
Another call takes the last free line. Now all 3 lines are busy. With 2 erlangs on 3 lines this is common: in the long run all 3 are busy 21% of the time.
The next call finds no free line. There is no waiting room, so the exchange gives it a busy tone and the call is lost. Nothing queues: queue length and waiting time stay zero. This is the M/M/c/c loss system.
Erlang's formula
Erlang's formula gives the loss chance: B = (A^c/c!) ÷ (1 + A + A²/2! + … + A^c/c!). With A = 2, c = 3: (8/6) ÷ (1 + 2 + 2 + 8/6) = 0.211. One call in five is lost.
Factorials get huge, so compute B line by line: B(0) = 1, then B(k) = A·B(k−1) ÷ (k + A·B(k−1)). With A = 2: 1 → 0.667 → 0.400 → 0.211. Every extra line lowers the loss.
Only accepted calls use lines. Carried load = A × (1 − B) = 2 × 0.789 = 1.58 erlangs, so each line is busy 53% of the time. Yet 8.4 of the 40 calls each hour hear a busy tone.
Sizing a trunk
A bigger exchange offers 10 erlangs (200 calls an hour of 3 minutes) and wants at most 1% of calls lost. Add lines until B ≤ 0.01: 17 lines lose 1.3%, 18 lines lose 0.71%. Answer: 18 lines.
18 lines carry 9.93 erlangs: each is busy 55% of the time. Big groups do better: 100 erlangs at 1% needs 117 lines, each busy 85%. One shared pool beats many small ones.
The same maths fits anything with c servers and no waiting room: software licence seats, a server's connection limit, radio channels in a mobile cell. Only the average holding time matters, not its shape. With a waiting room, use Erlang C instead.
The arithmetic
;; step 1/11 · calls-arrive · send ;; callers → trunk lines arrivals random (Poisson), λ = 40 calls per hour holding mean h = 3 min = 0.05 h per call trunk c = 3 lines, one call per line this call finds a free line → connected
The trunk panel has 18 sockets; a lit lamp is a busy line. The picture shows one moment, while the meter gives long-run averages. Because arrivals are random (Poisson), they see the system as it is on average (PASTA, Wolff 1982): the share of time all c lines are busy equals the share of calls lost.