Learn R Programming

vivainsights

Analyze and Visualize Viva Leader Insights data

This is an R package for analyzing and visualizing data from Microsoft Viva Advanced Insights (previously Microsoft Workplace Analytics).

With the vivainsights package, you can...

  1. Run prebuilt analysis and visualizations off advanced insights data with settings for HR variables, privacy threshold, etc.

  2. Leverage advanced analytics functions which are built for Viva Insights metrics

  3. Integrate analysis of Viva Insights data with your R workflow seamlessly

This library is compatible with the latest implementation of the Viva Insights Analyst Workbench. For the R library compatible with the legacy implementation, please visit the wpa package website or GitHub repository .


Also check out our package cheat sheet for a quick glimpse of what vivainsights offers:

Related repositories


Code of Conduct

We would ask you to please read the Microsoft Open Source Code of Conduct prior to engaging with this package.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.


Finding this project useful?

:star: Please star this repository to keep us going!

Copy Link

Version

Install

install.packages('vivainsights')

Monthly Downloads

296

Version

0.6.0

License

MIT + file LICENSE

Maintainer

Martin Chan

Last Published

February 20th, 2025

Functions in vivainsights (0.6.0)

collaboration_rank

Collaboration Ranking
collaboration_area

Collaboration - Stacked Area Plot
check_inputs

Check whether a data frame contains all the required variable
check_query

Check a query to ensure that it is suitable for analysis
collaboration_trend

Collaboration Time Trend
collaboration_line

Collaboration Time Trend - Line Chart
comma

Add comma separator for thousands
collaboration_fizz

Distribution of Collaboration Hours (Fizzy Drink plot)
collaboration_sum

Collaboration Summary
collaboration_dist

Distribution of Collaboration Hours as a 100% stacked bar
create_bar

Mean Bar Plot for any metric
create_density

Create a density plot for any metric
create_bubble

Create a bubble plot with two selected Viva Insights metrics (General Purpose), with size representing the number of employees in the group.
create_bar_asis

Create a bar chart without aggregation for any metric
create_dt

Create interactive tables in HTML with 'download' buttons.
create_IV

Compute Information Value for Predictive Variables
create_dist

Horizontal 100 percent stacked bar plot for any metric
copy_df

Copy a data frame to clipboard for pasting in Excel
create_boxplot

Box Plot for any metric
create_fizz

Fizzy Drink / Jittered Scatter Plot for any metric
create_hist

Create a histogram plot for any metric
create_scatter

Create a Scatter plot with two selected Viva Insights metrics (General Purpose)
create_sankey

Create a sankey chart from a two-column count table
create_rank

Rank all groups across HR attributes on a selected Viva Insights metric
create_line

Time Trend - Line Chart for any metric
create_line_asis

Create a line chart without aggregation for any metric
create_inc

Create an incidence analysis reflecting proportion of population scoring above or below a threshold for a metric
create_lorenz

Calculate the Lorenz Curve and Gini Coefficient in a Person Query
create_period_scatter

Period comparison scatter plot for any two metrics
create_rank_combine

Create combination pairs of HR variables and run 'create_rank()'
email_trend

Email Hours Time Trend
email_summary

Email Summary
create_trend

Heat mapped horizontal bar plot over time for any metric
cut_hour

Convert a numeric variable for hours into categorical
create_stacked

Horizontal stacked bar plot for any metric
create_tracking

Create a line chart that tracks metrics over time with a 4-week rolling average
email_fizz

Distribution of Email Hours (Fizzy Drink plot)
email_dist

Distribution of Email Hours as a 100% stacked bar
external_dist

Distribution of External Collaboration Hours as a 100% stacked bar
external_rank

Rank groups with high External Collaboration Hours
extract_date_range

Extract date period
email_line

Email Time Trend - Line Chart
extract_hr

Extract HR attribute variables
email_rank

Email Hours Ranking
external_sum

External Collaboration Summary
flag_em_ratio

Flag Persons with unusually high Email Hours to Emails Sent ratio
export

Export 'vivainsights' outputs to CSV, clipboard, or save as images
flag_ch_ratio

Flag unusual high collaboration hours to after-hours collaboration hours ratio
generate_report2

Generate HTML report based on existing RMarkdown documents
flag_outlooktime

Flag unusual outlook time settings for work day start and end time
flag_extreme

Warn for extreme values by checking against a threshold
hr_trend

Employee count over time
hrvar_count

Create a count of distinct people in a specified HR variable
g2g_data

Sample Group-to-Group dataset
heat_colours

Generate a vector of n contiguous colours, as a red-yellow-green palette.
identify_datefreq

