Customer Support Department Performance Indicators

Displays Support KPIs, pulled from full list of company performance indicators.

Executive Summary

KPI Health Status
Support Satisfaction (SSAT) Attention
  • SSAT is very good (above 93%) but target is 95%.
  • Collecting feedback from dissatisfied customers to identify trends.
  • Support Managers review trends to create changes to workflows and/or training.
Manager to customer support rep ratio Okay
  • While we have an overall ratio of less than 10:1 as a department at time of this evaluation, we have re-balanced the larger imbalance in EMEA with new management in place.
Service Level Agreement (SLA) Attention
  • Inconsistent performance to a 95% target achievement.
  • Focused staffing to key time gaps with higher level of ticket SLA breaches.
  • Adjusting workflow to enable working with customers in their preferred timezone.
  • Working with the data team on understanding the inconsistent we see between our ZenDesk SLA data and Periscope via 2857
Data Privacy Requests - Service Level Agreement (SLA) Attention
  • Inconsistent performance to 30 day resolution targets
Customer Support Margin Okay
  • Tracked and reported monthly, and for the year we are under our margin target for spend.
  • Maintain focus on spend while iterating on needs for non-headcount expense requirements.
Customer Wait Times Okay
  • TBD
Support Handbook MR Rate Okay
  • above target
Support MR Rate Problem
  • TBD
Support Team Member Retention Okay
  • above target
Support Average Age of Open Positions Unknown
  • new metric, monitoring progress

Key Performance Indicators

Support Satisfaction (SSAT)

A measure of how satisfied our customers’ are with their interaction with the GitLab Support team. This is based on survey responses from customers after each ticket is solved by the Support team using a Good or Bad rating.

Target: At or above 95% Health:Attention

  • SSAT is very good (above 93%) but target is 95%.
  • Collecting feedback from dissatisfied customers to identify trends.
  • Support Managers review trends to create changes to workflows and/or training.

Chart (Tableau↗)

Manager to customer support rep ratio

The Manager to IC Ratio is the ratio of individual contributors to one manager. This data comes from Bamboo HR.

Target: The target for this metric is at or below 10:1 Health:Okay

  • While we have an overall ratio of less than 10:1 as a department at time of this evaluation, we have re-balanced the larger imbalance in EMEA with new management in place.

Chart (Tableau↗)

Service Level Agreement (SLA)

GitLab Support commits to an initial substantive response in a specified amount of time from the time the customer submits a ticket. The SLA for this first reply is based on each customer’s Support Plan.

Target: At or above 95% to Priority Support SLAs Health:Attention

  • Inconsistent performance to a 95% target achievement.
  • Focused staffing to key time gaps with higher level of ticket SLA breaches.
  • Adjusting workflow to enable working with customers in their preferred timezone.
  • Working with the data team on understanding the inconsistent we see between our ZenDesk SLA data and Periscope via 2857

Chart (Tableau↗)

URL(s):


Data Privacy Requests - Service Level Agreement (SLA)

GitLab Support responds to Data Subject Requests in an amount of time required by the laws of various governing bodies. The SLA for these requests is determined by the legal team.

Target: At or above 95% SLAs Health:Attention

  • Inconsistent performance to 30 day resolution targets

URL(s):


Customer Support Margin

Total Support headcount and non-headcount expenses as a percent of ARR.

Target: Headcount and non-headcount expenses to be at or below 10% of ARR Health:Okay

  • Tracked and reported monthly, and for the year we are under our margin target for spend.
  • Maintain focus on spend while iterating on needs for non-headcount expense requirements.


Customer Wait Times

The following KPI tracks the ratio between the median “Resolution Time” and the total median “Customer Wait Time” per ticket. “Resolution Time” is defined as the amount of time between the ticket creation and the last ticket communication. “Customer Wait Time” is defined as the total amount of time the ticket spends in the “Open” & “New” states over the tickets life cycle.

