The Center of CX
Subscribe
Open the tool
Published method

Staffing Requirement Calculator: formulas, assumptions and a worked example

How the Staffing Requirement Calculator turns contacts, handle time and a service level target into agents on the phones and scheduled FTE for your busiest interval through Erlang C, then prices a year from the hours you are open and your average interval.

Method version 1.2, published 2026-09-30.

What each number is

Offered load, service level, speed of answer and the agents that meet the target are arithmetic from the Erlang C queueing model on your inputs. The operating profiles are assumptions, labelled as heuristics, and a driver still at a profile grades Directional. The annual cost is a conditional forecast at the cost basis shown: your TCO figure when one arrives over the rail, otherwise the BLS median wage fully loaded. The hours open and the average interval open at 40 hours and 100% of the busiest interval, our defaults, and a yearly cost that still rests on either grades Directional.

Formulas

Offered load

Contacts per interval × AHT in seconds ÷ (interval minutes × 60)

In Erlangs: the agents busy every moment if contacts arrived evenly.

Erlang C

Erlang B by recurrence, B(n) = A × B(n−1) ÷ (n + A × B(n−1)); then C = B ÷ (1 − (A ÷ n) × (1 − B))

The probability a contact waits. The recurrence stays finite at any size.

Service level

1 − C × e^(−(agents − load) × threshold seconds ÷ AHT)

The share answered within the threshold.

Base agents

The fewest agents above the load that meet the target, searched upward from the first whole count above the load

Agents on the phones, before shrinkage.

Occupancy ceiling

Agents at least load ÷ ceiling, when a ceiling is set

The larger of the target's agents and the ceiling's agents is used, and the tool says which one set headcount.

Scheduled FTE

Base agents ÷ (1 − shrinkage), rounded up

Paid staff needed to keep the base agents on the phones.

Average interval

Busiest interval contacts × your average interval share, then Erlang C and shrinkage as above

The FTE an average open interval needs. At 100% it is the busiest interval itself.

FTE on payroll

Scheduled FTE for the average interval × hours open a week ÷ 40

A full-time agent covers 40 hours a week, so a center open 168 hours needs 4.2 times the seats of one interval. A planning ceiling: it takes no credit for part-time shifts fitted to the day.

Annual cost

FTE on payroll × cost per agent per month × 12

Per agent per month is your TCO figure, or your TCO wage × 1.95 × 173 hours, or the BLS median $21.53 × 1.95 × 173 hours.

Pooling penalty

Queues × FTE for one queue's share of volume − FTE for the pooled volume

An upper bound: it assumes independent queues with no overflow between them. Priced for the year at the average interval across your hours open, like the recovery time cost.

Abandonment check

C × θ ÷ (θ + (agents − load) ÷ AHT), with θ = 1 ÷ average patience

An Erlang A approximation, shown only when you enter patience and the effect is material.

Rules and bands

Healthy occupancy · At or below 85%

The platform's shared occupancy bands, the same in every tool.

Caution · Above 85% to 90%

Workable for peaks; the read names the recovery-time trade.

Critical · Above 90%

The read shows the sustainable pair: the agents a 87% ceiling would add.

Model validity · Interval at least 3 times AHT

Below it, contacts carry across intervals and Erlang C understates staffing; the tool says so and grades completeness Directional.

Shrinkage above the 28% to 35% planning range, a labelled heuristic, is flagged as worth decomposing. Every other line is a threshold in the registry with its rationale.

Every constant and where it comes from

400 contacts per interval · Heuristic, no published source

Voice contacts per interval for this profile. An operating profile so the tool opens on a runnable case. A volume, handle time or shrinkage still at this value grades evidence Directional.

360 seconds · Heuristic, no published source

Average handle time for this profile. An operating profile so the tool opens on a runnable case. A volume, handle time or shrinkage still at this value grades evidence Directional.

80 percent answered · Heuristic, no published source

Service level target for this profile. An operating profile so the tool opens on a runnable case. A volume, handle time or shrinkage still at this value grades evidence Directional.

20 seconds · Heuristic, no published source

