
The Ultimate Guide to Choosing Your Perfect MMM Tool
Robyn, Meridian, Orbit, or custom-made MMM? In this blog post, we compare leading free, paid or custom MMM tools, to help you decide which best fits your needs.

Overfitting is when a model learns the noise in its training data rather than the underlying pattern. It fits the data it was built on unusually well and performs badly on anything new, because much of what it learned was specific to that sample.
Every dataset contains signal and noise. A model with enough flexibility will fit both, because it has no way to tell them apart — the noise is, from the model's perspective, just more pattern to reproduce. The result looks superb: residuals small, R-squared high, the fitted line passing near every point. Then new data arrives, containing different noise, and the model's performance collapses. That gap between how well a model fits what it has seen and how well it predicts what it has not is overfitting.
The underlying trade-off is between bias and variance. A very simple model is biased — it cannot represent the real relationship, so it is wrong in a consistent way. A very flexible model has high variance — it would produce a noticeably different answer if refitted on another sample from the same population. Total error is the sum of both, so there is an optimum in the middle, and the whole discipline of model selection is a search for it.
In practice overfitting comes from a few recognisable situations. Too many parameters relative to observations, which is chronic in marketing mix modelling, where two years of weekly data gives about a hundred rows for a dozen or more effects. Choosing a specification by trying many and keeping the best fit, which fits noise through the selection process even if each candidate model is simple. And tuning on the same data used to evaluate, which quietly converts a holdout into training data.
Detection has one reliable method: evaluate on data the model has never seen. Split the sample, hold out a test set, or use cross-validation — and for anything with a time dimension, split by time rather than at random, since randomly held-out weeks are surrounded by weeks the model has seen and are therefore far too easy to predict. A large gap between training and held-out performance is the definition of the problem, and no in-sample statistic substitutes for it. Adjusted R-squared penalises parameters but not the search process that chose them.
The remedies all reduce effective flexibility. Fewer parameters. Regularisation, which shrinks coefficients towards zero and is the standard answer when predictors are many and correlated. Informative priors in a Bayesian model, which do the same thing more legibly. Bringing in more data, when it is available. And, most reliably in a business setting, imposing structure from domain knowledge: an adstock decay and a saturation curve are strong constraints that let a media model use a hundred observations sensibly, precisely because they rule out shapes nobody believes.
The decomposition explains why the optimum is in the middle, and the criteria below are attempts to find it without a holdout.
E[(y − f̂(x))²] = Bias² + Variance + σ²_irreducibleFlexibility lowers bias and raises variance. The third term is noise no model can remove, and it sets the floor on achievable error.
AIC = 2k − 2·ln(L̂)Penalises parameters. Lower is better, and only comparable across models fitted on identical data.
BIC = k·ln(n) − 2·ln(L̂)Penalises more heavily as n grows, so it selects simpler models than AIC. Preferable when the goal is a model you will interpret rather than only predict from.
minimise Σ(yᵢ − ŷᵢ)² + λ·Σβⱼ²The penalty shrinks coefficients, trading a little bias for a large reduction in variance. λ is chosen by cross-validation, on training data only.
An analyst builds a weekly sales model on three years of data. Wanting the best fit, they add channel interactions, a promotion flag per retailer, and a separate coefficient for each week of the year. In-sample R-squared reaches 0.97. The model is then evaluated on the following six months.
Held-out error is six times the in-sample error, and worse than a baseline containing nothing but a trend and monthly seasonality.
Seventy-one parameters on 156 observations is roughly one parameter for every two weeks, and at that ratio a model can reproduce almost any history without learning anything about the future. The fifty-two week-of-year coefficients are the clearest offender: each is estimated from three observations, so each is largely memorising three specific weeks. The decisive comparison is against the baseline — a model that loses to a trend and month dummies is not a weak model, it is a harmful one, because its coefficients will be quoted in budget meetings. The fix here is structural rather than statistical: replace the 52 dummies with a smooth seasonal term, drop the interactions the data cannot support, and impose adstock and saturation shapes that encode what is already known.

Robyn, Meridian, Orbit, or custom-made MMM? In this blog post, we compare leading free, paid or custom MMM tools, to help you decide which best fits your needs.


Three key trends shaping the future of MMM: the emphasis on causality, the adoption of Bayesian methods, and the push towards real-time analysis.

Applying it to a live measurement problem is the part that goes wrong. If you are designing an experiment, reading a result you do not trust, or trying to work out what your marketing actually caused, that is the work we do.