## Queuing Theory and iiNet, Part II

It’s an interesting read, but the author makes a lot of basic errors. Unfortunately, customers refuse to line up and call at regular intervals and spend the average amount of time on the call. The reality is obviously more bursty than that and needs non-linear modelling.

The feedback from Michael Malone above was in response to my previous blog post on Applying Queuing Theory to iiNet Call Centre聽Data. I don’t accept that I made “a lot of basic errors”, but I did make a lot of assumptions. Or perhaps the statistician George E. P. Box said it better, “Essentially, all models are wrong, but some are useful.”

But Michael is correct – customers don’t line up and call at regular intervals, and the reality is more “bursty” (i.e. Poisson). My model is inadequate because it doesn’t take into account all the natural variation in the system.

One way of dealing with, or incorporating, this random variation into the model is by applying Monte Carlo methods.

Take the iiNet Support Phone Call Waiting Statistics for 6 February 2012, specifically for the hour 11am to noon. I chose this time block because the values are relatively easy to read off the graph’s scale – (a bit over) 664 calls and an average time in the queue of 24 minutes.

Now if we assume Average Handling Time (AHT), including time on the call itself followed by off-phone wrap-up聽 time, was 12 minutes, then my model says there were 664*(12/60) / (24/60 +1) = 95 iiNet Customer Service Officers (CSOs) actually taking support calls between 11am and noon on 6 February 2012. That’s an estimate of average number of CSOs actually on the phones and taking calls during that hour, excluding those on a break, performing other tasks, and so on. Just those handling calls.

But there will be a lot of variation in conditions amongst those 664 calls. I constructed a little Monte Carlo simulation and ran 20,000 iterations of the model with random variation in call arrival rates, AHT, and queue wait times.

Assumptions:

Little’s Law applies
Average time in the queue of 24 minutes
AHT (time on the actual call itself plus off-call wrap-up) of 12 minutes

then the result of the 20,000 monte carlo runs is a new estimate of 135 iiNet CSOs taking support calls between 11am and noon on 6 February 2012.

I ran a few more simulations, plugging in different values for number of CSOs handling calls (all else remaining equal – i.e. 664 calls an hour; AHT=12 minutes) to see what it did for average time in the queue. The results are summarised in the table below:

Modelling suggests that if iiNet wanted to bring the average time in the phone call support queue down to a sub-5 minute level during that particular hour of interest, an additional 85% in active phone support resourcing would need to be applied.

The table of results is graphically presented below (y-axis is time in queue, x-axis is CSOs)

Looks nice and non-linear to me 馃檪 You can see a law of diminishing returns thing start to take place around about the point of the graph corresponding to 160 CSOs / 16.5 minute average queue wait time.

——

## Applying Queuing Theory to iiNet Call Centre Data

In previous posts I’ve talked about queuing theory, and the application of Little’s Law in particular, to Internet Service Provider (ISP) customer support call centre wait times. We can define Little’s Law, as it applies to a call centre, as:

The long-term average number of support staff (N) in a stable system is equal to the total number of customers in the queue (Q) multiplied by the average time support staff spend resolving a customers’ technical problems (T), divided by the total time waited in the queue (W); or expressed algebraically: N=QT/W.

Thinking things through a bit more, the total number of customers in the queue (Q) at a point in time in a stable system should be equal to the rate at which people joined the queue (), minus the rate at which the support desk dealt with technical problems (i.e. N/T) over the period of observation. Obviously Q>=0.

So N=QT/W and Q=-N/T which all comes out in the wash as:

N=T/(W+1)

I thought might be a bit of fun to see if this could be applied to the customer support call centre waiting statistics published by one of Australia’s largest ISPs, iiNet.

iiNet make some support centre data available via their customer toolbox page. Below is a screenshot of call activity and wait times graphed each hour by iiNet on 10 January 2012. The green line (in conjunction with the scale on the left hand side of the graph) represents the average time (in minutes) it took to speak to a customer service representative (CSR), including call-backs. The grey bars (in conjunction with the right hand scale) represents the total number of incoming phone calls to iiNet’s support desk.

It may be possible to use the formula derived above to estimate how many CSRs iiNet had on the support desk handling calls that day. For example, during the observed peak period of 8am to 1pm on Tuesday, 10 January 2012, the iiNet support desk was getting around 732 calls per hour on average. The expected wait time in the queue over the same period was around 11 minutes.

If we assume that the average time taken for a CSR to resolve a technical problem is, let’s say, 12.5 minutes, then we can estimate that the number of CSRs answering calls in a typical peak-hour between 8am to 1pm on 10 January 2012 as:

732*(12.5/60) / (11/60 + 1)

= 129 CSRs actively handling calls.

Sounds sort of a reasonable for a customer service-focussed ISP the size of iiNet. But if iiNet wanted to bring the average time in the queue down even more – to a more reasonable 3 minutes, for example – they’d need 145 CSRs (all else remaining equal) during a typical peak-hour answering calls.

————

## Can I get a Little MORE support around here?

In November last year, I blogged about the phone queue reporting and graphing page beta-released by my ISP, Internode.聽 The aim was to use the data presented on that page, with some basic queuing theory (Little’s Law), to determine the size of their helpdesk.聽 I theorised that a rough estimate for how many Internode support staff are on duty at any particular point in time could be given by:

Calls in Queue x 12.5 / Wait Time

Looking at the hourly averages, I concluded that, on the Saturday of my analysis, Internode helpdesk had 8 or so people on hand to assist with customers’ technical problems.聽 I have been informed that my estimate for that period was surprisingly accurate.

