Operational Analytics Case study For Freshers: Call Center optimization

Tavish Srivastava 27 Feb, 2019 • 7 min read


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:

  1. I asked questions. Many questions in fact. Once the case study was given, numerous questions popped up in my mind pertaining to the situation given. Trust me, asking questions help a lot. I realized by asking questions, I was able to solve 40% of the case study.
  2. I put a structure around the given problem. Yes, structured thinking helps a lot. Also, structuring the problem helped me to solve case studies faster.
  3. I practiced case studies from different domains like retail, healthcare, technology, sports etc. This made me familiar with their processes and key jargons used. So, during interview I didn’t have to tremble thinking about the type of case study I’ll get.
  4. I think I’m good with numbers (no bragging!). This helped me to perform mental calculations and do Step 1, if necessary.

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!

analytics case study for fresher: call center optimization


Case Study : Call Center Optimization

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.


Type of channels used in customer service

All companies provide multiple channels through which customers can reach out / connect with them. Here are a few of these channels :

  1. Call Center: This is the most expensive channel which customers use to reach out to companies. Every company wants to minimize this channel’s cost to reduce operational expense, but it’s a necessary evil. Every customer wants a human respondent to truly assure that everything will be resolved. This preference might change over time, but as of now we have to accept the truth that machines are not as good as humans to understand customer’s problem and provide customized assurance. CC
  2. IVR: This is a cheaper channel and is used by almost every company. In general, you get to IVR and if customer’s query is not resolved on IVR, he/she finally reaches the call center.
  3. Social Media: This might seem like the cheapest channel to receive complaints from a customer, however is the most deadly channel today. The reason being, everyone who comes on the social media page can see these complaints. You are no longer on a 1-to-1 conversation with the customer.social_media_strategy
  4. E-Mail: This is probably the easiest to handle and cheapest to resolve medium for any company. However, this is one of the least preferred channels for the customer to  reach out to the company.


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.


Customers : What might influence the time a customer takes on Call?

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 :

  1. Relationship balance of the customer : How valuable is the customer for the bank
  2. Type of product which a customer holds : Is the product more prone to disputes or are plain vanilla deposit products?
  3. Region of customer : Customers from rural areas might take longer time to understand the solution provided by the caller.
  4. Tenure of customer: A new customer might have more number of questions than a tenured customer

Beyond these, there can be past call data which might be useful :

  1. Last Call duration
  2. Time difference from the last call
  3. Reason of last call
  4. Whether the reason was resolved after the last call or the ticket is still open


Callers : What might take a caller higher time than others?

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 :

  1. Vintage of the caller : A new caller might take longer time to resolve the same query
  2. Training done by the caller : Caller training might help them to understand and resolve the customer queries faster than the others.
  3. Location of call center : Onshore vs. Off-shore call center might have different resolution time because the callers can easily understand the accent of the customers from the same country and might understand customer issues better.
  4. Utilization rate of the caller : A caller who is highly utilized might have a lower efficiency compared to others.


How do start modeling ?

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:

  1. Call duration : This directly hits the total cost.
  2. Customer satisfaction : It might not directly hit the cost or revenue but definitely hits the bottom line in a longer term.

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.


Sample Problem Statement

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 :

  1. Reduce every row with the minimum of the same row. 1
  2. Reduce every column with the minimum of the same column2
  3. 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. 3
  4. Now select the same cells in the main grid and do the total time calculation.4

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.


End Notes

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.


You can test your skills and knowledge. Check out Live Competitions and compete with best Data Scientists from all over the world.

Tavish Srivastava 27 Feb 2019

Tavish Srivastava, co-founder and Chief Strategy Officer of Analytics Vidhya, is an IIT Madras graduate and a passionate data-science professional with 8+ years of diverse experience in markets including the US, India and Singapore, domains including Digital Acquisitions, Customer Servicing and Customer Management, and industry including Retail Banking, Credit Cards and Insurance. He is fascinated by the idea of artificial intelligence inspired by human intelligence and enjoys every discussion, theory or even movie related to this idea.

Frequently Asked Questions

Lorem ipsum dolor sit amet, consectetur adipiscing elit,

Responses From Readers


Sravan 07 Apr, 2016

Good work. This seems to be inspired by Hungarian algorithm!!

Kersan 07 Apr, 2016

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

Raghavan 07 Apr, 2016

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.

Rich 07 Apr, 2016

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.

Siddhesh Patil
Siddhesh Patil 07 Apr, 2016

I learnt something really cool today (The hungarian method). Thanks Tavish. BTW, do we have better algorithm than Hungarian to solve such assignments problems?

Ramdas 07 Apr, 2016

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

Anushka 08 Apr, 2016

Sir, I could not understand the Hungarian algorithm very well from this case study.Can you please help?

Manoranjan kumar
Manoranjan kumar 09 Apr, 2016

Well, I know this is not the right place for this post, but there should be a well developed app for analyticsvidya apps

Kiran Kumar
Kiran Kumar 09 Apr, 2016

Hi Tavish, Good case study.

avinash sinha
avinash sinha 09 Apr, 2016

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

avinash sinha
avinash sinha 09 Apr, 2016

good work

Janpreet Singh
Janpreet Singh 09 Apr, 2016

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.

Nilanjan 09 Apr, 2016

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..

sumalatha 10 Apr, 2016

"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

Vivaksha Singh
Vivaksha Singh 11 Apr, 2016

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,

Tapan Mishra
Tapan Mishra 11 Apr, 2016

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.

Tapan Mishra
Tapan Mishra 12 Apr, 2016

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 => 7 Cheers .. keep writing.

Surya Prakash
Surya Prakash 14 Apr, 2016

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.

Surya Prakash
Surya Prakash 14 Apr, 2016

sorry the order of the matrix is 7.

Ravindra Junghare
Ravindra Junghare 14 Apr, 2016

Tavish....Good Case Study...!!!

Sonal 16 Apr, 2016

Can't exactly get what happened from step 4??

Sonal 16 Apr, 2016

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 :)

Shubhi 19 Apr, 2016

Hi, Generally, calls allocation to call agent is done by using Queue Theory. Can you please explain its mechanism. Thankyou!

Raju Kommarajula
Raju Kommarajula 29 Apr, 2016

Thanks Tavish. This article has motivated me to stepping in to Operational Analytics.

Parth Gera
Parth Gera 18 Aug, 2016

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?