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.
- 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.
- 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.
- 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.
- 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.
Proof
From our results
Real client work, kept anonymous. Each number links to how it was measured.
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.
Pairs with
Where we use it
- Analytics
Marketing mix modeling
Media mix models on Google's Meridian that measure ads against all sales.
Learn more - Analytics
Measurement and attribution
Clean tracking and attribution in GA4, GTM and BigQuery, tied to revenue.
Learn more - Marketing
Media planning and buying
One plan across every channel, from search to TV, out of home and print.
Learn more - Analytics
Testing and incrementality
A/B tests and lift studies that show what ads added before you scale.
Learn more
Guides: What is a media mix model?How to measure marketing when most sales happen in stores FAQ
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.