Comparing Erlang C and Simulation Modeling

Comparing Erlang C and Simulation Modeling

By Bayu Wicaksono and Ric Kosiba, Interactive Intelligence

Introduction

One of the first things that we learn in workforce management is the Erlang C calculation. It is easy to use, is fast in calculation, and is the standard in the call center community for determining staffing requirements. Most workforce management systems use some variant of it and planning spreadsheets use either Erlang C or a simple workload calculation.

It’s available as an Excel add-on for free and it’s what everyone else is using, so it has to be great, yes? Inherent in Erlang C are several assumptions (as is the case of  any call center model); assumptions about arrival and handle time distributions and more importantly, assumptions about customer patience. The Erlang C model assumes that your customers do not abandon.

This discussion will focus on comparing our old standard Erlang C with the newcomer, simulation modeling.

We have always been a proponent of simulation  modeling to determine headcount required and service expected in contact center operations. Simulation modeling is being used more and more for complex multi-channel or multi-skill operations, because Erlang cannot model operations other than simple single skill inbound phone centers.

One problem with simulation models are that if built right, they are typically not generic, meaning every contact type’s simulation model will be different from the  next in its assumptions. For instance, two call types can be modeled with different call arrival distributions or patience distributions, and hence, even if they were tested on the same volume, handle time, and service goal, they would produce a different staffing requirement. This is a good thing — models should be “tuned” to the contact type they model.

Validation is Key to Accuracy

Because simulation models are best when they are custom built for the operation they are modeling, these models should always be built around a validation  process. Calling a model “validated” is simply shorthand for saying that the model has been proven to be accurate, using real-world operational performance data. If you are using simulation in your workforce management system or in your planning models, the model should have a validation graph regularly provided — actual versus model results — to prove to yourself that the model comes close to reality. But the same is true of an Erlang (or any other) calculation.

Let’s go through the exercise of validating both the Erlang C calculation and a simulation model. We performed a simple test:

  1. We gathered ACD data from a real-world simple (single skill) call center.
  2. For every interval (hourly in this case) we noted the number of calls received, the number of agent hours available, and the handle times.
  3. We fed those parameters into an Erlang C calculator and a custom simulation model.
  4. We compared the service achieved versus the service predicted from the two mathematical models.
  5. We graphed each hour and graphed a weekly roll up.Below is a graph of a service prediction validation for a banking call center.

banking

This is a great example of a contact type where the Erlang equation fails. Erlang C simply predicts that call center service levels will be much worse than the service  achieved. This is a common problem with Erlang C. Because it assumes that there will be no abandons, the equation requires that each and every call — even those with very short customer patience — will add to the service level result.

The simulation model is terrific. It predicts service accurately. Another important test that can be done is to validate that the models predict staff requirements  accurately. In this exercise we validate each model to determine the expected FTE cost of the model’s inaccuracy. Here we perform a different simple test:

  1. We gather ACD data from a real-world simple (single skill) call center.
  2. For every interval (hourly in this case) we note the number of calls, the number of agent hours, and the service achieved.
  3. We feed those parameters into an Erlang C calculator and a custom simulation model. We assume that the service achieved is the model’s goal.
  4. Compare the staff available versus the staffing requirement predicted from the two models.
  5. Graph each hour and graph a weekly roll up.

The next graph represents staff required for both simulation models and the Erlang C equation for the same call center.

This graph illustrates the cost of a model error. Assuming you were using an Erlang C calculation in your workforce management system or in your planning system,  the Erlang model would have overstaffed the operation by over 20%!

banking2

The models underlying your workforce management and capacity planning process are very important to the operation. The capacity/strategic planning process is the tool we have to determine our center staffing levels and any model error will have significant cost repercussions to our company.

Note also that the discrepancy between the actual staffing requirements and that predicted by Erlang is inconsistent. Sometimes the error is 8% and sometimes it is  23%. We cannot simply add a fudge factor to Erlang C to make it more accurate.

A Summary of Model Results

We did a small validation survey using ACD data from six different businesses, each representing a different line of business (or contact type). Our goal was to  demonstrate error rates of the Erlang C equation and simulation modeling.

We used the same process as above, where we gathered ACD data from each of the businesses, we fed actual interval data into each of the mathematical models, and determined whether the models would predict the service actually achieved in the call center.

Each hourly result from both models was compared to the actual service delivered in the contact center and the error was averaged.

A summary of hourly performance predictions is presented in the table below.

Call Type Avg. Error
Sim
Avg Error
Erlang C
Avg. Abn
Rate (%)
Avg. SL (%)
Loans 0.01% 27.34% 7.93% 76.45%
Member Services -1.02% 30.91% 5.53% 84.70%
Preferred Services 2.69% 21.14% 2.93% 73.55%
Retail -0.09% -0.93% 1.05% 98.61%
Credit Card -4.31% 5.92% 7.23% 55.87%
Auto Insurance -1.90% 0.31% 1.32% 87.19%
SUMMARY -0.77% 14.12%

There are a few things to note. A positive average error implies that the service expected is lower than the service achieved (actual service minus predicted service). Error in this direction will imply overstaffing, because for capacity planning, one would need to add more staff in order to achieve the same level of service  performance.

Second, the size of the centers tested vary from small (average of 3 FTE per hour) to big (average of 228 FTE per hour). The number of intervals tested ranged from 185 intervals (~3 weeks’ worth) to 4500 intervals (~29 weeks’ worth). While this is a somewhat small-to-medium range sample, its result is in keeping with our experience in modeling contact centers over the last 14 (!) years.

The obvious conclusion, looking at the table is that an Erlang C calculation is accurate only under limiting conditions. Erlang C is accurate only when abandons are very low (~1%). Simulation is not limited by this, as each model uses history to derive a unique customer patience curve.

Conclusion

There is an old saying (often used when discussing golf and your buddy’s terrible shot), “It’s not the tool, it’s the craftsman.” Simulation modeling is such a tool —  there is no such thing as a generic call center simulation model that validates unless it has a very good craftsman (a math modeler or operations research professional). Remember, each call center simulation model should be different from the next.

As such, it is very possible to have a simulation model that is poor. But, if the model is developed through a validation exercise, it can be developed accurately. It is  very important that every one of your workforce management or planning models is measured for accuracy. What can we conclude about Erlang C? In the simplest case — when Erlang has the possibility of performing well (single skill, simple center) — Erlang C is still inaccurate most of the time. It is most inaccurate when the call center targets abandon rates greater than 1% or evaluates scenarios with abandons greater than 1%. This, then, implies that the model cannot be used to do any real or interesting what-if analyses.

More significantly, when used in workforce management or the capacity planning process, the Erlang C model will lead to significant waste. Centers will be  inconsistently over staffed and center resources wasted.

Note: We are working on a white paper, expanding this analysis that outlines the differences between Erlang C and simulation modeling, which will be available shortly at www.inin.com.

Ric Kosiba, Ph.D., is a charter member of SWPP and vice president of Interactive Intelligence’s Interaction Decisions Group. He can be reached at  Ric.Kosiba@InIn.com or (410) 224-9883.

Bayu Wicaksono leads Interactive Intelligence’s Operations Research department (mathematical modeling). He loves to talk about math, programming, and process improvement and can be reached at Bayu. Wicaksono@InIn.com.