Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Financial Planning & Analysis

On this page

Financial Planning & Analysis @ GitLab

How to work with us

On issues

Issues the FP&A team works on have the ~"FP&A" label. This applies to both the Finance and Analytics Issue Trackers. This will ensure that expectations are set accordingly and the work gets delievered in a timely and professional way.

The Analytics part of the FP&A team focuses on delivering project based works and at times will assist with ad-hoc analysis.

Async Status Updates

Since we are a remote company, we utilize a Slack plugin called Geekbot to coordinate various status updates. There is currently 1 status update configured in Geekbot:

Weekly Status Update

The Weekly Status Update is configured to run at noon on Fridays, and contains three questions:

  1. What progress was made on your deliverables this week? (MRs and Closed Issues are good for this)

    The goal with this question is to show off the work you did.

  2. What do you plan to work on next week? (think about what you'll be able to merge or close by the end of the week)

    Think about what the next most important thing is to work on, and think about what part of that you can accomplish in one week. If your priorities aren't clear, talk to your manager.

  3. Who will you need help from to accomplish your plan for next week? (tag specific individuals so they know ahead of time)

    This helps to ensure that the others on the team know you'll need their help and will surface any issues earlier.

Retrospectives

The FP&A Team holds a quarterly planning retrospective to discuss what went well and what didn't go well. The team will take action items away from the Retrospective to improve the planning process and overall efficiency at GitLab.

The FP&A Team uses GitLab's Engineering methodology to hold the Retrospectives, which are detailed on the Team Retrospectives page.

What is purpose of FP&A @ GitLab?

  1. Help drive GitLab’s business value
  2. Facilitate execution of GitLab's strategy
  3. Ensure financial and operational goals of GitLab are defined, documented and achieved
  4. Evangelize awareness of strategy and each departments role in achieving it
  5. Ensure sound decision support

How GitLab’s FP&A plans to get there….

  1. Manage the budget and planning processes for GitLab's operating plan
  2. Build and maintain an integrated financial model that projects performance into the future
  3. Measure, track and report on GitLab’s KPIs
  4. Constantly look for opportunities to improve performance
    • Process Improvements
    • Analytics
    • Education

Where to find our Models?

  1. GitLab Financial Model: Google Drive – FP&A » Models » GitLab Financial Model
  2. Revenue Model: Google Drive – FP&A » Models » Revenue Model
  3. Capacity Model(s): Google Drive – FP&A » [FBP - Function Owner Folder, i.e S&M] » Planning » Capacity Model
  4. Rolling 4 Quarter Forecast sheets: Google Drive – FP&A» Planning » [Current Fiscal Year] » [Current Fiscal Year] Plan » [Quarter-Year thru Quarter-Year]]
  5. Rolling 4 Quarter Forecast Feed sheets for Program Spend & Team: Google Drive – FP&A» Planning » Financial Model » Feed Sheet
  6. Budgets vs. Actuals: Google Drive – FP&A» [FBP - Function Owner Folder, i.e S&M]» Budget vs. Actuals » [Current Fiscal Year] » Dashboard File

GitLab's Operating Plan vs Integrated Financial Model

Operating Plan

GitLab's operating plan is a guideline to understand how much capital it needs and how the capital will be consumed. The operating plan helps GitLab answer questions like "how fast can we hire and when?" The operating plan consists of three main components: the revenue model, the rolling 4 quarter forecast and the budget. The operating plan can also be considered a bottom-up plan.

Integrated Financial Model

GitLab's integrated financial model is synonymous to its operating plan, but the integrated financial model is based soley on business drivers. The integrated financial model dynamcially answers questions like “What are our limits in comparison to the total addressable market?” and provides "What-if" scenarios. The integrated financial model also helps set the long term profitablity goals. GitLab has established business drivers in each function of the business and continues to refine them to ensure its tracking accordingly. The integrated financial model can also be considered a top-down plan.

