Tuesday 6 March 2012

Call Drivers


We all do it probably more than we would like and that is call a contact centre, how do we know when it is our turn to call, I say this as I have worked in a few centres and the call arrival patterns are pretty standard, so let’s say we take 100,000 calls a day, and I have worked for a company who handled more, let’s say 80% of these are one time calls, how do these 80,000 people know when to call to satisfy my call arrival pattern.

I know there is certain factors which drive calls into the centre like the opening times, lunch time, closing times, breaks in major TV shows and many other things which build the pattern but if I only take 1000 calls a day or even less how comes the calls follow the same pattern, yes it gets smoother the more volume you throw at the pattern but still the pattern is the same.

This question has created some interesting answers over the years but I still don’t feel like I have the insight into this human timing behaviour I would like to help me plan and maybe even prevent calls in the first place, or influence the pattern to help with my staffing. A full understanding of this could be of great value and could help me improve my personal wages by offering this insight to centres helping to improve efficiencies.
If you have done any work on this subject and have any information which could help me build this model please get in touch. I know this will be different for other industries but I have worked in three centres providing completely different services and levels of service to three different volumes but the patterns are still the same so any insight would be useful.

Saturday 25 February 2012

Is Service Level still fit for purpose?

In all my time working in call centres I find so much focus is placed on service level, how are we doing today, let’s look at the service level. What I want to know is this calculation really the best way to see how we are performing today. Also when I want to know how we are performing I need two metrics, one from the customer’s point of view and one from a finance pint of view.

Service Level Calculation, this is a very black and white calculation which really only shows the percentage of calls we have answered within a given time, this does not show me how I am performing at all, I had a recent conversation with my boss when we failed to answer a call within the 20 seconds we deem acceptable in our calculation (80% in 20 seconds) and it was the first call of the day, so our service level hit 0% 1 call 1 failure, this posed the question, would we care about this one customer so much if we had another 9 calls offered and answered them within the 20 seconds, giving us a service level of 90%. To be fair we would have focused on the fact we were are 90% not that we had failed one call, also this one call may have been answered in 21 seconds, or even 59 seconds it does not matter after the first 20 seconds has lapsed.

So this customer was failed, but without listening to the call we have no way of knowing if the customers needs were met, it may well be we answered the call in 21 seconds and gave the customer 100% satisfaction, thus this customer would be happy when finished the call, so is service level really fit for purpose. We focus a lot on this and it is used a lot to decide how well we are doing, when really it tells us very little, in fact it tells me nothing of value.

Is it now time to look for a new metric or look at use existing data to give us a new calculation that will give us some real insight into how we are performing, maybe we need two calculations, one for the customer and one for our finance department, with a combined one to show how we are really performing.

I am currently in the process of testing a new metric from the customers point of view, and I will work on a finance one, once I have some data I will share it here. If you have looked at this or have any ideas please let me know and together we may get rid of the pointless service level calculation.

Wednesday 25 January 2012

Data Extraction - Avaya CMS

Extracting from Avaya CMS

In my current role I extract data from CMS using visual basic in Excel. I acquired the code to do this from an online forum but I have modified this slightly to suit my needs. I feel I have to warn you if you use CMS it is usually set up to purge periodic data after a couple of weeks, so if you want to access this data after this time you will need to make your own copy. First thing you need to do is decide what information you may need later and how you are going to save it. I do this by importing the data into excel then exporting this to a text file.

Deciding on Data

First in CMS you will either need to pick one or more of the standard reports or as I have done use the reports wizard to create reports giving me the information I want. Here are some examples of the data I have set up on several reports which help me build my reporting suit.

Periodic Data – for each agent group I extract the following
Periodic Time – preferably have this set to every 15 minutes, you may need to speak to the administrators as this is normally set at 30 minutes
Calls offered
Abandoned calls
Failed Calls – this is the number of calls not answered in your chosen service level agreement time, this is usually set at 20 seconds
Talk Time – These are the totals not the average
Hold Time - These are the totals not the average
Call Work Time - These are the totals not the average
ASA – Average speed of answer
Longest Wait – the longest time a customer has queued for
ACD time – this is the amount of time your advisors accumulated in that 15 minute period.

