Your MMM output says Meta has a ROAS of 3.2 and TikTok has a ROAS of 2.8. Naturally, you decide to shift budget from TikTok to Meta.
But what if the model is roughly equally confident that Meta's true ROAS is anywhere between 2.1 and 4.4, and TikTok's is anywhere between 1.9 and 3.9? Those ranges overlap massively. The model has no real evidence that Meta is better than TikTok. It just has slightly different point estimates that emerged from the same fitting process — and acting on the difference is acting on noise.
This is why credible intervals exist. And why any MMM tool that gives you only point estimates is, depending on how charitably you read it, either incomplete or actively misleading.
Why single numbers are misleading
When a model fits data, it doesn't find "the answer" — it finds a region of plausible parameter values that are roughly consistent with the data. Reporting only the most likely point in that region throws away the most important information: how big the region is.
Two channels with the same point estimate can have very different uncertainty. Channel A: ROAS = 3.0, with the model 90% confident the true value is between 2.7 and 3.3. Channel B: ROAS = 3.0, with the model 90% confident the true value is between 0.5 and 8.0. These are not the same situation. The first is an actionable estimate. The second is a coin flip dressed up as a number.
A point-estimate-only MMM presents both as "ROAS 3.0" and lets you treat them identically. That's a gift to overconfidence.
Frequentist confidence vs Bayesian credibility
You'll see two terms: confidence interval (frequentist) and credible interval (Bayesian). They sound similar and they look similar in practice. They mean different things.
A 90% confidence interval says: if you ran this experiment many times, in 90% of those experiments the interval you computed would contain the true parameter. It's a statement about the procedure, not about your specific interval.
A 90% credible interval says: given the data and the model, there's a 90% probability that the true parameter is in this interval. It's a direct statement about belief.
For practical purposes, the credible interval is what you actually want. It answers the question you're actually asking: "given everything I know, where is the true ROAS likely to be?" The frequentist confidence interval answers a more circuitous question that requires you to imagine repeating the experiment many times — which you can't, because you only have one set of marketing data.
Almost every modern MMM is Bayesian, so almost every uncertainty estimate you see in MMM is a credible interval. (For more on the Bayesian foundation, see our post on Bayesian priors in MMM.)
How intervals are computed
There are two main ways to compute credible intervals in MMM:
Full posterior sampling uses MCMC to generate thousands of samples from the posterior distribution. The 5th and 95th percentiles of those samples form a 90% credible interval. This is the gold standard — it captures non-Gaussian shapes, asymmetric uncertainty, and dependencies between parameters.
The cost is time. Full MCMC for a typical MMM can take anywhere from minutes to hours, depending on model complexity and chain length. For tools that need to produce results in seconds, this isn't feasible.
Laplace approximation is the fast alternative. The idea: at the maximum a posteriori (MAP) estimate, approximate the posterior as a multivariate Gaussian, using the curvature of the likelihood to define the covariance. Then sample from that Gaussian to construct intervals.
Laplace is fast — it adds milliseconds rather than minutes. The cost is approximation. If the true posterior is highly non-Gaussian (asymmetric, multi-modal, heavy-tailed), Laplace will misrepresent it. For most MMM problems with reasonable amounts of data, the approximation is good enough — the posteriors are roughly bell-shaped near the mode.
The right choice depends on your stakes and your patience. For a tool meant to give you results in under a minute, Laplace is the right call. For a one-time analysis backing a multi-million-dollar reallocation decision, full MCMC is worth the wait.
What "90% credible interval" means in practice
If your MMM reports Meta ROAS = 3.2 with a 90% credible interval of [2.1, 4.4], the model is saying: given the data and assumptions, there's a 90% probability that Meta's true ROAS is between 2.1 and 4.4.
Three things to internalize about this:
The lower bound is the decision-relevant number for "should I keep spending here?" questions. If your business decision is "is Meta still worth funding?", what matters is whether the lower bound is above your decision threshold. Lower bound at 2.1 means even in the pessimistic case, Meta is profitable. Lower bound at 0.6 means Meta might be losing money — be cautious.
Overlap between intervals matters more than difference between point estimates. If Meta's interval is [2.1, 4.4] and TikTok's is [1.9, 3.9], you can't confidently say Meta is better. The intervals overlap heavily — there's a real probability that TikTok's true ROAS is higher than Meta's. The decision-relevant question is whether the intervals are mostly disjoint, not whether the point estimates are different.
Wide intervals are information. "We don't know" is a valid output of a model. If you're going to act on a number, you should know how solid that number is. An MMM that says "your TikTok ROAS is somewhere between 0 and 8" is being honest about a hard problem. Don't punish that honesty by demanding a single number.
How to use intervals for decisions
The shift from point-estimate thinking to interval thinking requires changing how you read MMM output.
Reallocations should require non-overlapping intervals. If you're moving budget from channel A to channel B, the credible interval for A's marginal ROAS should be mostly below the credible interval for B's. If they overlap heavily, the model isn't telling you to reallocate — it's telling you it can't distinguish them.
Use intervals to decide what to test. Channels with wide intervals are channels where the model has the least information. If a channel matters to your budget and the model can't pin it down, that's exactly the channel where running an incrementality test would be most valuable. (For more on this, see our post on MMM vs attribution vs incrementality testing.)
Re-run the model and watch for stability. Add a week of data and re-run. If the point estimates jump around but the intervals are wide, that's expected — the model was honest about its uncertainty. If point estimates jump around and the intervals are narrow, the model's uncertainty estimates are themselves wrong.
When intervals are unreliable
Credible intervals depend on the model and its assumptions. They can be wrong:
When channels are highly correlated. If Meta and Google spend always move together, the model has trouble separating their effects. The marginal credible intervals can look reasonable, but the joint uncertainty is much larger — meaning if one channel's true ROAS is at the high end of its interval, the other is probably at the low end. Marginal intervals miss this. (More on this in our post on multicollinearity in MMM.)
When the model is misspecified. If your model is missing an important control variable (like a major promotion period that wasn't flagged), the credible intervals are computed under the assumption that the model is correct. Garbage assumptions produce confidently wrong intervals.
With Laplace approximation in highly non-Gaussian regimes. If the true posterior is asymmetric or multi-modal, Laplace won't capture that. The intervals can be too narrow on one side and too wide on the other.
When priors do most of the work. If the prior is informative and the data is thin, the credible interval will mostly reflect the prior. This isn't wrong per se — that's how Bayesian inference works — but you should know when it's happening, so you don't mistake prior-driven precision for data-driven precision.
Common mistakes
Reading point estimates as if they were certain. This is the default failure mode. If your MMM gives you only point estimates, every decision you make on it is based on the assumption that those numbers are exactly right. They aren't.
Demanding narrow intervals before acting. Sometimes the data just doesn't support narrow intervals. If you refuse to act until the model is "more confident," you'll never act — and the answer to widening data won't necessarily be narrower intervals (it depends on whether the new data resolves the actual identification problems).
Ignoring the joint distribution. Marginal intervals (per-channel) are easy to read but don't capture the full uncertainty picture. Two channels can each have a tight marginal interval while being highly correlated, meaning your "total digital ROAS" interval is much narrower than either alone — or much wider, depending on the structure.
Treating intervals as if they were guaranteed coverage. A 90% credible interval doesn't mean 90% of the time the truth is inside. It means: under the model and assumptions, the model's posterior puts 90% probability inside. If the model is wrong, the actual coverage can be much lower.
What to look for in a tool
If you're choosing rather than building, demand:
- Credible intervals on every channel-level estimate (ROAS, contribution, marginal effect)
- Documentation of how the intervals are computed (full posterior, Laplace, bootstrap)
- The ability to see joint uncertainty for related decisions, not just marginals
- Honest reporting of when intervals are too wide for confident decisions
CheapMMM produces 90% credible intervals on channel ROAS using Laplace approximation around the joint MAP estimate. The intervals are computed from the model's posterior, surfaced in the output, and explicitly noted as approximations rather than exact posteriors. But the broader point holds: any MMM tool you trust with budget allocation should give you uncertainty alongside its point estimates, in some form. If it doesn't, you're flying blind on the most important question — how much you can actually trust the recommendation.
For practical guidance on what to do with model output, see our post on how to interpret MMM results.