What an Erlang calculator does
An Erlang calculator converts a call forecast into a staffing requirement. You give it three things: how many calls arrive in an interval, how long each call takes to handle, and the service level you want to hit (for example, 80 percent of calls answered within 20 seconds). It applies the Erlang C queueing formula to find the smallest number of agents that meets the target, then layers on shrinkage to tell you how many people to actually schedule. It is the standard sizing method for inbound call centers, and it has been since the formula was published by A. K. Erlang in 1917.
The tool above runs the exact formula printed below, in your browser, with no server round trip and no email gate. It also reports the numbers most staffing calculators hide: the predicted average speed of answer, the probability a caller waits at all, and the agent occupancy your headcount implies. Occupancy is the number to watch: a plan that hits service level at 92 percent occupancy will not survive contact with real agents. Our occupancy and shrinkage guide covers why.
The Erlang C formula, in full
Erlang C answers one question: if calls arrive at random and queue when all agents are busy, what is the probability that a new call has to wait? Everything else (service level, ASA, staffing) is derived from that probability. Three quantities drive it:
- A = traffic intensity in Erlangs = (calls per interval x average handle time in seconds) / interval length in seconds
- N = number of agents handling calls concurrently
- P(wait) = the Erlang C probability that an arriving call queues
The formula only makes sense when N is greater than A: with fewer agents than Erlangs of workload, the queue grows without bound and no service level is achievable. That is why the calculator starts its search at the first whole number above A and adds agents one at a time until the predicted service level clears your target (and, if you set one, until occupancy falls under your cap).
Computationally, the tool evaluates Erlang C through the numerically stable Erlang B recurrence (B(0) = 1, then B(k) = A x B(k-1) / (k + A x B(k-1)) up to k = N, converted to Erlang C at the end). This avoids the factorial overflow you would hit computing A^N / N! directly, and it stays exact for floors of thousands of agents.
Worked example you can check by hand
Say you take 100 calls per 30 minutes with a 300-second AHT and you target 80 percent of calls answered within 20 seconds. Traffic intensity: A = 100 x 300 / 1800 = 16.7 Erlangs. The Erlang C search finds that 20 agents deliver only a 72.9 percent service level, while 21 agents deliver 82.6 percent, so the answer is 21 agents on the phones. At 21 agents, the probability a caller waits at all is 23.2 percent, average speed of answer is 16.0 seconds, and occupancy is 79.4 percent. With 30 percent shrinkage, you schedule ceil(21 / 0.70) = 31 agents to keep 21 productive.
Two things about that example generalize. First, the jump from missing target to beating it happens in a single agent: Erlang C results are stepwise, and the marginal agent near the target is enormously valuable. Second, the raw Erlang C answer is never the schedule. The 21 becomes 31 the moment real-world shrinkage enters, and that gap, not the queueing math, is where most understaffing actually comes from.
How to use each input
Calls per interval and interval length
Use your busiest realistic interval, not a daily average. A day with 1,000 calls might peak at 120 calls in a half hour; staffing to the average interval guarantees missed service level at the peak. Fifteen-minute intervals capture sharper peaks; 60-minute intervals smooth them. Most workforce teams plan on 30-minute intervals.
Average handle time
AHT includes talk, hold, and after-call work, not talk time alone. Understating AHT by leaving out wrap time is the single most common way staffing models come out optimistic. Benchmarks by vertical are in our AHT and FCR guide, and you can score your own AHT against 2026 industry bands in the KPI benchmark dashboard.
Service level target
The classic inbound target is 80/20: 80 percent of calls answered within 20 seconds. Regulated and healthcare floors often run tighter targets; low-urgency support lines run looser ones. Full context on how service level interacts with the other core metrics is in the 2026 call center metrics benchmark guide.
Shrinkage
Shrinkage is the share of paid time agents are unavailable for calls: breaks, coaching, meetings, training, absence, system downtime. Measure yours; if you have not, a planning default of around 30 percent is a common starting point, adjusted as soon as real data exists. The mechanics are unpacked in the occupancy and shrinkage guide.
Maximum occupancy
Occupancy is the share of logged-in time an agent spends handling contacts. Erlang C will happily hand you a headcount that implies 90 percent or higher occupancy on big floors, because the math does not get tired. Humans do. Sustained occupancy above roughly 85 percent correlates with fatigue, quality decline, and attrition, which is why the calculator lets you cap it, and adds agents beyond the pure Erlang C answer when the cap binds. If attrition is already the problem, our turnover cost calculator prices what it is costing you.
Erlang B, Erlang C, and when each applies
Erlang B and Erlang C solve different problems and are routinely confused. Erlang B models a system with no queue: when all servers are busy, the arriving call is blocked and lost. It is the right model for sizing trunks, phone lines, and anything where excess demand disappears. Erlang C models a system where excess demand waits: callers queue until an agent frees up. That is the inbound call center case, which is why staffing calculators use Erlang C. For the same traffic, Erlang C always needs at least as much capacity as Erlang B, because queued callers eventually consume agent time rather than vanishing.
What Erlang C assumes, and where it bends
- No abandonment. Erlang C callers wait forever. Real callers hang up, which drains the queue and means Erlang C somewhat overstates staff at long queue times. Planners often accept this as a built-in safety margin.
- Poisson arrivals. Calls arrive independently at a steady average rate within the interval. Marketing spikes, outage-driven surges, and redial storms violate this; model those intervals separately with their own volumes.
- Single skill group. Every agent can take every call. Skills-based routing fragments the pool and generally needs more total agents than one big Erlang C group predicts; running the calculator per queue is the practical approximation.
- Steady state within the interval. The formula describes the interval's equilibrium, which is why you should feed it interval-level peaks rather than daily averages.
None of this makes the model wrong as a baseline. It makes it a floor with a known bias: transparent, reproducible, and slightly conservative, which is exactly what you want a first staffing number to be.
From agents to budget
An Erlang answer is a headcount; the business question is the cost of that headcount. At US onshore loaded costs the difference between 21 and 31 scheduled agents is a large budget line. This is the arithmetic behind nearshore staffing: a CFG Caribbean seat runs $12 to $18 per agent hour all-inclusive, and the wage inputs behind that range are published in the Caribbean wage index. To turn your Erlang headcount into a monthly cost, run the nearshore cost calculator, or see how staffed teams are delivered as an outsourced call center program. For seasonal Medicare volume specifically, use the dedicated Medicare AEP staffing calculator, which layers AEP-specific assumptions on top of the same queueing base.
FAQ
What is an Erlang?
An Erlang is the unit of telecommunications traffic intensity, named after the Danish mathematician A. K. Erlang. One Erlang equals one hour of continuous call workload: 60 minutes of talk plus wrap time inside a 60-minute window. In staffing terms, traffic intensity in Erlangs equals calls per interval multiplied by average handle time, divided by the interval length. If you receive 100 calls in 30 minutes and each takes 300 seconds to handle, you are carrying 100 x 300 / 1800 = 16.7 Erlangs of workload, meaning you need at least 17 agents just to absorb the work before any queueing math is applied.
What is the Erlang C formula?
The Erlang C formula computes the probability that an arriving call has to wait in queue, given N agents and a traffic intensity of A Erlangs. It assumes calls arrive randomly (a Poisson process), queue if all agents are busy, and never abandon. From the wait probability you derive the two planning outputs: service level, which is the share of calls answered within a target time, and average speed of answer. A staffing calculator inverts the formula: it searches for the smallest N whose predicted service level meets your target, for example 80 percent of calls answered in 20 seconds.
What is the difference between Erlang B and Erlang C?
Erlang B models systems with no queue: if every line or agent is busy, the new call is blocked and lost. It is used for sizing trunks and phone lines. Erlang C models systems with a queue: if every agent is busy, the call waits. It is used for staffing call centers, where callers hold rather than being dropped. Erlang C always requires at least as many servers as Erlang B for the same traffic, because queued callers keep occupying capacity until they are served.
How many call center agents do I need for my call volume?
Convert your volume into traffic intensity, then apply Erlang C. Worked example: 100 calls per 30 minutes at a 300-second average handle time is 16.7 Erlangs. To hit 80 percent of calls answered within 20 seconds, the Erlang C search lands on 21 agents on the phones, which delivers a predicted 82.6 percent service level, a 16-second average speed of answer, and 79.4 percent occupancy. With 30 percent shrinkage you would schedule 31 agents to keep 21 productive. Twenty agents would only deliver 72.9 percent, which is why the calculator adds agents one at a time until the target is met.
What shrinkage percentage should I use?
Shrinkage is the share of paid time an agent is unavailable to take calls: breaks, training, coaching, meetings, absence, and system downtime. A common workforce management planning default is around 30 percent, but the honest answer is to measure your own: divide unavailable scheduled time by total scheduled time over a few representative weeks. Using a default that is 10 points below your real shrinkage silently understaffs every interval, which then shows up as missed service level and rising occupancy.
What are the limitations of the Erlang C model?
Erlang C assumes callers never abandon, arrivals are random and independent, every agent handles every call type, and handle times follow one distribution. Real floors break all four assumptions to some degree. Because abandonment is ignored, Erlang C overstates required staff when queues are long and callers hang up. Because it is a single-skill model, it cannot represent skills-based routing directly. It remains the standard planning baseline because it is transparent and errs on the safe side; treat its output as the starting headcount, then adjust with observed abandonment and occupancy data.
Keep going
Score the KPIs this staffing plan will produce against 2026 industry bands in the KPI benchmark dashboard. Price the churn side of headcount with the turnover cost calculator and the attrition benchmark tool. Turn agents into dollars with the nearshore cost calculator and the Caribbean wage index, or see delivery models on outsourced call center and BPO services. All free tools live on the tools hub.