Algorithm for workforce scheduling for call volumes

I am trying to solve a workforce scheduling and optimization problem.

Available data:

• daily level forecasted call volumes,
• shift schedules,
• resource utilization at the aggregate level,
• AHT at daily and hourly level.

I wanted to identify an algorithm that will help me come up with the optimal schedule. I have looked at a couple of methods like:

• Linear Programming,
• Greedy Algorithm,
• Constraint Programming

I am unable to decide which one will be useful for solving my problem efficiently. I want to schedule the minimum number of people in each shift to achieve maximum foretasted volumes with minimum AHT.

Also if you can provide a comparison of different methods and their advantages and disadvantages that would be helpful.

• Hi and welcome @Lalitha, this is difficult to answer in this generality; it depends on your knowledge and skills, and the size of the instance you want to solve, and how much time you have for "research". For the specific case of call center schduling you will find OR literature under this keyword. If you tell us more about the background of your application (academic/real, small/large, quality important, how much computation time etc), merci! Commented Aug 6, 2019 at 8:28
• Thanks Marco. I have 4 more days to come up with approach, its a real time project . Can you please direct me to any resources that provides a comparison of different methods. Ease of implementation is also key.I am very new to solving this problem Commented Aug 6, 2019 at 11:46
• I looked into "shift covering" and "shift design" but I need more info here; what does it mean that you are given shift schedules but look for an optimal schedule? What is precisely given, what is precisely a solution? If you are "only" looking for how many workers should work in each given shift, this may be a mincost network flow problem. Commented Aug 6, 2019 at 22:23
• If so, yes you could, or a network flow algorithm. Both would require proper modeling to start from. Commented Aug 7, 2019 at 8:47
• thanks Marco. Can you please elaborate on proper modelling part Commented Aug 7, 2019 at 8:54

I am trying to solve a workforce scheduling and optimization problem ...
I want to schedule the minimum number of people in each shift to achieve maximum foretasted volumes with minimum AHT. Also if you can provide a comparison of different methods and their advantages and disadvantages that would be helpful.

Make certain that your input data is correct.

It's important to note that we typically assume the NCO (number of calls offered) accurately portrays the workload for which we need to staff. This assumption is valid as long as all calls are getting in and that none are blocked at the network level by insufficient telephone trunks (busy signals). It's always a good idea to validate this assumption by requesting periodic busy studies from your local and long distance carriers.

Another critical step of the data gathering process is to eyeball your information to make sure there are no data aberrations. You'll want to look for any abnormally low or high numbers as well as missing information. When you identify something out of the ordinary you should first determine the reason for the anomaly and then decide if it needs to be adjusted or not.

Make sure you consider all the other pertinent areas as well. Will the billing department's new invoice format cause a flood of calls? How about sales forecasts from the Sales VP that can help you plan staff based on the new customer account base a year from now? Is the fulfillment area changing the way they package and ship products that may cause an increase (or decrease!) in your call volume? It's critical that you communicate regularly with all these influencers of call center workload as you prepare and fine-tune the forecast.

Make certain that there isn't anything that will unduly influence your gathered statistics. Ideally you will want to have available the previous 24 months so you can compare holiday periods and seasonal upward or downward trends. You'll also want available recent weeks without intervening holidays so week to week comparisons can be made.

Traditionally call center volumes have been modeled using Erlang C calculations, more recently the Extended Erlang B formula has been applied. Those methods have shortcomings which I've attempted to address in the previous paragraphs.

Most recently the formula has been improved, you guessed it, and now we have the Erlang A method. Combining Erlang C and Erlang A you can receive the most accurate prediction for how many staff are needed, in accordance with your:

• Forecast contact volumes
• Average Handling Time (AHT)
• Service level
• Occupancy
• Shrinkage
• Average patience

What Is the Erlang C Formula?

The Erlang C formula is a mathematical equation for calculating the number of agents (advisors) that you need in a call centre, given the number of calls and the service level that you want to achieve.

The Erlang C formula is the most important part of the equation. It allows you to work out the probability that a call waits (Pw), given the Traffic Intensity (A) and the Number of Agents (N) available.

$$P_W = \Large \frac {\frac {A^N}{N!} \frac {N}{N - A} }{ \left( \sum \limits^{\small N-1}_{\small i=0} \frac {A^i}{i!} \right) + \frac {A^N}{N!} \frac {N}{N - A} }$$

The Erlang A formula is highlighted below:

$$P \{Ab | W > 0 \} = \Large {\frac { 1 }{\rho A \> \LARGE ( \frac {\eta \mu }{ \theta} , \frac { \lambda}{ \theta})}} + \normalsize {1 \>} – \> \Large \frac { 1 }{ \rho }$$

Where the formula is explained in Mandelbaum and Zeltyn's paper, equation 4.3.

See also: "New Perspectives on the Erlang-A Queue" (Dec 22 2017), by Andrew Daw and Jamol Pender for an analysis, "How to Work Out How Many Staff You Need in a Contact Centre" from callcenterhelper.com and "The Palm/Erlang-A queue, with applications to call centers" (Dec 28 2004), by A Mandelbaum and S Zeltyn. Here is an updated URL for the program 4CallCenters mentioned in their paper.

There are a number of online calculators available, saving you from writing a program. This one incorporates both Erlang $$C$$ and $$A$$: "Erlang Calculator - for Call Centre Staffing (Online Version 4.2)".