Operating Plan

Forecasting Growth Using a Growth Persistence Model

Scale Venture Partners developed a Growth Persistence Model based on research on private and public software companies. The Persistence Model shows that ARR growth rates typically decline year over year, with each year’s growth being, on average 85% to that of the preceding year. We use this methodology to set our growth targets.

Operating Plan Diagram

alt text

Planning @ GitLab


Making Changes to the Plan to Optimize for Growth

Our Plan is intended to ensure that the Company has sufficiently considered what is required to support the Company's financial goals. The Plan ensures that there is accountability across all divisions that can be measured. The Plan is not intended to represent a cap on what we can invest in support of maximizing the growth of the Company. We encourage our team members to actively seek opportunities that will help us grow faster. Those growth initiatives will be evaluated, as follows:

  1. If the investment will allow us to exceed our IACV plan by at least an equal amount in the current year we will do it. The e-group will be informed of the increased spend and anticipated impact.
  2. If the increased spend will allow us to exceed our IACV targets next year then we will quantify the impact and raise our financial guidance for the following year. The e-group will review these investments and will, in some cases, request board approval for relief against current year planning targets.
  3. If we need to exceed spend to achieve our current plan we should review as an e-group and inform the board. We won't necessarily get plan relief unless there are extenuating circumstances but we will do what is right for the business.

Rolling 4 Quarter Forecast

GitLab creates an annual Plan which establishes our financial objectives for the coming fiscal year and is used for measurement of the Company's ability to achieve goals. Things move quickly and our forecast needs to iterate quickly to keep up with the business. Accordingly, we run a rolling 4 quarter forecast process. This means that we are always looking out a minimum of 12 months when projecting revenue and expenses, and we update those forecasts at least once per quarter. We plan our expenses at a high level (e-group) and we expect this group to make prioritizations and trade-offs while remaining accountable against the plan parameters. By reforecasting quarterly, we can quickly evaluate and incorporate new initiatives into our forecasting model. That being said, we do follow an annual plan to set our goals and measurement for our top-level targets of revenue, profitability and expense management.

Tips - Rolling 4 Quarter Forecast

Note: During the last quarter of the year, GitLab runs a 5 quarter forecast that aligns with it's annual planning efforts.

Updating Budget vs. Actuals


  1. Open file: FP&A > Templates > Corporate F&A > Open 'Budget vs. Actual' Blank File GSheet
    • Please note that Budget vs. Actuals for all departments already exist within the FP&A Shared Drive
  2. Open Netsuite and go to Budget vs. Actual report
    • Download the spreadsheet and copy & paste into the relevant month (e.g. For March 2019, paste into the March 2019 BvA Tab)
  3. Open Netsuite and go to 'Income Statement Detail with JE name data' report
    • Copy / paste spreadsheet into the relevant month (e.g. For March 2019, paste into the March 2019 Detail Tab)
  4. Once these spreadsheets are loaded in the spreadsheet, the numbers should auto-populate for the relevant months

Campaign Finance Tag Verification Process


The Finance Business Partner for Sales & Marketing will review transactions within the general ledger accounts for marketing program expense (6100’s) on a weekly basis to ensure that campaign tags are present. An exception report will be delivered to the Marketing Operations team either validating that all tags are present, or pointing out those transactions where the tag is missing.

This is an interim process until report automation is complete. The desktop procedures are as follows:

  1. Log-in to NetSuite
  2. Enter “Master Transaction Search USD Consolidated” into the search bar to open report.
  3. Download master transaction list filtered to show the current month’s transactions into Excel
  4. Import data to Google Sheets and filter out non-relevant data to show 6100 accounts
  5. Filter to show transactions that do not include the campaign tag, this will become the exception report
  6. Email exception report to Marketing Operations and Accounting to make the appropriate adjustments

Monthly Investor Update