From these metrics you can build quite a comprehensive periodic calls report.

Advisor Data
Advisors Name
Agent Group – this is the call types taken
Calls handled
Talk time
Call Work
Call Hold
The 10 aux codes
Total sign in time
These are two examples of the kind of data I extract from CMS each day and save as a text file.

Text Files
Now you know what data you have you need to make sure you can find it. My personal preference is to save the data files for each day in a separate folder, and the simplest way I have found for naming these folders is to give them the date as the name, how you format this is up to you but I use yymmdd, as when this is sorted it will always stay in date order. Or another simple solution is to start with a folder named the year eg 2012 then have 12 folders inside of this for each month and finally a folder for each day inside of here.

When making the text file I don’t use “,” as a separator, I used to until I wanted to store free text and found the “,” was being used in the free text and would therefor mess up the order in the file, so I use “^” this character is not used very often so is perfect to separate the columns in the text file.

Export Text File Code

Sub ExportLogFile(FileName, SheetName)

Dim WholeLine, CellValue As String
Dim FNum As Integer
Dim RowValue, ColValue, StartRow, EndRow, StartCol, EndCol as Double

Sheets(SheetName).Activate
sep = "^"
ActiveSheet.Cells(1, 1).Activate

On Error GoTo EndMacro:

FNum = FreeFile
StartRow = 1
StartCol = 1

With ActiveSheet.UsedRange
    EndRow = .Cells(.Cells.Count).Row
    EndCol = .Cells(.Cells.Count).Column
End With

Open fname For Output Access Write As #FNum

For RowValue = StartRow To EndRow
    WholeLine = ""
    For ColValue = StartCol To EndCol
        If Cells(RowValue, ColValue).Value = "" Then
            CellValue = " "
        Else
            CellValue = Cells(RowValue, ColValue).Text
        End If
        WholeLine = WholeLine & CellValue & sep
    Next ColValue
       WholeLine = Left(WholeLine, Len(WholeLine) - Len(sep))
    Print #FNum, WholeLine
Next RowValue

EndMacro:

On Error GoTo 0

Close #FNum

End Sub

Avaya CMS Code

Sub GetCMSReport()

Dim cvsApp As New cvsApplication
Dim cvsConn As New cvsConnection
Dim cvsCatalog As New cvsCatalog
Dim cvsRpt As New cvsReport
Dim DTE As Date

DTE = “Put Date of report here

If cvsApp.CreateServer("CMS Login", "CMS Password", "", "IP of CMS Server", False, "ENU", cvsSrv, cvsConn) Then
  If cvsConn.Login("CMS Login", "CMS Password", "IP CMS Server", "ENU") Then
  End If
End If

Set cvsCatalog = cvsSrv.Reports


cvsSrv.Reports.ACD = 1

cvsCatalog.CreateReport cvsCatalog.Reports.Item("CMS Report Path and Name"), cvsRpt

If cvsRpt.SetProperty("Date", DTE) And cvsRpt.SetProperty("Splits/Skills", “Skills needed on Report”) Then ‘ set as many properties as the report needs.
End If

cvsRpt.ExportData "", 9, 0, True, True, True

ImportSheet.Activate
ActiveSheet.Range("A1").Select
ActiveSheet.Paste

cvsRpt.Quit

'End CMS

If Not cvsSrv.Interactive Then
    If cvsSrv.ActiveTasks.Count > 0 Then
      cvsSrv.ActiveTasks.Remove cvsRpt.TaskID
    End If
      cvsApp.Servers.Remove cvsSrv.ServerKey
End If

cvsRpt.Quit
cvsSrv.Connected = False
cvsTasksCol = False

Set cvsApp = Nothing
Set cvsConn = Nothing
Set cvsSrv = Nothing
Set cvsCatalog = Nothing
Set cvsRpt = Nothing
Set cvsSrv = Nothing

cvsConn.Logout
cvsConn.Disconnect
cvsConn.Logout
cvsConn.Disconnect


End Sub


