← Back to Blog

How to Calculate Call Center Staffing Without Expensive Software

Most contact center managers figure out headcount one of two ways: they either gut-feel it based on last week, or they run it through a spreadsheet someone built five years ago that nobody fully understands. Neither approach is great.

The good news is that call center staffing math is not complicated once you understand the four inputs involved. You don't need enterprise WFM software. You don't need a dedicated analyst. You just need the right data and a clear method.

Here's exactly how to do it.

The Four Inputs You Need

Every staffing calculation comes down to these four things:

  • Call volume — how many calls arrive per interval (usually 30-minute blocks)
  • Average Handle Time (AHT) — how long each call takes, including any after-call work
  • Service Level target — what percentage of calls you want answered within X seconds (e.g. 80% in 20 seconds)
  • Shrinkage — the percentage of scheduled time your agents are unavailable (breaks, training, meetings, PTO)

If you can get these four numbers, you can calculate staffing. Let's walk through each one.

Step 1: Build Your Arrival Pattern

Call volume is rarely steady throughout the day. Most contact centers see a morning peak, a lunch dip, and an afternoon peak. You need to know not just your total daily volume but how that volume is distributed across intervals.

Pull a report from your phone system or CRM showing calls offered by 30-minute interval for each day of the week. Then calculate what percentage of the day's calls arrives in each interval. This is your arrival pattern.

For example, if you take 1,000 calls on Monday and 80 of them arrive between 9:00 and 9:30, that interval carries 8% of Monday's volume.

Tip: Use at least 4–6 weeks of data to build your pattern. One week can be skewed by a campaign, a holiday, or a system outage. The more data, the more reliable your pattern.

Step 2: Calculate Your Call Workload Per Interval

Once you know how many calls arrive in each 30-minute interval, multiply that by your AHT (in hours) to get the total work arriving in that period. This is called "offered load" and it tells you the raw volume of work without considering queuing effects.

For example: 80 calls in 30 minutes × 5 minutes AHT = 400 minutes of work = 6.67 hours of work arriving in that window. At minimum, you'd need 7 agents just to handle the raw volume — but that ignores the queuing problem.

Step 3: Apply the Erlang C Formula

Here's where most managers get stuck. The raw workload calculation tells you the minimum agents needed, but it doesn't account for the fact that calls arrive randomly. Even if you have "enough" agents on average, there will be moments of simultaneous demand that create queues.

The Erlang C formula accounts for this randomness. It calculates how many agents you actually need to hit your service level target given the arrival rate, AHT, and the probabilistic nature of call arrivals.

The math is non-trivial to do by hand, but the principle is straightforward: you need a buffer of agents above the raw minimum to absorb random peaks. The tighter your service level target, the bigger that buffer needs to be.

Service Level Target Agents Required (example) Occupancy
70% in 20s891%
80% in 20s981%
90% in 20s1166%

Notice how going from 70% to 90% service level requires 3 extra agents — a 37% headcount increase. That's the cost of service level improvement in a queuing environment. These are real trade-offs that Erlang C quantifies.

Step 4: Apply Shrinkage

The Erlang C result gives you how many agents need to be on the phones at any given time. But not every scheduled agent is on the phones. Agents have breaks, lunches, training sessions, team meetings, and PTO. That gap is shrinkage.

If Erlang C says you need 9 agents on the phones and your shrinkage is 30%, you need to schedule:

9 ÷ (1 − 0.30) = 12.9 → 13 agents

Common shrinkage components to include:

  • Lunch and paid breaks (typically 10–15%)
  • Training and coaching (5–8%)
  • Team meetings and admin (3–5%)
  • PTO and unplanned absence (8–12%)

A 30% total shrinkage is typical. Some centers run at 25%, others at 40%. The higher your shrinkage, the more headcount you need to schedule to achieve the same on-phone coverage.

Step 5: Convert Intervals to FTE

Once you have the staffing requirement per interval for every day of the week, you sum up the work across all intervals and divide by the hours in a full-time shift to get your FTE requirement.

This gives you the weekly headcount you need to hire or schedule to cover demand at your service level target.

Doing This Automatically

Walking through this process for every interval of every day — typically 20 intervals × 7 days = 140 calculations — is tedious to do manually. That's exactly what BuildMyShift automates. You paste your arrival pattern, set your AHT, shrinkage, and service level targets, and it runs the Erlang C math for all 140 intervals in a second and shows you a heat map of staffing needs with daily and weekly FTE totals.

Try it yourself — it's free

Paste your arrival pattern and get a complete staffing plan in under a minute. No sign-up required.

Open the Staffing Calculator →

Common Mistakes to Avoid

Using average daily volume instead of interval data

If you staff to your daily average, you'll be understaffed at peaks and overstaffed at troughs. Interval-level staffing is the only way to actually hit service level targets.

Ignoring shrinkage until the schedule is built

Many managers calculate raw staffing need and then try to schedule — and wonder why they're consistently short. Bake shrinkage into the calculation from the start.

Using a single service level for all intervals

Your 8:00 AM rush might justify a tighter service level target than your 5:30 PM wind-down. Some centers tier their SL targets by time of day to manage cost more efficiently.

Not updating your arrival pattern regularly

Call patterns shift over time — seasonality, campaigns, product launches, marketing pushes. Rebuild your arrival pattern at least quarterly, monthly if your volume is volatile.

Get these right and your staffing model will be solid. The math is not the hard part — consistency is. Build the habit of running this calculation regularly and your service levels will reflect it.

Run your own staffing calculation

BuildMyShift handles all the Erlang C math automatically. Paste your arrival pattern, set your targets, and get a complete staffing plan with heat maps, shift schedules, and a roster — in minutes.

Try it free — no sign-up required →