Identify date frequency based on a series of dates
identify_churn

Identify employees who have churned from the dataset
identify_nkw

Identify Non-Knowledge workers in a Person Query using Collaboration Hours
identify_inactiveweeks

Identify Inactive Weeks
identify_holidayweeks

Identify Holiday Weeks based on outliers
identify_habit

Identify whether a habitual behaviour exists over a given interval of time
identify_shifts

Identify shifts based on outlook time settings for work day start and end time
identify_tenure

Tenure calculation based on different input dates, returns data summary table or histogram
keymetrics_scan_asis

Run a summary of Key Metrics without aggregation
generate_report

Generate HTML report with list inputs
jitter_metrics

Jitter metrics in a data frame
is_date_format

Identify whether string is a date format
import_query

Import a query from Viva Insights Analyst Experience
maxmin

Max-Min Scaling Function
keymetrics_scan

Run a summary of Key Metrics from the Standard Person Query data
meeting_dist

Distribution of Meeting Hours as a 100% stacked bar
meeting_fizz

Distribution of Meeting Hours (Fizzy Drink plot)
identify_privacythreshold

Identify groups under privacy threshold
meeting_line

Meeting Time Trend - Line Chart
hrvar_trend

Track count of distinct people over time in a specified HR variable
external_fizz

Distribution of External Collaboration Hours (Fizzy Drink plot)
external_line

External Collaboration Hours Time Trend - Line Chart
identify_outlier

Identify metric outliers over a date interval
hrvar_count_all

Create count of distinct fields and percentage of employees with missing values for all HR variables
network_summary

Summarise node centrality statistics with an igraph object
meeting_rank

Meeting Hours Ranking
network_g2g

Create a network plot with the group-to-group query
meeting_trend

Meeting Hours Time Trend
mt_data

Sample Meeting Query dataset
one2one_fizz

Distribution of Manager 1:1 Time (Fizzy Drink plot)
one2one_dist

Distribution of Manager 1:1 Time as a 100% stacked bar
p2p_data_sim

Simulate a person-to-person query using a Watts-Strogatz model
network_p2p

Perform network analysis with the person-to-person query
one2one_freq

Frequency of Manager 1:1 Meetings as bar or 100% stacked bar chart
pad2

Create the two-digit zero-padded format
p2p_data

Sample person-to-person dataset
pairwise_count

Perform a pairwise count of words by id
theme_wpa_basic

Basic theme for 'vivainsights' visualisations
tm_clean

Clean subject line text prior to analysis
tm_wordcloud

Generate a wordcloud with meeting subject lines
totals_bind

Row-bind an identical data frame for computing grouped totals
vivainsights-package

vivainsights: Analyze and Visualize Data from 'Microsoft Viva Insights'
validation_report

Generate a Data Validation report in HTML
theme_wpa

Main theme for 'vivainsights' visualisations
one2one_sum

Manager 1:1 Time Summary
one2one_trend

Manager 1:1 Time Trend
xicor

Calculate Chatterjee's Rank Correlation Coefficient
rgb2hex

Convert rgb to HEX code
pq_data

Sample Person Query dataset
wrap

Add a character at the start and end of a character string
tm_cooc

Analyse word co-occurrence in subject lines and return a network plot
tm_freq

Perform a Word or Ngram Frequency Analysis and return a Circular Bar Plot
wrap_text

Wrap text based on character threshold
%>%

Pipe operator
meeting_tm_report

Generate a Meeting Text Mining report in HTML
meeting_summary

Meeting Summary
one2one_line

Manager 1:1 Time Trend - Line Chart
one2one_rank

Manager 1:1 Time Ranking
totals_col

Fabricate a 'Total' HR variable
track_HR_change

Sankey chart of organizational movement between HR attributes and missing values (outside company move) (Data Overview)
read_preamble

Read preamble
prep_query

Prepare variable names and types in query data frame for analysis
tstamp

Generate a time stamp
us_to_space

Replace underscore with space
IV_report

Generate a Information Value HTML Report
afterhours_trend

After-Hours Time Trend
anonymise

Anonymise a categorical variable by replacing values
camel_clean

Convert "CamelCase" to "Camel Case"
afterhours_line

After-hours Collaboration Time Trend - Line Chart
any_idate

Identify whether variable is an IDate class.
afterhours_dist

Distribution of After-hours Collaboration Hours as a 100% stacked bar
afterhours_rank

Rank groups with high After-Hours Collaboration Hours
afterhours_summary

Summary of After-Hours Collaboration Hours
afterhours_fizz

Distribution of After-hours Collaboration Hours (Fizzy Drink plot)