So there is the code to export your CMS data, you can modify the code to suit your individual needs. Like I said earlier I did not write the code, either module, but got these from online forums so please help yourself.

If you require any help please drop me a message and I will try to respond as soon as possible. Or if you have any more efficient ways of extracting data from CMS or any ACD please let me know and I will publish this, if you want me too.

Wednesday 18 January 2012

Report Design

Introduction

When designing a report there are few things you need to consider before you start coming up with designs, first thing you need to consider is the metrics included in the report, then the audience of the report what level of detail will they require, and then the time scale how often will the report be produced.

Metrics

When looking at what metrics you are going to add to the report first ask the audience of the report what they want the report for, for example is this report to help drive efficiencies in a certain area of the centre, like AHT, Adherence, Shrinkage etc. or is the report to show general performance of the centre, calls, forecast variance or service level. Within the contact centre there are many metrics and may ways to look at these so deciding the content is an essential step.

Audience

We need to consider the audience as advisors will not want to see how the centre is doing on a monthly basis, they want to know how they are performing and how the people around them are performing, also they probably only want to see yesterday’s figures, the week so far and the overall month, but they may also want a little more detail, for example the breakdown of the AHT, talk time, call work and hold time, also how many calls they took that day. On the other side of the business the board of directors don’t care about individual advisors and only want to see the AHT against what the target or forecast is, they probably don’t care what happened yesterday and will only want to know last month’s numbers.

Time Scale

Again this is probably down to the audience, the board don’t care what happened yesterday unless they have been advised something has gone particularly wrong, so they only care about last month’s figures for when they review how we are performing, but showing an advisor last month’s stats is only going to be relevant if you are comparing with yesterday’s stats to show how they are improving.

Example Report

So let’s say we have decided this report is going to show AHT and that this report is aimed at advisors and team leaders and we will run this report on a daily basis.

First then we need to decide what metrics will go in the report, what will the advisor want to see also what compliments the AHT, it would be no good having AHT and overall site service level on the same report, the information just would not help show the advisor what they want to see. On this report we will put the following fields. AHT, Talk, Work, hold, calls handled and current target AHT. We also want this report to be used by the advisors but the team leaders also want to monitor how the whole team is performing, so pointless creating two reports we will have one report for both audiences.

Now the advisor is only interested in how they performed yesterday, but if we show them the week so far and the month so far they can monitor if they are improving as the month continues. How I would do this is give the report 3 sections, we only need to design one as we want them all to look the same so the readers of the report can quickly find exactly what they want without having to plough through masses of information.

Here is an example of how the report may look. A small piece of advice when adding colours to a report pick a colour and then use different shades of that colour, don’t use a lot of different colours as this can make the report look messy. In my current role I found the Pantene value for the company logo and then found the values of all the shades below this to use in the reports.


Once you have created this part of the report the weekly and monthly sections of the report are the same as this only the title changes keeping the layout consistent, so once a user has found what information they are interested in the next day they can focus just on this and not the whole report.

Conclusion

When making reports follow the three simple steps above and tailor the report to the audience and their requirements and you will find that not only will they love the reports but will use them. There is no point spending hours, days or even weeks producing reports if nobody will read them.

If you have any comments on anything I have said or if you use a different technique please get in touch as I love to get other perspectives as it helps me grow.

Sunday 15 January 2012

Call Arrival Patterns


Understanding call arrival patterns can make a massive difference when forecasting and scheduling to ensure you have enough resource available to handle your incoming work. In my years working In call centres I have only seen two different patterns across the day, but if you have any others please send me them and I will add them to this page.

Pattern 1

The most common pattern I have seen is this one, call volumes steadily rise throughout the morning and peak around 11am and then fall until between 2-4pm this I used to call the school pick up time, then we would see another rise peaking between 5-6 before falling again until close of play.


This pattern is quite easy to staff for although you will have some quiet time in the “School Run” period, which if used for team meetings, calling customers back who abandoned in the morning or any other back office work or shrinkage will utilise this efficiently.

Pattern 2

