A call center staffing calculator turns four inputs into a headcount: forecast contact volume, average handle time, your service level target, and shrinkage. The math runs in two stages. Erlang C gives you the agents needed on the floor at a given moment to hit the service level, then you divide that number by (1 minus shrinkage) to get the agents you actually have to schedule. Skipping the second stage is the single most common reason a support team is understaffed on paper and drowning in practice.

Every support leader eventually gets asked the same question by finance: how many people do you need, and why that number. The honest answer is that headcount is not a judgment call. It is a calculation with four inputs, and if you can show the inputs you can defend the number. What makes the conversation go badly is when the requested headcount is a feeling dressed up as a plan.

This is the model behind every Erlang calculator you will find online, written out so you can build it yourself in a spreadsheet and, more importantly, argue with it. The formula is not the hard part. Getting the inputs honest is.

What is a call center staffing calculator?

A call center staffing calculator is a tool that estimates how many agents you need to answer a forecast volume of contacts within a target response time. Most use the Erlang C queueing formula, which models random contact arrival and calculates the probability that a caller has to wait. You feed it volume, handle time and a service level target, and it returns required agents for that interval.

The important word is interval. Staffing is not a monthly number. It is a per half hour number, because contact volume is not flat. A team that is correctly staffed on a daily average will still miss service level every morning between 9 and 11, and will have agents sitting idle after 4pm. Any calculator that asks for a monthly volume and returns a single headcount is telling you something, but it is not telling you how to build a schedule.

The call center staffing formula, input by input

Five inputs drive the whole model. Four go into Erlang C, and the fifth converts the result into real people.

InputWhat it meansWhere to get it honestly
Contact volumeContacts arriving in one interval, usually 30 minutesTicketing or telephony report, same weekday, last 8 to 13 weeks
Average handle timeTalk or chat time plus after contact workYour average handle time formula and benchmarks, measured per channel
Service level targetPercent answered within a threshold, such as 80 percent in 20 secondsYour published customer service SLA, not an aspiration
Maximum occupancyCeiling on how much of a paid hour an agent spends on contactsPolicy decision, normally 80 to 85 percent
ShrinkagePaid hours when an agent is not available for contactsPayroll and schedule adherence data, not a guess

Two of these are measurements and three are decisions. Volume and handle time you observe. Service level, occupancy ceiling and how you treat shrinkage are choices, and they are where most of the disagreement in a staffing conversation actually lives.

How to calculate staffing needs in a call center

Work an example. Say the 10:00 to 10:30 interval on a Tuesday averages 120 inbound calls, average handle time is 300 seconds, and the target is 80 percent answered in 20 seconds.

StepCalculationResult
1. Workload in erlangs(120 contacts x 300 seconds) / 1,800 seconds in the interval20 erlangs
2. Raw agents (Erlang C)Add agents above 20 until 80 percent are answered in 20 seconds24 agents
3. Occupancy check20 / 24 = 83 percent, at or under the 85 percent ceiling24 holds
4. Apply shrinkage of 32 percent24 / (1 - 0.32)35.3 agents
5. Round up to scheduleWhole people, rounded up36 agents scheduled

Step 1 is the part people can do in their heads and it is genuinely useful on its own: 20 erlangs means that if every agent were busy every second with zero queueing, you would need exactly 20 agents. Erlang C then answers the real question, which is how many extra bodies you have to add so that a random arrival rarely waits. Going from 20 to 24 buys the service level. That gap is not waste, it is the price of not making people queue.

Step 4 is the one that gets skipped, and it is the largest single adjustment in the entire model. Twenty four agents on the floor requires thirty six agents on the schedule. If you present 24 to finance and hire 24, you will miss service level every single day and nobody will be able to explain why.

What is shrinkage in a call center?

Shrinkage is the percentage of paid agent hours that are not available for handling contacts. It covers breaks, team meetings, coaching and one to ones, training, system downtime, unplanned absence and vacation. Shrinkage percent equals unproductive hours divided by scheduled hours, times 100. It is not a measure of laziness. Most of what it contains is work you deliberately asked for.

What is included in call center shrinkage

CategoryExamplesTypical share of paid hours
Planned, in dayBreaks, lunch, system login and logout10 to 14 percent
Planned, off phoneTeam meetings, coaching, QA scorecard reviews, training5 to 9 percent
Planned leaveVacation, holidays8 to 11 percent
UnplannedSick days, no shows, late starts, outages4 to 8 percent

Splitting shrinkage into planned and unplanned is worth the effort, because only one half is negotiable in the short term. If a director asks you to cut shrinkage from 34 to 28 percent, the only levers that move that fast are coaching time and training time, which is to say you would be buying this quarter's service level with next quarter's quality.

What is average shrinkage for a call center?

Industry shrinkage typically runs 30 to 35 percent for on site contact centers, and 35 to 40 percent for fully remote teams, where longer breaks, home interruptions and connectivity problems add several points. Anything below 25 percent usually means categories are being left out of the calculation rather than genuinely eliminated. Use your own payroll data if you have twelve months of it.

Team typePlanning shrinkageNote
On site, established30 to 35 percentThe default planning assumption
Fully remote35 to 40 percentAdds connectivity and break drift
New team, first 6 months40 to 45 percentTraining and nesting dominate
Outsourced (BPO)Usually not yoursVendor absorbs it inside the rate

