TapCub is live — analytics, insights and live chat, free on one platform

Free tool Erlang C calculator for call center staffing

Enter how many contacts arrive in an interval, how long each one takes and the service level you promise. Erlang C gives the number of agents you need on the phones, how long callers wait, and how many people to schedule once breaks, training and absence are taken out.

  • Agents, ASA, occupancy
  • Service level by headcount
  • Runs locally
Calculator

How many agents do you need?

The defaults are the worked example from Call Centre Helper, so you can check the result against it: 100 calls in 30 minutes, 3-minute handle time, 80% answered within 20 seconds.

Calls or tickets that arrive in one interval. Use the busiest interval you are planning for.

The period the contact count covers.

Talk + hold + after-call work. 180 or 3:00.

Share of contacts to answer within the target time, e.g. 80.

The "20" in 80/20. 0 means answered without waiting.

Upper limit on the share of time agents spend handling contacts. Leave empty for no limit.

Paid time agents are not available: breaks, meetings, training, absence.

14 agents on the phones answer 88.8% of contacts within 20 s. Schedule 20 once 30.0% shrinkage is added. Traffic: 10 Erlangs.

Agents required

14

On the phones at the same time.

Agents to schedule

20

After shrinkage, rounded up.

Service level achieved

88.8%

Answered within the target time.

Probability of waiting

17.4%

Erlang C: a contact finds every agent busy.

Average speed of answer (s)

7.8

Average wait across all contacts.

Occupancy

71.4%

Traffic ÷ agents.

Traffic intensity (Erlangs)

10.00

Contacts × handle time ÷ interval.

Service level by number of agents

Green meets every target; amber meets the service level but breaks the occupancy cap.

AgentsScheduledOccupancyProbability of waitingService levelAverage speed of answer
111690.9%68.2%39.0%2 min 03 s
121883.3%44.9%64.0%40.4 s
131976.9%28.5%79.6%17.1 s
14 · required2071.4%17.4%88.8%7.84 s
152266.7%10.2%94.1%3.67 s
162362.5%5.7%97.1%1.72 s
172558.8%3.1%98.6%794 ms
182655.6%1.6%99.3%358 ms
Runs entirely in your browser. Nothing you type here is uploaded or stored by TapCub.

Share these inputs: the values go after the # in the link, so they never reach a server.

Version v1.0Updated Update history

Read the result

Two headcounts and three quality numbers

Erlang C answers "how many agents must be on the phones", then shrinkage turns that into "how many people to roster".

Agents required

The smallest number of agents, all logged in and ready, that meets the service level and stays under the occupancy cap. In the example, 13 agents reach 79.6% — just short of 80% — so the answer is 14.

Agents to schedule

Required agents ÷ (1 − shrinkage). With 30% shrinkage, 14 on the phones means 20 on the rota. Shrinkage is usually the largest lever in the whole plan.

Service level and ASA

Service level is the share answered within the target; ASA is the average wait across all contacts, including those answered at once. A good ASA can hide a long tail, so read both.

Occupancy

Traffic ÷ agents: how much of their ready time agents spend handling contacts. High occupancy looks efficient, but sustained high levels leave no time to recover between calls.

Erlang C assumes nobody hangs up while waiting and that contacts arrive at random. Real queues lose some callers, so Erlang C tends to slightly overstate the agents needed when abandonment is high.

How to use it

From a forecast to a rota

Run the calculator once for each interval you staff.

  1. 1

    Take the busiest interval

    Use the contacts forecast for one interval — say Monday 10:00–10:30 — not a daily average. Staffing to the average leaves the peak short.

  2. 2

    Use measured handle time

    Take average handle time from your phone system or helpdesk for the same queue, including after-call work.

  3. 3

    Set the promise

    Enter the service level you commit to, such as 80% in 20 seconds, and an occupancy cap if you use one.

  4. 4

    Add shrinkage and roster

    Enter your shrinkage and use "agents to schedule" per interval to build shifts. Look at the table to see what one agent more or less would do.

Formula

Erlang C, step by step