Each month we send to our investors an update no later than the 10th day following the end of the month. For further reference see our blog post.

Format

  1. Thanks
  2. Asks
  3. Key Metrics
  4. Lowlights
  5. Highlights
  6. Expectations (next month)

Process

  1. On the 1st day of the month, the FinOps lead prepares a draft of the previous months investor update in a google document and posts in the #investor-update slack channel.
  2. On the same day the draft is added to the #investor update slack channel, the FinOps lead will @mention e-group members with asks for topics related to the investor update agenda.
  3. The e-group members will have no later than the 9th of each month to review and add input.
  4. No later than the 10th of each month the will CEO send the update to the investor mailing list.
  5. Once the investor update is sent to the investor mailing list, the FinOps lead will add the current investor update to the #investor-update slack channel, along with highlight commentary on GitLab's operating metrics.

Relevant Locations for Investor Update Process

Revenue Model & Metrics Tab within the Financial Model

1: Sales Metrics 2019 Monthly Metrics

2: Periscope

3: Metrics Report (SFDC)

4: All Pipeline Report (SFDC)

5: Late Stage Report (SFDC)

6: Orders Processed Report (SFDC)

7: Revenue Spreadsheet sent from Controller

8: Cash Flow Forecast (Accounting Will Send Over – typically within the 4th of the Month)

9: Pingdom

10: LTV for Metrics

11: BambooHR

12: Zendesk

13: Snowflake

14: Sales Pipeline Analysis

Once Metrics & Financial Model Are Completed for Investor Update Process

Budgeting @ GitLab

GitLab uses several different methods to budget specific revenue and expenses. During the Rolling 4 Quarter Forecast planning process GitLab may use one of the following methods to allocate revenue or expenses.

Spreading

Recording activities based on the percentages across a certain time period. This can either be on a percentage spread or an amount spread

One Time Adjustments

Recording activities based on a one time basis across a certain time period. These activities are geared toward, but not limited to, marketing expenses.

Headcount Growth (+/-)

Recording activities based on headcount growth across a certain time period.


Out of Budget Business Case

In the event an organization is asking to spend money outside either the Annual Plan or Quarterly Forecast, you should develop a business case showcasing what the spend is for and how Gitlab can benefit from spending it.

This business case should be completed in conjunction with your Finance Business Partner (FBP) to articulate the financial impact of the request. Below are a few examples of the question you should be trying to answer:

Together with your FBP , this analysis should be presented to your leader for approval.

Monthly Finance Planning Meeting

Purpose

Each month after the financials have been published, GitLab reviews department spend data in detail. The goal of this analysis is to compare department budgets with actual results and examine any material discrepancies between budgeted and actual costs. These costs are reviewed at the divisional department level, allowing GitLab to measure progress in meeting its plan, forecast, and operating model. During the meeting, the Finance Business Partners will review GitLab results in addition to a detailed overview. Each division can expect to review the following during the monthly meetings:

  1. Company results
    • Bookings IACV, TCV
    • Spending OpEx vs Plan
  2. Divisional level review
    • Last month and last fiscal quarter (once per quarter)
  3. Department level review
    • Last month and last fiscal quarter (once per quarter)
  4. Review next 4 quarters vs Plan for the Division and for each department

Process

Following the month-end close, the Finance Business Partners will distribute department income statements to the related budget owners and the e-group members. Each department is then responsible for comparing these reports, which contain actual costs, to the budget. Departments, with guidance from the Finance Business Partners, should analyze their data and if necessary, discuss items of interest and take appropriate action. Any questions regarding the cost data should be discussed with the Finance Business Partner.

Timing

  1. The Accounting Manager will send the income statements on or before the 15th of each month.
  2. The Finance Business Parters will prepare a templated budget vs actual reporting package for distribution to the divisional and departmental leaders.
  3. With guidance from the Finance Business Partners, each division and department leader will review the budget vs actuals in the same month.

