Most marketing mix modelling in the wild is frequentist linear regression dressed up with channel labels. It produces point estimates, ignores uncertainty, and breaks the first time someone asks what happens if we reallocate twenty percent of paid social to TV.

Bayesian MMM is a different tool. It produces distributions rather than points, quantifies uncertainty explicitly, handles priors from domain knowledge, and makes scenario planning structurally part of the workflow rather than an afterthought. It is the only MMM approach we will build on at Performify, and Google's Meridian framework is the reason it is now practical to ship.

This is what that looks like in practice.

Why MMM, and why now

L/004 made the case that MMM is the oversight layer that answers the business question platforms structurally cannot. This article assumes you already accept that premise. What follows is how we deliver it.

MMM has existed for decades. It stalled because the classical approach required large budgets, long engagements, and statistical skills that most agencies could not staff. Signal loss after iOS 14.5 and cookie deprecation revived demand, because the platforms could no longer pretend to answer the causal question.

Google open-sourcing Meridian in 2024 changed the economics. Meridian is a production-grade Bayesian MMM framework that handles the parts that used to need a specialist team: sampling, convergence diagnostics, adstock and saturation parameterisation, budget optimisation. It is free, actively maintained, and academically sound. The scarce resource is no longer the tool. It is the judgement to use it properly.

What Meridian actually does

Meridian is a Bayesian hierarchical model. In plain terms, it assumes each marketing channel contributes to a business outcome (revenue, conversions, or similar) through a combination of direct effect, carry-over from prior spend (adstock), and diminishing returns at higher spend levels (saturation). The model estimates the parameters of those relationships from historical time-series data spanning multiple channels and non-marketing drivers.

The Bayesian part matters. Rather than returning a single estimate per parameter, Meridian returns a posterior distribution, a full probabilistic description of what the data supports given the priors. This is what lets you honestly say "paid search contribution is £480k plus or minus £90k at 90% credible interval" rather than the false precision of "paid search contribution is £487,213".

Under the hood it uses Hamiltonian Monte Carlo with the No-U-Turn Sampler (NUTS). The practical implication is that a typical model run takes 10 to 60 minutes, produces hundreds of posterior samples per parameter, and provides built-in convergence diagnostics (R-hat) that tell you whether to trust the results before you present them.

// NOTE

Meridian is not the only Bayesian MMM framework, and it has specific opinions (hierarchical structure, NUTS sampler, Hill saturation). We build on Meridian because it is production-grade, well-documented, and the open-sourcing by Google makes it the most defensible framework to stand behind in a commercial engagement. Alternatives (Robyn, LightweightMMM, PyMC-Marketing) have their places; the reasoning that follows applies to all Bayesian MMM frameworks, not just Meridian.

Priors are the point

Bayesian methods require priors: your best estimate of each parameter before seeing the data. A well-specified prior incorporates domain knowledge. A flat or uninformative prior throws that knowledge away. This is the decision that most determines whether an MMM is useful or spurious.

For marketing, useful priors come from several places: past engagements in similar categories, published benchmarks, the client's own historical learnings, and structural constraints (for example, brand effects cannot be negative; adstock half-lives for TV cannot exceed reasonable bounds). The model then updates these priors against the data to produce posteriors that are defensible to a board and honest about what the data does and does not support.

Specific priors we set routinely: ROI priors per channel based on category benchmarks (tighter for mature channels like paid search, wider for emerging ones like connected TV); adstock priors based on media type (days for paid search, weeks for display, longer still for brand campaigns); saturation priors that respect physical constraints on reach within a market.

If an MMM consultant cannot articulate the priors they are setting and why, the model is not meaningfully different from a random number generator producing plausible-looking charts. The priors are not a technicality. They are the craft.

// WATCH OUT

A common failure mode in amateur MMM is using flat priors "to let the data speak". Data alone does not identify all marketing effects, especially on short time series where channels correlate. Flat priors produce models that fit the data beautifully and generalise terribly. If an MMM report cannot show you the priors, ask why.

Three saturation curves on a single chart, plotting marketing spend on the x-axis against incremental contribution on the y-axis. Paid search saturates early at lower spend levels; paid social saturates at higher spend; connected TV continues with near-linear returns across the visible range.
Saturation curves per channel. Where each curve flattens is where reallocation budget should leave the channel.