Answer threshold for this profile. An operating profile so the tool opens on a runnable case. A volume, handle time or shrinkage still at this value grades evidence Directional.

30 percent · Heuristic, no published source

Total shrinkage for this profile. An operating profile so the tool opens on a runnable case. A volume, handle time or shrinkage still at this value grades evidence Directional.

173 paid hours per agent per month · Heuristic, no published source

The 2,080 hour full-time year over twelve months. A planning convention for converting an hourly wage to a monthly cost.

30 minutes · Heuristic, no published source

Default interval length. The most common forecasting interval, so the default case sits inside the Erlang C validity floor.

40 hours open a week · Heuristic, no published source

Default hours the queue is open a week, set to one paid week so the yearly cost equals the one-interval figure until the reader enters their own hours (method 1.2).

100 percent of the busiest interval · Heuristic, no published source

Default average interval across open hours, as a share of the busiest interval entered. 100 means every open interval is as busy as the one entered; enter your own to price a real week (method 1.2).

85 percent occupancy · Heuristic, no published source

Default occupancy ceiling offered when the cap is switched on. Set at the healthy maximum of the ratified occupancy canon.

1.2 multiple of volume · Heuristic, no published source

Volume spike the contingency finding prices. A planning stress step, labelled as one.

0.1 share of AHT · Heuristic, no published source

Handle time change the sensitivity finding prices, applied up and down.

5 shrinkage points · Heuristic, no published source

Shrinkage step the what-if grid prices.

70 percent shrinkage · Heuristic, no published source

Upper bound on the shrinkage what-if, so the step never prices an implausible plan.

5 service level points · Heuristic, no published source

Service level step the what-if grid prices, up or down.

95 percent service level · Heuristic, no published source

A target at or above this is eased in the what-if grid rather than raised.

0.999 service level · Threshold

Display floor. Erlang C never returns certainty, so a service level above this prints as above 99.9 percent. Display only. It reaches no confidence axis.

3 interval as a multiple of AHT · Threshold

Erlang C steady state floor. An interval under three times AHT lets contacts spill across interval boundaries and the model understates staffing. Holds completeness Directional.

1.5 interval as a multiple of AHT · Threshold

Severity split inside an invalid model. Below 1.5 times AHT the disclosure reads critical. Framing only. The completeness hold is the same either side of it.

0.88 service level target · Threshold

A target at or above this is read as premium service in the analyst read and the premium signal. Framing only. It reaches no confidence axis.

10 seconds · Threshold

An answer threshold at or below this is read as premium service. Framing only. It reaches no confidence axis.

3 service level points · Threshold

Delivered service level this far above target is read as over-serving. Framing only. It reaches no confidence axis.

0.05 share of pooled FTE · Threshold

A split-queue penalty at or above this share is surfaced in the analyst read. Below it the effect is inside forecast noise. Framing only.

0.05 share of contacts · Threshold

Estimated abandonment at or above this is material enough to show the Erlang A adjusted figure. Display only.

2 agents · Threshold

An abandonment adjustment of at least this many agents is shown even below the material share. Display only.

8 queues · Threshold

Queue count band on the wire. High from eight. Signal only. It reaches no confidence axis.

3 queues · Threshold

Queue count band on the wire. Mid from three. Signal only.

400 scheduled FTE · Threshold

Scale band on the wire. Very large from 400 FTE. Signal only. It reaches no confidence axis.

150 scheduled FTE · Threshold

Scale band on the wire. Large from 150 FTE. Signal only.

40 scheduled FTE · Threshold

Scale band on the wire. Mid from 40 FTE. Signal only.

21.53 USD per hour · Published source

The one agent wage benchmark the platform cites. Staffing, Cost per Contact and Channel Shift read it. It is the occupation median, no figure of the user's own, so a driver still at it grades evidence Directional. Source: US Bureau of Labor Statistics, Occupational Employment and Wage Statistics, May 2025 (released 15 May 2026), SOC 43-4051 Customer Service Representatives, national median hourly wage.

1.95 multiple of hourly wage · Heuristic, no published source

