What is the method comparison?
The method comparison shows the same channels estimated by two different marketing-mix models side by side — contribution and marginal ROAS under each. Both fit the same weekly panel (margin as response, per-channel spend as predictors, adstock and saturation transforms); they differ in estimation machinery, and the comparison exists because agreement between two unlike methods is the cheapest robustness check an MMM can offer.
Formula
one row per channel: ridge contribution | ridge marginal ROAS
PyMC contribution | PyMC marginal ROAS
Worked example
Search reads €260k contribution under ridge and €240k under PyMC — an 8% gap on different machinery; treat €250k as solid. Display reads €60k under ridge but €15k under PyMC. That disagreement is the finding: display's spend history doesn't identify its effect well, and no budget decision should lean on either display number alone.
How Saldo Metrics computes it
Ridge with saturation is the default: a deterministic ridge regression over
adstocked, Hill-saturated weekly spend with seasonality terms, adstock decay picked
from a small grid by fit quality. When an org has configured channel priors, they
anchor the channel split against multicollinearity. It runs on every refresh and is
exactly reproducible. Bayesian PyMC fits the same structure by MCMC sampling,
estimating full posteriors instead of point values; it needs no prior-anchoring
trick, runs much slower, is not bit-reproducible, and is refreshed on demand rather
than on schedule. v_mmm_method_comparison pivots the latest run of each method
into one row per channel — a missing PyMC column just means no PyMC run has been
made yet.
Why it matters
Every MMM answer is a model artifact, and channels with correlated spend histories are where models quietly go wrong. Two methods with different failure modes disagreeing on a channel is the model telling you its answer there is soft — information a single method cannot give you about itself.
Common mistakes
- Picking the method whose number you prefer. The comparison is a consistency check; where the methods disagree the honest conclusion is uncertainty, not a choice.
- Reading a stale PyMC column against a fresh ridge run. The view serves each method's latest run; if their fit windows differ, part of any gap is just data vintage.
- Expecting decimal agreement. Different estimators on noisy data agreeing within 10–20% is agreement.
Where you see this in the app
Marketing → MMM, in the ridge-vs-PyMC comparison table.
- Formula
- same channels, two estimation methods: ridge with saturation vs Bayesian PyMC
- How Saldo Metrics computes it
- canonical.v_mmm_method_comparison
Last reviewed 2026-08-29