Free Erlang calculator for support staffing

Enter your contact volume, average handle time and target. The calculator finds the smallest team that meets it and shows what one agent more or less would change.

Free, no account needed. Updated .

Short answer

Erlang C estimates how many agents you need so that a set share of calls or chats is answered within a target time, for example 80% in 20 seconds. It uses the contacts per interval, the average handle time (AHT) and the number of agents to predict the chance that a contact waits. This calculator also adds shrinkage, so you see how many people to schedule.

How to use the Erlang calculator

  1. Enter your volume and handle time. Type the calls or chats that arrive in one interval, the interval length in minutes and the average handle time (AHT) in seconds. If you do not know your AHT, open Work out your AHT and enter totals from your help desk report.
  2. Set the target. The default is 80% of contacts answered within 20 seconds, a common target for phone support. Add your shrinkage: the share of paid time agents are not available.
  3. Read the result and the table. The calculator shows the smallest team that meets the target and what one agent more or less would change. Repeat for each interval of the day.

The calculator runs in your browser. Your numbers are never sent to a server.

How to calculate AHT

AHT = (talk time + hold time + after-contact work) ÷ contacts handled. After-contact work is the wrap-up: notes, tags and follow-up tasks. Use totals for the same period. Example: 300 minutes of talk, 30 minutes of hold and 60 minutes of wrap-up over 120 contacts is 390 ÷ 120 = 3.25 minutes, or 195 seconds.

Measure AHT by interval if you can. Handle time is often longer at busy times and for new agents, and the staffing result is only as good as the AHT you enter.

The Erlang C formula

Erlang C turns three numbers into a staffing estimate.

Erlang C inputs and outputs
ValueFormula or meaning
Traffic (A)Contacts × AHT ÷ interval length in seconds, in Erlangs. 10 Erlangs means 10 agents busy all the time.
Probability of waiting (C)Erlang C formula for N agents and A Erlangs
Service level1 − C × e^(−(N − A) × target time ÷ AHT)
Average speed of answerC × AHT ÷ (N − A)
OccupancyA ÷ N

The calculator tests each team size above the traffic and stops at the first one that meets your target. It does not compute large factorials. It uses the Erlang B recursion, B(n) = A × B(n − 1) ÷ (n + A × B(n − 1)), and then C = B ÷ (1 − (A ÷ N) × (1 − B)). This gives the same values as the textbook formula and stays accurate for teams of thousands of agents.

Then it adds shrinkage. Agents to schedule = agents needed ÷ (1 − shrinkage), rounded up. Shrinkage covers breaks, meetings, training, holidays and sick days. Measure it from your own schedules and absence records for the last few months, and do not guess it.

A worked example

A support team gets 100 calls in a 30-minute interval. AHT is 180 seconds. The target is 80% answered within 20 seconds, and shrinkage is 30%.

  • Traffic: 100 × 180 ÷ 1,800 = 10 Erlangs.
  • With 13 agents, service level is 79.6%. That misses the target.
  • With 14 agents, service level is 88.8%, average speed of answer is 7.8 seconds and occupancy is 71.4%.
  • Agents to schedule: 14 ÷ 0.7 = 20.
Service level by team size for the worked example
AgentsService levelAverage speed of answerOccupancy
1379.6%17.1 s76.9%
1488.8%7.8 s71.4%
1594.1%3.7 s66.7%
1697.1%1.7 s62.5%

The table shows a pattern that holds for most queues. The first agent above the target has a large effect, and each agent after that has a smaller one. Going from 13 to 14 agents cuts the average wait by more than half. Going from 15 to 16 saves only 2 seconds.

Where Erlang C is wrong

Erlang C is a model, and its assumptions are not always true. Know where it goes wrong:

  • Nobody hangs up. Erlang C assumes every caller waits until answered. In real queues some callers abandon, which lowers the load. So Erlang C often asks for a few more agents than you need.
  • Contacts arrive at random at a steady rate. Peaks inside the interval, such as after a marketing email or an outage, raise the load. Use shorter intervals at busy times.
  • One contact per agent. Chat agents often handle two or three chats at once, and email has no queue in the same sense. For chat, treat the result as an upper bound. For email, plan from the backlog and your reply time target.
  • All agents are the same. Skills-based routing splits the team into smaller queues, and small queues need more agents per Erlang.

Compare the result with your measured service level for a few weeks, and adjust your inputs where the two differ.

Occupancy and service level

A smaller team has higher occupancy: less idle time, but also longer waits and less time between contacts. Very high occupancy for long periods is hard to keep up: agents get tired, and mistakes and staff turnover tend to rise. Use the table to find a team size that meets the target without running agents at full load all day.

Lower the contacts, not only the wait

The fastest way to need fewer agents is to need fewer contacts. Look at the top contact reasons each month. If many are questions with answers on your help pages, those pages are hard to find or do not answer the question. A support chatbot that answers only from your own pages can take those questions and pass the rest to your team. Track the effect on customers with the CSAT calculator.

Frequently asked questions

What is Erlang C?

Erlang C is a queueing formula from the early 1900s. It gives the probability that a contact has to wait, from the traffic (contacts × AHT ÷ interval length) and the number of agents. Service level, average speed of answer and occupancy follow from it.

How do you calculate average handle time?

Add total talk time, hold time and after-contact work for a period, then divide by the contacts handled in that period. For example, 300 + 30 + 60 minutes over 120 contacts is 3.25 minutes, or 195 seconds.

What is shrinkage in call center staffing?

Shrinkage is the share of paid time agents are not available to take contacts: breaks, meetings, training, holidays and sick days. With 30% shrinkage, 14 agents on the queue means scheduling 14 ÷ 0.7 = 20 people.

Does Erlang C work for live chat?

Only roughly. Erlang C assumes one contact per agent at a time. Chat agents often handle two or three chats at once, so the formula overstates the agents you need. For chat, use the handle time per chat divided by the usual number of chats an agent handles at once as a rough AHT, and check the result against your real queue.

Why does Erlang C overstaff or understaff?

It assumes contacts arrive at random at a steady rate, nobody hangs up while waiting, and every agent is equally fast. In real queues some customers abandon, which lowers the load, and volume comes in peaks inside an interval, which raises it. Treat the result as a starting point and compare it with your measured service level.

What occupancy should agents run at?

High occupancy means little time between contacts. Kept very high for long periods, it is hard to sustain: agents get tired and make more mistakes. Erlang C shows the occupancy for each team size, so you can pick a size that meets the target without running people at full load all day.

Newsletter

Support notes, once a month.

One email with what we learn about help centers, honest AI answers and support teams. Unsubscribe at any time.

We use your email only for this newsletter. See the Privacy Policy.