Friday, 10 May 2013

Staffing chat sessions

By Ger Koole

In this blog I would like to discuss staffing in other situations than inbound. The Erlang formulas are commonly used for single-skill inbound staffing, but what to do in other situations? In multi-skill inbound call centers the only real option is simulation, which is a time-consuming method that only gives estimations of the performance of staffing possibilities. Turning this into a method that gives optimal staffing vectors is a challenging task, one of the reasons why some WFM packages have trouble with multi-skill staffing. This is an interesting subject that deserves attention, but this post is concerned with other channels than inbound.

Thus how about channels such as email or chat? Chat has in common with inbound that they are both synchronous: the agent and the customer communicate at the same time. Email is asynchronous allowing for longer wait times: instead of say 20 seconds it is usually multiple hours. Inbound and chat require overstaffing to absorb fluctuations in numbers of arrivals and handling times: in the case of inbound this is exactly what the Erlang formulas determine. For email this is not required because of the longer acceptable waiting time. However, this does not mean that fluctuations do not play a role for staffing email: what to do if the load is consistently higher than foreseen? Then we need either overstaffing or flexibility in workforce to answer all emails within the required time.

Concerning chat we are thus looking for an equivalent of the Erlang formula. The difference between inbound and chat is that agents can handle multiple chats at the same time, the idea being that while they are working on one chat the customers on the other chats are busy writing. It is our experience that the number of chats per agent is limited to 3 or 4: when all agents have the maximum number of chats then chats get queued. We would like to answer the same questions as in the Erlang model: what is the SL and the ASA, and perhaps we also want information on abandonments (using the Erlang X). The challenge with chat is finding the AHT. Because it might occur that a chat session is waiting for the agent while he or she is busy on another chat it is hard to measure the "real" AHT. Data analysis shows that the AHT gets longer when the agent is handling more chats at the same time.

VU University/CCmath researcher dr Alex Roubos did extensive calculations and simulations for modeling chat. He showed that the ASA and SL of chat is well approximated by an Erlang C or X model with as number of agents in the calculation the actual number of agents times the maximal number of chats in parallel per agent. As AHT we use the average handling time of chats, including breaks, that occurred when there was the maximum level of parallelism.

As a example, suppose we have 10 agents who can do 3 chats in parallel. The FC is 5 per minute, and the AHT when they all do 3 chats in parallel is also 5 minutes. Then we use the Erlang C (or the Erlang X) with 3 * 10 = 30 agents, and we get an ASA of 14 seconds and a SL of 82% within 20 seconds. See also the image below, from

This solves the problem of staffing chat sessions. The biggest problem when utilizing it is determining the AHT.

I recently published a book on WFM that handling staffing chat and many other subjects: At the same site Erlang C and X calculators can be found.