Meridian

Google's Bayesian MMM engine.

Meridian is Google's Bayesian MMM package. Instead of searching for one best answer the way Robyn does, it samples a full posterior distribution over every parameter — which is why its results come with credible intervals, not just point estimates, and why a run takes longer: it's running MCMC (Markov-chain Monte Carlo) sampling, not an optimizer search.

Connecting it

Drag a Meridian node off Period (or directly off Variables).

The Meridian configuration modal
The Meridian configuration modal
Dragging a Meridian node onto the canvas

Basic fields

Field What it controls
Name Optional label for the model.
Country Regional context for the model.
Output type Revenue-like or a conversion count. If it's not revenue, see Non-revenue strategy below.

Model structure

Field Default What it controls
Knots 2 (range 1–10) How many points Meridian uses to fit the underlying time trend. More knots let the baseline flex more over time; too many can start fitting noise instead of trend. Ignored if Automatic Knot Selection is on.
Automatic Knot Selection Off Lets Meridian choose the knot count itself instead of using the fixed value above.
Max lag 8 (range 1–52) The longest carryover window Meridian will consider for a channel's effect — in the same time units as your data (e.g. weeks). Raise this if you have a channel you expect to have a long tail (broadcast TV, brand campaigns).
MCMC chains 2 (range 1–8) How many independent sampling chains to run. More chains give a more reliable read on whether the model has converged (chains that agree with each other are the main convergence signal) at the cost of roughly proportional training time.

Priors

Field Options What it controls
Prior strategy Default / Custom (global) / Custom (per channel) Whether to use Meridian's built-in default priors, override them with one set of assumptions applied to every channel, or set assumptions per channel individually.

When you choose a custom strategy, three more choices appear:

  • Media prior type — express your belief about paid channels as ROI, Marginal ROI, contribution, or a raw coefficient. ROI is the most intuitive starting point if you have a rough sense of what a channel returns.
  • Organic media prior type / Non-media prior type — the same idea for organic and non-media (contextual) covariates, expressed as contribution or coefficient (ROI doesn't apply to a column you don't spend on).
  • A distribution editor to set the actual parameters, either once for all channels or per channel, depending on which custom strategy you picked.

If you don't have a strong prior belief, leave this on Default — it's not a placeholder, it's Meridian's own recommended starting point.

Non-revenue strategy

Only shown when Output type isn't revenue. Meridian needs to know how to value a non-revenue outcome:

Option Meaning
Total contribution Report each channel's share of total outcome volume, with no dollar value attached.
IKPC (Incremental KPI Per Cost) Express each channel's return as outcome units per dollar spent, instead of a currency ROI.
Channel contribution Report contribution per channel without normalizing to a cost basis.

Holdout validation

Field Default What it controls
Holdout validation Off Scores the model on data it didn't train on.
Holdout fraction 10% / 20% / 25% How much of the data to hold out. Meridian's holdout is scattered — individual geo × time cells spread across the whole period, balanced automatically — not a single final block of dates the way Robyn's is. Two models with the same holdout fraction aren't being tested on the same slice of data, so their validation scores aren't directly comparable across engines.

What connects here

Upstream: Period or Variables. Downstream: Budget allocator or Benchmark.