It’s now been a few years since we introduced our free Erlang calculator.
Given its ongoing popularity and the number of comments and questions it has raised, I thought it time to do a summary of the main questions and attempt to save everyone the effort of wading through the whole comments thread…
Obviously, this list cannot be exhaustive, but I will endeavour to try to address the main issues that have been raised. Of course, as always, feel free to ask anything else below!
1. Why does the Calculator always return two agents in an interval even if only one call is forecast?
Everyone tries this at least once!
What happens is Erlang models the probability (P) of a call arriving, so even if only one call is forecast, there is a small, but definite, chance of a second call arriving. Therefore, it will always give an agent requirement of two. Erlang is always ‘interesting’ around the very low numbers. Remember you’re telling it that ON AVERAGE you get one call, not that you are guaranteed to get one call.
However, once we get to even slightly higher volumes, this goes away, as the P.M.F. of the Poisson/Erlang function trends away from the outliers of the curve and, accordingly, it becomes surprisingly accurate as you increase above ~10-15 calls per interval.
2. How do I change the intervals from 30 min to 15 min?
A) Change 1800 in the formulae in G39:G86 to 900.
3. Does it allow for shrinkage?
The short answer is no, it gives a required number of staff to be available on the phone for any given interval. Shrinkage is a bit too much of a local variable to be able to factor. Different companies use different criteria, personally I’ve seen:
- 1:1 sessions
However, everyone has their own criteria.
It can simply be corrected for by using: (FTE/Shrinkage %)*100
4. Can the model handle multiple queues?
Simplistically, yes, however, only on a high-level basis. To work in a fully multi-skill environment you would need to model with a WFM tool.
5. Can I upscale the interval data to give me daily/weekly/monthly staffing requirements?
Theoretically, you can upscale the interval data, but this destroys the granularity and really attacks one of the strengths of the Erlang model. Uplifting to a one-hour interval will work fine, however, when looking at a week looking at 216,000 seconds based on a 12/5, as your forecast plan will only ever give you a ballpark figure as the daily/interval trends are washed out. This error gets larger as you increase the interval; with a monthly you’ll therefore lose the weekly trend throughout the month.
What that IS good for, though, is looking at longer-term planning and advance scheduling of major training, etc. What you can do is look at the variance, match it back and then see how big a gap is developing. You can then apply that to, say, the monthly plan and look at available days, etc.
6. Can I use this with email?
Yes. You do need to change the Average Answer time target, though. That said, the comments in (5) above regarding large intervals still stand. This model would work with Average Response Times (ARTs) of up to 3 hrs, but breaks down after that.
7. Why does it return the #Error message when using Open Office?
This is currently under investigation. It did work in versions of Calc < version3.2
However, there appears to be a constraint preventing the macro executing correctly. At some point there seems to have been a subtle change in the way the Open Office code runs. As soon as we have a solution, I will publish it.
8. Does the calculator allow for intervals between calls?
No, Erlang assumes that once a call is terminated the agent is then available for the next call. This is alleviated by the After Call Work (ACW) element being included in the Average Handle Time (AHT) calculation.
9. Why does it freeze if I try to copy and paste the data into another worksheet?
This is a common Excel/Calc issue. It is trying to copy and paste a huge amount of data in one go, which can lead to the machine freezing IF there are other memory-intensive processes running as well. The simple solution is to use ‘Paste Special’, first pasting Values and then Formats. This will work for most spreadsheet lockups, not just the Erlang calculator.
10. So, what exactly is an Erlang then?
Essentially an ‘Erlang’ is a descriptive unit of measurement in the same way as a Newton or Watt. It describes the loading on a telephony system. Effectively it is Time available on a system so…
Time interval / (Calls*average duration)
3 calls of 20 minutes in an hour would be one Erlang (3*20)/60
3 calls of 15 minutes in an hour would be 0.75 of an Erlang (3*15)/60
15 calls of 23 minutes in 2 hours would be 2.85 Erlangs
Anything greater than 1 means there is more traffic than one line can take.
That covers most of the main issues that have been raised and a couple that are currently being looked at.
Please feel free to drop a line below if I’ve missed anything you’d like to know.
Dave Appleby is a Contact Centre Planning and Optimisation Specialist.
Have been utilising this tool for a while and adapted into our workforce planning tools, so thanks – till I have agreed budget for a WFM this has been really handy.
To advance further I have been trying to take the erlang calculation into SQL and have yet to find a reliable calculation process for doing so – have you had any experience/joy at this?
I have to admit it’s not something that has occured to me.
Normally it’s a case of reserve anything SQL based to store and collate data, then, manipulate / calculate elsewhere.
I know I’m probably going to get the pitchforks and firey torches out from some people, but…
It’s substantially easier, at least at the basic level to calculate outwith given that the basis of SQL structure is aimed at the relational management and therfore limited manipulation (For Example: Date / Time edits or concatenation for the purpose of generating a unique record key.)
I know this is not strictly true, and, that it is possible even with a base system like Access, but..
Why make life hard?
My initial suggestion would be….
Store the raw data tables within the SQL tool.
Build historical data set constructions within SQL.
Then set up a query that generates a flat file (CSV or XLS) that can be
dumped straight into the current tool..
Not ideal, but, far less time consuming than trying major levels of data calculation within especially as the ‘standard’ SQL intruction set doesn’t include either a POISSON or ERLANG function.
Sorry it’s not what you wanted to hear I’m afraid…
That said, in 10 min someone will come along and tell me where I’m wrong, hopefully!