whatismmm

The curve lab

Every MMM bends spend through exactly two transforms before the regression sees it: adstock, which spreads effect over time, and saturation, which bends it against volume. This page puts both under your cursor. Ten minutes here buys the intuition most vendor decks assume you have.

By Oliver Wakefield-Smith · Updated 2 August 2026 · Every number on this page resolves to a primary source in the ledger below.

wk 1wk 12

One 100-unit pulse of spend in week 1, nothing after. The decay rate is the fraction of last week's effect that survives into this week; the half-life is how many weeks until half the effect is gone. TV-like channels sit at high decay, performance channels low. Values here are illustrative, not benchmarks.

What to notice on the adstock tab

The input is one pulse of spend in week 1 and silence after. The bars are the effective exposure the model perceives each week. Drag the decay rate and watch the half-life readout: at 0.3 the pulse is effectively gone within two weeks (performance-channel behavior); at 0.8 it is still working a month later (brand-channel behavior). Both Robyn and Meridian estimate this decay per channel from your data, within configured bounds.12 When two channels get very different decays, their revenue credit shifts across weeks accordingly, which is how a model can defend TV that a last-click dashboard convicts.

What to notice on the saturation tab

The dot on the curve is a spend level; the marginal readout under it is the slope, the revenue return on the next unit of spend. Slide the spend point right and watch the marginal number fall while the height (total response) still rises: that divergence between average and marginal is the whole argument of diminishing returns. Then drag k (the half-saturation point) and s (the shape) to see why two channels with identical average ROAS can deserve opposite budget moves.

Parameters here are illustrative, not benchmarks; your channels' values are estimated from your data. The concepts have full entries: adstock and saturation.

Source ledger

Every numeric claim on this page resolves to one of these primary sources.

  1. [1]Meta Robyn feature documentationhttps://facebookexperimental.github.io/Robyn/docs/featuresretrieved 2026-08-02
  2. [2]Google Meridian documentationhttps://developers.google.com/meridianretrieved 2026-08-02
  3. [3]PyMC-Marketing documentationhttps://www.pymc-marketing.io/retrieved 2026-08-02