Expense Controls and Improving Efficiency

  1. The primary mechanism to ensure efficient spend of company assets is the approval process prior to authorization. See Signature Authorization Matrix.
  2. The second mechanism is the budget vs actual review to determine reasons for variances vs Plan.

Variance Analysis

At GitLab, different measures of materiality thresholds are measured during the variance analysis process, including the Monthly Finance Planning Meeting. During the variance analysis processs the GitLab FP&A team analyzes and isolates any variance in question to the lowest level possible. The team reviews detailed items in order to identify the root cause of the variance. This could include transaction date, cost center, vendor, location, department or additional low level details.

At GitLab, analysts begin the variance analysis process with trended data to understand if there is a recognizable pattern. This helps determine if the variance was caused by incremental change or driven by one particular event and helps identify the root path quickly.

The FP&A team takes the following into consideration while evaluating variances in relation to materiality thresholds:

Variance

The difference between the budget vs expected cost

Variance Analysis

The study of differences between budgetary and expected cost.

Types of Threshold

Generally accepted accounting principles (GAAP) does not provide definitive guidance in distinguishing material information from immaterial information. Therefore, GitLab uses a percentage based approach for defining materiality thresholds and can be found below.

Revenue Thresholds

The total is inclusive of all Revenue activities including subscription, professional services, swag shop and other revenue streams.

Cost of Goods Sold Total Threshold

The total is inclusive of all COGS activities including Customer Support, Professional Services, and other allocation expenses.

Operating Expense Total Threshold

The totals are exclusive of the sum of operating expenses. Each operating expense line item (i.e. Sales, Marketing, R&D, G&A) should be measured on a line item basis

Individual GL Accounts


Calendar of Events

We follow the cadence below in our planning process:

Throughout the year the Executive Business Partner team puts together a calendar of events for board members and other events associated with planning. Those events can be found in the GitLab Board Calendar sheet.

Monthly Update

Monthly Important Dates

Quarterly Forecast

Quarterly Important Dates

Annual Plan

Annual Planning Important Dates

Terminology

GitLab Integrated Financial Model

Business Drivers (also known as Gearing Ratios)

At GitLab, planning starts with long term goals. GitLab uses business drivers to forecast out long term goals by division. By using division specific business drivers that tie into the long term goals, GitLab is able to quickly and dynamically shift priorities based on external or internal changes.

Business drivers are the key inputs and activities that drive the operational and financial results of a business.[^3]

Long Term Profitability Targets

Our long term profitability target for EBITA (Earnings Before Interest Taxes and Amortization) is 20% of revenue. Our long term gross margin target is 85% but is dependent on the revenue mix between products - self managed and gitlab.com and professional services. Gross margin is defined as total revenue less cost of revenues as defined by GAAP and reported in the Company's financial statements. This analysis can be found on the Finance Dashboard. Other financial planning targets are described in the divisional area (e.g. sales, marketing, development, etc.) in this handbook. We plan to achieve our long term profitability target as our revenue growth rate approaches 30%. The long term target for operating expenses as a percentage of revenue for G&A is 10%.

Division Long Term Target
Cost of Sales 10% of Revenue
R&D 20% of Revenue
Marketing 13% of Revenue
Sales 23% of Revenue
G&A 10% of Revenue
Total 80% of Revenue

FY20 Financial Planning Goals

Division FY20 Expense Target
Customer Support 10% of ARR
Customer Solutions 80% of PS Recognized Revenue
Engineering 70% of IACV
Sales 75% of IACV
Marketing 45% of IACV
G&A 10% of Total Operating Expense

FP&A Team Responsibilities

Manager, Financial Planning & Analysis

Responsibilities
  1. Coordinates Monthly Investor Update
  2. Coordinates Rolling 4 Quarter Process
  3. Coordinates Annual Planning Process
  4. Ensures GitLab's financial model and forecast is accurate
  5. Partners with Business Operations to ensure Financial Systems & Integration Roadmap
  6. Develops data processes in partnership with the Data team
  7. Responsible for financial and mechanical integrity of the operating model and street model

