This is a continuation of the case study example for optimization of a business process. You can find the previous part at this link. In this case study example, you are helping a company reduce their process turn-around-time through advanced analytics and data science. You will use some of the key data science activities including business process optimization, customer & agent profiling, linear programming, and real-time analytics. But before we do that, let’s decipher some similarities between this problem and jigsaw puzzles. As you will notice later, on some metaphysical level, the solution to this problem is about solving a jigsaw puzzle of yin yang to produce harmony.
Optimization of Jigsaw Puzzles
For over 250 years jigsaw puzzles are among the most popular past times for youngsters and adults alike. The origins of jigsaw puzzles, traced back to the 18th century, were about putting together pieces of maps to help children learn geography. Solving a jigsaw puzzle requires the player to connect the right pieces together to complete the picture. Among the many strategies to solve the game, a commonly used strategy is to classify and group the pieces with similar colors before connecting the pieces.
The objective of the solution for this case study example is to solve a jigsaw puzzle between callers and agents. The purpose of this solution is to patch the callers to the right agents so that the overall call duration can be minimized. The underlining assumption is that certain agents are better suited to solve a certain kind of problems. Moreover, personality and demographic profile of certain agents enable them to have harmonious and purposeful communication with the callers of a certain profile.
Call Center Case Study Example
Back to the case study example where you are helping Cut-to-the-Chase, an inbound call center for a digital television network, to swiftly resolve customer complaint and grievance calls. As discussed in the previous part, Cut-to-the-Chase has an average call handle time of 12 minutes with close to 4 minutes of wait time for a customer call. The objective here is to reduce the average call handle time (without hold time) to 5 and a half minutes from 8 minutes. This will be quite an elaborate solution with the following steps
- Unsupervised learning to segment callers into different profiles based on their demographic, usage and complaints log information
- Supervised learning to identify the propensity of an agent to resolve a query for different caller profiles within desired query resolution time
- Linear programming for real-time analytics to patch the right caller profile with the agent profile based on propensity scores derived in step 3
I will primarily focus on step 3 of real-time analytics and optimization through integer programming in this case study example. I will briefly discuss steps 1, and 2 in the next few segments. We have discussed both unsupervised and supervised learning algorithms in a great detail in two different case study examples on YOU CANalytics. Please read those case studies to gain an intuitive and practical understanding of these learning algorithms.
Step 1: Caller Profiling – Unsupervised Learning
The first step for this solution is to segment the customer base into groups based on the similarity between them. The customer base is segmented based the following broad classes of variables.
- Demographic profile of callers
- Channel usage based on day and time
- Complaints log
Cluster analysis of customer base is a highly creative exercise which requires a good understanding of customer demographics and sociology. From the machine learning point of view, the methods used for customers profiling and segmentation are part of unsupervised learning. Some of the common unsupervised learning methods are K-mean clustering, hierarchy clustering, and self-organizing maps (SOM). Unsupervised learning and cluster analysis is discussed in greater details in an earlier case study example on YOU CANalytics. I recommend you read the telecom case study to learn more about unsupervised learning.
Step 2: Query Resolution Score – Supervised Learning
The second step is to profile agents based on their likelihood to resolution queries of each caller segment derived in step 1. These agent profiles and likelihood scores for query resolution are derived using supervised learning methods. Supervised learning methods are discussed in greater details in an earlier case study example on YOU CANalytics. I recommend you read the telecom case study to learn more about supervised learning.
Steps 1, and 2 are iterative in nature to arrive at optimal segments of callers and agents. Moreover, there will be as many propensity or estimation models for step 2 as the number of caller profiles in step 1.
Step 3: Real Time Analytics – Optimization
The final step in the solution is to connect the dots between callers and agents based on their profiles and propensity to have a harmonious conversation to resolve callers’ query. This optimization process is part of real-time analytics. Think of this step as a telephone operator connecting the callers to agents in real time with the objective of fast query resolution time. To get a grip of this method we will use a simpler case of connecting 4 waiting-callers with 4 available agents as displayed in the adjacent schematic. We will use linear programming to optimize these connections and solve our jigsaw puzzle of callers and agents.We have discussed in the previous part that linear programming problem has the following 3 key components:
- Objective / Goal
- Decision Variables
- Constraints
Objective or Goal, in this case, is to minimize the average call time between callers and agents. In the previous 2 steps, we have derived the average time each agent takes to resolve the queries for the caller profiles. This table displayed the average time in seconds.
Agent 1 | Agent 2 | Agent 3 | Agent 4 | |
Caller Profile 1 | 215 | 246 | 540 | 221 |
Caller Profile 2 | 436 | 936 | 848 | 542 |
Caller Profile 3 | 81 | 328 | 324 | 288 |
Caller Profile 4 | 579 | 263 | 775 | 157 |
If caller profile 1 is connected with agent 3 then expected call time will be 540 seconds. Similarly, Caller profile 2’s connection with agent 2 will result in 936 seconds of average call time. The maximum query resolution time for the above matrix is 540+936+288+576 = 2343 seconds. This is roughly 9 minutes 45 seconds average call time. Even the most likely average call time for this matrix is close to 7 minutes. The idea is to identify connections to achieve minimum average call.
Decision variables : here the decision variables are the connection between callers and agents. There is a total of 16 possibilities of connections (i.e. 4 × 4) hence there are 16 decision variables. These variables can only take the value of either 0 or 1 which makes this a special case of linear programming. Here, 0 means no connection and 1 means connection.
Constraints : there are two main constraints in this problem i.e.
- Each caller can be connected to just one agent
- Similarly, each agent needs to be connected to just one caller
This is, of course, a special case where the number of callers is equal to the number of agents. However, in real life, this is not always the case hence constraints need to be modified for an unbalanced problem where callers ≠ agents. Moreover, other business rules can also be added to the list of constraints such as preferential treatment for a certain set of customers etc.
Solution to linear programming
The solution to the above linear programming problem to minimize total time is 246+436+324+157 = 1163 Seconds. This makes the average call time equal to 4 minutes and 51 seconds. This is a significant improvement over 7 minutes of average call time achieved through creating random connections between callers and agents. This is a strong case for Cut-to-the-Chase to implement this real-time analytics solution in their existing process.
Find the solution to the linear programming problem in the attached Excel
Excel Solver Solution to Real Time Analytics – Linear Programming Solver |
Sign-off Note
Jigsaw puzzles have so many similarities with life. Our every act in life is to create connections with the next step. We get a good education in the hope of a good job. A good job is to provide for our loved ones. The goal of a jigsaw puzzle is to create a complete picture through several parts. At times working on one single part seems tedious and pointless, but when it adds to the wholesome picture of life it all seems worthwhile.
Dear M. Roopam Upadhyay…
after greeting
recently I study your case study example on the call centre, and I want to implement it in matlab, really I want more clarification on how this example works, my question:-
1. in the first step, what’s the type of data in caller profile ??? also the data type of agents in the second step
2. Do you have real data set to apply on this example??
3. in step 3, Are the average time each agent takes to resolve the queries for the caller profile assumed or calculated? if calculated? how?
thank you so much for you helpless