Run an MMM with five channels, weekly data over the past year, and no priors, and you'll often see things like a channel with negative ROAS, a paid search decay rate of 0.97, or two channels that swap their estimated coefficients every time you re-run the model.
These aren't bugs. They're the predictable behavior of a model that has too many parameters and not enough data. The frequentist approach — find the parameter values that maximize fit to the data — works great when you have enough data. MMM almost never has enough data. That's why every credible MMM framework in the past decade has been Bayesian.
This post covers what Bayesian priors actually do in an MMM, why they're necessary rather than optional, how to think about them whether you're using a tool or building your own, and what to watch out for.
The small-data problem
Marketing mix modeling looks like a big-data problem because it touches every channel and lots of dollars. It's actually a small-data problem in disguise.
A typical MMM has:
- 4 to 8 marketing channels
- Per-channel parameters: a coefficient, a decay rate, two saturation parameters → roughly 4 parameters per channel
- Control variables: trend, day-of-week dummies, holiday flags, seasonality features → easily 20+ more parameters
- Total: 40+ parameters
Now consider your data. Two years of weekly data is 104 rows. One year is 52. Most teams in practice work with 6-12 months because that's what they have clean data for.
You're trying to estimate 40+ parameters from maybe 60 observations. In statistical terms, you don't have enough degrees of freedom for the frequentist approach to give you stable, meaningful estimates. The model will fit the data — that's what optimization does — but the fit will be wildly different each time you change anything. Add a channel, drop a week, change how you handle holidays, and the entire ROAS picture shifts.
Frequentist statistics implicitly assumes your data is large enough that the data overwhelms any prior beliefs. MMM violates that assumption hard.
What a prior actually does
A Bayesian prior is a statement about what you believe a parameter is likely to be, before looking at the data. The model then combines your prior with the data to produce a posterior — your updated belief after seeing the data.
In words: "I think this parameter is probably between 0.3 and 0.7, with 0.5 being most likely. The data has updated my view to: actually, given what I see, it's probably between 0.4 and 0.8, with 0.6 most likely."
The strength of the prior matters. A weakly informative prior says "the parameter is probably in this rough range, but I'm open to being convinced otherwise." A strongly informative prior says "I'm pretty confident about this — the data would have to be screaming at me to move me much."
For MMM, the right answer is usually weak-to-moderate priors. You're not trying to impose your beliefs on the data — you're trying to give the optimizer a starting point and a sanity check, so it doesn't wander off into parameter values that no real marketing channel could plausibly produce.
Why this matters in practice
Take adstock decay. A frequentist model with no prior will happily report decay rates between 0 and 1 with whatever value best fits the data. Often, with limited data, that value is near 1 (the channel "explains" trend in your sales) or near 0 (the channel "explains" weekly noise).
A weakly informative prior — "decay is probably between 0.3 and 0.8 for most channels, with the option of being lower for direct-response channels and higher for brand channels" — means the model will only push decay outside that range if the data really supports it. The result is decay rates that look like real marketing channels rather than artifacts of overfitting.
The same logic applies to saturation parameters, channel coefficients (which should mostly be positive — negative coefficients are physically implausible for most channels), and control variables.
The bias-variance tradeoff in marketing context
There's a real tradeoff here. Adding priors introduces bias — if your prior is wrong, your estimates will be wrong in the direction of your prior. But it reduces variance — the estimates will be more stable across runs and less sensitive to noise.
The frequentist intuition says "bias bad, variance good." That's backward for MMM. With limited data and many parameters, an unbiased estimator has so much variance that any single estimate is essentially noise. A slightly biased estimator with much lower variance gives you something you can actually act on.
The classic illustration: imagine you ran the same MMM 100 times with bootstrap-resampled data. The frequentist estimator might give you a paid search ROAS estimate that ranges from -2 to 15 across the runs. The Bayesian estimator with reasonable priors might give you 2 to 6. The Bayesian estimate is "biased" toward the prior, but the frequentist estimate is so unstable that you can't make a decision with it. Bias you can correct for. Variance is just noise.
Common priors and what they encode
In a well-designed MMM, every parameter has a prior. The shapes vary, but a few patterns recur:
Decay rates typically get a Beta prior, often something like Beta(2, 4). Beta is bounded between 0 and 1, which matches the natural range. Beta(2, 4) puts most of its weight in the lower half — encoding "carryover is probably moderate, not extreme."
Saturation steepness typically gets a Gamma prior centered around 1, which matches the empirical range for most channels.
Saturation inflection points are often given a HalfNormal prior scaled to the median spend on that channel. This says "the inflection point is probably somewhere around your typical spend level, not orders of magnitude away."
Channel coefficients are usually given a HalfNormal or other positive-only prior, encoding the assumption that more marketing → more (or at least non-negative) sales.
The specific choices matter less than the general logic: every parameter gets a sensible range, and the optimizer is gently nudged to stay within plausible regions.
MAP vs full posterior sampling
Bayesian inference in MMM has two main flavors:
MAP (maximum a posteriori) estimation finds the single most likely parameter values given the data and priors. It's fast — usually seconds to minutes — and produces a single answer for each parameter. Most production MMM tools use MAP because the speed-to-quality tradeoff is excellent.
Full posterior sampling (typically via MCMC) generates many samples from the posterior distribution rather than picking the single best point. This gives you a complete picture of uncertainty — not just "the ROAS is 3.2" but "the ROAS is somewhere in this distribution, with shape that looks like this." It's slower (sometimes hours for complex models) and harder to debug.
For most practical MMM use cases, MAP plus an approximation of uncertainty (like the Laplace approximation, covered in our post on credible intervals in MMM) is the right tradeoff. Full MCMC is justified when you have enough data, enough time, and a high enough stakes decision to warrant the extra rigor.
When priors hurt instead of help
Priors aren't free. They can hurt in a few specific situations:
When the prior is strongly wrong. If you put a tight prior centered at a wrong value, and you don't have enough data to override it, you'll get wrong answers with high confidence. The fix is to use weakly informative rather than strongly informative priors when you're not sure.
When you're trying to learn something genuinely new. Priors encode existing knowledge. If you're trying to learn about a new channel where you have no prior intuition, very informative priors will smooth over the signal you're trying to detect. The fix is to use uninformative or weakly informative priors for parameters you don't have prior knowledge about.
When the priors aren't transparent. If you're using a tool whose priors you can't inspect, you don't know how much of the result is data and how much is the tool's built-in assumptions. This is a tooling problem, not a Bayesian problem — but it's a real risk. Demand to know what priors a tool uses, and on which parameters.
Common mistakes
Treating priors as cheating. A surprisingly common reaction from people new to Bayesian methods is "but you're putting your thumb on the scale." Yes — and so is the frequentist alternative, by implicitly assuming that no information exists outside the data. The honest question isn't "should we use priors" but "what priors are we using and are they reasonable?"
Picking priors that match what you want the answer to be. Priors should encode general knowledge about parameter ranges (decay rates are usually in this range; coefficients are usually positive). They shouldn't encode "I want Meta to look good." If you find yourself adjusting priors to make a specific channel look better, you've stopped doing science.
Using uninformative priors when you have small data. "Uninformative" priors (uniform over a wide range) seem neutral but actually push the model toward extreme values, because most of the prior probability mass is in extreme ranges. Weakly informative is almost always better than uninformative for MMM.
Not validating the prior choice. Run the model with priors and without (if your tool allows it). Run with different prior strengths. If the answer changes wildly, the priors are doing a lot of the work — which means you should look hard at whether they're reasonable, and that you don't have enough data for confident answers either way.
What to look for in a tool
If you're choosing rather than building, look for tools that:
- Use Bayesian estimation rather than pure frequentist regression
- Have sensible default priors that you can inspect (or that are documented)
- Apply priors to all the relevant parameters: decay, saturation, coefficients, controls
- Produce stable estimates when you re-run with slightly different data
- Surface uncertainty in the output, not just point estimates
CheapMMM uses joint MAP estimation with weakly informative Bayesian priors on decay, saturation, and channel coefficients, plus Ridge regularization (a related concept) for the linear part of the model. The priors are documented and the parameters are surfaced in output. But the more important point is that any MMM you take seriously should be doing this — purely frequentist MMM with limited data is going to mislead you, no matter who built it.
For more on the related topic of how to read uncertainty out of an MMM, see our post on credible intervals in MMM. And for context on why MMM has the small-data problem in the first place, see our guide on how much data you need for MMM.