Bell Statistics

What is marketing mix modelling (MMM)?

Marketing mix modelling is a regression on aggregate historical data that estimates how much each marketing channel contributed to sales, alongside price, seasonality and other drivers. It needs no user tracking, which is why it survived the collapse of third-party cookies.

Also called
MMM, media mix modelling, marketing mix model
Allon Korem

Written by Allon Korem

Chief Executive Officer

Last updated

In plain English

Marketing mix modelling takes several years of aggregate history — weekly sales, spend by channel, price, promotions, distribution, seasonality, competitor activity, sometimes weather — and fits a model that apportions the variation in sales among those drivers. The output is a contribution per channel, a return on spend, and response curves that say what would happen if you spent more or less. It is the only method that covers every channel at once, including the ones no tracking pixel can follow.

That coverage is why it has come back. User-level attribution depended on following individuals across sites and apps, and third-party cookie deprecation, mobile tracking restrictions and privacy regulation have made that progressively less possible. MMM never needed it: the unit of observation is a week and a market, not a person, so nothing about it breaks when identifiers disappear. It also handles television, radio, out-of-home and sponsorship, which user-level attribution could never see at all.

Two transformations do most of the modelling work and are what separate MMM from an ordinary regression. Adstock captures the fact that advertising does not act only in the week it runs — some of the effect carries forward and decays. Diminishing returns captures the fact that the tenth million pounds does less than the first, so the relationship between spend and response is a curve rather than a line. Fitting spend linearly and contemporaneously, which is what a naive regression does, gets both wrong and produces channel returns that flatter whatever was spent most recently.

The weaknesses are structural and worth stating plainly. Identification comes from historical variation, so a channel whose spend never changed much has no signal to learn from, and channels that always move together — the classic January-sale-everything-at-once problem — cannot be separated, which is multicollinearity. Sample sizes are small: two years of weekly data is 104 observations to estimate a dozen effects. And the causal claim rests on having included everything that mattered; a confounding variable omitted from the model is absorbed into the coefficients of whatever correlates with it.

Which is why the strongest arrangement is not MMM alone. Run geo experiments periodically, and use their results to calibrate the model — as priors in a Bayesian specification, or as a validation target — so at least some of the estimates are anchored on something that was genuinely randomised. That combination gives you the model's coverage and the experiment's credibility, and it is the direction the good open-source implementations have moved in. Our practical guides are how MMM can improve your ROI and choosing an MMM tool.

The formula

The model is a regression with two non-linear transformations applied to each media variable before it enters. Those transformations are where the domain knowledge lives.

The model
Sales_t = β₀ + Σ_c β_c · f( adstock( spend_{c,t} ) ) + γ·controls_t + ε_t

One term per channel, each passed through carry-over and saturation, plus price, seasonality, promotions and distribution as controls.

Adstock
A_t = spend_t + λ·A_{t−1}, 0 ≤ λ < 1

λ is the weekly carry-over. Around 0.3 for search, 0.6-0.8 for television — estimated rather than assumed where the data allow.

Saturation (Hill)
f(x) = x^α / ( x^α + κ^α )

κ is the half-saturation point, α the steepness. This curve is what makes a budget optimisation meaningful rather than a licence to spend infinitely.

Channel contribution and return
contribution_c = β_c · f(adstock(spend_c)), ROAS_c = contribution_c / spend_c

Report the credible interval alongside. MMM point estimates are far less precise than their decimal places imply — see the correlation calculator for the collinearity problem underneath.

Worked example

A retailer fits an MMM on 156 weeks of data across six channels. Television shows a return of 3.1 and paid social 2.4, so the team proposes moving £2m from social to television. Before acting, they check the credible intervals and the historical variation in each channel.

Observations
156 weeks
TV ROAS
3.1 (80% CI 1.4 to 5.2)
Paid social ROAS
2.4 (80% CI 1.9 to 2.9)
TV spend coefficient of variation
0.94 (flighted, on and off)
Social spend coefficient of variation
0.11 (near-constant)
Geo test on social, run separately
iROAS 2.2 (95% CI 1.5 to 2.9)

The two intervals overlap heavily. Television's is wide but informative because spend varied; social's is narrow for a misleading reason.

