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).

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.