21 July, 2025
Staffing your contact center is a balancing act. Too few agents and service levels drop, frustrating customers. Too many, and you’re paying for idle time you can’t afford.
In this guide, we’ll walk through exactly how to figure out the right number of agents for your operation, and how to do it faster and more accurately with Spark Queue.
Step 1 – Gather Your Data

Before you can calculate staffing needs, you’ll need a few key metrics:
Call Volume: The number of calls (or contacts) you expect in a given time period.
Average Handle Time (AHT): How long each interaction takes, including talk and after-call work.
Service Level Goal: The percentage of calls you want answered within a set time (e.g., 80% within 20 seconds).
Shrinkage: The percentage of time agents are unavailable for calls (breaks, meetings, training, PTO, etc.).
Occupancy: The percentage of time agents spend actively handling interactions versus waiting for the next one. High occupancy can lead to burnout, while low occupancy may indicate overstaffing.
Pro tip: If you have interval data (X amount of calls per hour), use it. Staffing from daily averages can hide peak periods and lead to missed service goals.
Step 2 – Use the Erlang C Formula

Most workforce planners use the Erlang C formula to determine the minimum number of agents needed to meet service levels.
While the math can get technical, here’s the concept:
Inputs: Call volume, AHT, service level target, shrinkage, occupancy
Output: Required number of staffed agents
Example:
Volume: 500 calls in an hour
AHT: 300 seconds (5 minutes)
Service Level Goal: 80% in 20 seconds
Plugging these into an Erlang C calculator gives you the base staffing; the number of agents actively handling calls, assuming perfect availability.
If you’re doing this yourself, you can use a free Erlang C calculator online by entering your inputs above. Just be aware..
About Free Erlang Calculators
There are plenty of free Erlang calculators online, and they can be a good starting point for quick estimates. But speaking from experience, they’re often limited in functionality and don’t integrate with your actual scheduling process.
That’s where Spark Queue takes it to the next level and saves you a ton of time. It uses the same proven math, but applies it across your entire day/week, factors in shrinkage, and lets you visualize your staffing needs in an interactive schedule.
Want to see what happens if you add or move agents? Make the change and watch your coverage update instantly. And if your agents work in more than one queue at a time? Oh, don’t worry.. Spark Queue handles that out of the box, showing you exactly how their time should be split for maximum efficiency.
Instead of a static number from a calculator, you get a living, actionable staffing plan that’s ready to use immediately — no spreadsheets, no guesswork, no missed service levels.
Step 3 – Factor in Shrinkage
In the real world, agents aren’t available 100% of the time. Breaks, meetings, coaching sessions, and system issues all eat into time on calls.
If your shrinkage is 30%, you’ll need to increase your base staffing:
Base Staffing × (1 / (1 - Shrinkage %))
Using our example:
Base staffing from Erlang C: 19 agents
Shrinkage: 30%
Adjusted staffing: 19 ÷ (1 - 0.30) = 27 agents
Common Mistakes When Estimating Agent Needs
Ignoring shrinkage – This is one of the biggest pitfalls and can cause major service level misses.
Using daily averages – Peak times need more agents; averages hide those spikes.
Overstaffing “just in case” – While safe, it’s (very) costly. Use data to find the right balance.
The Fast Way to Get It Right
You can absolutely calculate staffing manually in spreadsheets, but it’s time-consuming and easy to make mistakes.
Spark Queue was built for small and mid-sized contact centers to take the guesswork out of staffing.
Enter your volume for each interval
Set your service level target and shrinkage
Instantly see staffing needs for every part of the day and add agents in to view where you're over/under
No formulas, no spreadsheet tabs, and no surprises when peak hits.