The other pattern I have seen starts the day slow but quickly builds to a 9-10 am peak, then volumes drop off throughout the day and after 6 pm are almost non-existent.



This pattern is a little harder to staff for as the number of advisors needed between 9-10 am can be considerably more than you need for the rest of the day. The only real solution is to try and reduce the AHT during the peak time by maybe offering the customer a call back later in the day rather than dealing with the query their and then.

There will be other arrival patterns but I have really only ever seen these two appear regularly, there will always be that unforeseen element which will affect the pattern.

Thursday 12 January 2012

Adherence

What is adherence?

Adherence is the time an advisor is true to their schedule, so when they are scheduled to take their breaks, lunch or any other shrinkage exceptions and if they take it at the correct time they are adhering. There are two types of adherence positive and negative.

Positive Adherence

Adherence is classed as positive when an advisor is online either waiting for a contact or dealing with a contact and not offline taking for example a break. Some centres do not measure this adherence as it is in the centres favour if the advisor is working instead of being on a break, thing is it might be in their favour but there will be negative adherence to counter this unless they miss the exception completely or they are logged in after their shift has finished. I believe this should be measured as if an advisor is late taking their lunch then when we have them scheduled after the lunch they will still be on lunch and not available and we would have planned for them to be there to handle our incoming contact demand.

Negative Adherence

This is when the advisor is not online available to take a contact or dealing with a contact. For example if the advisor is scheduled to be online but is taking a break. This could have an impact on your service centre as you plan how many agents you will have logged in throughout the day to best meet your call demand. Also a common behaviour in a contact centre especially a smaller centre is if the whole team don’t have the same break time, which is really a luxury a small centre cannot afford, they stay online that extra little bit so they can have their break with a friend.

Adherence Targets

In my time in call centres I have seen a range of targets from around 85% to 95% now to put this into perspective, 5% of non-adherence in a week for a full time advisor (40 hours) is 2 hours, That is 24 minutes per day which really should be achievable quite easily (well I think so). This however becomes a little harder if you measure both positive and negative as non-adherence.

Understanding adherence can help improve scheduling and planning roles as you are never going to achieve 100% so plan for 90% and if you achieve 95% then that’s a bonus. Focus on adherence can also improve your centre and if you can make the centre as a whole achieve greater than 95% you could save 1 FTE for every 20 advisors in your centre.

Wednesday 11 January 2012

Shrinkage

A question I am asked all the time is “what is shrinkage”. I will try to explain this now and give a brief breakdown of what is included in shrinkage and why we monitor and report on this. Managing shrinkage and planning for this can be the difference between achieving service and not achieving service.

What is shrinkage?

This is a percentage of your advisors time that they are not available to handle your incoming contacts, some shrinkage can be controlled or limited, some shrinkage is unavoidable and required by law. Basically any time your advisors are not handling your contacts is shrinkage, for example breaks, lunch, meetings and many other exceptions to being signed in taking calls. In the call centres I have worked in I have seen the percentage of planned shrinkage vary from 20% to 35%. You may think this is quite high but if you take a standard day of 8 hours then remove 30 minutes for lunch and two 15 minute breaks we are already at 12.75%.

Shrinkage exceptions

Here is a list of the most common exceptions included in shrinkage first is the list of the unavoidable exceptions. Although these are unavoidable they can be managed to a point by scheduling these at optimum times although there are rules around breaks in the shift as they have to happen within a certain criteria, for example in an eight hour shift the first break must be held around 2 hours into the shift within 45 minutes either side of the two hours. This is just an example as different companies have different rules.

Breaks, Lunch, Sickness, personal breaks, training (sometimes), AWOL and Special Leave

Here is a list of all the controllable shrinkage these can be scheduled by the schedulers to best help achieve service.

Holidays, meetings, coaching, training, 1 to 1, buzz sessions and offline admin work.

There are other codes used and other companies use different names, example buzz sessions could be called briefings, there is probably other names too, also things like jury duty, hospital appointments or other medical appointments, lateness and probably many more. If you have any other names leave a comment and I may add it to the list.

Calculation

