The Playbook for the Workplace Analytics analyst is a guide for identifying the useful analyses or functions for exploring a particular area of Workplace Analytics. This guide is divided into the following sections.
For each individual function, you can click into the linked documentation for more information on how to run them and what outputs are returned.
Before proceeding below, you should have installed and loaded the R package as well as having loaded in your data sets. Read our Getting Started guide for more information on how to do this.
It is recommended that you start with running
keymetrics_scan() on a Standard Person Query, which returns a heat map table with an overview with all the key metrics in Workplace Analytics. For more detailed breakdowns, you may also run
collaboration_report() to establish the baseline of collaboration.
Here are a list of other individual plots that you can run:
collab_rank()to view the top and bottom ranking values for each HR attribute for
*_rank()functions all come with multiple plot modes, and you can use
create_rank()to run the analysis for any metric.
One option to advance the analysis is to take a deep dive into meetings.
meeting_skim()can be used to understand the overall % of meetings which are low quality. Hours can be expressed in terms of number of FTE-weeks (or months), or even dollar values for greater impact. Typical assumptions used are 40 employee-hours per week and 180 per month.
meetingtype_dist()can be used to understand the distribution of long or large meetings. Another alternative,
meetingtype_summary()can be used to visualize the proportion of long or large meetings as a bar plot (requires a Ways of Working Assessment query).
meeting_tm_report()can reveal patterns underlying meeting subject lines. The report is made of individual visualization functions, i.e.:
meeting_quality()creates a bubble plot that visualizes
Low_quality_meeting_hourson the x-axis and
Meeting_hourson the y-axis.
Another option is to analyse collaboration metrics across a time dimension.
period_change()to visualize the distribution across the population in a before vs after comparison.
IV_by_period(), which uses the before vs after as an outcome variable to calculate which Workplace Analytics metrics have had the greatest impact according to Information Value.
*_trend(), can be run between new hires and existing employees. The data can be wrangled to isolate the first
nperson-weeks and compare such weeks with onboarded weeks.
identify_tenure()can be used at the beginning for understanding the distribution of employee tenure, provided that a valid
HireDateorganizational variable is available.
HireDate(or its equivalent) in a person query from
dplyr::case_when(), which can then be used in the
hrvarargument in most functions.
The key metrics in relation to Employee Wellbeing are Work Week Span, Collaboration Hours, and After-hours collaboration hours, which can be visualized in a number of ways. You can start with the
capacity_report() which provides a baseline of this view.
*_fizz()functions offer a way of quickly visualizing the distribution of the capacity metrics. For the traditionalist, you can also use
create_boxplot()for the given metric to create boxplot views. The distribution views are especially useful for identifying latent capacities.
workpatterns_area(). Interesting views include analysing Sent emails by time of day, which can illustrate whether employees are still highly active outside of work hours.
You can classify person-weeks or persons into individual archetypes with
workpatterns_classify(), which reveals break patterns in employees’ weeks. If you are unsure with where to start, you can also run
workpatterns_report() which combines a number of plots based on the classified archetypes. You will need an Hourly Collaboration query.
flex_index() computes a Flexibility Index which is a measure of how flexible teams are working, based on three components, i.e.:
By filtering on email and meeting subject lines in a Person Query, it is possible to compute the employee-hours that have been invested into a particular business process. To identify the right keywords to use in the filter, you can run
meeting_tm_report() or one of its component functions (
tm_wordcloud()) to examine what keywords are related to the business process you have in mind.
You can start with the
coaching_report() which provides a baseline of this view.
mgrrel_matrix(): a two-by-two matrix describing manager relations styles experienced by the analysis group.
Moving an employee from an IC to a Manager typically ‘costs’ 6-8 collaboration hours weekly. Optimizing the organizational structure can save many hours of weekly collaboration across the organization. One view is to produce a two-by-two matrix of
NumberOfDirectReports, visualizing the values as Collaboration Hours. An example might be:
library(wpa) library(dplyr) sq_data %>% group_by(PersonId, Layer, NumberOfDirectReports) %>% summarise(across(Collaboration_hours, ~mean(., na.rm = TRUE))) %>% group_by(Layer, NumberOfDirectReports) %>% summarise(across(Collaboration_hours, ~mean(., na.rm = TRUE))) %>% pivot_wider(names_from = NumberOfDirectReports, values_from = Collaboration_hours)
Optimization by consolidating direct reports can lead to valuable savings in collaboration hours.
Good manager coaching is a key factor for employee engagement and retention.
Employee sentiment analysis
IV_report()for calculating Information Value, using Workplace Analytics metrics (including manager metrics) as predictor variables and employee sentiment scores as an outcome variable.
identify_churn()can be used to identify employees who have churned from the dataset.
You can start with the
connectivity_report() which provides a baseline of this view.
Collaboration can be visualized as a network in several ways.
network_p2p(). See function documentation for more information on methodology and usage.