Better Contact Center Models

By Ric Kosiba, Chief Data Scientist at Sharpen Technologies

If you have followed this column for any of the last 17 years, you’ll find a theme:  I like math modeling, and I write about it a lot.  But I have a confession to make. I have left some simple modeling tricks out of this column because, simply, I hadn’t tried them until recently. I have known about them, thought they would work, but I had used a different approach in the past. Before we get to the math trick, I wanted to discuss why modeling is important to contact centers.

Math Models

Contact center management is largely driven by math models. These models drive forecasting, workforce management, contact routing, contact transcription, and voice analytics. Every workforce management system has at least three mathematical models: time-series forecasting, simulation, and mathematical optimization. Math models are perfect vehicles for describing and optimizing our operations.

But there is more to be done outside of these standard contact center systems. Math models can help us answer many of the common and difficult business problems that are still with us.  

Many years ago, when Northwest Airlines was still a company, I was a fledgling analyst with a very smart boss. He asked that I look into using simulation modeling to help us to better understand our contact centers and to aid in developing what-if analyses. Using these models, I built the following type of graph.

Figure 1.  Sensitivity Graph, Staffing Vs. Average Speed of Answer

It’s a simple graph, called a sensitivity graph. We take a point in time, where we know historically the number of agents on the floor, the actual handle times, and the actual volume achieved for that historical day or week. We use our math model to predict service, in this case average speed of answer. If the prediction is close to what was actually achieved (if we built it well, it will be close) then we can do some quick what-if analyses:  we change one of the metrics, in this case staffing levels, and see how it affects the ASA expected, via a graph like the one above. This answers a very basic and important question:  what service will I achieve if I had more or fewer people?

At Northwest Airlines, years ago, I used this very sort of graph to answer what-if questions for the executive vice president of reservations. She wanted to know how to respond to huge changes in our market, and we knew there was not any other real tool to help. In this case, we turned the fluctuation in expected demand into expected service levels and costs under various scenarios.

And while this sensitivity graph is interesting, there are many other permutations of these sorts of graphs that are available to help answer these and other great questions with precision. In next quarter’s On Target, I will delve into more what-ifs that you can answer with an accurate contact center model. 

Oh! At Northwest Airlines I got promoted to Senior Fledgling Analyst at the end of this exercise.

Building an Accurate Model?

Building an accurate contact center model has always been a bit tricky. Contact centers are complicated and changing, and our math usually assumes consistency and simplicity. The mainstay of contact center analyses and workforce management was the old Erlang C model. There is so much written about it and its flaws, that I won’t go into it here, except to say that it tends to overstaff, sometimes significantly. Its beauty is that it is easy to calculate.

There are other options available to modeling a contact center. My previous favorite was discrete-event simulation modeling, which is very accurate, but painfully slow. Some companies have figured out methods to speed it up somewhat, and it remains a contender for contact center modeling. However, I wanted to outline a method to accurately model your contact centers that you could use, maybe even in a spreadsheet. 

An approach that some workforce management companies take is to use a form of the Erlang A calculation to help determine expected staffing required for scheduling. Erlang A has been around for many years and has a distinct advantage over the Erlang C calculation:  it attempts to control abandoned calls. This nuance is significant — a reason Erlang C overstaffs is that it assumes that nobody ever abandons, that your customer’s patience is infinite — possibly the reality of 1917 phone systems when Dr. Erlang developed his formula. (My friends in the UK at Call Centre Helper have a nice writeup that explains the differences and you can find it at  Search for “Erlang A”).

But Erlang A also has some problems. It assumes a distribution of customer patience that may not be realistic for your contact center, and customer patience is something that we all know is not consistent across a day, week, or season. Customers are differently patient based upon why they are contacting us and the mix of reasons they are calling changes over time.  

Ensemble Models

There has been a lot of work recently around the concept of ensemble statistical models. The idea behind ensemble models is really simple: an ensemble model is the weighted average of several or many other models. Like many math estimates, the hope is that multiple and different types of models can be merged into one better model.

It is super easy to test.

In Figure 2, below, we plot actual contact center performance (in ASA) against three different Erlang A models, one assuming a mean patience of 0.8 minutes, the next with a mean patience of 1 minute, and the third with a mean patience of 1.2 minutes. Each model takes, as input, the actual AHT, volume, and in-seats staffing. Their resulting average error is listed (and we should also use average absolute error as a measure of model success).  None of these models are particularly great, the question is whether we could develop a better model by combining these three.

Figure 2.  Three Erlang A models plotted against actual performance.

The answer is, of course (or I wouldn’t have written this article), yes. Figure 3 shows the result of creating an ensemble model, using the three models in Figure 2, plus additional Erlang A models, the more models to test in our ensemble the better.

Clearly, the ensemble model performs better than individual models. It is this model we used to provide the sensitivity chart in Figure 1.

Figure 3.  Ensemble model performance against actual performance (ASA)

Improving Ensemble Models

There are a ton of cool things we can do to improve these models further. Here are some fun things to try if you want to squeeze more accuracy out of your models:

  1. Use more models. More models are better and more different types of models are even better. For example, it actually helps if your ensemble model considers an Erlang C model along with your collection of Erlang A models. If you are interested in adding in a regression model for consideration, that can’t hurt. Fudge factors can also be included.
  2. Include terrible models. Models that don’t make the cut individually and are pretty poor models by themselves, may actually be great in combination within an ensemble.
  3. Parse your data by time segment or season. It makes an awful lot of sense to have a different ensemble model by day, weekend/weekday, or evenings/core hours. I’ve even heard of folks partitioning models by hour of day (although that seems like a lot of work, and might have some weirdness if the models were very different one hour to the next). We are trying to model customer behavior, and the mix of contacts may change in your operation over predictable times.

Ensemble models and other creative modeling approaches can be applied in all sorts of other ways. Most of the new forecasters use them, speech-to-text models use them, and virtually all AI models use them too. What is fun is what you can do with them after they are built. More on that next time.

Ric Kosiba is a charter member of SWPP and is the Chief Data Scientist at Sharpen Technologies. If you’ve read this far, go ahead and drop me a note (for statistical purposes).  I can be reached at  or (410) 562-1217.