GitLab Professional Services
Accelerate your software lifecycle with help from GitLab experts
Popular GitLab use cases
Enterprise Small Business Continuous Integration (CI/CD) Source Code Management (SCM) Out-of-the-box Pipelines (Auto DevOps) Security (DevSecOps) Agile Development Value Stream Management GitOpsGitLab Professional Services
Accelerate your software lifecycle with help from GitLab experts
Popular GitLab use cases
Enterprise Small Business Continuous Integration (CI/CD) Source Code Management (SCM) Out-of-the-box Pipelines (Auto DevOps) Security (DevSecOps) Agile Development Value Stream Management GitOpsKPI | Health | Status |
---|---|---|
Sales Pipeline Coverage | Unknown |
|
Percent of Ramping Reps at or Above 70% of Quota | Okay |
|
Percent of Ramped Reps at or Above Quota | Unknown |
|
Win Rate | Okay |
|
New ARR | Unknown |
|
New Logos | Unknown |
|
IACV vs Plan | Okay |
|
ProServe Revenue vs Cost | Okay |
|
ProServe Deal and Dollar Attach Rate | Unknown |
|
Time to First Value | Unknown |
|
Total Renewal Rate | Unknown |
|
On Time Renewal Rate | Unknown |
|
Net Retention | Okay |
|
CAC Ratio | Unknown |
|
Self-serve Sales Ratio (deal and dollar) | Problem |
|
New Hire Location Factor | Okay |
|
Sales Capacity | Unknown |
|
Licensed User Growth | Unknown |
|
ARPU | Unknown |
|
ARR YoY | Unknown |
|
IACV of pipeline with close dates in a given period (quarter) divided by IACV target.
Target: On day one of the current quarter, total pipeline coverage should be 2.4X, total pipeline for the following quarter should be 2.2X, and total pipeline for 2 quarters out should be 1.0X. On day one of the current quarter, stage 3+ pipeline coverage should be 1.5X and stage 3+ pipeline for the following quarter should be 0.8X.
Health: Unknown
A Rep is considered ramping if they have a tenure of less than or equal to 12 months in that particular role at GitLab. The percentage of attainment calculation is the the quota divided by the gross IACV from closed won opportunities in a particular month.
Target: greater than 70%
Chart (Sisense↗)
Health: Okay
A Rep is considered ramped if they have a tenure greater than 12 months in that particular role at GitLab. The percentage of attainment calculation is the the quota divided by the gross IACV from closed won opportunities in a particular month. Industry average is 45%-65% of reps achieving 100% of quota.
Target: greater than 55%
Chart (Sisense↗)
Health: Unknown
For a given month (using opportunity close date), the win rate is calculated as the count of closed won sales-assisted, new first order opportunities divided by the total count of closed sales-assisted, new first order opportunities.
Target: 60% for SMB, 50% for Mid-Market, 45% for Large
Chart (Sisense↗)
Health: Okay
ARR for a customer's first paying month.
Target: Monthly target set by Finance
Chart
Health: Unknown
Count of new customers by month
Target: Monthly targets set by Sales & Marketing
Chart
Health: Unknown
The year-to-date cumulative sum of IACV divided by the year-to-date plan for IACV. Details on IACV can be found in the sales handbook page.
Target: greater than 1
This KPI cannot be public.
URL(s)
Health: Okay
For a given month, revenue from professional services divided by professional services operating expenses. Details on professional services revenue can be found in the sales handbook page.
Target: greater than 1.1
Chart (Sisense↗)
Health: Okay
Deal Attach Rate is the number of Professional Services closed won opportunities divided by the number of total closed won opportunities during a given month (by opportunity close date). Dollar Attach Rate is the Professional Services Value of closed won opportunities divided by the IACV of closed won opportunities during a given month (by opportunity close date).
Target: 13% for Deal Attach Rate, 6% for Dollar Attach Rate
Chart
Health: Unknown
Number of days from the original contract start date for a customer to activate at least 10% of their purchased licenses.
Target: 30 days
Chart
Health: Unknown
Dollars that renewed (at any time) divided by dollars that were supposed to renew in a given month.
Target: to be determined
Chart
Health: Unknown
Dollars that renewed in a given month divided by dollars that were supposed to renew in that month.
Target: to be determined
Chart
Health: Unknown
Net Retention Calculation is extensively explained in the Customer Success's Vision page.
Target: Above 130%
This KPI cannot be public.
URL(s)
Health: Okay
Sales and Marketing expenses (including the cost of free users of gitlab.com) over trailing twelve months divided by current quarter ARR annualized minus ARR from the same period in the prior year annualized. Details on CAC can be found in the sales handbook page.
Target: Monthly target set by Finance
This KPI cannot be public.
URL(s)
Health: Unknown
For a given month, the self-serve sales ratio (deal count) is calculated as the count of closed won web-direct opportunities divided by the count of all closed won opportunities. The self-serve sales ratio (IACV) is calculated as the net IACV of closed won web-direct opportunities divided by the net IACV of all closed won opportunities.
Target: greater than 10% (IACV), greater than 60% (deal count)
Chart (Sisense↗)
Health: Problem
The average location factor of all newly hired team members within the last rolling 3 month as of the end of the period.
Target: less than 0.72
Chart (Sisense↗)
Health: Okay
Total number of sales reps adjusted for their tenure
Target: Monthly targets set by Sales
Chart
Health: Unknown
The increase or decrease in contracted users on active paid subscriptions from one period of time to the next. Excludes OSS, Education, Core and other non-paid users. The data source is Zuora.
Target: 3% increase per month
Chart (Sisense↗)
Health: Unknown
The number of contracted users on active paid subscriptions. Excludes OSS, Education, Core and other non-paid users. The data source is Zuora.
Target: 2% increase per month
This KPI cannot be public.
URL(s)
Health: Unknown
ARR for a given month divided by ARR twelve months prior. Details on ARR can be found in the sales handbook page.
Target: Monthly target set by Finance
This KPI cannot be public.
URL(s)
Health: Unknown
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 |
0 | Unknown | Unknown |
Pages, such as the Engineering Function Performance Indicators page are rendered by an ERB template that contains HTML code.
Other PI Pages
sectionThese ERB templates calls custom helper functions that extract and transform data from the Performance Indicators data file.
kpi_list_by_org(org)
helper function takes a required string argument named org
(deparment or division level) that returns all the KPIs (pi.is_key == true) for a specific organization grouping (pi.org == org) from the Performance Indicators data file.pi_maturity_level(performance_indicator)
helper function automatically assigns a maturity level based on the availability of certain data properties for a particular PI.pi_maturity_reasons(performance_indicator)
helper function returns a reason
for a PI maturity based on other data properties.performance_indicators(org)
takes a required string argument named org
(deparment or division level) that returns two lists - a list of all KPIs and a list of all PIs for a specific organization grouping (department/division).signed_periscope_url(data)
takes in the sisense_data property information from Performance Indicators data files and returns a signed chart URL for embedding a Sisense chart into the handbook.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 Meetings 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 Meetings by the DRI. |
health.reasons |
Optional | indicates the reasons behind the health level. This should be updated monthly before Key Meetings 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 Meetings by the DRI. |
implementation.status |
Optional | indicates the Implementation Status status. This should be updated monthly before Key Meetings by the DRI. |
implementation.reasons |
Optional | indicates the reasons behind the implementation status. This should be updated monthly before Key Meetings 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 Meetings by the DRI. |
lessons.learned |
Optional | learned is an attribute that can be nested under lessons and indicates lessons learned from a K(PI). This should be updated monthly before Key Meetings 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 Meetings by the DRI. |
monthly_focus.goals |
Optional | indicates monthly focus goals from a K(PI). This should be updated monthly before Key Meetings 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. |
Above ...
Below ...
At ...
At or above ...
At or below ...
shared_dashboard
, chart
, and the dashboard
key-value pairs to the corresponding Performance Indicators data file under the sisense_data
property:
in strings as it's an important character in YAML and will confuse the data parsing process. Put the string in "quotes" if you really need to use a :