Insights | Digital Enablement

Improving Effectiveness through Coaching Data: A Practical Guide

Because we know behavioral coaching influences key KPIs, we can use coaching data to create custom programs to identify effective coaching methods and trends across teams.

A woman talks with her hands during a remote coaching session.

Author: Colin Elliott


Previously, we talked about behavioral coaching and how it fosters an environment that empowers call center agents to provide even better experiences for customers. Today, we are going to get our hands dirty with data and start finding answers to complicated questions like “who is an effective coach?” or “who are good coachees?” and “do good coachees even need a good coach?”.

To answer these, we are going to build out a Python script using some commonly available libraries. First, however, we’ll be generating some simulated data to analyze.


Using Faker to Create Coaching Data

There are plenty of advantages to using simulated data. It allows us to test different scenarios by picking exactly the data we want to use and put it in a shape that aligns with our Python scripts. Another benefit is that we can demonstrate the system is effectively identifying trends by manipulating a coach/coachee dataset around a particular behavior.

So, how should we generate coaching data to learn and test our analysis? Let’s start with 10 coaches and let’s say each has 10 people on their team that they coach, giving us 100 coachees. We’ll use the Faker library to generate some random names for our coaches and coachees.

Coaching Data code example - creating Faker data.

Now, let’s use that code to generate some people. 

Coaching Data code example - creating simulated coaches

Now, let’s pick a timeline for the coaching sessions we are going to create. Here we pick the past year. 

Coaching Data code example - creating a timeline

For this example, we’re using RevGen’s values of “Respect”, “Integrity”, “Stewardship”, and “Enjoyment” as the behaviors we are collecting coaching data on. Spoiler: In the next code snippet, we will purposefully skew the data to ensure that our analysis finds a trend.  

How frequently can we coach? 

Coaching Data code example - creating code to adjust for frequency

At the top, we initialize a limitation on how often coaching can reasonably happen per week. This is set to 10 sessions per week (2 sessions a day, five days a week). Then we use a counter and modulus math to continuously loop over our coaches and coachees to create our coaching sessions. 

Each coaching session record will end up looking like this:

Coaching Data code example - generating simulated coaching session data

(Shoutout to Rainbow CSV for such a useful and beautiful extension in VS Code!) 

Our basic information is the identity of the coach, the identity of the coachee, coaching date, up to 3 behaviors coached within the session, and 13 KPI measurements from -100 to 100 to represent percent change since previous measurement. To close out this data generation script, here’s the “meat and potatoes” of the code to print the data to a CSV to be analyzed. 

Coaching Data code example - exporting data to a csv

Typically, we would ensure KPI measurements are in a different table, as they are generally recorded at a different frequency than the coaching sessions, but for this example we are simplifying the output.  



Analyzing the Data and Identifying Trends

Now that we have our coaching sessions and KPI changes, let’s look into how we would find trends between these behaviors and their effect on KPIs. 

Coaching Data code example - understanding trends in the data

Looking at the code above, we first get a distinct list of behaviors from our CSV. Since our behavior has generated as a “string” of non-numerical values, we need to turn it into a number so that we can run a Pearson correlation coefficient analysis on the Panda DataFrame. The KPIs are already numbers, and we are going to assume that the KPI percent change is over the 2 weeks following the coaching session.  

In future articles, we can discuss in further detail how to provide granular KPI measures and experiment with varying timespans following the coaching session. This is all the code other than the imports for things like NumPy, Pandas, OS, etc. 

So, what are the results? 

Coaching Data code example - creating an artificial trend to test the code

Remember the spoiler above in generating our coaching sessions? If someone coaches “S” for “Stewardship”, we can override kpi[4] to be 100(%) and when it’s not coached, set it to 0. This way, we’ve artificially created a trend between coaching on stewardship and kpi[4]. Here are the results! 

Coaching Data code example - the output of the results

At first, it looks like the random number generator is doing a decent job being random. We can see that most trends are close to 0, but for “S” we see a positive trend with kpi[4] (zero-indexed arrays means kpi[4] is printed as kpi5). We can also pipe this data into another Python library to create better visualizations than just a text print-out. 

Now that we’ve demonstrated how we can easily find trends between coaching behaviors and KPIs, we can identify which behaviors to coach on to improve specific KPIs. We could also take this further to find which coaches have a higher KPI percent change, as a measure of effectiveness. This enables us to make better decisions about: 

  • Which KPIs are most important 
  • Which coaches are most effective at improving the behaviors that influence those KPIs 
  • How to train for those coaching skills  



We hope this demonstrated how easy it is to create and analyze call center coaching data in Python with commonly available tools. These tools and data analysis techniques can be applied to all sorts of use cases across almost every industry.  

If you are excited about finding trends in your own data, contact us to schedule a chat with one of our experts or head to our Digital Enablement page to learn more about our other services.


A headshot of Colin Elliott of RevGen Partners

Colin Elliott is a Staff Engineer with RevGen Partners, having over 10 years of experience in web development across telecom, healthcare, geospatial, e-commerce, and supply-chain/planning. He’s a huge advocate of open-source software/hardware and enjoys keeping up with the latest web innovations.


Subscribe to our Newsletter

Get the latest updates and Insights from RevGen delivered straight to your inbox.