Business Operations

The Business Operations (BizOps) team is responsible for translating business goals (strategy) into tactical operations (execution).

Finance and reporting

Sources of truth


Each month, expansion and MAU amounts are calculated and sent as invoices through Xero.


This page describes Sourcegraph’s analytics function, our data sources, and how to use our data tools.

To reach us, mention @ericbm in the most relevant channel (i.e. #marketing for a marketing-related question).

Submitting a data request

Projects: Proposals to capture and report on new data are in GitHub issues in the Sourcegraph analytics repository. Provide the following data to help us understand and prioritize your request:

  • What is the purpose of the visualization?
  • Will it be frequently used, or is it only needed sporadically?
  • How does it support Sourcegraph’s company and team OKRs?
  • Do you know how you want the data visualized? If you need a new graph or chart, adding a photo of a sketch on paper helps immensely.
  • When does this need to be delivered?
  • How urgent is this request?

Small asks and questions: Post in the #analytics channel.

If you need clarification or are not sure about any of the above, ask a question in the Slack #analytics channel.

Data sources

We collect data from the following:

  • Google Analytics: Website analytics for Sourcegraph marketing and docs pages (not
  • HubSpot: Marketing automation and CRM
  • MixMax: Email marketing automation (Apollo is not used in production, but still retains data)
  • ZoomInfo: Data enrichment of account and contact information
  • Site-admin pages: customer subscriptions and license keys
  • Pings from self-hosted Sourcegraph instances containing anonymous and aggregated information. There are specific guidelines that must be followed for teams to add ping data.
  • Custom tool to track events on the instance
  • Prometheus dashboards show high-level insight into the health of a Sourcegraph instance to admins. Sourcegraph teammates can see the health of

We have written policies about how we handle customer information.

Debugging pings

Options for debugging ping abnormalities. Refer to life of a ping for the steps in the ping process.

  1. BigQuery: Query the update_checks error records and/or check the latest pings received based on installer email admin.
  2. Dataflow: Review Dataflow: WriteSuccessfulRecords should be full of throughputs and the Failed/Error jobs should be empty of throughputs.
  3. Stackdriver (log viewer): Check the frontend logs, which contain all pings that come through Use the following the advanced filters to find the pings you’re interested in.
  4. Test on a Sourcegraph dev instance to make sure the pings are being sent properly resource.type="k8s_container" resource.labels="dot-com" resource.labels.cluster_name="prod" resource.labels.container_name="frontend" "[COMPANY]" AND "updatecheck"

Data tools

  • Looker: Business intelligence/data visualization tool
  • Google Cloud Platform: BigQuery is our data warehouse and the database Looker runs on top of
  • Google Sheets: There are a number of spreadsheets that Looker queries (by way of BigQuery).
  • BizOps builds ad-hoc tools to analyze data for various reasons. The projects are in the Google Drive Analytics folder and the source code is available in the analytics repo.

Data pipelines

Every underlying data source (not chart!) is assumed to always be up-to-date unless noted otherwise.


Every Sunday night or Monday morning, BizOps scripts are triggered to retrieve data from HubSpot and upload it to BigQuery. As a result, HubSpot data in Looker is updated weekly, not daily. If you need the latest data during the week, mention @ericbm in the #analytics channel in Slack.

Lead-generation from HubSpot is triggered by Zapier and is always up-to-date. Marketing operations has more information on lead-gen events.

Using Looker

Looker is a self-service tool with many pre-built reports and visualizations. Read our instructions for getting started with Looker and reach out in the #analytics Slack channel if you have any questions.

Looker boards

These two boards will contain 99% of what you’re looking in Looker. We recommend adding them to your account (this will pop-up on the top of the page if you haven’t already added them) to simplify your Looker navigation. If what you’re looking for is not on these boards, you can explore the folders.

Getting started with Looker

Looker provides tools for building and exploring custom reports and visualizations using custom fields captured from various Sourcegraph data sources. If you’re a new user, here’s where to get started.

To simplify navigation within Looker, adding the go-to-market and product/engineering boards to your list (the button under the board title).

Querying Looker data

Looker created a query language called LookML for defining calculations and data relationships in a SQL database. The ‘Explores’ and other functionality you see in Looker is all based on a LookML model. The average Sourcegraph teammate should not need to write any LookML code, but should you need or want to, here are some resources to get started.