Performance Indicators

Budget, Forecast Creation Cycle Time

Measures the number of days from Rolling Forecast Kickoff to Quarterly Board Meeting. The time period is quarterly. The target is 30 days.

Team Morale Score

Measures the team morale by using the tool Lead Honeslty. The time period is monthly, but will use a weekly average based on weekly 1:1s. The target is 9 on a scale from 1-10.

Position Description

Finance Business Partner

Responsibilities
  1. Reviews BvsA Analysis with e-group member (or designee)
  2. Responsible for leading the Rolling 4Q forecast process
  3. Building integrated financial model with gearing ratios for business.
  4. Coordinates Monthly KPI and OKR prep
  5. Maintain and develop KPI definitions for divisional business units
  6. Develops and maintains cost and efficiency benchmarking
  7. Develops and maintains Unit economic analysis
  8. Partners with division leaders to ensure financial and key metric forecast accuracy of supported division
  9. Provides Adhoc Analysis to supported division leaders
  10. Helps business group negotiate Vendor Contracts
  11. Develops and maintains compensation modeling

Performance Indicators

Number of days to release variance analysis to business leaders

Measures the number of days from month end close to release variance analysis to business leaders. The target is five business days.

Plan vs Actual

Measures the percentage deviation between the actual costs and the planned costs over the same time period. The time period may be monthly, quarterly, or yearly. The target deviation percentage is +/- 1.5%.

Percentage Deviation= (actual expenses-planned expenses)/planned expenses * 100

Position Description - Engineering Specific

Position Description - Sales Specific

Financial Analyst

Responsibilities
  1. Reviews BvsA Analysis - G&A Division
  2. Partners with Recruiting on hiring plan
  3. Develops and maintains contract & renewal projections
  4. Develops and maintains monthly audit projects
  5. Develops and maintains planned vs actuals GitLab Team analysis
  6. Reviews BambooHR to ensure GitLab Team are in the correct divisions and departments

Performance Indicators

Time to compile variance analysis reporting

Measures the days from Accounting Close to distrubtion of Budgets vs Actuals to Finance Business Partners. The time period is monthly. The target is 1 day after Accounting close.

Time to complete investor update reporting

Measures the days from 1st of month to release of the investor update. The time period is monthly. The target is 1 day after Accounting close. The target is 5 days from 1st of the month.

Position Description

Data Analyst, Finance

Responsibilities
  1. Support the FP&A team in driving financial and operational initiatives by analyzing data and discovering insights
  2. Focus on financial and operational specific data
  3. Priorities will be set by the Financial and Operations Lead but will collaborate with and report into the Data Team
  4. Expand our data warehouse with clean data, ready for analysis
  5. Understand and document the full lifecycle of data from numerous sources and how to model it for easy analysis
  6. Build reports and dashboards to help teams identify opportunities and explain trends across data sources
  7. Follow and improve our processes for maintaining high quality data and reporting
  8. Implement the DataOps philosophy in everything you do
  9. Build upon and document our common data framework so that all data can be connected and analyzed

Performance Indicators

Adoption of Data Team BI Charts Throughout the Company

Measurements can be found under the Data Teams Performance Indicators

Position Description

Cost Analyst

coming soon…..

Business Analyst, Finance

coming soon…..

Data Scientist

coming in Q1-2020

Department Structure

Creating New Departments

Successfully creating new departments require that various company systems be updated to capture newly defined department structures. Once the need for a new department arises, follow these steps:

  1. Create an issue using the dept_change template.
  2. In the issue, add the appropriate team members from each department included in the checklist.
  3. Disclose the nature of the new department. Is the new department simply a name change, or there is a structural modification?
  4. Provide all detail necessary to ensure team members are assigned to the newly created departments.