Wage plus benefits, payroll tax, facilities, supervision and technology. The cost of standing a seat up. Use it only to price whole headcount, never to value a freed contact.

0.28 share of paid hours · Heuristic, no published source

Bottom of the planning range for total shrinkage. A total below it can mean coaching and training time is being skipped as easily as good control.

0.35 share of paid hours · Heuristic, no published source

Top of the planning range for total shrinkage. Staffing flags a total above it as worth decomposing before it is treated as fixed.

Worked example

Computed by the tool's own engine. The first case is the tool's opening profile; the second reproduces a published staffing example (Nextiva's worked Erlang C case: 400 calls, 257-second handle time, 80% in 20 seconds, 85% occupancy cap), so the arithmetic can be checked against a source outside this site.

Opening case: 400 contacts per 30 minutes, 360-second AHT, 80% in 20 seconds, 30% shrinkage, open 40 hours a week with every interval as busy as the busiest

Open all week: The same busiest interval, open 168 hours a week, the average interval at 60% of the busiest

Published case: 400 contacts per 30 minutes, 257-second AHT, 80% in 20 seconds, 85% occupancy ceiling

Offered load, opening case

400 × 360 ÷ 1,800 = 80 Erlangs

Base agents

88 agents give 81.8% in 20 seconds, speed of answer 13s, occupancy 90.9%

Scheduled FTE

88 ÷ (1 − 30%) = 125.71, rounded up to 126

Annual cost at the benchmark basis

126 × $7,263.15 a month × 12 = $10,981,876 ($21.53 × 1.95 × 173 hours = $7,263.15 a month)

Open all week

average interval 240 contacts, 55 base agents, 79 FTE; × 168 ÷ 40 = 4.2, so 331.8 FTE on payroll and $28,918,940 a year at the same basis

Published case

load 57.11 Erlangs; the 85% ceiling sets headcount at 68 base agents, 98 FTE at 30% shrinkage, occupancy 84.0%, the published result

Checked against

Cases whose answer is known outside this site. The test suite computes each one with this tool's own engine on every change.

Erlang C probability of waiting, 10 Erlangs · Published value

Offered load 10 Erlangs on 11, 12, 13 and 14 agents. Result: 0.6821, 0.4494, 0.2853 and 0.1741. Erlang C formula (A. K. Erlang, 1917), as tabulated in standard Erlang C probability-of-wait tables.

Erlang C by hand, 1 Erlang on 2 agents · Worked by hand from the formula

Offered load 1 Erlang on 2 agents. The formula gives (1²/2! × 2/(2 − 1)) ÷ (1 + 1 + 1²/2! × 2/(2 − 1)) = 1 ÷ 3. Result: 0.3333. Erlang C formula (A. K. Erlang, 1917).

Agents for 80% in 20 seconds at 10 Erlangs · Published value

100 calls a half hour at 180 seconds (10 Erlangs), target 80% answered in 20 seconds. Result: 14 agents. Standard Erlang C staffing tables for a 10 Erlang load at an 80/20 service level.

Nextiva's worked Erlang C example · Published value

400 calls a half hour, 257-second handle time, 80% in 20 seconds, 85% maximum occupancy, 30% shrinkage. Result: 68 agents, 98 FTE, 84.0% occupancy. Nextiva, Erlang C formula worked example (call center staffing guide).

What this tool cannot tell you

  • Erlang C assumes callers wait until answered. With abandonment, measured service level runs higher than it predicts; enter patience for the Erlang A check.
  • It models one contact per agent at a time, which fits voice. Chat and messaging agents handle several at once and need a different model.
  • One interval is one steady state. The year uses one average interval across your hours open, a planning ceiling; peaks, intraday patterns and schedule fit need interval staffing across the day.
  • The cost basis is the benchmark wage unless your TCO run supplies one; the grade says which.
Open the Staffing Requirement Calculator
How to cite

The Center of CX, "Staffing Requirement Calculator method", version 1.2, 30 September 2026, https://www.contactcentercx.com/methodology/staffing-calculator