Industry Context: Bayesian MMM vs This Program
Track 3 - Advanced · Module 3.5
Everyone
Course home
Learning ObjectivesModule 3.5 · ~30 min
Place this program's UCM / state-space / frequentist approach accurately against the industry's Bayesian-MMM default framing (Google Meridian, Meta Robyn).
Explain what each approach gains and gives up - without dismissing either.
Answer the recurring client question "why don't you use Meridian?" confidently and fairly, including the naming coincidence.
The industry default you will be compared against

When a new hire, a client data scientist, or a procurement reviewer hears "MMM" in 2026, they usually picture one specific family of tools: open-source Bayesian MMM. Two names dominate. Google Meridian is Google's open-source Bayesian MMM, the successor to its earlier JAX-based LightweightMMM; it fits hierarchical geo-level models with priors on adstock, saturation and ROI, and reports posterior uncertainty on everything. Meta's Robyn is the other pole of the open-source world: semi-automated MMM built on regularised (ridge) regression, with the Nevergrad evolutionary optimizer searching the adstock/saturation hyperparameter space and a multi-objective selection step balancing fit against business plausibility. Strictly speaking Robyn is not Bayesian at all - it is a frequentist/machine-learning hybrid - but it travels in the same conversation, and together the two set the frame this program gets measured against.

Both trees share an academic ancestor: Jin, Wang, Sun, Chan & Koehler (Google Research, 2017), "Bayesian Methods for Media Mix Modeling with Carryover and Shape Effects". That paper standardised the modern vocabulary - geometric carryover (adstock) plus a Hill-type shape (saturation) applied to media before regression - and put Bayesian priors forward as the way to keep such heavily parameterised models identifiable. Read the adstock and Hill transformations in this program's own pipeline (module 1.5) and you are reading the same two functions; the ancestry is shared even where the estimation philosophy is not.

What a Bayesian MMM does, in one paragraph: the modeller expresses beliefs as priors - distributions over each channel's likely adstock decay, saturation point, and ROI, often informed by experiments or category norms. The sampler combines priors with data into a posterior: a full distribution over every parameter, from which you read not just "TV ROI is 1.4" but "TV ROI is 1.4 with a 90% credible interval of 0.9 to 2.1". Hierarchical structure lets geo-level data share strength across regions. The posterior propagates into everything downstream - contributions, response curves, optimizer outputs all carry uncertainty bands natively.

What this program does instead

