DocumentationUser guide

The workflow, screen by screen

This guide follows the project sidebar top to bottom — the sidebar order is the workflow order. Each section explains what a screen does and the concepts behind it. If you haven't built a model yet, start with the shorter get started path first.

On this page

Dimensions

Dimensions define the axes and hierarchies your business is measured on — geography, brand, product line — so data can land on existing cells and coverage can be tracked. The sub-pages: Coverage shows how completely your uploaded data fills the dimensional space, Extracts produce filtered slices, and Funnel relates KPIs across levels. Optional for a single-slice project; essential once you model per market or brand.

Cockpit

The Cockpit is the grid those axes span: one cell per combination of dimension values, showing data and modeling status and the KPI funnel at a glance. Use it as mission control when you run many models across markets — it answers which slices have data, which have models, which are stale.

Data & health

Upload CSV or Excel; every column is profiled (type, missing values, non-zero median). When you map the date and KPI columns and finalize, the platform freezes a validated snapshot, sorted by date — the canonical source every model reads. The raw file is kept verbatim but never modeled on, so results are reproducible even if you re-upload later. Health surfaces data-quality signals — gaps, freshness, refresh cadence — so whoever stewards the data can sign off before modeling starts.

Data review

Pre-modeling diagnostics on the frozen data, one tab per question:

  • Correlation — collinear predictors are the classic MMM trap; two channels that always move together can't be separated by any model.
  • VIF — variance inflation factors quantify that multicollinearity; a high VIF means the model cannot tell two variables apart.
  • Seasonality — recurring patterns you may need to control with dummies.
  • Time series — every variable plotted over time, for eyeballing gaps, spikes, and scale problems.

Use this page to decide which controls and dummies you need before touching the model builder.

Variables & transformations

The taxonomy attaches meaning to columns. Per variable: role flags (control, expected-positive, excluded), up to four nested group layers (layer 1 Paid Media, layer 2 Search…) that drive every roll-up in results and reports, and a spend mapping that names the column carrying the money, for ROI. Appearance sets each group's color and sort order everywhere it's charted.

Transformations hold MMM's two key nonlinearities:

  • Adstock (carryover) — advertising keeps working after the week it ran. Geometric decay: adstocked[t] = x[t] + rate · adstocked[t−1]. A rate of 0.3 means 30% of this week's effect carries into next week.
  • Hill (saturation) — doubling spend doesn't double the effect. An S-curve where alpha is the half-saturation point and beta the steepness; either at 0 skips the curve.

A media column enters the regression as hill(adstock(x)) — that is how a linear model captures lagged, saturating advertising. One boundary worth knowing: the taxonomy only classifies columns; transform parameters live on each model's recipe, so the same column can be transformed differently in two models.

Models

A model is a recipe: which variables go in, the transform parameters for each, optional pinned coefficients, the intercept, the modeling window, and the engine.

OLS

Ordinary least squares on the transformed design matrix. The live builder refits as you edit, giving instant feedback on fit and coefficients; launching produces a durable background run. Fast, free of GPU quota, and the right place to iterate on specification.

Bayesian (Meridian)

Google's Meridian fit on a managed remote GPU, returning posterior distributions and credible intervals instead of point estimates. Runs take minutes and count against your plan's monthly GPU allowance.

Channel priors

Encode what you already know before a Bayesian run: enter a channel's expected CPA and a confidence level, and the builder converts it into a LogNormal ROI prior for Meridian — from a tight, calibrated prior to an uninformative one.

Grid search

You rarely know the right adstock and saturation values. Grid search sweeps rate × alpha × beta for one variable, refits the whole model for every combination, scores each by the variable's absolute t-statistic, and lets you adopt the best into the recipe.

Launching freezes the recipe into an immutable run (queued → running → succeeded, with live progress). A succeeded run is a saved model — editing the builder never rewrites history. The Registry lists all runs and tracks their lifecycle, including promotion and review handoffs.

Results

Diagnostics for one succeeded run: fit statistics (R², adjusted R², F, AIC/BIC), the coefficient table (estimate, standard error, t, p), actual vs. fitted, and the decomposition — each week's KPI split into per-variable contributions (contribution = coefficient × transformed value), rolled up to your taxonomy groups. Summing the contribution columns reproduces the fitted KPI exactly; that identity is what makes the attribution trustworthy, and it is checked, not assumed.

Compare

Put two or more succeeded runs side by side — fit statistics, coefficients, decompositions — to choose between candidate specifications or to track how a model shifts across data refreshes. Available as soon as a project has at least two succeeded runs.

Reports & optimizer

Reports are the viewer-facing readout of finished runs — including multi-run reports that aggregate several models into one view. A report carries commentary and sandbox walls: per-channel spend bounds and locks that define what viewers may touch. Within those walls, viewers run scenarios — budget reallocations like TV × 1.3, Search × 0.8 — recomputed as exact counterfactuals through the fitted saturation curves, so all-1.0 multipliers reproduce the actual model. The budget-target optimizer searches allocations toward a target within the same constraints. Share via viewer accounts subscribed to the project or via revocable share links that need no login.

Importer

The alternative front door: import existing work instead of starting from scratch. Upload your files and the format is detected automatically — an openMMM (Streamlit) project export (data CSV, groups, and saved model JSONs), a Meridian saved-model file (.binpb), or an M720 workbook. The importer reconstructs the dataset, group appearances, and model configurations in one pass, and you continue in the normal workflow.

Team & roles

Organization members carry roles, and the boundary that matters is editors versus viewers. Editors see the modeling workbench — data, builder, diagnostics. Viewers and stakeholders only ever see published reports shared with them, never the kitchen. Per-project membership, review handoffs, and data-gate sign-offs live under Team.

Plans & GPU limits

OLS modeling is unmetered on every plan. Bayesian (Meridian) runs execute on managed GPUs and draw on a monthly per-plan allowance; beyond it, GPU time is billed at the compute provider's price with no markup. Plans run from Free through Freelancer and Agency to Enterprise — current limits and prices are on the pricing page.