Contact

Tools · Measurement & data

Meridian

Google's open-source media mix model, checked before every refresh.

Meridian is Google's free, open-source media mix model (MMM), a Python library based on Bayesian causal inference. It estimates how much each media channel adds to sales and how to split the next budget. Donut Analytics builds client models on it, feeds them weekly sales, spend and outside factors from BigQuery, and tests every refresh on weeks the model hasn't seen.

How we use it

How we use Meridian

  • Why we build on it

    The code and the method papers are public, so every assumption in the model can be read and checked. No vendor's black box sits between you and the answer.

  • What we feed it

    Weekly sales, plus weekly spend and impressions by channel, from one BigQuery view. The model only speaks for what goes in: if only digital media is in the data, it only measures digital.

  • What else moves sales

    We control for what moves sales besides ads, like seasonal demand for the category, store openings and promotions. A new control has to improve the forecast on held-out weeks before it goes in.

  • Priors, checked

    Each channel starts from a prior. We check which channels the data actually moved away from their starting point, and we say so when a channel's number is mostly the prior.

  • Tested before it ships

    Before a refresh goes out, the model has to predict weeks it hasn't seen and pass Meridian's convergence checks. We pin the software version so a library update can't quietly change the answer.

  • Refreshed every month

    Once the new month's sales and media data are loaded, we re-fit the model and check it again, so the read is ready for the next planning call.

In practice

What we've learned running it

Real work, kept anonymous.

  1. 01

    More detail isn't always better

    We tested a market-by-market version of one model. It forecast sales better but couldn't tell channels apart, because every market moved together. We kept the simpler model for decisions.

  2. 02

    Not every control earns a place

    We tested organic social as a control. It didn't improve the forecast on held-out weeks, so it stayed out.

  3. 03

    Some channels can't be ranked yet

    A channel with only a few weeks of history has too little data for the model to rank. We say that, rather than print a number the data can't support.

  4. 04

    Convergence checks catch real problems

    On one cloud GPU, a default math-precision setting stopped every sampling chain from converging. The checks caught it before any result went out, and turning the setting off fixed it.

What it can’t tell you

What Meridian can't tell you

  • Proof that ads caused sales

    Meridian estimates what each channel added. It can't prove it. We call its results model estimates, and a lift test is the stronger check for one channel at a time.

  • A clear read on thin channels

    A channel with a few months of spend, or one that always moves with another, gives the model little to learn from. Its number leans on the prior.

  • What isn't in the data

    If TV, promotions or a price change aren't in the data, the model can't account for them.

  • Which ad worked yesterday

    It reads weeks and months. Day-to-day calls on ads and creative still come from platform reporting and A/B tests.

FAQ

Questions about Meridian

Is Meridian free?
Yes. Meridian is open source under the Apache-2.0 license. The costs are the data work, the computing time to fit it, and the people who build and check the model.
How much data does Meridian need?
Google's guidance is at least two years of weekly data for a geo-level model and three years for a national one. Weekly sales and weekly spend by channel are the core.
Is Meridian biased toward Google channels?
Any channel with weekly spend goes in the same way, whoever sells it, from TV to social. The answers depend on the data and the priors you give it, which is why Donut Analytics checks which channels the data actually moved.
Can Meridian use lift tests?
Yes. Meridian can take experiment results as priors, so a channel's estimate starts from what a test measured. Google's GeoX tool runs geo experiments for this purpose.
How often should a Meridian model be refreshed?
Often enough to steer the next decision. Donut Analytics refreshes a Florida retailer's model every month, once the new month's data is loaded.
Do I need a data scientist to run Meridian?
To build and check one, yes, or a team that does it for you. Meridian is a Python library: data prep, priors, fitting and validation are all code. A GPU is recommended for fitting.

See what each channel adds.

Tell us what you’re working on. We’ll build a measurement-first plan for your brand. Email hello@donutanalytics.com or call (407) 394-9720.