|Average days to close||
|Scalable Employment Solution||
|Deliver Quantified Savings||
|New hire location factor - Finance Team||
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.
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.
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.
This is a subset of an existing KPI. Please see the definition for the parent KPI.
Target: < 0.73
|The KPI is at an acceptable level compared to the threshold|
|This is a blip, or we’re going to watch it, or we just need to enact a proven intervention|
|We'll prioritize our efforts here|
|We are correctly capturing and measuring data for GitLab.com and self-managed instances.|
|Missing one of: GitLab.com or self-managed data.|
|Missing both: GitLab.com and self-managed data.|
Other PI Pagessection
maturitytable, make changes to the Performance Indicators Maturities ERB 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
reasonfor a PI maturity based on other data properties.
performance_indicator_target(name)helper function returns the target value from the
targetproperty 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.
||Required||String value of the name of the (K)PI|
||Required||Relative path to the performance indicator page that this (K)PI should live on|
||Required||refer to Parts of a KPI|
||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.|
||Required||The target or cap for the (K)PI. Please use
||Required||the organizational grouping (Ex: Engineering Function or Development Department)|
||Required||boolean value (true/false) that indicates if it is a (key) performance indicator|
||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.|
||Optional||list of urls associated with the (K)PI|
||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)|
||Optional||boolean flag that can be set to
||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:
chart, and the
dashboardkey-value pairs to the Performance Indicators data file under the
: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 url
health.leveldisplay 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.