The calculation for shrinkage is quite easy its just the amount of time spent in the shrinkage exception divided by the total time expected. Example breaks 30 minutes divided by 480 minutes = 0.0625, expressed as a percentage 6.25%.

If you are working out the shrinkage for a day say and you have 50 staff but 2 are on holiday and 2 are on the sick, that’s reduced your total hours available by 32 hours, this is 8% of your shrinkage, and should you use the full 400 hours to calculate the shrinkage or the reduced 368 hours. I personally believe you should remove the absence before calculating the shrinkage as they were never going to be available, and this shrinkage should be reported separately so if service fails we have not hidden them just not included in the main shrinkage percentage. This will however seem to inflate your shrinkage percentage as your breaks for example will be 12.5% (46/368=0.125) which is what we expected but if we did not remove the holidays as these people will not be taking breaks the percentage would show 11.5% (46/400=0.115), which is not really true.

I hope this brief explanation helps your understanding of shrinkage and if you have any further insight or ideas on how I could explain this better or if I have missed something please let me know and I will update the post.

Tuesday 10 January 2012

AHT (Average Handle Time)

What is AHT

The AHT is a measure of how long your advisors are dealing with a customer’s contact, basically it’s from when the contact starts until they are ready (available) to take the next contact. We need this measure to help drive efficiencies and to plan how many advisors we need to handle the volume of work we are doing. Not every contact will be the same but over a set time period the average should give a good indication of how we are performing.

The components

Inbound Calls - AHT is made up of three components talk time, after call work, and hold time.

Outbound Calls – Pre call work, talk time, hold time and after call work.

E-Mails – Time from opening the mail to moving the mail to a completed state.

Web – Interaction time and after interaction work time.

The Calculations

I will show the calculations for working out the AHT for inbound calls, the following is used to calculate the AHT periodically then daily, weekly and monthly. Now these calculations depend on what information you ACD supplies you with, if your ACD will give total time per period then this is better if not then you need to multiply the calls by the average to get the total.

(average talk * contacts) + (average work * contacts) + (average hold * contacts) = Workload

To calculate the AHT you simply divide the workload by the total contacts in this period. If as I said earlier your ACD provides the total times then the calculation is as follows.

(Talk + Work + Hold) = Workload

This shows how to calculate AHT periodically, but to calculate this across a set time or entire day we need to add all the talk time, hold time and after call work time together and then divide by the total contacts in the time required.

Period 1 - (Talk * contacts) + (work * contacts) + (hold * contacts) = workload1

Period 2 - (Talk * contacts) + (work * contacts) + (hold * contacts) = workload2

Period 3 - (Talk * contacts) + (work * contacts) + (hold * contacts) = workload3

Period 4 - (Talk * contacts) + (work * contacts) + (hold * contacts) = workload4

(Workload1 + workload2 + workload3 + workload4) = total workload

Total workload / total contacts = AHT

*Contacts = Handled contacts

Cumulative AHT

When working out the cumulative AHT throughout the day the formula in excel is quite easy. You need to set up the following columns, A = Time, B = Calls Handled, C = Total Talk, D = Total Work, E = Total Hold. If you import your data into these columns then set up the following formula to work out the cumulative AHT.

In the Starting row (we will start on row 2) the formula should be – (C2+D2+E2)/B2

In the next row we have the following and this is copied down as far as needed – (sum(C$2:E3))/(sum(B$2:B3))

Note $ is used to make the value static so when you drag or copy the formula down in excel this value will not change.

If your ACD does not give you the total time for each period then you need to multiply the average out by the number of calls in each period before any further calculations can be done.

Rounding

Just one thing to say here really, don’t do it, well not until the final output, if you round your results in each period then round again when doing daily, weekly and monthly figures then you AHT will be wrong, it would only ever be right by accident, so just don’t do it.

Targets

Setting targets for AHT can be a difficult subject as everyone wants something different for many reasons, the planners want this as low as possible to save money, the forecasters want this as close to what will happen, the customer satisfaction team want this as high as possible, the advisors also want this as high as possible.

I have also found that if you set a target let’s say 300 seconds but reward staff for being under this then they will try and clear each call as quickly as possible, to be below the target but they may not service the customer’s needs so this can create spin calls as the customer has to contact again to have this done.

