Management
How many agents does your contact center need? Erlang C in plain English
The Erlang C formula turns call volume and handle time into the number of agents you need on the phones to hit a service level target. Calculate by interval, not by day, and add shrinkage – otherwise you'll be short-staffed on every shift.

Every week, a contact center manager faces the same question: how many people to put on the phones tomorrow at 10 AM. Too few, and the queue grows, callers hang up, and agents burn out. Too many, and you're paying people to wait for calls. The standard way to answer it is the Erlang C formula. Let's walk through it with one example – from call volume to headcount.
What you need for the calculation
Erlang C is a queuing model that comes from telephony. It takes three numbers and tells you what share of callers will wait and what service level you'll get with any given number of agents. For voice queues, it's still the standard starting point.
- Call volume per interval – usually 15 or 30 minutes, sometimes an hour.
- Average handle time (AHT) – talk time, hold time, and after-call work, in seconds.
- Service level target – what share of calls to answer within a set time, for example 80% in 20 seconds.
The output is the smallest number of agents who need to be on the line and available to take calls.
Calculate by interval, not by day
Calls don't arrive evenly. Say your line is open 9:00 AM-9:00 PM and takes 2,000 calls a day: 250 of them come in between 10 and 11 AM, and only 40 after 8 PM. That averages out to 167 calls an hour, which 15 agents can handle. But in the peak hour, at 4 minutes per call, the workload is almost 17 Erlangs: 15 agents can't keep up, and the queue grows all hour long. The peak needs 21 agents, while five are enough in the evening.
- Pull call history in 15- or 30-minute intervals for 4-8 comparable weeks. A shorter interval shows the peak more precisely, but it needs more history to keep the forecast from jumping around.
- Treat each day of the week separately: Monday morning looks nothing like Thursday evening.
- Flag atypical days – holidays, outages, marketing campaigns – and exclude or adjust them.
- Forecast each interval separately and calculate agents for each one.
Workload: how many agents are busy nonstop
Workload is measured in Erlangs: multiply the number of calls by the handle time and divide by the length of the interval. One Erlang is one agent on calls for the entire hour.
Here's the example we'll use from here on: 120 calls an hour with an average handle time of 240 seconds. 120 × 240 = 28,800 seconds of work per hour; divide by 3,600 and you get 8 Erlangs. Fewer than eight agents will never keep up: the queue will grow indefinitely.
How many agents you need for an 80/20 target
At a workload of 8 Erlangs, eight agents are busy 100% of the time, and the queue never clears. So the formula adds one agent at a time and calculates the service level for each option – the share of calls answered within 20 seconds.
- 9 agents – 40% of calls in 20 seconds. Two-thirds of callers wait, and the average speed of answer is over 2.5 minutes.
- 10 agents – 65%, with an average speed of answer of 49 seconds. Target missed.
- 11 agents – 81%, with an average speed of answer of 20 seconds. Target met.
- 12 agents – 90%, with an average speed of answer of 8 seconds. Better for callers, but you pay for that cushion.
So our hour needs 11 agents on the line. Notice how much one person matters: going from 10 to 11 lifts service level from 65% to 81%. The Erlang C calculator runs this for any interval – our example is its default.
How the formula works inside – feel free to skip this paragraph. First, it finds the probability that a call will have to wait: with 11 agents and a workload of 8 Erlangs, that's 24.5% – roughly one caller in four. Then it calculates what share of waiting callers will be answered within 20 seconds. Service level = 1 − 0.245 × e^(−(11 − 8) × 20 / 240) = 1 − 0.245 × 0.78 ≈ 81%. Here 11 is agents, 8 is workload, 20 is the threshold in seconds, and 240 is handle time. The key part of the formula is the gap between agents and workload: those are your spare people, who absorb random spikes in calls. With 10 agents, the gap is two, 41% of callers already wait, and service level drops to 65%.
From agents on the line to people on the schedule
11 agents on the line doesn't mean 11 people on the shift. People take breaks, attend training and call reviews, get sick, go on vacation, and do off-phone work. All of that is shrinkage – lost productive time. It typically runs 25-35%. If you don't have your own numbers, start with 30% and replace it with your actual figure after a month.
- Planned shrinkage: breaks, lunch, meetings, training, call reviews.
- Unplanned: sick days, late arrivals, system outages.
- Vacation: often planned separately, month by month.
To get the number of people on the shift, divide agents on the line by (1 – shrinkage). At 30% shrinkage: 11 / 0.7 = 15.7, rounded up – 16 people on the shift for that hour.
Weekly headcount is calculated differently: what matters is how many shifts a day you run, how many days the line is open, and how many shifts each employee works. Say you need 11 agents all day, the line is open 9:00 AM-9:00 PM seven days a week, a shift is 8 hours, and each employee works 5 shifts a week. Then you need 2 shifts of 16 people a day and 45 employees on staff. The shift calculator runs your own numbers.
What each agent on the line costs
Let's put the calculation in dollars. Say an agent hour, including wages, payroll taxes, and workstation, costs $50, with 160 paid hours a month (you can plug in your own numbers in the AI agent savings calculator). One employee costs $8,000 a month, and a team of 45 costs $360,000. The line in our example is open 12 hours a day, seven days a week, and takes about 43,200 calls a month.
- One more agent on the line all day (12 instead of 11): 18 people per shift instead of 16, and 51 on staff instead of 45. Six employees – $48,000 a month to raise service level from 81% to 90%.
- One fewer (10 instead of 11): 42 people on staff, saving $24,000 a month. But service level drops to 65%, and abandoned calls, per the Erlang A mode with 2 minutes of caller patience, rise from about 4% to about 7% – roughly 1,200 more a month.
Cutting pays off only if an abandoned call costs you less than $20 ($24,000 / 1,200 calls). What it really costs – counting the purchases that never happened – is what the missed call cost calculator shows.
Where Erlang C gets it wrong
- Abandoned calls. The formula assumes callers will wait forever. In reality, some hang up, so the result has a small built-in cushion – a safe error. The calculator's Erlang A mode accounts for callers who leave: in our example, with an average caller patience of 2 minutes, it gives 10 agents, but about 7% of calls will be abandoned.
- Small teams. With 3-5 agents, every person counts, and one long call wrecks the interval.
- Agents on multiple queues. The basic formula overstates the need. Simulation – running the queue on a computer – is more accurate.
- Chat and messaging. An agent handles several conversations at once, so the voice formula doesn't apply directly. Use it as a baseline and refine it with actual data.
- Callbacks and outbound calls. These can be shifted in time, so plan them separately from inbound peaks.
How to sanity-check the result
Agents on the line can never be fewer than the workload in Erlangs. As the team grows, the gap between the two narrows: a large team runs at higher occupancy for the same service level. That's why merging small queues saves people. Two queues of 60 calls an hour need 7 agents each, 14 in total, while one shared queue of 120 calls needs 11.
- Agent occupancy is workload divided by the number of agents. In our example, 8 / 11 is about 73%. That's a bit below the typical 75-85% for voice, and for a team of 11 at an 80/20 target, that's exactly where it should be.
- If occupancy stays above 85-90% for weeks, agents burn out and handle time goes up. That's why the calculator has an occupancy cap – 90% by default.
- If occupancy is well below 60%, you most likely have more people than you need, or the forecast is too high.
- Compare the calculation with your actual service level for the same intervals last month.
- Recalculate whenever handle time changes: a new product, process, or system can shift it by tens of seconds.
How to use the calculation every week
- Export call counts and average handle time by interval for the last two months from your reports.
- Pick a target for each queue – not every line needs the 80/20 standard. We cover how to choose one in "Service level 80/20".
- Calculate agents for each interval in the Erlang C calculator.
- Add your own shrinkage, get the number of people per shift, and convert it to headcount and payroll in the shift calculator.
- Build shifts around the demand curve and compare plan to actual every week. We explain how this cycle works in our article on workforce management.
In CONTACT.WORK, interval reports and workforce management (WFM) run on the same data: the forecast, the required staffing, and the actual number of agents sit side by side. If the plan drifts from reality, you'll see it the same day, not at the end of the month.