Saturation, adstock, and the shape of the curve

Priors are half the craft. The other half is getting the functional form right. Two properties make marketing spend non-linear in ways that classical regression handles badly.

Adstock: the effect of a pound spent today does not fully resolve today. A TV campaign's impact persists for weeks after the flight ends. A paid search click generates conversions for days after first exposure. Adstock parameterises how quickly an effect decays, per channel. Get this wrong and you misattribute the timing of outcomes to the wrong media weeks.

Saturation: the marginal return on the hundredth pound spent in a channel is smaller than the marginal return on the first pound. Eventually the curve flattens entirely as you exhaust the addressable audience. Meridian parameterises saturation as a Hill function, which is flexible enough to fit most observed channel behaviour.

Both of these shapes are where the commercial value of MMM lives. Knowing that paid social saturates at £200k/month for this brand, while connected TV still has linear returns up to £400k/month, is what converts the model into a scenario plan. Without saturation curves you have a report. With them you have a decision tool.

Uncertainty is the output, not a footnote

Every number a Bayesian MMM produces comes with a credible interval. Channel contribution, ROI, saturation point, optimal spend level. All distributions, not points.

This changes how conclusions get presented. Instead of "shift £50k from paid social to connected TV", the output is "the model is 85% confident that shifting £30k to £70k would improve total ROI, and 55% confident that shifting more is still net positive". The conservative recommendation comes with the probability attached.

Boards typically ask two questions when they see this for the first time. The first is "why is the uncertainty so wide". The honest answer is that it was always that wide, the previous dashboards just hid it. The second is "so what do we do with ranges". The answer is that ranges are exactly what you need for decisions under uncertainty, which is all decisions.

Boards ask "why is the uncertainty so wide". The honest answer is that it was always that wide. The previous dashboards just hid it.

Scenario planning is where the tool earns its place

A well-built Bayesian MMM is a scenario engine, not a reporting deck.

The output includes budget optimisation under multiple constraints: fixed total budget with freedom to reallocate; budget increase of X% with constraint on minimum spend per channel; budget decrease with constraint on maintaining brand visibility. Meridian's optimiser runs these scenarios against the posterior distributions, returning not just a recommended allocation but the probability that the recommended allocation outperforms the current one.

Performify adds an applied data science layer on top. We integrate client-specific constraints (channel relationships, fulfilment constraints, seasonality windows), we translate the statistical outputs into commercial scenarios for board consumption, and we deliver the models as versioned artifacts so that next quarter's rerun builds on this quarter's learnings rather than starting over.

The deliverable is a toolkit for planning, not a static PDF. Clients explore "what if" questions against a credible model rather than asking for another bespoke analysis every time the budget question shifts.

// IN PRACTICE

On a recent engagement we built a Meridian model for a premium lifestyle brand running £2m+ annual paid spend across paid search and paid social. The model identified £4k/month in reallocation opportunity, with the paid search channel driving 35% of incremental revenue despite being only 15% of budget. The scenario explorer lets the brand revisit this quarterly rather than commission a new analysis each time.

What a good MMM engagement looks like

A credible MMM engagement has specific prerequisites, deliverables, and cadence.

Prerequisites: at least 18 months of weekly data covering spend and revenue across all major channels, including non-digital if relevant. Less than that and the model cannot see enough variation to disentangle channel effects. A well-structured marketing data warehouse makes this trivial; without one, the data preparation alone can consume half the engagement (L/006 covers building that warehouse).

Deliverables: a documented Meridian model with priors, convergence diagnostics, posterior distributions, and saturation curves per channel. A scenario explorer delivered as an interactive report. A written summary with board-ready conclusions and explicit uncertainty statements. Versioned code and data so the model can be rerun quarterly without rebuilding from scratch.

Cadence: initial build is typically 4 to 6 weeks. Quarterly refreshes take 1 to 2 weeks because the data pipeline and priors carry forward. Significant events (new channel launch, market expansion, major creative pivot) warrant an interim refresh.

The critical thing is that MMM is a complement to the signal layer described in L/003 and L/004, not a replacement. A team with excellent MMM and poor platform signal is still overspending on worse bidding than their competitors. A team with clean platform signal and no MMM is still misallocating strategic budget. Both layers, done well, are what separates a sophisticated measurement operation from one running on hope.