This program's Rapid ROI stack is a different, equally legitimate branch of the same family tree: an Unobserved Components Model (UCM) - a structural time-series / state-space model - estimated by frequentist methods via the Kalman filter, with maximum likelihood built from the filter's innovations (module 2.3 has the machinery). The observed sales series is explicitly decomposed into latent states - trend, seasonality, and a time-varying baseline level - alongside the regression effects of media and base drivers. Where a Bayesian MMM buys identifiability with priors, this program buys it with two different instruments:

  • A discrete hyperparameter grid: adstock alpha and Hill beta are searched over per-platform candidate grids in the YAML config (module 1.5's platform_cat_parameter_ranges), not sampled from prior distributions. Every candidate combination is fitted; the scorecard of module 3.1 ranks the results.
  • Constraint-based bound setting: coefficient lower/upper bounds derived from business heuristics - ASSR bands, correlation ladders, the ±15% target-bound template of Tracks 1.6/1.7 - constrain each fit directly. This is the program's functional stand-in for priors: the same business knowledge a Bayesian would encode as a prior distribution enters here as hard bounds on the admissible answer. (The KT sessions even call these "priors" informally - the terminology crosswalk matters when you talk across camps.)

What is gained. The state-space form gives an interpretable decomposition natively: trend, seasonal and level components are estimated objects you can chart and hand a client, not residual afterthoughts - and in a brand-health-driven program, a clean separation between slow baseline movement and fast media response is the product. There is no prior-elicitation burden: nobody has to defend a ROI prior distribution in a client workshop; the bounds come from auditable business rules with a worked template behind them. And those business rules act directly and transparently - a bound either binds or it doesn't, visible in the output.

What differs. There are no native posterior intervals: a single fitted model reports point estimates (the Kalman filter does produce state variances, but the program does not surface parameter-level credible intervals the way a Bayesian posterior does). Uncertainty is handled procedurally instead - hundreds of candidate models are fitted across the grid, ranked, and adjudicated (module 3.1), and the discipline of the bound-setting keeps any single answer inside a defensible envelope. Candidate spread plays the role that posterior width plays elsewhere. It is a different theory of uncertainty, managed by process rather than by probability calculus - honest to say, and important to say precisely.

If you come from a Robyn or Meridian shop: your instincts transfer almost entirely. Adstock and Hill are the same math. Robyn's Nevergrad search over hyperparameters is philosophically close to this program's grid search - both are "try many, select by criteria" rather than "integrate over a posterior". Bound setting will feel like priors with the distribution stripped off. The genuinely new material for you is the state-space core (module 2.3) and the level-by-level decomposition hierarchy (module 2.1) - start there, not from zero.
Side by side
Bayesian MMM (Meridian / LightweightMMM)Robyn (Meta)This program (Rapid ROI)
Model form
Bayesian regression, often hierarchical by geoRegularised (ridge) regressionUCM / state-space with time-varying level, Kalman-estimated, frequentist
Carryover handling
Adstock (geometric or delayed), parameters given priorsGeometric or Weibull adstock, parameters searched by NevergradGeometric adstock (alpha), searched over per-platform discrete grids
Saturation
Hill-type shape with priorsHill saturation, hyperparameters searchedHill transformation (beta), common candidate grid
Priors / bounds
Explicit prior distributions (adstock, saturation, ROI), ideally experiment-calibratedHyperparameter ranges plus multi-objective selection (fit + business plausibility)Business-rule coefficient bounds (ASSR bands, correlation ladders, ±15% target-bound template) constraining each fit directly
Uncertainty
Native posterior credible intervals on every quantityBootstrapped/heuristic; model-selection spread across Pareto-optimal candidatesCandidate-model ranking across the grid + bound discipline; no native parameter-level intervals
Tooling
Open source (Python/TensorFlow Probability lineage)Open source (R, Nevergrad)Proprietary in-house pipeline (YAML-configured, per-cell, human-adjudicated)
When preferred
Strong prior knowledge or experiment results to encode; uncertainty intervals contractually or culturally required; geo-level data richFast semi-automated iteration, small teams, exploratory scopingBaseline/trend interpretability is the product; business-rule governance must be explicit and auditable; large-scale parallel delivery with human validation gates

The honest summary of the table: these approaches differ most in how they encode judgment (priors vs bounds) and how they express doubt (posteriors vs candidate spread), and least in the marketing science itself - carryover, saturation, decomposition and response-curve-driven optimization are common to all three columns.

"Why don't you use Meridian?" - a model answer

You will be asked this - by clients who read Google's blog, and by new joiners who used Robyn at their last job. A fair, non-defensive answer, in roughly the words you might actually say:

"Meridian is a good tool, and it shares its core marketing science with what we run - the same adstock and saturation math, from the same 2017 Google research lineage. We differ on the statistical chassis, deliberately. Our model is a structural time-series model: it explicitly separates your baseline into trend and seasonal states, which is what lets us split short-term media response from long-term brand movement - that split is the centre of this program's deliverable, and Bayesian MMMs don't give it to us natively. Where Meridian encodes judgment as prior distributions, we encode the same judgment as explicit business-rule bounds - ASSR bands, contribution ranges - which your teams can read and challenge line by line without needing Bayesian statistics. The trade-off is real and I'll name it: we don't produce posterior credible intervals; our confidence comes from fitting hundreds of candidate models and validating the survivors against statistical and business criteria. And one housekeeping note - you may see 'Meridian' in our report styling; that's our internal design system's name, an unfortunate coincidence, no relationship to Google's product."

Notice the structure, which you should keep even if you change every word: concede the shared science, state the genuine differentiator (state decomposition for the ST/LT story), translate priors-vs-bounds without jargon, volunteer the trade-off before they find it, and defuse the naming collision. What kills credibility is pretending there is no trade-off; what wins it is naming the trade-off and showing it is managed.

On that naming collision, to be fully explicit: this account's internal report design system is also called Meridian (the HTML style guide and CSS carry the name). It predates any connection to - and has none with - Google Meridian, and neither of them relates to this program's modelling stack. Three uses of one word; keep them apart in client conversation.

Writing exercise (non-graded)

Draft your own answer to "why don't you use Meridian?" in 150-200 words, in your voice, for a client audience of marketers plus one sceptical data scientist. Constraints: concede at least one genuine strength of the Bayesian approach; name this program's trade-off honestly; use no equations and at most one statistical term. Keep it in your back pocket - the question arrives without an appointment. Compare against the model answer above only after writing yours.

Check Yourself
A client's data scientist asks for the 90% credible interval on TV ROI. What is the accurate answer about this program's model?
Why: posterior intervals are a genuine Bayesian-stack feature this program does not replicate - saying otherwise to a data scientist destroys trust in one sentence. The honest, strong answer is the procedural one: hundreds of candidates fitted, ranked and adjudicated, with bounds keeping every survivor inside a defensible envelope, and candidate spread available as an uncertainty read.
Where a Bayesian MMM uses prior distributions on ROI and adstock, this program's functional equivalent is:
Why: every credible MMM encodes judgment somewhere; heavily transformed media models are not identifiable from data alone. Bayesian stacks put it in priors; this program puts it in bounds and grids. The Kalman filter is the estimation engine, not the judgment channel - and "unconstrained" describes no serious MMM, including this one.
A new joiner from a Robyn shop says "so you basically run Robyn with extra steps?" What is the most accurate correction?
Why: both dismissive answers are wrong in opposite directions. The overlap is real (adstock, Hill, hyperparameter search, business-plausibility selection), which is why Robyn hands transfer well - and the difference is real too: the structural time-series core and the multi-level ST/LT hierarchy have no Robyn equivalent, and they are where a Robyn-trained joiner should focus first.
Sources
Authored from external references - no internal source exists for this module; flagged in SOURCE_MAP gaps (the one module CURRICULUM.md scopes as outside research):
  • Google Meridian - official open-source documentation and GitHub (Bayesian MMM, successor to LightweightMMM); LightweightMMM (Google, JAX-based) for lineage
  • Meta Robyn - official open-source documentation and GitHub (ridge regression core, Nevergrad hyperparameter search, geometric/Weibull adstock, Hill saturation, multi-objective model selection)
  • Jin, Wang, Sun, Chan & Koehler, "Bayesian Methods for Media Mix Modeling with Carryover and Shape Effects" (Google Research, 2017) - the shared academic ancestor
  • Program-side characterisation cross-checked against internal modules only: UCM/state-space/Kalman theory (module 2.3 sources), YAML hyperparameter grids (module 1.5), bound-setting method (modules 1.6/1.7), candidate ranking (module 3.1)
  • Naming note: the account's internal report design system "Meridian" (templates/STYLE_GUIDE_HTML.md / meridian-style.css) is unrelated to Google Meridian
External-tool details reflect their public documentation as of this module's authoring; both projects evolve - check current docs before quoting specifics to a client.