This Erlang calculator converts call volume and call duration into traffic in Erlangs, works out how many phone lines or trunks you need with Erlang B, and calculates how many call center agents you need with Erlang C.
Work out traffic in Erlangs, size phone lines with Erlang B, or staff a call center with Erlang C.
Enter your busy-hour calls and average call or handle time to get the offered traffic, the lines needed for a blocking target, or the agents needed to meet a service level such as 80% of calls answered in 20 seconds, with a table of nearby staffing options. Below the calculator you will find the Erlang B and Erlang C formulas, worked examples and the assumptions behind each model.
How to Use the Erlang Calculator
Choose the tab that matches your question. Every tab updates as you type.
Traffic (Erlangs) Tab
Enter the number of calls, the period they arrive in (1 hour, 30 minutes or 15 minutes) and the average call duration in seconds or minutes. The result is the offered traffic in Erlangs, plus call hours, call minutes per hour and CCS. Use the buttons under the result to send the traffic straight to Erlang B or Erlang C.
Erlang B Tab
Choose what to calculate: the lines needed for a blocking target, the blocking for a given number of lines, or the maximum traffic a number of lines can carry. You can enter traffic in Erlangs or as calls and duration. The results show blocking, carried traffic, lost traffic, average load per line and a table of blocking for nearby line counts.
Erlang C Tab
Enter calls, the period, average handle time, the service level target (for example 80%) and the answer time (for example 20 seconds). The calculator finds the smallest number of agents that meets the target, or, in the second mode, the service level for a number of agents you enter. It also shows average speed of answer, the share of calls that wait, occupancy and the agents to schedule after shrinkage. The staffing table marks every option that meets the target with a ✓.
What Is an Erlang?
An Erlang is a unit of traffic intensity. One Erlang is one line or channel kept busy for the whole of the measurement period, so 1 Erlang for an hour is 60 call-minutes, or 36 CCS (hundred call seconds).
Erlangs measure how much work arrives, not how many calls. A hundred short calls can generate less traffic than a hundred long calls, which is why the calculation needs both call volume and duration.
How to Calculate Erlangs
Traffic (Erlangs) = Number of calls × Average call duration ÷ Length of the period
Where:
- Number of calls = calls arriving in the period
- Average call duration = the average time each call occupies a line or agent, in seconds
- Length of the period = 3,600 seconds for an hour, 1,800 for 30 minutes or 900 for 15 minutes
For 350 calls in an hour with an average duration of 180 seconds:
Traffic = 350 × 180 ÷ 3,600 = 17.5 Erlangs
On average, 17.5 lines are busy at once during that hour.
Why Call Duration Changes the Result
Two systems that each receive 300 calls an hour can carry very different traffic. At 60 seconds per call, traffic = 300 × 60 ÷ 3,600 = 5 Erlangs. At 240 seconds per call, traffic = 300 × 240 ÷ 3,600 = 20 Erlangs, four times as much.
Using 15- or 30-Minute Intervals
Call centers often plan in 15- or 30-minute intervals. Divide by the length of that interval instead of by 3,600. For 100 calls in 15 minutes at 180 seconds each: traffic = 100 × 180 ÷ 900 = 20 Erlangs, the same as 400 calls in an hour.
Busy Hour Traffic
Capacity is sized for the busiest period, not the daily average. Busy Hour Traffic (BHT) is the traffic offered in the busiest hour.
| Hour | Calls | Average duration | Traffic |
|---|---|---|---|
| 8–9 AM | 180 | 150 sec | 7.50 Erl |
| 9–10 AM | 250 | 150 sec | 10.42 Erl |
| 10–11 AM | 400 | 150 sec | 16.67 Erl |
| 11 AM–12 PM | 280 | 150 sec | 11.67 Erl |
Here the busy hour is 10–11 AM: traffic = 400 × 150 ÷ 3,600 = 16.67 Erlangs. Sizing for the daily average would leave that hour short of capacity.
Erlang B: Calculating Phone Lines and Trunks
Erlang B links three values: offered traffic, the number of lines (circuits or trunks) and the blocking probability. It applies when a call that finds every line busy is blocked and does not wait, as in trunk groups and circuit sizing. If you know two of the three values, the calculator finds the third.
Erlang B Formula
B = (AN ÷ N!) ÷ [1 + A + A²/2! + … + AN/N!]
Where:
- B = blocking probability, the share of calls that find every line busy
- A = offered traffic in Erlangs
- N = number of lines
How the Calculator Computes It
Factorials become huge for large N, so the calculator uses the equivalent recurrence, which stays accurate for thousands of lines:
B(0) = 1, and B(n) = A × B(n − 1) ÷ [n + A × B(n − 1)] for n = 1, 2, … N
Example: Lines for 10 Erlangs at 2% Blocking
With 10 Erlangs of offered traffic and a 2% blocking target, the calculator tests line counts until blocking is at or below 2%:
- 16 lines: blocking = 2.23%, above the target
- 17 lines: blocking = 1.29%, below the target
So 17 lines are needed. Because lines come in whole numbers, the actual blocking is usually below the target.
Maximum Traffic for a Number of Lines
Working the other way, 17 lines can carry up to 10.66 Erlangs before blocking rises above 2%. At 180 seconds per call, that is about 213 calls an hour.
Carried Traffic, Lost Traffic and Line Load
Carried traffic = A × (1 − B)
Lost traffic = A × B
Where A is offered traffic and B is blocking. For 10 Erlangs on 17 lines, carried traffic = 10 × (1 − 0.01295) = 9.87 Erlangs and lost traffic = 0.13 Erlangs. The average load per line is 9.87 ÷ 17 = 58.1%.
How Adding Lines Changes Blocking
For a fixed amount of traffic, each extra line reduces blocking, but by less each time. For 10 Erlangs:
| Lines | Blocking |
|---|---|
| 14 | 5.68% |
| 15 | 3.65% |
| 16 | 2.23% |
| 17 | 1.29% |
| 18 | 0.71% |
| 20 | 0.19% |
This curve is why comparing the number of calls with the number of lines is not enough, and why the calculator shows a table of nearby line counts.
Erlang C: Calculating Call Center Agents
Erlang C models a queue: when every agent is busy, callers wait until one is free. It is used for inbound call centers, help desks and support lines to find the agents needed for a service level.
Erlang C Formula
Pw = [AN/N! × N/(N − A)] ÷ [Σk=0…N−1 Ak/k! + AN/N! × N/(N − A)]
Where:
- Pw = probability that a caller has to wait
- A = offered traffic in Erlangs
- N = number of agents, which must be greater than A
Computing Erlang C From Erlang B
The calculator uses the stable identity Pw = N × B ÷ [N − A × (1 − B)], where B is the Erlang B blocking for the same A and N.
Service Level, ASA and Occupancy Formulas
Service level = 1 − Pw × e−(N − A) × t ÷ AHT
ASA = Pw × AHT ÷ (N − A)
Occupancy = A ÷ N
Where:
- t = target answer time in seconds, such as 20
- AHT = average handle time in seconds
- ASA = average speed of answer, the average wait across all callers
- Occupancy = the share of time agents spend handling calls
The calculator also shows the average wait of callers who do queue, AHT ÷ (N − A).
Erlang C Worked Example
A call center receives 400 calls an hour with an average handle time of 180 seconds and wants 80% of calls answered within 20 seconds.
- Traffic: 400 × 180 ÷ 3,600 = 20 Erlangs
- 23 agents: service level = 70.2%, below the target
- 24 agents: service level = 80.9%, meeting the target
- At 24 agents: Pw = 29.8%, ASA = 13.4 seconds, occupancy = 20 ÷ 24 = 83.3%
So 24 agents are needed on the phones. The result is a model-based estimate, not a guarantee of real performance.
Why Simple Division Is Not Enough
It is tempting to staff 20 agents for 20 Erlangs of work. But calls arrive at random, not evenly, so with 20 agents occupancy would be 100% and the queue would keep growing. Erlang C accounts for this queueing, which is why the staffing result is always higher than the traffic. The staffing table shows how quickly service level improves with each agent near that point.
Average Handle Time
Average Handle Time (AHT) is the average time an agent is occupied by one call, including after-call work that keeps them unavailable. For example, 150 seconds of talk plus 30 seconds of after-call work gives:
AHT = 150 + 30 = 180 seconds
Use the same definition your workforce planning uses. A longer AHT raises the traffic: 400 calls at 210 seconds is 23.3 Erlangs, compared with 20 Erlangs at 180 seconds.
Service Level and the 80/20 Target
A service level target has two parts: the percentage of calls and the answer time. 80/20 means 80% of calls answered within 20 seconds. Changing either part changes the agents needed, so enter the target your operation actually uses.
Shrinkage and Scheduled Agents
Erlang C gives the agents needed on the phones. Shrinkage is the share of paid time agents are not available for calls, such as breaks, meetings, training and absence. To find how many agents to schedule:
Scheduled agents = Agents needed ÷ (1 − Shrinkage)
Where shrinkage is a decimal. For 24 agents and 30% shrinkage: 24 ÷ 0.70 = 34.3, rounded up to 35 agents. Use shrinkage measured from your own workforce data.
Erlang B vs Erlang C
| Feature | Erlang B | Erlang C |
|---|---|---|
| Main use | Line and trunk sizing | Call center staffing |
| What happens when all are busy | Call is blocked | Caller waits in a queue |
| Capacity measured in | Lines or circuits | Agents |
| Key target | Blocking probability | Service level or ASA |
| Inputs | Traffic, lines, blocking | Calls, AHT, agents, service target |
Choosing the wrong model gives a result that does not describe your system: use Erlang B when calls are blocked, Erlang C when callers wait.
Common Erlang Calculation Mistakes
- Using daily calls: 2,400 calls a day is not 2,400 calls an hour. Use the busy hour or interval volume.
- Mixing up seconds and minutes: 180 minutes instead of 180 seconds multiplies the traffic by 60.
- Leaving out after-call work: AHT should include the time agents cannot take another call.
- Treating Erlangs as calls: Erlangs measure busy time, not call counts.
- Using Erlang B for a queue: if callers wait, use Erlang C.
- Forgetting shrinkage: agents on the phones are fewer than agents on the schedule.
Assumptions and Limitations
Both models are mathematical estimates. Results differ when real conditions differ from the assumptions.
Random Arrivals and Short Peaks
Both models assume calls arrive at random around a steady average. A burst of calls inside the hour can create more blocking or waiting than the hourly figure suggests, so shorter planning intervals help.
Abandoned and Retried Calls
Erlang C assumes callers wait until answered, and Erlang B assumes blocked calls do not try again. If many callers hang up or redial, the real traffic and performance will differ; models such as Erlang A and extended Erlang B are designed for those cases.
Real Staffing Needs More Than the Minimum
Treat the result as the starting point for scheduling, alongside forecasts, shift patterns, breaks and absence.
Frequently Asked Questions
Erlangs and Traffic
What is 1 Erlang?
One line or channel busy for the whole measurement period. For one hour, that is 60 call-minutes or 36 CCS.
How do I convert calls per hour to Erlangs?
Multiply calls per hour by the average duration in seconds and divide by 3,600. For example, 300 calls × 120 seconds ÷ 3,600 = 10 Erlangs.
How many Erlangs can one line handle?
At most 1 Erlang, which means the line is busy all the time. In practice, lines run below that so that calls are not blocked; use Erlang B to find the lines for your traffic and blocking target.
Erlang B
What is grade of service?
In Erlang B, grade of service is the blocking probability: the share of calls that find every line busy. The target is a business choice, and the calculator accepts any value, such as 1% or 2%.
How many lines do I need for 10 Erlangs?
17 lines for a 2% blocking target (1.29% actual blocking). A tighter 1% target needs 18 lines.
Erlang C
How many agents do I need for 400 calls an hour?
With a 180-second AHT and an 80/20 target, 24 agents on the phones, or 35 scheduled with 30% shrinkage. Other AHTs or targets change the answer.
Does Erlang C include abandoned calls?
No. It assumes every caller waits until answered, so it can overstate waiting when many callers hang up.
Why is the agent count higher than the traffic?
Because calls arrive at random. Agents must exceed the traffic in Erlangs for the queue to stay stable, and extra agents are needed to answer most calls within the target time.
Final Words
Convert calls and duration to Erlangs first. Use Erlang B to size lines when blocked calls are lost, and Erlang C to staff agents when callers wait, then add shrinkage to get the schedule. The Erlang Calculator above does each step and shows the nearby options, so you can see the effect of one more line or agent.
