Agent Workload Forecasts
Updated: Feb 7, 2022
I previously discussed volume forecasting, and I believe it is worthwhile to discuss how to derive agent workload requirements before moving on to other areas of workforce management such as scheduling, capacity planning, and real-time management. In this article, we will primarily focus on calculating agent requirements for Inbound Voice Interactions; however, there is a growing trend for customer interactions via Email, Chat, and Social Media interaction, as well as Outbound Voice Interactions, and I intend to address these specific elements in future articles.
Because over 70% of a contact center's costs are frequently associated with staff, and customer interactions live and die on the simple premise that an agent must be available to speak to a customer, ensuring you have the right number of bodies available for customer interaction is critical.
The number of projected calls during an interval multiplied by the average handle time (AHT) of a contact will give you a basic agent requirement for "bodies in chairs" in its most basic form. AHT, like volume forecasting, varies with time of day, day of the week, and even week of month in some circumstances. This could be agent-led owing to exhaustion or customer-led since customers call at specific times for specific types of calls.
In actuality, this simple formula will not precisely determine agent requirements, which is unsurprising given that nothing is ever straightforward, right? This simple calculation is flawed because not all voice interactions will land at an agent's feet (or, to be more precise, earpiece) at the same time. For example, if you have a pool of 40 agents and 43 calls arrive at 11:07, all 40 of your agents will be busy, and three calls will be waiting to be addressed. At 11:18, after clearing the calls, you have 36 calls in activity, with four agents sitting idle waiting for their next client encounter. This means that agents will not necessarily accomplish a full day's work, which is not their fault, but because some of their time will be spent dealing with consumer contacts and some of their time will be spent waiting for their next call. It would be ideal if calls arrived sequentially, and there are undoubtedly solutions available to aid with this, such as Queue Buster and WeQ4U. Still, in reality, voice interactions occur whenever the client chooses to place the call. As a result, you will require more personnel than the actual hours of work required to be performed. This is vital to comprehend as a WFM planner because you will most likely need to explain and teach those who have yet to grasp this notion.
So, what should you do? How can we account for the randomness of arrival and the queuing pattern of inbound voice interactions? The most extensively used approach is Erlang C, and it is arguably the most cost-effective method in contact centers that are single-skill and do not use skills-based call routing. I say cost-effective because it is free and available as an Excel add-in; however, other premium extensions of the Erlang-C formula are available, such as Erlang-X developed by ccmath, which are worth checking out.
Erlang C calculates the number of agents required for each time interval using volume forecasts and average handling time (AHT) over the desired time intervals, as well as service level goals. Among other shortcomings, the Erlang-C paradigm ignores busy signals, client impatience, and services that span numerous visits, as mentioned below.
However, utilizing Erlang C alone to generate agent requirements in skill-based routing setups will not produce acceptable results. For example, in a skills-based routing environment, using Erlang C to compute agent workload requirements frequently results in over-staffing due to a lack of consideration for the use of ACD call routing logic and efficiencies realized through economies of scale gained through multiskilled agents. To understand why this is the case, you must first understand Erlang - C. For example, Erlang C assumes that each individual agent will handle a voice encounter on a first-come, first-served basis, which is simply not the case in many contact centers' telephonic routing systems. For example, each call type would typically have a different priority, and why would you want non-value calls to have the same priority as value ones?
One approach is to assess agent workload needs for each call type separately and then lower or raise requirements based on an efficiency factor to approximate the greater efficiency given by multiskilled agents. I think it fair to say that this strategy has its flaws, the apparent being how do you account for dynamic ACD routing and the ever changing dynamics of particular skill sets dispersed over each and every intra-day interval. Having a one-size-fits-all efficiency factor in estimating better efficiency supplied by multiskilled agents may work for a capacity plan where the average will level things out, but try deploying this for intra-day workload forecasting, and it will fail on several occasions.
Another method for dealing with multiskilled setups is to employ a sort of mathematical forecasting known as "Multi-Server Queuing." In its most basic form, this is a system in which when customers arrive, and all servers are full, they do not enter the queue and are instead lost to the system. For the mathematicians among you, this system has Poisson arrivals and service times that are exponentially distributed. However, it has limitations, similar to Erlang C, in that it requires all agents within an agent group to have identical skillsets and that each agent group has its own dedicated queue or a common queue for all agent groups, thus failing when agents are assigned to individual skills or have different skill priorities. Again, in most contact centers nowadays, calls are queued to agent groups concurrently or based on conditional rules, so this is rarely the case.
So, where do we go from here? According to a white paper prepared by IEX Corporation (now NICE) by Paul Leamon, the approach is to "integrate simulation of ACD routing into the forecasting and scheduling process."
An integrated simulator works by simulating and running several real-world scenarios, including every call type, multiskilled agent, and agent availability by call type. Much of what follows has been adapted from Paul's excellent white paper; if you want to read more, please send me a note, and I will gladly send you a copy of the white paper.
What we've spoken about so far is purely calculating agent requirements for "bodies in chairs," with the premise that all agents are always available to handle call traffic at all times. However, we all know that this is not the case, nor is it recommended, i.e., burnout. As a final refinement to determining agent workload requirements, we must account for what is commonly referred to as shrinkage. Shrinkage is the amount of time (or percentage of the time) that agents are not productive because of breaks, meetings, training, sickness, holidays, and so on. It is up to you whether to add shrinkage to predicted agent requirements or lower the number of actual scheduled staff numbers. I like to add to agent workload needs, which is why it is included in this paper. Personally, I find it simple to explain to operations, and it is frequently beneficial to keep your real planned staff numbers pure for comparison purposes. Shrinkage is accounted for in agent requirements by increasing the requirement by the percentage of agents expected to be lost due to wasteful tasks or events. For example, if 36 people are needed to answer inbound voice interactions (by whatever method), and we know that shrinkage is likely to be 25%, we'll need an extra 12 people, bringing our total to 48. Many contact centers will use the same shrinkage level throughout all intervals, but we all know this is not the case. Whether you may customize your shrinkage levels to vary across intervals or not, the most important thing to remember is to reduce your shrinkage percentage every time an event is added to the schedule. For example, if you originally planned for 25% shrinkage, of which 5% was to account for lunches and breaks, you will need to lower shrinkage by 5% once you have completed a schedule that includes planned breaks and meals. This would be the same as any other planned activity, except that some shrinking occurrences, such as sickness, are unavoidable. This, however, is a very separate topic for another day.