That last row matters when you are comparing options. A BPO quotes you a rate per productive hour or per resolved contact, so shrinkage sits on their side of the line. Comparing an internal fully loaded cost per agent against a vendor's hourly rate without adjusting for shrinkage will make outsourcing look roughly a third cheaper than it is, which is one of several traps in the real cost of customer service outsourcing.

What is a good call center occupancy rate benchmark?

Occupancy is the share of logged in time an agent spends handling contacts or doing after contact work. Most operations target 75 to 85 percent. Below 70 percent you are overstaffed for the interval. Above 88 percent sustained, attrition and quality both fall off quickly, because agents get no recovery gap between contacts.

Occupancy is an output of your staffing decision, not an input you can set by wanting it. If your calculator returns 24 agents and that implies 92 percent occupancy, the answer is not to tell agents to work harder. It is to add an agent, or to accept a lower service level, or to reduce handle time. Teams that manage occupancy by exhortation rather than by staffing tend to discover the cost in their next attrition report.

Where Erlang C stops working: chat and email

Erlang C assumes one agent handles one contact at a time and that the customer is waiting live. That holds for voice. It roughly holds for chat if you account for concurrency. It does not hold for email at all.

ChannelModel to useKey adjustment
VoiceErlang CNone, this is what it was built for
Live chatErlang C with concurrencyDivide workload by realistic concurrency, usually 1.5 to 2.5, not the 3 to 4 the vendor promises
Email and ticketsWorkload model, not a queue modelVolume x handle time / productive hours, sized against a backlog target
Social and messagingWorkload model with a response windowTreat like email but with a tighter first response time target

For email, the calculation is simpler and far less forgiving. If 900 tickets arrive per day at 8 minutes each, that is 120 hours of work. At 6.5 productive hours per scheduled agent day, you need about 18.5 agents scheduled just to break even with arrivals. Anything less and the backlog grows every day, permanently. Email staffing failures are slow and cumulative rather than dramatic, which is exactly why they get noticed three weeks late.

One real lever sits upstream of all of this: contacts you never receive cost nothing to staff. A measurable ticket deflection rate feeds straight back into the volume input at the top of the model, and it is usually cheaper to move that number than to hire against it.

Building the model in a spreadsheet

Most people looking for a call center staffing calculator in Excel want a per interval grid rather than a single answer. Build it with one row per 30 minute interval and columns for forecast volume, AHT, workload in erlangs, required agents, occupancy check, shrinkage divisor and scheduled agents. Excel has no native Erlang C function, so either use one of the free add ins or approximate with a lookup table of required agents by workload and service level.

Then add the column almost nobody adds: forecast accuracy. Log the forecast volume next to the actual volume every interval, and after a month you will know whether the model is wrong or the forecast is. In most struggling teams it is the forecast, and no amount of Erlang refinement fixes a volume estimate that is 20 percent low on Mondays. Tracking that alongside your other customer service metrics and KPIs keeps the staffing debate anchored to evidence.

What the calculator does not include

A staffing calculator produces agent headcount. It does not produce a budget. Between the two sit supervisors (typically one per 12 to 15 agents), a WFM or scheduling resource once you pass roughly 50 agents, quality analysts, recruiting and training cost for the churn you know is coming, and per seat software licenses for every tool an agent touches. That software line is easy to underestimate once helpdesk, telephony, knowledge base and QA tooling are each billed per user, and it is worth tracking per seat spend against actual usage rather than renewing on headcount you no longer have.

Add those and the fully loaded cost per agent typically lands well above salary. That is the number to bring to a build versus buy conversation, not the raw hourly wage.

Frequently asked questions

How do you calculate how many agents you need?

Multiply forecast contacts in an interval by average handle time, divide by the length of the interval in the same unit to get workload in erlangs, then use Erlang C to find the agent count that meets your service level target. Finally divide that figure by 1 minus your shrinkage rate. The result is agents to schedule, not agents on the floor.

What is the formula for shrinkage in a call center?

Shrinkage percent equals total unproductive paid hours divided by total scheduled paid hours, multiplied by 100. Unproductive hours include breaks, meetings, coaching, training, absence and downtime. Calculate it separately for planned and unplanned categories so you know which portion can realistically be reduced.

Is Erlang C accurate for small teams?

It gets unreliable below roughly 8 to 10 agents per interval. Erlang C assumes contacts arrive randomly and independently, and with very small teams a single long call distorts the whole interval. Small teams should staff to a maximum wait target and simply accept lower occupancy, because the alternative is missing service level whenever two contacts overlap.

Does Erlang C account for abandoned calls?

No. Erlang C assumes every caller waits indefinitely, which makes it slightly conservative and tends to overstate required agents when abandonment is high. Erlang A extends the model with a patience parameter and is a better fit if your abandon rate is above about 5 percent.

How often should the staffing model be rerun?

Rerun the forecast weekly and the full staffing model monthly, or immediately after anything that changes handle time or volume: a pricing change, a product launch, a billing cycle change, or a support policy change. Handle time in particular drifts quietly, and a 30 second AHT increase across 900 daily contacts is another agent and a half.

M
Maya Renner
CX operations writer. Ten years running support and onboarding teams at B2B software companies; now writes about the operational side of customer experience.

Back to top ↑