The intervals say the ranking is not established: television could be 1.4 and social 2.9. But the more instructive numbers are the coefficients of variation. Television was flighted on and off, which is exactly the variation a model needs to identify an effect — hence a wide but genuine interval. Social ran at a near-constant level all 156 weeks, so the model has almost no variation to learn from, and its narrow interval reflects a tightly-fitted coefficient with very little independent information behind it. The geo test is what settles it, and it agrees with the model on social, which is real reassurance. The right conclusion is to keep the budget where it is, deliberately vary social spend over the next two quarters so the next model can see it, and run a television geo test before moving £2m on a ranking the data cannot yet support.

Common misconceptions

MMM replaces attribution and gives us the same numbers more accurately.
They measure different things at different levels. Attribution assigns observed conversions to touchpoints at user level; MMM estimates aggregate contribution including channels with no user-level data at all. MMM is better for budget allocation across channels and cannot tell you which creative to run or which audience to target.
The model fits the historical data well, so its ROAS estimates are reliable.
In-sample fit is nearly meaningless here — with a dozen correlated predictors and 104 observations, high R-squared is easy and mostly reflects seasonality. What matters is out-of-sample validation, the stability of coefficients across specifications, and whether the estimates agree with experiments. Fit is the weakest evidence available.
We can build an MMM on one year of data.
One year is roughly 52 observations for a dozen effects, and it contains exactly one of each season, so seasonality and any channel that follows it become inseparable. Two to three years of weekly data is the usual minimum, and even then the model needs genuine variation in spend rather than merely a long history of constancy.

Frequently asked questions

What data do I need to build a marketing mix model?
Two to three years of weekly observations at minimum: sales or another outcome, spend by channel, and the non-marketing drivers — price, promotions, distribution, seasonality and any competitor activity you can obtain. Impressions or GRPs alongside spend help, since they separate media delivery from media cost inflation. The most valuable property is not volume but variation: channels whose spend barely changed contribute little identifying information whatever the history length.
Do I still need geo tests if I have an MMM?
Yes, and the two are complements rather than alternatives. The model covers every channel and rests on assumptions; a geo test covers one channel and rests on randomisation. Running tests periodically and using them to calibrate the model's priors, or to validate its estimates, is what turns a plausible model into a trusted one — and disagreement between the two is itself informative about what the model is missing.
Why are modern marketing mix models Bayesian?
Because the data are thin and the parameters are many, so priors do real work. A Bayesian specification lets you encode what is already known — that adstock decay lies in a plausible range, that a return cannot be negative, that a geo test measured this channel at around 2.2 — and it produces credible intervals rather than point estimates, which is a more honest representation of how much a hundred-odd observations can support.
How often should a marketing mix model be refreshed?
Quarterly is a common cadence, with a fuller re-specification annually. More frequent refreshes add little because each quarter contributes only thirteen new observations, and chasing small coefficient movements between refreshes usually means reacting to noise. What should trigger an out-of-cycle rebuild is a structural change — a new channel, a major pricing shift, or a market disruption that makes the historical relationships obsolete.

Related terms

  • Adstock

    Advertising does not stop working the week it stops running — and this is how models say so.

  • Diminishing returns

    The tenth million does less than the first — and why average ROAS is the wrong number to budget on.

  • Geo experiment

    Randomise regions instead of users — the way to test marketing that cannot be hidden from a person.

  • Incrementality

    The conversions that would not have happened anyway — and the gap between that and what platforms report.

  • Multicollinearity

    When predictors move together the model cannot separate them — good predictions, meaningless coefficients.

  • Overfitting

    A model that memorised the noise — excellent on the data it saw, useless on the data it will meet.

  • Regression analysis

    Fit a line through the data — and the phrase 'holding everything else fixed' is where the trouble starts.

  • Synthetic control

    Build the comparison group instead of finding one — the method for when you have one treated unit.

Calculate it

  • Correlation test

    Pearson r or Spearman rho, with the Fisher-z interval that says how little a small sample knows.

  • Two-sample t-test

    Compare the average of two independent groups — plan the sample size, then test the result.

  • One-way ANOVA

    Three or more independent groups on one continuous outcome — size it, then run the F test.

Knowing the term is the easy part

A model is only as good as the variation it was fitted on and the assumptions nobody wrote down. Building one that survives contact with a budget meeting is Marketing Mix Modeling

References

  • Jin, Y., Wang, Y., Sun, Y., Chan, D., & Koehler, J. (2017). Bayesian Methods for Media Mix Modeling with Carryover and Shape Effects. Google Inc. Technical Report.
  • Chan, D., & Perry, M. (2017). Challenges and Opportunities in Media Mix Modeling. Google Inc. Technical Report.