But if you set deviation bands around the target let’s say 290-310 as the highest band then 270-330 as the next band and 240-360 as the final band you will find the advisors will service the customer and try to hit your 300 target rather than get under it, while doing this they will keep the customer satisfaction scores higher as they will have enough time to service the customer’s needs.

In conclusion the AHT is used to drive efficiencies in a contact centre but maybe should be also used more to help the customer, I have worked with both top targets and deviation targets and I believe the deviation targets are more beneficial to both the centre and the customer, the calculations for working out the AHT are quite easy just remember never average an average (a common mistake) and never round any results until the final output.

Sunday 8 January 2012

Service Level

Today I will share and discuss the first basic calculation in call centre reporting the service level.

This is the main metric used to see how the call centre is performing and is often the only metric the higher management are interested in so it is worth getting right. There are many ways to calculate the service level and many different thresholds and agreements used to decide if the result is a pass or fail. The most common service level I have seen is 80% of contacts answered in less than 20 seconds.

Now this seems simple enough and here is the calculation to work this out.

(Contacts Offered – Failed Contacts) / Contacts Offered = Service Level

Key:

Contacts Offered = all incoming contacts

Failed Contacts = All the contacts not answered in 20 seconds.

Now this calculation is the simplest calculation I know for working this out. This method does however throw up some questions, what about abandoned calls, as these were not answered at all so therefore should they be added into the calculation at all. The way I look at this is if the customer decided to abandon the contact within 20 seconds then we did not have the opportunity to answer the contact and therefore should not go against us, but if the contact abandoned after 20 seconds it should be classed as a failed contact as we failed to answer within service level agreement.

Some people think this should not be added in at all and use the following calculation for service level (Handled – Failed) / Handled, although this does give a service level it is not a very good measure of how you are performing.

Example, let’s say you are offered 1000 contacts to keep it simple and of those you handle only 500 and of the 500, 100 of these were answered after 20 seconds, this gives a service level of 80%, but of the 500 not answered 400 abandoned after 20 seconds, now if this is included your service level is only 50%. Now the numbers alone indicate the centre has a serious problem but by excluding the abandoned this is hidden as we are achieving 80%.

So that is the basic calculation for service level I have seen other calculations used and there are many agreements depending on the contact type and the customers’ requirements, here are some examples I have come across in the time I have been doing this job.

Service Level Examples

80/20 is the most popular but 80/30 is also seen a lot in smaller centres due to costs, I have also seen 90/10 used for premium customers where people pay for a better service. With other contact methods example e-mail I have seen this set at 100% in 8 hours or 90% in 24 hours.

Service level needs to be looked at across many time frames to understand if the contact centre is performing from 15/30 minute periods throughout the day to daily, weekly and monthly levels. If our service level is 80/20 we don’t want to be at 100% all day long every day as then we are probably over staffed but at the same time it’s not good for our customer experience if we are at 20% for a few hours every day and 100% the rest of the day giving us an 80% overall level. Service level is one metric we can use to quickly see where the centre is performing and not performing and make changes or improvements to help us achieve our goals efficiently.

To summarise service level is the first and most used metric to measure a contact centres performance.  

Introduction

Hello I am a MI Analyst based in the North East of England working in a small call centre, I am responsible for all the reporting needs of the centre and I wanted to create a blog about MI reporting. This blog is intended to share my knowledge of MI and maybe create discussions so together we can establish some best in class practices. I am not a great writer and may not always find the best way to articulate what I am trying to say so any help with this would be appreciated.

I have been working in call centres now for 12 years and I have worked in a large centre, a medium sized centre and now (currently) a small centre, I added currently in brackets as we are growing so this could change to medium over the next few years.

I do not claim to know everything and I am open to feedback to establish some best practices so please do comment on the blogs, feedback and discussions are usually the best ways to learn and I love to learn.

I will share some methods, ideas, concepts and future plans on this blog so I may be able to help other MI analysts also you guys can maybe help me if you think I am going in the wrong direction.