Can anyone who has successfully implemented the Erlang model for chat staffing give me a hand?
We have 24/7 chats coming in and agents can take 3 chats at a time (sometimes more). Is it as simple as use Erlang, then divide the number of agents required by the number of chats they can handle at once?
Question asked by gburr
How to Use Erlang C for Chat
1. Define Key Metrics for Chat
- Average Handling Time (AHT): How long it takes, on average, to handle a chat conversation from start to finish. For chats, this may be longer due to the pauses in conversation.
- Concurrency Level: How many chats an agent can handle at the same time. For example, agents might handle 3 or 4 chats concurrently.
- Service Level: The target for how quickly chats should be answered. This is often expressed as the percentage of chats answered within a certain time (e.g., 80% of chats answered within 30 seconds).
- Chat Arrival Rate: The number of chat requests per interval, often per 30 minutes or per hour.
2. Adjust Erlang C for Concurrency
Erlang C is traditionally built for 1:1 interactions (one agent handling one call), so you need to account for agents handling multiple chats concurrently.
Chat Concurrency Factor
Because you can handle several chats at the same time, to use the Erlang formula you must scale down the average handling time. This is done by applying a factor.
Because the number of concurrent chats will go up and down, the factor does not match the number of concurrent chats.
For example, if an agent is able to handle 2 concurrent chats, sometime they will be handling 2 chats and sometimes they will be handling 1 chat. Here is the concurrency factor table:
Time Intervals | Percentage of Calls |
---|---|
1 | 1 |
2 | 1.7 |
3 | 2.5 |
4 | 2.9 |
5 | 3.5 |
To adapt Erlang C:
Effective Average Handling Time (EAHT): Divide the AHT by the concurrency level to reflect the reduced burden on each agent.
EAHT= AHT / Concurrency Factor
Use this EAHT in your Erlang C formula instead of the standard AHT. For example, if agent handles 3 chats at once, with an average handling time of 600 seconds, the effective handling time per chat for an agent would be:
- EAHT = AHT / Concurrency Factor
- EAHT = 600 Seconds / 2.5
- EAHT = 240 Seconds
The solution is not ideal, but it is the most widely used.
Because AHT goes up as you increase concurrency you start to lose any real benefit. So you need to experiment with your own concurrency factor to get a better approximation.
It is possible to model this in Excel by mapping your Chat Volumes against concurrency, AHT, concurrent AHT and staffing numbers. You can then do some regression to work out a lookup table or a polynomial curve that fits your business.
To find out more about the Erlang Calculator and how it works, read our articles:
- What is Erlang and the Erlang Calculator?
- Erlang C Formula – Made Simple With an Easy Worked Example
- Call Centre Erlang Staffing Calculator – v 5.0 – With Abandons and Day Planner
Author: Jonty Pearce
Reviewed by: Hannah Swankie
Published On: 12th Apr 2022 - Last modified: 22nd Oct 2024
Read more about - Call Centre Questions, Erlang Calculations, Live Chat