Free tool

Staffing calculator for chat and email

How many agents do you need at your busiest hour? Enter your volume, handle time and target. The calculator uses Erlang C and counts the chats one agent handles at the same time.

Your numbers

Filled in with example numbers. Replace them with your own.

New chats or emails in your busiest hour of the week.

min

From pickup until it’s done, including wrap-up. For chat, measure it as it runs today, alongside other chats.

How many chats one agent handles at the same time when it’s busy. Use 1 for email and phone.

Your target

For example 80% of conversations answered within 60 seconds.

Paid time in which agents can’t take conversations: breaks, meetings, training, sick days and leave.

What you need

5Agents on the flooranswering during that hour

8Agents to rosterwith 30% shrinkage

With 5 agents on the floor, 83% of conversations are answered within 60 seconds, the average wait is 43 s and occupancy is 60%.

One agent more or fewer
On the floorAnswered within 60 secondsAverage waitOccupancy
457%3.1 min75%
5your number83%43 s60%
694%12 s50%

Workload: 3 erlangs, enough to keep that many agents busy for the whole hour. Every agent above that is room to answer quickly.

Erlang C assumes nobody gives up while waiting, so treat these numbers as a cautious ceiling.

5 agents on the floor and 8 to roster. 83% answered within 60 seconds, average wait 43 s.

How the calculator works

The calculator uses Erlang C, a queueing formula A. K. Erlang published in 1917 for telephone exchanges. Contact centers still plan their staff per hour with it. It needs three things: how many conversations come in, how long each one takes and how many agents answer. From those it works out how likely a new conversation is to wait, and for how long.

Step by step

  1. Workload. Conversations per hour × handle time in hours gives the workload in erlangs: the number of agents the work keeps busy for the whole hour. For chat, the handle time is first divided by the number of chats an agent handles at once. 30 chats of 12 minutes, 2 at a time: 30 × 12 ÷ 2 ÷ 60 = 3 erlangs.
  2. Chance of waiting. Erlang C is the chance that a new conversation finds every agent busy. The calculator gets it from the Erlang B recursion, B(k) = A × B(k − 1) ÷ (k + A × B(k − 1)), which stays accurate with thousands of agents where the textbook formula with factorials overflows. Then C = N × B ÷ (N − A × (1 − B)).
  3. Service level and wait. The share answered within your target time T is 1 − C × e^(−(N − A) × T ÷ AHT), and the average wait is C × AHT ÷ (N − A). N is the number of agents, A the workload and AHT the handle time per chat after dividing by concurrency. The calculator starts just above the workload and adds one agent at a time until your target is met.
  4. Occupancy. Workload ÷ agents on the floor: the share of the hour agents spend on conversations. Close to 100% means going from one conversation straight into the next.
  5. Shrinkage. Agents on the floor ÷ (1 − shrinkage), rounded up, gives the number to roster. 5 agents at 30% shrinkage: 5 ÷ 0.7 = 7.1, so 8 people.

What it assumes

  • Nobody gives up. Erlang C assumes every customer waits as long as it takes. Real customers close the chat or try again later, so the result is a cautious ceiling.
  • Conversations arrive at random, spread over the hour. A newsletter or an outage that sends everyone at once needs more agents than this shows.
  • Every agent handles the same number of chats at once, at the handle time you entered. Chats can take longer when an agent has more open, so measure handle time at the concurrency you enter.
  • One shared queue. If some agents only answer one brand or language, calculate each queue on its own and add up the results. Separate queues need more agents in total than one shared queue.

Using it for email

Set chats per agent to 1 and put your response target in hours, for example 90% within 4 hours. For volume, use the average per hour over the stretch your target covers: with a 4-hour target, email from a busy 10:00 can still be answered at 11:00.

With targets in hours, the result sits just above the workload. Email can wait in the queue, so what matters is that the team keeps up. Below the workload, the queue grows all day.

Email that arrives overnight is waiting when you start. Add it to the volume of your first hours, or plan time to clear it.

Erlang C counts the wait until an agent picks a conversation up. If you report first response time for email, add the handle time.

Questions about staffing

What is Erlang C?

A formula from queueing theory that gives the chance a new contact has to wait, from the number of contacts, the handle time and the number of agents. Contact centers use it to plan staff per hour. It assumes nobody gives up while waiting.

How do I account for agents who handle several chats at once?

Divide the chat handle time by the number of chats an agent handles at the same time. This calculator does that for you: enter the handle time from your chat tool and the concurrency. Measure both over the same period, because chats can take longer when an agent has more open.

What is shrinkage?

The share of paid time in which agents can’t take conversations: breaks, meetings, training, sick days and holidays. Divide the agents you need on the floor by one minus shrinkage to get the number to roster. Your own rosters and absence records give the best figure.

Why do I need more agents than the workload?

With exactly as many agents as the workload, everyone is busy all the time and the queue never empties. The agents above that give room to pick up new conversations quickly. The tighter your target, the more room you need.

Can I use it for phone calls?

Yes. Set chats per agent to 1 and put the target in seconds. Erlang C was made for telephone traffic.

In Flagbell

All tools →

Chat and email in one inbox, for every brand.

Flagbell is a helpdesk with live chat, a shared inbox and a help center for every brand. It’s in development: join the waitlist to hear when you can use it.

Join the waitlist