GitLab
A single application for the entire DevOps lifecycle
GitLab Professional Services
Accelerate your software lifecycle with help from GitLab experts
Popular GitLab use cases
Remote Work Continuous Integration (CI/CD) Source Code Management (SCM) Out-of-the-box Pipelines (Auto DevOps) Security (DevSecOps) Agile Development Value Stream ManagementGitLab
A single application for the entire DevOps lifecycle
GitLab Professional Services
Accelerate your software lifecycle with help from GitLab experts
Popular GitLab use cases
Remote Work Continuous Integration (CI/CD) Source Code Management (SCM) Out-of-the-box Pipelines (Auto DevOps) Security (DevSecOps) Agile Development Value Stream ManagementKPI | Health | Status |
---|---|---|
Average days to close | Unknown |
|
Scalable Employment Solution | Unknown |
|
Deliver Quantified Savings | Unknown |
|
New hire location factor - Finance Team | Unknown |
|
The number of business days required to report final monthly financial results. As a private company our target is 10 business days moving to 5 business days as a public company. This analysis can be found on the [Finance Dashboard](https://app.periscopedata.com/app/gitlab/483606/Finance-KPIs?widget=6500157&udv=780777). The days to close is sourced from the accounting close checklist.
Target: 10
Chart (Sisense↗)
Status: Unknown
GitLab has contracted team members in multiple countries and is instilling a scalable employment solution for 100% of its team members. A scalable employment solution may include hiring through a PEO, hiring through a contractor's entity or, where possible, a direct contract. The percentage is calculated as a percentage of contractors covered by a scalable employment solution in relation to the total workforce.
Target: 100%
URL(s)
Status: Unknown
Cost savings are achieved through the procure to pay process. Savings are calculated as the savings achieved by comparing the initial vendor proposal price to the final purchase price. In the event of a contract renewal, in addition to the above, savings can also be calculated as the savings achieved by comparing the previous cost per unit (eg. user, business metric, etc.) to the final cost per unit. Savings negotiated at the cost per unit level are also cost savings to be calculated as savings. Note these savings are not directly tied to budget. This aligns with the following core business objectives, control spend and build a culture of long-term savings on procurement costs, streamline the purchasing process, and minimize financial risk.
Target: greater than 3,000,000 over a rolling 12 month period.
This KPI cannot be public.
URL(s)
Status: Unknown
This is a subset of an existing KPI. Please see the definition for the parent KPI.
Target: < 0.73
Chart (Sisense↗)
Status: Unknown
Level | Meaning |
---|---|
Okay | The KPI is at an acceptable level compared to the threshold |
Attention | This is a blip, or we’re going to watch it, or we just need to enact a proven intervention |
Problem | We'll prioritize our efforts here |
Unknown | Unknown |
Level | Meaning |
---|---|
Okay | We are correctly capturing and measuring data for GitLab.com and self-managed instances. |
Attention | Missing one of: GitLab.com or self-managed data. |
Problem | Missing both: GitLab.com and self-managed data. |
Unknown | Unknown |
Pages, such as the Engineering Function Performance Indicators page are rendered by an ERB template that contains HTML code.
Other PI Pages
sectionmaturity
table, make changes to the Performance Indicators Maturities ERB fileThese 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_indicator_target(name)
helper function returns the target value from the target
property for a specific PI from the Performance Indicators data file.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 the Performance Indicators data file and returns a signed chart URL for embedding a Sisense chart into the handbook.The heart of pages like this is the Performance Indicators data file which is in YAML file. 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 |
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. |
org |
Required | the organizational grouping (Ex: Engineering Function or Development Department) |
is_key |
Required | boolean value (true/false) that indicates if it is a (key) performance indicator |
health |
Required | has two additional elements/property - level (inclusive value between 0-3) and reasons. This should be updated monthly before Key Meetings by the DRI. |
urls |
Optional | list of urls associated with the (K)PI |
sisense_data |
Optional | contains elements/properties related to Sisense, including chart (numeric Sisense widget ID), dashboard (numeric Sisense dashboard ID), shared_dashboard (Sisense shared dashboard ID), embed (v2) |
public |
Optional | boolean flag that can be set to false where a (K)PI does not meet the public guidelines. |
instrumentation |
Optional | has two additional elements/property - level (inclusive value between 0-3) and reasons. This should be updated monthly before Key Meetings by the DRI. |
Here are some additional tips:
shared_dashboard
, chart
, and the dashboard
key-value pairs to the 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 :
urls:
should be an array (indented lines starting with dashes) even if you only have one urlmaturity.level
and health.level
display a value between 0 and 3 (inclusive). The health value is a manual input while the maturity is an automated value based on other discrete (K)PI data properties.