The calculator uses the standard Erlang C model (an M/M/N queue). Erlang C is computed from Erlang B with a recurrence, which stays accurate for hundreds of agents where the textbook factorial form overflows.

  • Assumes random (Poisson) arrivals, exponential handle times and no abandonment
  • Agents are interchangeable and take any contact in the queue
  • Needs more agents than Erlangs of traffic; otherwise the queue grows without limit
  • Occupancy cap: required agents are at least traffic ÷ cap

Traffic intensity

A = contacts × AHT ÷ interval (s)

100 × 180 ÷ 1,800 = 10 Erlangs

Erlang B (recurrence)

B(0) = 1; B(n) = A·B(n−1) ÷ (n + A·B(n−1))

Probability of waiting

C = N·B ÷ (N − A·(1 − B))

N = 14, A = 10 → 0.1741

Service level

SL = 1 − C·e^(−(N − A)·t ÷ AHT)

1 − 0.1741·e^(−4·20/180) = 88.8%

ASA and occupancy

ASA = C·AHT ÷ (N − A); occupancy = A ÷ N

0.1741·180 ÷ 4 = 7.8 s; 10 ÷ 14 = 71.4%

Worked example

Adding agents one at a time

The Call Centre Helper example: 100 calls per 30 minutes, 180-second handle time, target 80% in 20 seconds, 85% occupancy cap, 30% shrinkage. Traffic is 10 Erlangs.

Erlang C results for 11 to 15 agents
AgentsProbability of waitingService level (20 s)ASAOccupancy
1168.2%39.0%2 min 03 s90.9%
1244.9%64.0%40.4 s83.3%
1328.5%79.6%17.1 s76.9%
1417.4%88.8%7.8 s71.4%
1510.2%94.1%3.7 s66.7%

14 agents is the first count to reach 80%. The 12th agent adds 25 points of service level; the 15th adds 5. Scheduled headcount: 14 ÷ (1 − 0.30) = 20. Source: Call Centre Helper, "Erlang C Formula – Made Simple".

Common mistakes

Where Erlang C plans go wrong

The formula is rarely the problem. The inputs are.

Using daily averages

Contacts cluster by hour. A day's volume spread evenly understaffs the peak and overstaffs the quiet hours. Plan interval by interval.

Leaving out after-call work

Handle time is talk + hold + wrap-up. Using talk time alone can understate traffic by a fifth or more.

Forgetting shrinkage

Erlang C gives agents on the phones. Rostering that number leaves the queue short every time someone is on a break or in training.

Using it for chat as-is

A chat agent handles several conversations at once, so one agent is not one server. Use the chat staffing calculator.

FAQ

Erlang C questions

Still have a question?

Chat with the team behind TapCub — we usually reply within a few hours on business days.

What is Erlang C?

A queueing formula from telephone engineering that gives the probability a contact has to wait when N agents handle random arrivals with a given traffic load. From it you get the service level, the average speed of answer and the number of agents needed for a target.

How do I calculate how many agents I need?

Work out traffic in Erlangs (contacts × handle time ÷ interval length), then find the smallest number of agents whose Erlang C service level meets your target. Divide by (1 − shrinkage) to get the number to schedule. The calculator does both.

What is a service level like 80/20?

A promise that 80% of contacts are answered within 20 seconds. The percentage and the seconds are both inputs; the share answered depends strongly on how many agents are available.

What is shrinkage?

The share of paid time agents cannot take contacts: breaks, meetings, coaching, training, sickness and holidays. Measure it from your own rota and attendance data rather than borrowing a figure.

Does Erlang C account for callers hanging up?

No. It assumes everyone waits until answered. When many callers abandon, the real queue is shorter than Erlang C predicts; the Erlang A model handles abandonment but needs a patience estimate.

Can I use Erlang C for live chat?

Not directly, because one chat agent handles several conversations at once. The chat staffing calculator treats each agent as several chat slots and says what that ignores.

Why does a 15-minute interval give a different answer from 60 minutes?

Erlang C assumes a steady arrival rate within the interval. Shorter intervals follow the peaks more closely, so they usually show a higher requirement at busy times.

Changelog

Update history

New features, fixes and data refreshes for this tool, newest first.

  1. · v1.0

    LaunchedFirst release.

Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates

See your data clearly. Find your growth.

Every click, backed by data. Install one line of code and see your first numbers in a minute.

No credit card · Free plans for analytics and chat · Cookieless analytics