Below is a table showing the structure of GitLab departments as they exist in BambooHR and netsuite. Please check out the Team Page to see our org chart.

Cost & Reporting Structure

At GitLab, the lowest level of tracking reporting structure starts with departments. For reporting and accounting purposes, departments are assigned both a cost center and a division. In certain cases, a department may span multiple cost centers based on GitLab's allocation methodology.

The cost center, divison, and department reporting structure can be found in the Data Team repo located below. In efforts to keep a single source of truth for organizational and reporting purposes, the Data Team maintains any changes implemented by the FP&A team as a result of an organizational change.

Cost & Reporting Structure

1. Cost Center

A grouping of departments within GitLab to which costs may be charged for accounting purposes.

2. Division

A grouping of departments in which specific activities are carried out within GitLab. Aligning specific departments to divisions ensure the proper operations and efficiency for supporting and creating value for GitLab's customers.

3. Department

An area of special expertise or responsibility within a GitLab division.

Allocation Methodology

GitLab allocates cost items based on consumption of resources or headcount. Below are the workflow and diagrams that illustrate how various cost items are allocated:

Workflow

Pre-Allocation P&Ls

The grid highlighted as Pre-Allocation P&Ls in the diagram below highlights what GitLab P&L structure would look like if there were no allocation methodology. The grid represents Cost Centers and Departments that fall within those Cost Centers. In order to support different dimensional P&Ls and ensure expenses are flowing to the proper Cost Center, GitLab applies an allocation methodology. Therefore, the Pre-Allocation P&Ls is meant to provide clarity and be a starting point to the allocation methodology process.

Allocation Methodology

The grid highlighted as Allocation Methodology in the diagram below highlights the specifc processes that occur in order to achieve proper expense allocations to their respective Cost Centers.

Step 1: Yellow Process

The allocation methodology is applied to the G&A Company Allocation department. Items that are recorded to the G&A Company Allocation department are software expenses and one off expenses. The software expenses are for software used by the entire company (examples include gmail and slack). At times one off expenses are also recorded to the G&A Company Allocation department (examples include Contribute, payroll service fees, etc).

Note: One thing to note during the Yellow Process is the Infrastructure expenses are removed. Infrastructure is allocated during the next phase of the allocation cycle. Therefore no shared expenses will hit the Infrastructure P&L.

Step 2: Red Process

The allocation cycle for GitLab's SaaS offering GitLab.com starts. The Finance Business Parter for R&D maintains an allocation model to provide Accounting with an allocation breakout of expenses as well as a P&L based on allocation. The model can be found by searching My Drive > GitLab.com Model. The allocation for GitLab.com is broken out into two different methods.

  1. Free vs Paid Users
    • Infrastructure
    • 3rd Party Expenses [i.e. Hosting Services]
  2. Percentage of Revenue
    • Customer Support

These allocation breakouts will be documented in the GitLab.com model and will flow into the Post Allocation P&Ls. GitLab allocates these expenses to 3 Cost Centers

  1. Marketing - Free users
  2. R&D - Internal users
  3. Cost of Sales - Paid users
Step 3: Blue Process

The Blue Process, which encapsulates the Yellow and Red process, is meant to bring the full allocation cycle together before the Post Allocation P&Ls are rendered.

Post Allocation P&Ls

The grid highlighted as Pre-Allocation P&Ls in the diagram below highlights the final process during the allocation cycle. As a result, new P&Ls are generated to show the breakout of the Infrastructure team across Cost Centers as well as GitLab.com.

Diagram

alt text

Misc

Creating & Updating Models

If you create and/or update to a model that materially impacts it, please make sure to make a quick note of what you did in the ChangeLog. This is important because it keeps us on all the same page.

Note: At this time, GitLab use's the term Division to describe the makeup of its internal structure. In the future, the plan is to use the term Function to describe it's internal structure.