How to Use an Erlang B Calculator for Capacity PlanningCapacity planning for telecommunications trunks, VoIP gateways, contact centers, and other call-bearing systems requires accurate estimations of how many simultaneous call paths (trunks, channels, lines) you need to meet a target level of service. The Erlang B formula and its calculators are the most widely used tools for estimating required trunk capacity when blocked calls are lost (i.e., callers receive a busy signal or immediate refusal and do not retry). This article explains Erlang B fundamentals, when to use it, how to gather inputs, how to use an Erlang B calculator step-by-step, examples, limitations, and practical tips for realistic planning.
What is Erlang B?
Erlang B is a mathematical formula developed by Agner Krarup Erlang for telephony. It calculates the probability that a call is blocked (loss probability) in a system with a finite number of servers (trunks) and no queuing. The model assumes:
- Arrivals follow a Poisson process (random, memoryless).
- Call holding times are exponentially distributed (memoryless).
- Blocked calls are lost (no retries or queuing).
- Offered traffic (in Erlangs) is steady and measured over the relevant time interval.
Key terms:
- Offered traffic (A): Total simultaneous usage in Erlangs. One Erlang equals one continuous resource busy for one hour (or proportionally within another interval).
- Number of trunks (N): The number of concurrent call paths available.
- Blocking probability (B or Pb): The probability that an incoming call finds all N trunks busy and is therefore blocked.
Why use Erlang B for capacity planning?
Erlang B is appropriate when blocked calls are cleared (lost) and do not enter a queue — common for traditional trunking scenarios, SIP trunks, and many telecom provisioning situations. It helps answer questions like:
- How many trunks do I need to keep blocking below X% during peak hour?
- If offered traffic increases by Y Erlangs, how does required trunk count change?
- What is the expected blocking probability for my current trunk count?
Erlang B is simple, well-understood, and supported by calculators and tables — making it practical for engineering and procurement decisions.
Inputs you need
To use an Erlang B calculator, determine these inputs accurately:
-
Peak call arrival rate or offered traffic (A, in Erlangs)
- Calculate from average calls per interval and average call duration:
- A = λ × H, where λ is the calls per second (or minute) and H is average call holding time (in same time unit), converted to Erlangs.
- Common approach: measure busy-hour call attempts (BHCA) and average call duration (ACD).
- Example: BHCA = 3,600 calls in busy hour; ACD = 3 minutes = 0.05 hour → A = 3,600 × 0.05 / 1 hour = 180 Erlangs.
- Calculate from average calls per interval and average call duration:
-
Desired blocking probability (B)
- Expressed as a proportion (e.g., 0.01 for 1% blocking).
- Choose target based on service level objectives (SLOs), cost constraints, and user experience expectations. Typical targets: 0.1%–1% for carrier trunks, 1%–5% for internal PBX in non-critical scenarios.
-
Current or planned trunk count (optional)
- Some calculators let you input N and A to compute B; others let you input A and B to compute N.
How to use an Erlang B calculator — step-by-step
-
Measure or estimate busy-hour traffic
- Use CDRs, switch counters, or monitoring tools to get BHCA and ACD.
- Convert to Erlangs: A = (BHCA × ACD) / 3600 if ACD in seconds, or A = BHCA × (ACD in hours).
-
Choose a target blocking probability
- Pick percentage based on requirements (e.g., 0.01 for 1%).
-
Open an Erlang B calculator
- Many online calculators accept two of three values (A, N, B).
- Some calculators support batch queries and CSV import for multiple sites.
-
Enter offered traffic (A) and desired blocking (B) to compute required trunks (N)
- If the calculator requires BHCA and ACD, input those and let it compute Erlangs internally.
-
Verify results by testing alternative values
- Increase or decrease N to see how B changes; check sensitivity.
-
Add operational margins
- Consider spare capacity for growth, call spikes, failover, and maintenance. Common margin: 5–20% above calculated N depending on risk tolerance.
Example calculations
Example 1 — Compute Erlangs from measurements:
- Busy-hour call attempts (BHCA): 2,400
- Average call duration (ACD): 2 minutes = 120 seconds
- A = (2,400 × 120) / 3,600 = 80 Erlangs
Example 2 — Determine trunks for 80 Erlangs with 1% blocking:
- Input A = 80, B = 0.01 into Erlang B calculator → N ≈ 106 trunks (calculator result varies slightly with rounding; check tool).
Example 3 — Find blocking probability for fixed trunks:
- If you currently have 100 trunks and offered traffic is 80 Erlangs, input A = 80, N = 100 → B ≈ 0.016 (1.6% blocking).
Interpreting results and practical considerations
- Blocking probability is the fraction of calls that will receive a busy signal. For 1% blocking and 3,600 offered calls in an hour, ~36 callers would be blocked during the busy hour.
- Erlang B assumes blocked calls are lost. If callers retry quickly, the actual offered load increases and Erlang B underestimates required capacity.
- If call retries or queuing occur (i.e., callers wait), use Erlang C (queuing) or more advanced models.
- For SIP trunks with dynamic channel allocation or bursty traffic, consider traffic variability and aggregation effects.
- For redundancy, plan additional capacity for failover scenarios (e.g., voice gateways down).
Limitations of Erlang B
- No queuing or retries modeled — not suitable when callers redial or systems queue calls.
- Assumes exponential call durations and Poisson arrivals; heavy-tailed or correlated traffic (e.g., call storms) breaks assumptions.
- Sensitive to measurement errors in BHCA and ACD — garbage in, garbage out.
- Not ideal for very small systems (few calls) where stochastic variability matters more.
Practical tips and heuristics
- Measure busy-hour traffic over several days/weeks and use the highest consistent peak rather than a single outlier.
- Use a margin for growth (at least 10%) unless you have near-real-time provisioning.
- For SIP trunks with overbooking and statistical multiplexing across many customers, coordinate with your carrier about their blocking targets and aggregation behavior.
- When uncertain about retry behavior, simulate using simple retry models or add an uplift to offered Erlangs to approximate retries.
- Document assumptions (measurement interval, ACD, peak definition, target blocking) so future planners can reproduce or update calculations.
Quick reference formulas
- Offered load (Erlangs): A = (BHCA × ACD) / 3600 (if ACD in seconds)
- Erlang B recursive formula (useful for calculators or scripts):
- B(0, A) = 1
- B(n, A) = (A × B(n-1, A)) / (n + A × B(n-1, A)) for n = 1, 2, …, N
When to use alternatives
- Use Erlang C when callers queue instead of being lost.
- Use Markov/queueing models or simulations when arrivals are non-Poisson, durations non-exponential, or retry behavior significant.
- Use simulations for highly bursty or correlated traffic (e.g., marketing campaigns, emergency calls, or call centers with scheduled callbacks).
Conclusion
An Erlang B calculator is a practical, widely used tool for capacity planning when blocked calls are lost. Accurate inputs (BHCA and ACD), a clear blocking target, and sensible operational margins produce reliable trunk counts. Be mindful of the model’s assumptions and use Erlang C or simulation methods when queuing or retries are present.
Leave a Reply