Target: At or below 35% Health:Okay

  • TBD

Chart (Tableau↗)

Support Handbook MR Rate

The handbook is essential to working remote successfully, to keeping up our transparency, and to recruiting successfully. Our processes are constantly evolving and we need a way to make sure the handbook is being updated at a regular cadence. This data is retrieved by querying the API with a python script for merge requests that have files matching /source/handbook/support/** over time.

Target: 0.5 Health:Okay

  • above target

Chart (Tableau↗)
		</tableau-viz>
	</div>

Support MR Rate

Support Department MR Rate is not directly a key performance indicator used to indicate productivity of our Support team members. Nonetheless, we want to track the average MR merged per team member to encourage updates to Documentation and Support ‘fixes’. We currently count all members of the Support Department (Director, EMs, ICs) in the denominator because this is a team effort. The full definition of MR Rate is linked in the url section.

Target: At or above 1 MRs per Month Health:Problem

  • TBD

Chart (Tableau↗)
		</tableau-viz>
	</div>

Support Team Member Retention

We need to be able to retain talented team members. Retention measures our ability to keep them sticking around at GitLab. Team Member Retention = (1-(Number of Team Members leaving GitLab/Average of the 12 month Total Team Member Headcount)) x 100. GitLab measures team member retention over a rolling 12 month period.

Target: at or above 84% This KPI cannot be public Health:Okay

  • above target

URL(s):


Support Average Age of Open Positions

Measures the average time job openings take from open to close. This metric includes sourcing time of candidates compared to Time to Hire or Time to Offer Accept which only measures the time from when a candidate applies to when they accept.

Target: at or below 50 days Unknown

  • new metric, monitoring progress

Chart (Tableau↗)
		</tableau-viz>
	</div>

Regular Performance Indicators

Support Performance to Operating Plan

Tracks overall Support spend against expectations from GitLab’s Operational Plan.

Target: at or within 5% of Fiscal Year Operating plan Unknown

  • This is a new proposed PI
  • Data is currently tracked in a spreadsheet.


Support Department Discretionary Bonus Rate

The number of discretionary bonuses given divided by the total number of team members, in a given period as defined. This metric definition is taken from the People Success Discretionary Bonuses KPI.

Target: at or above 10% Health:Attention

  • Metric is new and is being monitored

Chart (Tableau↗)
		</tableau-viz>
	</div>

Support Department Promotion Rate

The total number of promotions over a rolling 12 month period divided by the month end headcount. The target promotion rate is 12% of the population. This metric definition is taken from the People Success Team Member Promotion Rate PI.

Target: 12% Health:Okay

  • Metric is new and is being monitored
  • Between Dec 2019 and Nov 2020, we had a one time change for a group of Service Agents to Support Engineers. Due to this change, the promotion rate is higher in those months. Aug 2020 through Nov 2020 have been corrected to reflect this.

Chart (Tableau↗)
		</tableau-viz>
	</div>

Legends

Health

Value Level Meaning
3 Okay The KPI is at an acceptable level compared to the threshold
2 Attention This is a blip, or we’re going to watch it, or we just need to enact a proven intervention
1 Problem We'll prioritize our efforts here
-1 Confidential Metric & metric health are confidential
0 Unknown Unknown

How pages like this work

Data

The heart of pages like this are Performance Indicators data files which are YAML files. Each - denotes a dictionary of values for a new (K)PI. The current elements (or data properties) are:

Property Type Description
name Required String value of the name of the (K)PI. For Product PIs, product hierarchy should be separate from name by " - " (Ex. {Stage Name}:{Group Name} - {PI Type} - {PI Name}
base_path Required Relative path to the performance indicator page that this (K)PI should live on
definition Required refer to Parts of a KPI
parent Optional should be used when a (K)PI is a subset of another PI. For example, we might care about Hiring vs Plan at the company level. The child would be the division and department levels, which would have the parent flag.
target Required The target or cap for the (K)PI. Please use Unknown until we reach maturity level 2 if this is not yet defined. For GMAU, the target should be quarterly.
org Required the organizational grouping (Ex: Engineering Function or Development Department). For Product Sections, ensure you have the word section (Ex : Dev Section)
section Optional the product section (Ex: dev) as defined in sections.yml
stage Optional the product stage (Ex: release) as defined in stages.yml
group Optional the product group (Ex: progressive_delivery) as defined in stages.yml
category Optional the product group (Ex: feature_flags) as defined in categories.yml
is_key Required boolean value (true/false) that indicates if it is a (key) performance indicator
health Required indicates the (K)PI health and reasons as nested attributes. This should be updated monthly before Key Reviews by the DRI.
health.level Optional indicates a value between 0 and 3 (inclusive) to represent the health of the (K)PI. This should be updated monthly before Key Reviews by the DRI.
health.reasons Optional indicates the reasons behind the health level. This should be updated monthly before Key Reviews by the DRI. Should be an array (indented lines starting with dashes) even if you only have one reason.
urls Optional list of urls associated with the (K)PI. Should be an array (indented lines starting with dashes) even if you only have one url
funnel Optional indicates there is a handbook link for a description of the funnel for this PI. Should be a URL
sisense_data Optional allows a Sisense dashboard to be embeded as part of the (K)PI using chart, dashboard, and embed as neseted attributes.
sisense_data.chart Optional indicates the numeric Sisense chart/widget ID. For example: 9090628
sisense_data.dashboard Optional indicates the numeric Sisense dashboard ID. For example: 634200
sisense_data.shared_dashboard Optional indicates the numeric Sisense shared_dashboard ID. For example: 185b8e19-a99e-4718-9aba-96cc5d3ea88b
sisense_data.embed Optional indicates the Sisense embed version. For example: v2
sisense_data_secondary Optional allows a second Sisense dashboard to be embeded. Same as sisense data
sisense_data_secondary.chart Optional Same as sisense_data.chart
sisense_data_secondary.dashboard Optional Same as sisense_data.dashboard
sisense_data_secondary.shared_dashboard Optional Same as sisense_data.shared_dashboard
sisense_data_secondary.embed Optional Same as sisense_data.embed
public Optional boolean flag that can be set to false where a (K)PI does not meet the public guidelines.
pi_type Optional indicates the Product PI type (Ex: AMAU, GMAU, SMAU, Group PPI)
product_analytics_type Optional indicates if the metric is available on SaaS, SM (self-managed), or Both.
is_primary Optional boolean flag that indicates if this is the Primary PI for the Product Group.
implementation Optional indicates the implementation status and reasons as nested attributes. This should be updated monthly before Key Reviews by the DRI.
implementation.status Optional indicates the Implementation Status status. This should be updated monthly before Key Reviews by the DRI.
implementation.reasons Optional indicates the reasons behind the implementation status. This should be updated monthly before Key Reviews by the DRI. Should be an array (indented lines starting with dashes) even if you only have one reason.
lessons Optional indicates lessons learned from a K(PI) as a nested attribute. This should be updated monthly before Key Reviews by the DRI.
lessons.learned Optional learned is an attribute that can be nested under lessonsand indicates lessons learned from a K(PI). This should be updated monthly before Key Reviews by the DRI. Should be an array (indented lines starting with dashes) even if you only have one lesson learned
monthly_focus Optional indicates monthly focus goals from a K(PI) as a nested attribute. This should be updated monthly before Key Reviews by the DRI.
monthly_focus.goals Optional indicates monthly focus goals from a K(PI). This should be updated monthly before Key Reviews by the DRI. Should be an array (indented lines starting with dashes) even if you only have one goal
metric_name Optional indicates the name of the metric in Self-Managed implemenation. The SaaS representation of the Self-Managed implementation should use the same name.