Call center staffing calculator: Erlang C agents for your service level
An Erlang C calculator works out how many agents a call center needs to hit a service level, such as 80% of calls answered within 20 seconds. It turns call volume and average handle time into traffic in Erlangs, then finds the fewest agents whose predicted waiting time meets the target. Add shrinkage to get the number to schedule.
Talk + hold + after-call work. 240 seconds is 4 minutes.
Share of paid time agents aren't available: breaks, training, meetings, absence. Use your own figure.
Leave blank for no cap.
The figures loaded are an example. Runs in your browser.
- Agents on the phones
- 20
- Agents to schedule (30% shrinkage)
- 29
- Answered in 20 s
- 81.7%
- Occupancy
- 80.0%
120 calls × 240 s ÷ 1,800 s = 16.00 Erlangs of traffic. With 20 agents, 25.6% of callers wait at all, the average speed of answer is 15 s, and 81.7% are answered within 20 seconds (target 80%). Per 30 minutes, schedule 29 so 20 are on the phones after shrinkage.
| Agents | Service level | Wait at all | ASA | Occupancy |
|---|---|---|---|---|
| 17 | 32.2% | 73.7% | 177 s | 94.1% |
| 18 | 55.0% | 53.1% | 64 s | 88.9% |
| 19 | 70.9% | 37.4% | 30 s | 84.2% |
| 20 | 81.7% | 25.6% | 15 s | 80.0% |
| 21 | 88.7% | 17.1% | 8.2 s | 76.2% |
| 22 | 93.3% | 11.1% | 4.4 s | 72.7% |
| 23 | 96.1% | 7.0% | 2.4 s | 69.6% |
Next step
Every minute agents spend on a wrong number is paid handle time.
Erlang C assumes every call reaches someone. On an outbound or callback list, numbers that are mistyped, badly formatted or landlines you meant to text use up agent time. Checking format and line type on the list before it goes to the dialer keeps that time on real conversations. It's in the Email + Phone plan.
- Drop your numbers as a CSV
- See its rows, duplicates and bad formats, free
- Check every number when you are ready
Ready to verify now? See the Email + Phone plan
Sample result
You need 20 agents for 120 calls per 30 minutes to answer 80% within 20 seconds.
- Agents needed
- 20
- Traffic
- 16 Erlangs
- Scheduled, 30% shrinkage
- 29
What this means for you
Roster 29 people once 30% shrinkage (breaks, leave, training) is added back.
- Erlang C from calls, handle time and target
- 15-minute, 30-minute or hourly intervals
- Adds shrinkage back for the rota
- Optional cap on agent occupancy
- Erlang C
- Service level
- Staffing
By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us
How do I calculate how many call center agents I need?
- Enter the calls you expect in one interval and pick the interval length: 15 minutes, 30 minutes or an hour. Staff each interval of the day separately.
- Enter the average handle time in seconds, including hold and after-call work, not just talk time.
- Set the service-level target, for example 80% answered within 20 seconds, and your shrinkage: the share of paid time agents are on breaks, in training or absent.
- Read the agents needed on the phones, the agents to schedule after shrinkage, and the table of service level, waiting, ASA and occupancy around that number.
Example
- You enter
- 120 calls per 30 minutes, 240 seconds average handle time, a target of 80% answered within 20 seconds and 30% shrinkage.
- You get
- 16 Erlangs of traffic needs 20 agents on the phones (81.7% answered in 20 seconds, 15-second average speed of answer, 80% occupancy), and 29 on the rota once shrinkage is added back.
- Limits
- No limit on inputs; the Erlang C search stops at 5,000 agents on one queue. Runs in your browser.
How do I calculate call center staffing?
Start from the workload, then add the queueing margin. Traffic in Erlangs = calls per interval × average handle time ÷ interval length, so 120 calls of 240 seconds in a 30-minute interval is 120 × 240 ÷ 1,800 = 16 Erlangs: 16 agents would be busy all the time. Erlang C then finds how many agents above that are needed for callers not to wait too long; for an 80/20 target it's 20 agents in this example.
Finally, divide by one minus shrinkage to get the number to schedule. With 30% shrinkage, 20 agents on the phones means 20 ÷ 0.7 = 28.6, so 29 people rostered. The ITU defines traffic intensity this way in Recommendation E.500.
What is the Erlang C formula?
Erlang C gives the probability that a caller has to wait, for A Erlangs of traffic and N agents: C(N, A) = (Aᴺ/N! × N/(N − A)) ÷ (Σₖ₌₀ᴺ⁻¹ Aᵏ/k! + Aᴺ/N! × N/(N − A)). From it, the service level is 1 − C × e^(−(N − A) × t ÷ AHT) for an answer threshold of t seconds, and the average speed of answer is C × AHT ÷ (N − A). The formula and the Erlang B recursion used to compute it are set out on Wikipedia's Erlang (unit) page.
This calculator computes C through the Erlang B recursion rather than with factorials, which overflow above about 170 agents in a spreadsheet. The results are the same; it just keeps working for large queues.
What is Erlang C used for?
Erlang C is used to set staffing for inbound queues: how many agents each interval needs to meet a service level or an average speed of answer. Workforce management tools run it on each 15- or 30-minute forecast and then build schedules to cover the result.
It is a model with assumptions. Calls arrive at random at a steady rate within the interval, every caller waits as long as it takes, and every agent can take every call. Real callers hang up, which Erlang C ignores, so it tends to recommend somewhat more agents than needed when abandonment is high. Ger Koole's Call Center Optimization covers this and the Erlang X model, which adds caller patience.
How do I calculate Erlang C in Excel?
Compute traffic, then build the Erlang B recursion down a column and convert it. With traffic in B1 and agent counts 1, 2, 3… in column A from A2, put =B$1*1/(A2+B$1*1) in B2 for Erlang B with one agent and =B$1*B2/(A3+B$1*B2) in B3, filled down. Erlang C for the agents in row r is then =A2*B2/(A2-B$1*(1-B2)), valid only where agents exceed traffic.
Service level is =1-C2*EXP(-(A2-B$1)*threshold/aht). Pick the first row that meets the target. The calculator above does the same and shows the rows around the answer.
Erlang B, Erlang C or Erlang X: which do I need?
| Erlang B | Erlang C | Erlang X | |
|---|---|---|---|
| Callers who find everyone busy | Are lost | Wait in queue | Wait, and some hang up |
| Typical use | Trunks and lines | Agent staffing | Agent staffing with abandonment |
| Inputs | Traffic, lines | Traffic, agents, AHT | Traffic, agents, AHT, patience |
| Tends to | Size lines | Overstaff when abandonment is high | Match observed queues more closely |
Who uses this tool, and for what?
- Call center managers
- Turn the interval forecast into agents per half hour, then into a roster once shrinkage is added.
- SDR and outbound teams
- Size a callback or inbound queue for a campaign that's about to generate a spike of calls.
- BPO and outsourcers
- Quote staffing for a client's service-level agreement, and show the trade-off between agents and answer speed.
- Support leads
- Check what happens to the 80/20 target if handle time rises after a product change.
What can’t this tool tell you?
- Erlang C assumes nobody abandons, so it overstates the agents needed when many callers hang up.
- It models one queue with interchangeable agents. Skills-based routing, blended channels and chat concurrency need other models or simulation.
- The forecast and handle time are yours. A wrong forecast gives a precise wrong answer.
- Shrinkage is applied as one percentage; real shrinkage varies by interval.
Common questions
- What is an Erlang calculator?
- A tool that uses the Erlang formulas to turn call volume and handle time into the agents needed for a service level. Erlang C is the version for queues where callers wait for the next agent.
- How to use an Erlang calculator?
- Enter calls per interval, the interval length, average handle time and a service-level target such as 80% in 20 seconds. It returns the agents needed; add shrinkage to get the number to schedule.
- What is Erlang in a call center?
- One Erlang is one hour of call traffic per hour, or one agent kept busy all the time. 16 Erlangs means 16 agents' worth of work before any queueing margin.
- How do you calculate Erlangs?
- Calls in the interval × average handle time ÷ interval length, with both times in the same unit. 120 calls of 4 minutes in 30 minutes is 120 × 4 ÷ 30 = 16 Erlangs.
- What is the difference between Erlang B and Erlang C?
- Erlang B models calls that are blocked and lost when every line is busy, used for trunk sizing. Erlang C models calls that wait in a queue, used for agent staffing.
- Why is AHT important in a call center?
- Staffing scales with it directly: traffic is calls × AHT, so a 10% longer handle time needs roughly 10% more agents for the same service level.
- Does Erlang C overstaff?
- It can, because it assumes nobody hangs up. Where many callers abandon, models that include patience, such as Erlang X, usually need fewer agents for the same target.
Sources
The numbering plan only knows what a range was issued for.
In the US and Canada mobiles and landlines share the same prefixes, and anywhere a number can be ported or reassigned the range stops telling the whole story. A live carrier lookup asks the network data instead, which is what the Email + Phone plan adds.
- 5,000 live carrier lookups a month: real line type, including US numbers
- Carrier name for every number looked up
- Upload a CSV up to 100,000 rows; emails in the same file get a mailbox check
One plan, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.