I’ve seen freshers struggling to solve case studies during interview. Do you also find it difficult ? Yes?
That’s okay. But, since you now have an abundance of resources to enhance your skills, you have no reason to not become a master in it. I myself had struggled a lot during initial days, but with practice I was able to overcome this difficulty. You also CAN!
There is no one shot winning formula in case studies. Let me tell you what helped me to solve case studies during interviews:
Look, my process of solving is simple. If you manage to follow even this much, you would be just fine. You just need practice. And, practice with different types of case studies.
And if you’re looking for more case studies like this, check out the comprehensive ‘Ace Data Science Interviews‘ course! We have curated it with tons of videos, hundreds of questions and plenty of resources, just for you.
This article is about a case study on Call Center Optimization. I’m sure this is a new case study type for you. Hence, do it thoroughly and focus on the underlying aspects of how call center works!
What is the biggest turn-off when you call the customer service center for seeking support on any issue?
For me, it is the waiting time. The line : “Your call is important to us” really does not do any consolation to the customer who is waiting on line.
Let’s say, I am looking at comparable Internet Service provider : A, B and C. What will be my main considerations to choose one of them? First, will be the internet speed and second will be the customer support. Customer support is supremely important for any company whether it is a Telecom company, Internet  Service Provider, Bank, Insurance company or an E-Commerce Firm. It is the assurance from the company that anything going bad will be resolved as soon as possible.
So, we all understand that Customer Service Center is probably the second most important consideration just after the actual product. Also, customer service is one of the biggest contributors to the cost component for any firm. So, within the same budget can we make the customer service better by using analytics. Let’s try looking at it with a case study. Note that all the numbers are simulated and are used to bring out a concept and does not come from a real case.
All companies provide multiple channels through which customers can reach out / connect with them. Here are a few of these channels :
Other channels might include brick and mortar branches / outlets, 1-on-1 customer relationship managers etc. The most important of all is the “call center (calling process)” which every company needs to maintain but at minimum cost possible.
So, how can we optimize the expense for a call center. To optimize this problem, you first need to understand that here we are dealing with two entities : Customers and the caller. And to optimize combination of customer-caller pair, you need to understand how are customer different from each other and how are callers different from each other.
Because customers might not call the call centers frequently, more important attributes will be his /her demographic and relationship with the company. Let’s consider a bank. So, for a bank, these attributes can be :
Beyond these, there can be past call data which might be useful :
Even though the time taken by callers might not be very different from each other, some level of segmentation can definitely be found. Here are a few variables which can influence the amount of time caller takes :
What is the objective function when we are trying to optimize the call center efficiency? Here are a bunch of objective function I can think of:
So, how do we solve for two objective function? In general, to make it simpler, we take one of the objective function as a constraint and other as the main objective function. We will try to create a formulation which can be solved using an assignment problem. For simplicity we will not take customer satisfaction in this analysis.
You have 7 types of callers and 7 types of customers. Assume that all seven customers call at the same time, how do you assign callers to each of these customers so that the total time of the call center is least.
All numbers shown here represent time in minutes. Imagine this problem getting to an extent where 1000s of callers respond and 100000s of customers call. So, we probably need a more scientific way to do this problem.
Let’s first see, what is the time if 1st caller gets assigned to 1st customer and 2nd to 2nd and so on. The total time becomes 23 + 84 + 91 + 82 + 67 + 63 + 6 = 416 which is 59.4 minutes/customer. Now, let’s try to optimize this problem using something called assignment problem solution using Hungarian method. The steps are :
Doing the calculation, the total time now comes out as 165 which is just 23 minutes/ customer. This is a far better assignment than the random allotment.
A real life call center optimization is far more complex than this scenario. For a real case we will need to consider packing algorithms which can incorporate the fact that different calls come at different time and what is the best packaging. Other level of complexity can be brought in by considering customer satisfaction rate. We will try taking up these pieces in coming articles.
Did you like reading this article ? Can you think of other checks to make this case study mimicking the actual call center in a better way? Do share your experience / suggestions in the comments section below.
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
Good work. This seems to be inspired by Hungarian algorithm!!
Good day,Thank you for this, i have few questions? What do the results show/ mean and does does this get implemented to optimize efficiency?Im learning to understand analytics and how to implement this in my line of work.Please can you send me more reads/ learning material.Thank you, Kersan Pillay South Africa
Hi Kersan, This is an over simplistic case to understand how assignment can be done if all calls came together. Real life case will be much difficult and need much more statistical knowledge. We will take it up in coming articles. Tavish
Hi Tavish, I am not able to understand how you have derived "23 + 84 + 91 + 82 + 67 + 63 + 6" and 165 by Hungarian method. Can you please explain.
Hi Raghvan, For the initial calculation I am just adding the elements on the diagnol. And for the optimized calculation, I add elements that are highlighted in yellow. Hope this helps. Thanks, Tavish
Now do can you write an article with a program algorithm solution in R, Python, etc. that can do this? Is their a Machine Language approach to solving this? Post some possble solution approaches.
I learnt something really cool today (The hungarian method). Thanks Tavish.BTW, do we have better algorithm than Hungarian to solve such assignments problems?
Thanks for the excellent article Tavish, one of the challenges call centers face is the optimum scheduling of agents: basically how many agents need to be staffed to take the calls. The challenge intensifies when you have your agents going on vaction/sick days or having lot of turnovers. This is a very interesting domain, one of the metrics i have seen used is the average speed of answer for a call. Thank you Ramdas
Sir, I could not understand the Hungarian algorithm very well from this case study.Can you please help?
Well, I know this is not the right place for this post, but there should be a well developed app for analyticsvidya apps
Hi Tavish,Good case study.
hi tavish good work but i have also done this in my excel sheet and assigning the work of caller 2 at last i have(assigned work of caller 7 at first) came to conclusion that 22+60+14+3+26+1+6=132 and 132/7=18.85 mins /customer
Hi, Avinash,I also have the same number. I couldn't understand why in the example it was picked the pair Caller 2, Customer 1 instead of the pair Caller 2, Customer 5.
good work
Hi Tavish, could you please suggest some resources related to operation research and case studies like these. Also , a lucid approach to implement this on R, python etc.Thank you.
it would be great Tavish , if you share above resources
Guess the crux is to get to the time values..how using customer and call center attributes and historical data you can predict that if X customer is assigned to Y call center guy the time to resolve would be A minutes with a certain degree of confidence...once we have those values, we can optimize using advanced algorithms such as the one you have mentioned here..
Even I have same question. How do you get to the table with estimated numbers is a challenging task. Or is it we have misread the table?
"Utilization rate of the caller : A caller who is highly utilized might have a lower efficiency compared to others."can't understand, plz explain this with a small example
Hi Tsvish,Step 3 says : Find a row which has only one zero and make the assignment. Also cancel all the zeros in the same column. In case two rows comes out to have zero in than same column, leave it to be assigned at the end.My first question is what does make the assignment meant here? Does it mean replacing 0 with some value?In this case we should pick up row 2, which you have highlighted as grey amd then do not take cell(7,7) as it is mentione that we have to cancel seconf 0 cell. It's bit confusing to me how did you pick up those yellow higlighted cells in step 3.Could you please expalin that,
Tavish Excellent explanation and approach. I would however point that, when I implemented the Hungarian algorithm in R using the package "clue", I could find that the optimal allocation is not what you have mentioned. I understand that your approach was to make people understand the stance one should take. So we definitely can ignore that part. The R model however pointed to the below assignment and I see that its minimum 1 => 5, 2 => 3, 3 => 4, 4 => 1, 5 => 6, 6 => 2, 7 => 7 The total time came as 103 minutes with an average of 14.71. I used the solve_LSAP method for determining the same.
Hi Tapan, Thanks for the brief and nice explanation but when I am trying this problem manually, I am getting the point that 1 =>3C,2=>7C,3=>4C,4=>1C,5=>6C,6=>2C,7=>5Cand hence total comes up as 22+11+14+26+30+4 = 107/7 = 15.28.Why should we go for 3rd customer for 2nd caller if in second row, we only have 1 zero and that too is for customer 7(bcz as per the rule, we need to choose zeros from those rows where there is only one zero)? For 7th caller, I chose 5th customer bcz the cost factor was least for 5th customer (15th it was). And for 1st caller, why did not we choose 3rd customer?I hope I am able to put forward my queries for these 3 callers.
Hey Tavish, great starting article. I read all your write ups. I saw that you have used Hungarian. I used R to model it and the result I got is better than adding the diagonal values. But I understand that your objective was to explain how to approach the solution. R program gave the below assignment. I used "Clue" package and solve_LSAP method to get this 1 => 5, 2 => 3, 3 => 4, 4 => 1, 5 => 6, 6 => 2, 7 => 7Cheers .. keep writing.
Hi Tavish, It's really a nice article. However the answer is still not optimal because you have omitted another step after step 2. Step 3 ->Find the minimum number of horizontal and vertical lines to cover all zero's. If this is less than order of matrix (in this case it is 3) then note down minimum of costs which are uncovered while drawing the lines. Subtract that cost from uncovered items and add it to those items which are the intersection of horizontal and vertical line. This steps iterates until we reach a point where minimum number of horizontal and vertical lines to cover all zero's is greater than or equal to order of matrix.
sorry the order of the matrix is 7.
Tavish....Good Case Study...!!!
Can't exactly get what happened from step 4??
I mean step 3.. Confused with the line which says - select the row which has one zero n do the assignment ?? If the column had more than one zero..leave it to be assigned at the end..Can I get some more detailed explanation of how to do this ?P.s. thanks for the great article :)
Hi,Generally, calls allocation to call agent is done by using Queue Theory. Can you please explain its mechanism.Thankyou!
Thanks Tavish.This article has motivated me to stepping in to Operational Analytics.
Hi Tavish, Thanks for the article.I understood the factors you chose for both callers and customers.But how did you convert them into a mathematical matrix.For e.g how can we mathematically prove that if caller 2 calls customer 3 , then the call would last for 24min. Is this based on some market research?