Business and Freelancing

Erlang C Staffing Calculator

Enter the calls in an interval, the handle time and a service level target to find the number of agents needed.

Your numbers

For example 30 for half-hour planning or 60 for an hour.

Talk time plus after-call work, per call.

Share of calls answered within the answer time. An example value.

More options

Share of paid time agents are not available, such as breaks and training. Used to estimate how many to schedule.

Result

Agents needed

20

For 120 calls in 30 minutes with a 240 second average handle time.

Workload (Erlangs)
16
Service level reached
81.65%
Share of calls that wait
25.61%
Average speed of answer
15.4 s
Agent occupancy
80%
Agents to schedule with shrinkage
20

Staffing levels around the answer

AgentsService levelCalls that waitAverage speed of answerOccupancy
1855%53.1%63.7 s88.9%
1970.9%37.4%29.9 s84.2%
2081.7%25.6%15.4 s80%
2188.7%17.1%8.2 s76.2%
2293.3%11.1%4.4 s72.7%
2396.1%7%2.4 s69.6%
How this was calculated
  1. Workload A = calls x handle time / interval seconds = 120 x 240 / 1,800 = 16 Erlangs.
  2. The chance that a call finds all agents busy comes from Erlang B, built up one agent at a time, and is converted to Erlang C: C = N x B / (N - A x (1 - B)).
  3. Service level = 1 - C x e^(-(N - A) x 20 / 240). The fewest agents N that reach 80% is the answer.
  4. Average speed of answer = C x handle time / (N - A), averaged over all calls.
  • Erlang C assumes calls arrive at random, nobody hangs up while waiting and every agent can take every call. Real centers with abandonment, retries or skill groups behave differently. Treat the result as a starting estimate.

Calculated using SumPanda.com · https://sumpanda.com/erlang-c-staffing-calculator/

Results are estimates for general information. Verify important figures before relying on them.

Next step

How to use the erlang c staffing calculator

  1. Enter the calls in the interval and the interval length, such as 120 calls in 30 minutes.
  2. Enter the average handle time in seconds, including after-call work.
  3. Enter the service level target and the answer time, such as 80% of calls answered within 20 seconds.
  4. Optionally add shrinkage to see how many agents to schedule, then read the number of agents needed.

Formula

A = calls x handle time / interval seconds (Erlangs)

Erlang B: B(0) = 1, B(k) = A x B(k-1) / (k + A x B(k-1))

Erlang C: C = N x B / (N - A x (1 - B))

service level = 1 - C x e^(-(N - A) x answer time / handle time)

average speed of answer = C x handle time / (N - A)

N is the number of agents and must be more than A. The page finds the fewest N that reaches the target. Computing Erlang B one agent at a time keeps the numbers stable, even for hundreds of agents.

A half hour queue and a large one

A queue gets 120 calls in 30 minutes and each call takes 240 seconds, so the workload is 120 x 240 / 1,800 = 16 Erlangs. The target is 80% of calls answered within 20 seconds. With 19 agents the service level is 70.9%. With 20 agents it is 81.65%, so 20 agents are needed. At that staffing 25.61% of calls wait, the average speed of answer is 15.4 seconds and agents are busy 80% of the time.

A very large queue shows why a stable method matters: 14,200 calls in an hour at 180 seconds each is 710 Erlangs, and the 80/20 target needs 721 agents, with a service level of 83%, 57.72% of calls waiting and 98.5% occupancy. A method that multiplies large factorials can overflow or lose accuracy at that size.

What the numbers mean

The service level is the share of calls answered within the target time. The share of calls that wait is the chance a call finds every agent busy. The average speed of answer is averaged over all calls, including those answered at once. Occupancy is the share of time agents spend on calls. High occupancy saves staff but leaves little room for a burst of calls, so there is a balance between cost and wait.

Because agents are scarce relative to random arrivals, adding one agent near the target often moves the service level a lot, as the table around the answer shows.

Limits of the model

Erlang C assumes calls arrive at random, nobody hangs up while waiting, handle times are steady and every agent can take every call. Real queues have abandonment, retries, different skills and changing volume across the day, which usually need more agents than the formula says. Use it as a starting point and check it against your own history. The Staffing Hours Calculator turns coverage into hours, the Shift Coverage Calculator checks a schedule, and the Poisson Distribution Calculator models random arrivals.

Assumptions and limits

  • Calls arrive at random at a steady rate during the interval and wait in one queue until answered.
  • Callers do not hang up while waiting, and every agent can handle every call.
  • The 80% and 20 second targets in the fields are examples. Use the targets your own operation sets.
  • Workloads above 4,000 Erlangs are not supported. Shrinkage is applied as a simple division of agents by one minus the shrinkage.

Formulas reviewed October 10, 2026. See the calculation methodology for how SumPanda rounds, tests and sources its formulas.

Frequently asked questions

What is an Erlang?

It is a measure of workload: one Erlang is one agent busy for the whole interval. A workload of 16 Erlangs needs at least 17 agents, and more to keep waits short.

Why do I need more agents than the Erlang workload?

With random arrivals, calls sometimes bunch up and agents sometimes sit idle. To answer most calls quickly, staff must exceed the average workload by a margin that grows with the target.

What does shrinkage do?

Shrinkage is time agents are paid but not available, such as breaks, meetings and training. The page divides the agents needed by one minus the shrinkage to estimate how many to schedule.

How accurate is the model for my center?

It is a good first estimate for steady queues. If many callers abandon or call back, or if agents have different skills, results will differ, so compare against your own data before relying on it.