Skip to content

Metrics & Data Sources: Overview

Feature flags let you control what users see. But to know whether a change is actually an improvement, you need data. GrowthBook’s entire analysis pipeline is built around a simple idea: your data lives in your own warehouse, and GrowthBook reaches in to analyze it — nothing is copied or stored inside GrowthBook itself.

StepWhat happens
Data SourceConnect GrowthBook to your warehouse (BigQuery, Postgres, Snowflake, ClickHouse, etc.)
Experiment assignmentA query tells GrowthBook which user saw which variation and when
Fact TablesYou define the event tables that contain the raw metric signals
MetricsYou compose metrics (proportion, mean, ratio) on top of Fact Tables
Experiment ResultsGrowthBook runs the stats engine against your warehouse and surfaces per-variation metric values
flowchart TD
  app["Your App"] --> sdk["SDK fires experiment_viewed(userId, variation)"]
  sdk --> wh["Warehouse (BigQuery / Snowflake / ...)"]
  wh --> gb["GrowthBook queries on demand"]
  gb --> ui["Results shown in GrowthBook UI"]
How GrowthBook fits in your stack

GrowthBook never ingests raw events. It connects to your warehouse with read-only credentials and runs SQL queries when you click Update Data in the UI or schedule a refresh.

LessonWhat you will learn
Data SourcesHow to connect a data source and write the experiment assignment query
Defining MetricsFact Tables, metric types, metric windows, and reusable metric definitions
Experiment ResultsHow to read the results table, uplift, confidence intervals, and guardrail metrics
Stats EngineBayesian vs Frequentist, CUPED variance reduction, and sequential testing
Where does GrowthBook store your raw experiment events?
What is the role of the experiment assignment query?
Which step in the pipeline comes immediately after connecting a Data Source?
When does GrowthBook run SQL against your warehouse?