The graphs and hourly averages data were taken offline for a little bit, but they’ve recently been reinstated.聽 I thought it would be timely and interesting to have another look and see what’s changed over the intervening months.聽 Last Saturday evening I went through and analysed the hourly averages covering the time period from 8pm Friday (17 July 2009) to 8pm Saturday (18 July 2009).聽 Note that Internode鈥檚 residential technical support helpdesk is staffed from 7am to midnight, 7 days a week.聽 I then applied the same methodology from Can I get a Little support around here to estimate the number of support staff on duty (last column).

Table 1: Internode helpdesk phone queue – hourly averages

 Time period Avg. wait time (mins:secs) Avg. calls queued (no.) Support staff on duty (est.) Friday, 8pm-9pm 00:21 0.1 4 9pm-10pm 00:22 0.1 3 10pm-11pm 00:21 0.0 not enough data 11pm-midnight 00:22 0.0 not enough data Saturday, 7am-8am 00:22 0.1 3 8am-9am 00:30 0.2 5 9am-10am 00:22 0.2 7 10am-11am 00:26 0.3 9 11am-noon 00:22 0.2 7 noon-1pm 00:22 0.2 7 1pm-2pm 00:23 0.2 7 2pm-3pm 00:23 0.2 7 3pm-4pm 00:58 0.7 9 4pm-5pm 00:22 0.2 7 5pm-6pm 00:23 0.2 7 6pm-7pm 00:22 0.1 3 7pm-8pm 00:21 0.1 4

Looking through my small window of analysis, it appears that Internode have largely resolved any problems they were experiencing late last year/early this year in terms of extraordinarily long wait times.聽 Time spent in the phone queue has collapsed from around 10 minutes to less than 30 seconds.聽 However, this dramatic improvement doesn’t appear to be due to any significant increase in staff numbers.

——

## Can I get a Little support around here?

Yesterday my Internet Service Provider, Internode, released a public beta of its phone queue reporting and graphing software.聽 You can view it here:

http://www.internode.on.net/customer-service/

It’s somewhat hypnotic watching the results being updated every 60 seconds.聽 And there’s quite a few interesting statistics presented on the page, especially if you’re into queuing theory.聽 In fact I’d like to use queuing theory, and Little’s Law in particular, to have a guess at how many Internode Residential Technical Support Staff are on duty at a given point in time.

Little’s Law (from Wikipedia) states that: The long-term average number of customers in a stable system (N) is equal to the long-term average arrival rate (位) multiplied by the long-term average time a customer spends in the system (T).聽 That is, N = 位T.

Let’s turn things around a bit so that they apply to Internode’s support desk.聽 N in Little’s Law will become the number of support staff on duty, 位 the rate at which callers come off the queue, and T the time taken to resolve technical problems.

But first things first.聽 And first we must estimate 位.

Luckily Internode makes this fairly easy.聽 We are given total wait time and total calls in the queue at a particular point in time.聽 So callers are arriving on the desk at a rate of (total calls in queue)/(total wait time in queue) every minute.聽 This is 位.

T is a bit trickier to estimate.聽 How long does it typically take for support staff to resolve a customer’s technical problem over the phone?聽 I don’t know.聽 All I really have to go on is this post from Exetel’s John Linton’s personal blog.聽 Specifically:

Given an average of 5 minutes of initial talk time per ‘live’ call and the requirement to spend a further 7 – 8 minutes for each call in either call back or other actions…

So it would seem it takes somewhere in the vicinity of 12 or 13 minutes for helpdesk to work through a customer’s technical issue on average.聽 That sort of feels right based on my very limited experience when it comes to contacting customer support.聽 Meh, I’ll split the difference and say T=12.5.

Therefore a rough estimate for how many Internode support staff are on duty at any particular point in time could be given by ( “Calls in Queue” x 12.5 ) / “Wait Time”.聽 For example, as I write this, there are 3 calls in the residential technical support queue and total wait time is 5.01 minutes.聽 So there must be 12.5×3/5.01=7 staff on helpdesk at the moment.

Earlier this afternoon I went through and analysed the hourly averages covering the time period from 5pm yesterday to 5pm today.聽 Note that Internode’s residential technical support helpdesk is staffed from 7:30am to midnight, 7 days a week.

 Time period Avg. wait time (mins) Avg. calls queued (no.) Est. support staff on duty Friday, 17:00-17:59 24.39 14.04 7 18:00-18:59 16.45 8.35 6 19:00-19:59 8.36 7.25 11 20:00-20:59 5.3 3.57 8 21:00-21:59 0 0.12 not enough data 22:00-22:59 0 0 not enough data 23:00-23:59 0 0 not enough data Saturday, 7:00-7:59 3.2 1.27 5 8:00-8:59 5.51 4.17 9 9:00-9:59 14.5 7.08 6 10:00-10:59 16.17 9.03 7 11:00-11:59 6.51 3.52 7 12:00-12:59 6.59 4.18 8 13:00-13:59 12.25 6.67 7 14:00-14:59 8.36 5 7 15:00-15:59 1.1 0.9 10 16:00-16:59 0 0.13 not enough data

Things bounce around a bit because we’re dealing with averages and estimates and other problems such as small amounts of data.聽 However, looking through my small window of analysis (5pm Friday to 5pm Saturday), it looks like Internode helpdesk usually has 7 or 8 staff on hand to answer customer calls.聽 Totally unsurprisingly, extra personnel are available to cover peak periods.

I should repeat the analysis covering a busier time when sales and accounts staff are also on duty such as the mid-week period.

——