Free tool · no signup

Service level calculator

You already know how many people are on the interval. This tells you what they will deliver: service level, average speed of answer, how many callers never queue at all, and how far off your target you are.

Your interval

Results update as you type.

What service level actually measures

Service level is the percentage of contacts answered within a stated number of seconds. It is always two numbers, never one. “We run at 80%” is not a service level until someone says 80% within what.

Service level = 1 − P(wait) × e−(N − A) × T ÷ AHT

Where N is agents, A is offered load in Erlangs, and T is your threshold in seconds. The 80/20 convention (80% answered within 20 seconds) is an inheritance from 1970s telephony rather than a law of nature. It is a perfectly reasonable default and a poor universal: a queue where callers happily wait two minutes is being overstaffed by holding it to 20 seconds.

Service level and ASA answer different questions

Average speed of answer is the mean wait across every contact, including the ones answered instantly. It is a single number and it hides its own distribution, which is exactly the problem.

An interval can post a 12-second ASA while a fifth of callers waited over a minute, because the many who were answered at once drag the average down. Service level cannot hide that, which is why it remains the contractual measure in almost every BPO agreement. Use ASA to describe the typical experience and service level to describe the tail. Reporting only ASA is how a queue looks healthy on a slide and generates complaints on the floor.

Why the answer moves so violently

The single most surprising property of Erlang C is how steep it is near your operating point. The table the calculator prints either side of your headcount is not decoration. It is the argument.

On the default interval (250 contacts, 30 minutes, 240 seconds AHT) one agent either side of 38 changes service level by roughly seven points, and average speed of answer by more than a third. Five agents added at the comfortable end of the curve buy barely one point.

This is why intraday requests feel so disproportionate to the people receiving them. “Can we pull two people for a briefing” is a trivial question on a quiet interval and a service-level catastrophe on a tight one. The curve is the difference, and it is entirely invisible unless someone shows it to you.

Worked example

250 contacts in a 30-minute interval, 240 seconds AHT, 38 agents, target 80% in 20 seconds.

  • Offered load: (250 × 240) ÷ 1800 = 33.33 Erlangs
  • Service level at 38 agents: 77.4%, short of the 80% target
  • ASA: 17.1 seconds. Occupancy: 87.7%, already over a typical 85% ceiling
  • Agents needed for 80/20: 39, delivering 84.2% and a 10.8-second ASA

One agent moves service level 6.8 points and takes ASA down by more than a third. That is the whole lesson of this page.

Common questions

What is a good service level for a call center?

80% answered within 20 seconds is the most common target, but it is a convention rather than a standard. What matters is whether it matches the contact: emergency and outage lines are often 90/10, retention and sales queues frequently run 70/30 or looser because the value of the call justifies a wait, and deferred channels should not be measured this way at all. Pick the threshold from caller patience and contact value, then staff to it.

What is the difference between service level and ASA?

Service level is the share of contacts answered within a threshold. ASA is the mean wait across all contacts. Because ASA is an average it conceals its own distribution: an interval can show a 12-second ASA while a fifth of callers waited more than a minute. Service level exposes the tail, which is why it is the contractual measure in most outsourcing agreements. Report both.

Why did one agent change my service level so much?

Erlang C is highly non-linear near the point where staffing meets demand. Close to the edge a single agent can move service level by several points and cut average speed of answer by a third. Comfortably above it, five agents may buy a single point. The value of one more person depends entirely on where the interval already sits on the curve, which is why the same request can be trivial one hour and damaging the next.

Can I hit a high service level with fewer agents by raising occupancy?

Only up to a point, and the point arrives quickly. Occupancy is offered load divided by agents, so fewer agents means higher occupancy, and sustained occupancy above roughly 85% is well established as a driver of burnout, errors and attrition. Beyond that the handle time usually rises as people tire, which raises offered load, which raises the requirement. It is a false economy that pays for itself in resignations.

What happens if I have fewer agents than my offered load?

There is no service level. Offered load above headcount means work arrives faster than the team can complete it, so the backlog grows for as long as the condition lasts and waiting time has no ceiling rather than settling at a value. This calculator says so explicitly rather than returning a very low percentage, because a plausible-looking number in that situation is actively misleading.

The other direction

Need the headcount instead of the outcome?

This page starts from agents and gives you service. If you want to start from a target and get the headcount, including occupancy caps and shrinkage, that is the Erlang C calculator. Same engine, opposite direction.

Open the Erlang C calculator

Related: occupancy calculator · Erlang C explained

calculation_trace · engine v2.4.1 · interval 11:00–11:30 volume 489 contacts (revised forecast) aht 312 s workload 84.8 erlangs target 80% in 20s (SL) · occupancy cap 0.88 erlang_c raw agents → 93 (SL 83.3%) occupancy_cap 0.88 → 97 (cap binding, 93 leaves 91.1%) shrinkage 0.27 applied → required 132.9 FTE scheduled 129 − OOO 4 → net 125 → 91 productive → predicted SL 73%