Erlang A Call Center Staffing Calculator

Enter a contact forecast, handle time, caller patience, and operating targets. The calculator searches for the smallest productive agent count that satisfies service level, abandonment, and occupancy at the same time.

Your numbers

What this calculator leaves out

  • This calculator is a stationary Erlang A planning model and does not account for redials, callbacks, multi-skill routing, chat concurrency, labor rules, or time-varying arrivals.
  • The result is general operations analysis, not workforce-management or professional consulting advice for a specific center.

By using this calculator you agree to the Terms of Use. Results are estimates, not professional advice.

Agents required on queue13

Agents to schedule
19
Achieved service level
88.86%
Predicted abandonment
3.84%
Agent occupancy
73.97%
Probability of waiting
19.37%
Mean queue time
4.61
Offered load
10
Binding constraint
abandonment
Adjacent staffing comparison
Productive agentsService levelAbandonmentOccupancyScheduled agents
1282.56%6.16%78.2%18
1388.86%3.84%73.97%19
1493.27%2.28%69.8%20

Assumes stationary Poisson arrivals, exponential handle times, exponential patience, identical agents, and first-come-first-served routing.

Searches up to 10,000 productive agents and reports an error if the combined targets are outside that range.

How to use this calculator

  1. Enter the inbound contact volume for one planning interval.
  2. Enter the interval length, average handle time, and average caller patience in matching time units.
  3. Set the service-level target, answer-time threshold, abandonment ceiling, and occupancy ceiling.
  4. Enter shrinkage to convert the productive requirement into scheduled headcount.
  5. Compare one fewer and one more productive agent in the sensitivity table.

How Erlang A staffing is calculated

Erlang A is a queueing model for inbound contacts where waiting callers may abandon. It starts with arrival rate lambda = contacts ÷ interval seconds, service rate per agent mu = 1 ÷ average handle time, patience hazard theta = 1 ÷ average patience, and offered load R = lambda ÷ mu.

For each candidate productive agent count n, the model builds the steady-state probability of every system state. State k means there are k contacts in service or waiting. The downward rate is min(k,n) × mu + max(k − n,0) × theta. The unnormalized weights are computed recursively:

w0 = 1 and wk = w(k−1) × lambda ÷ dk

The weights are normalized into probabilities. From those probabilities, expected queue length gives abandonment as theta × Lq ÷ lambda, expected busy agents gives occupancy as B ÷ n, and the probability of waiting is the probability that all agents are already busy when a contact arrives.

Service level with abandonment

A contact arriving when fewer than n contacts are in the system is answered immediately. If every agent is busy, the calculator evaluates a tagged-caller process: other service completions and abandonments move that caller forward in line, while the tagged caller can abandon before reaching an agent. The service-level output is the probability that an offered contact reaches service within the target answer time, including immediate answers.

The search moves upward from the smallest count that could satisfy abandonment and occupancy together. It stops at the first count that meets all three targets: service level at or above target, abandonment at or below the ceiling, and occupancy at or below the ceiling. Shrinkage is applied after that with scheduled agents = ceiling(productive agents ÷ (1 − shrinkage)).

What moves the answer most

Forecast volume and average handle time set the offered load, so they usually dominate the agent requirement. Average patience changes how much queueing turns into abandonment instead of waiting. A tight abandonment ceiling can add agents even after the service-level target is met, while an occupancy ceiling prevents a plan that is mathematically acceptable but too heavily loaded for coaching, after-call work variation, or forecast error.

What this calculator leaves out

The model assumes stationary arrivals inside the interval, exponential handle times, exponential patience, identical agents, first-come-first-served routing, and an unlimited queue. It does not model redials, callbacks, busy signals, transfers, priority queues, chat concurrency, multi-skill routing, or executable shift construction. Treat the result as an interval staffing requirement, then test it against forecast error, interval peaks, schedule fit, and the service-level definition your organization actually reports.

Worked example

Suppose a 30-minute interval has 100 contacts, average handle time is 180 seconds, average patience is 120 seconds, the target is 80% answered within 20 seconds, maximum abandonment is 5%, maximum occupancy is 85%, and shrinkage is 30%.

The arrival rate is 100 ÷ 1,800 = 0.0556 contacts per second and the offered load is 0.0556 × 180 = 10.0 erlangs. The calculator selects 13 productive agents. That produces about 88.86% service level, 3.84% abandonment, 73.97% occupancy, 19.37% probability of waiting, and 4.61 seconds of mean queue time. With 30% shrinkage, ceiling(13 ÷ 0.70) = 19 agents should be scheduled. One fewer productive agent would meet the service target but miss the 5% abandonment ceiling.

Common questions

What is the difference between Erlang A and Erlang C?

Erlang C assumes callers wait indefinitely, so there is no abandonment. Erlang A adds a patience distribution, which lets waiting callers leave the queue and makes abandonment an explicit output. That is why Erlang A is often better for service desks and contact centers where hangups matter.

How do I estimate average caller patience?

Use queue event data if it is available, but be careful about censoring. The average wait of callers who abandoned usually understates the patience of all callers because answered callers did not reveal their full willingness to wait. If patience is uncertain, test a short range and compare the staffing sensitivity.

Should abandoned calls count against service level?

This calculator uses offered contacts as the service-level denominator. A caller who abandons before answer is not counted as answered within the target. Some operations exclude short abandons or report service level only on answered contacts, which will not match this output.

Why can the occupancy ceiling require more agents than the service target?

A staffing plan can answer enough calls quickly while still keeping agents busy for too much of the interval. Occupancy ceilings add room for variability, coaching, recovery time, and forecast error. When occupancy is binding, the final agent is added to lower utilization rather than to hit the answer-time target.

How is shrinkage converted into scheduled headcount?

Shrinkage is applied after the productive on-queue requirement is found. If 13 productive agents are needed and shrinkage is 30%, the scheduled count is 13 divided by 70%, rounded up to 19. This converts an interval requirement into a headcount allowance, not a completed shift schedule.

Can Erlang A be used for chat, email, or multiple skill groups?

Use it cautiously. The model is built for single-skill, first-come-first-served work with one contact occupying one agent. Chat concurrency, email backlogs, priority routing, and multi-skill pooling change the queueing behavior enough that a dedicated model is usually needed.

Put this calculator on your site

Paste the snippet below where you want the calculator to appear. It stays up to date automatically and links back here.

<iframe src="https://countfolk.com/embed/erlang-a-call-center-staffing-calculator/" title="Erlang A Call Center Staffing Calculator" width="100%" height="640" style="border:0;max-width:44rem" loading="lazy"></iframe>