Marketing Measurement ·

Can an MMM accurately predict revenue but still misattribute which channels drove it?

A high R² doesn't mean your MMM knows which channels drove revenue. Learn why models misattribute credit during peak seasons and how to spot it.

Linnea Zielinski · 12 min read

Listen
0:00 / 0:00
AI-generated audio
Can an MMM accurately predict revenue but still misattribute which channels drove it?

Anyone who's survived a group project knows how it goes. The final grade is right there on the page, and nobody can argue with it. Figuring out who actually earned it is a different story. The person who gave the presentation usually walks away looking like the star, even if a teammate spent three late nights on the research that made the presentation possible. Hand out credit based on who was standing at the front of the room, and next semester you'll pick the wrong partners.

Marketing mix models (MMMs) can run into the same problem. An MMM can get the final grade right, forecasting total revenue with impressive accuracy, and still hand most of the credit to the wrong channels. Brands raise ad spend right before their busiest stretches, so ads and sales climb together, and whichever channels are spending heaviest when shoppers buy end up looking like they did all the work. Since those channel numbers decide where budget goes, especially how much gets poured into peak periods like Black Friday and Cyber Monday (BFCM), knowing whether your MMM is predicting well or attributing well is the difference between scaling what works and scaling whoever happened to be presenting.

Key takeaways

  • A high R-squared (R²) or low forecast error proves an MMM can predict total revenue, but it doesn't prove the model knows which channels drove that revenue.
  • Most traditional and open-source MMMs treat revenue as a set of separate, additive slices, and that structure breaks down when ad spend rises and falls with natural demand.
  • When brands scale spend into peak seasons, the math can't tell ad-driven sales from holiday-driven sales, so credit leaks between base revenue and media channels.
  • Statistical penalties and extra data don't fix this, since they help a model settle on one answer (often confidently) without making that answer right.
  • Prescient's model treats marketing as a connected system that changes over time, with real-world behavior built in, like the difference between campaigns that create demand and campaigns that capture it.
  • In a benchmark with known right answers, our model's channel-level attribution error was roughly 70% lower than two widely used open-source MMMs, and its BFCM budget recommendation landed within about 1% of the ideal plan.
  • Before trusting channel ROI from any MMM, ask how its attribution has been tested separately from its revenue forecasts.

Predicting revenue and attributing revenue are two different jobs

When a data science team presents an MMM, one of the first slides usually shows how closely the model's predicted revenue tracks actual revenue. A tight fit feels like proof that everything else coming out of the model, including channel ROI, must be just as reliable. Unfortunately, those are separate skills, and a model can be great at one while failing at the other.

What a high R² actually tells you

R² measures how much of the movement in your historical revenue the model can explain. A 95% R² means the model's predicted revenue line hugs your real revenue line very closely. That tells you the model has picked up on the overall rhythm of your business.

What R² doesn't measure is whether the model split that revenue correctly. Here's the difference in plain terms:

  • Predictive fit asks, "How close did the model get to total revenue?"
  • Attribution accuracy asks, "Did the model correctly figure out how much revenue each channel actually added?"

The first question has an easy answer key, since you can compare the model's prediction to what really happened. The second doesn't, because nobody can directly see how much revenue paid social or connected TV truly drove.

How a model can be accurate and wrong at the same time

Predicted revenue is just the sum of all the pieces the model assigns, so there are many different ways to divide up the same total. Here's a simplified, hypothetical example of two models looking at the same brand.

Model AModel B
Predicted total revenue$10M$10M
Actual total revenue$10M$10M
Credited to base revenue$6M$8.5M
Credited to paid social$3M$0.5M
Credited to search$1M$1M

Both models are perfectly "accurate" by R² standards. But Model A would tell you paid social is a star worth scaling, and Model B would tell you to cut it. In extreme cases, an MMM can give most of a brand's revenue to a channel with almost no real effect and still post a near-perfect fit, because base revenue simply soaks up whatever difference is left over.

Why traditional MMMs fall into the "good fit, bad attribution" trap

This problem usually isn't the result of sloppy data science. It comes from the basic way most MMMs are built and how that design collides with the way marketers actually spend money.

The pie chart assumption

Most traditional MMMs assume revenue can be split into independent, additive slices, almost like a pie chart. In simplified form, the formula looks like this:

Revenue = base revenue + paid social contribution + search contribution + TV contribution + ...

Each slice is estimated as if it works on its own. Base revenue covers things like seasonality, long-term trends, and holidays, while each channel gets its own response curve. It's easy to explain and report, which is why it's so common.

Why peak-season spending scrambles the math

Here's the catch: marketers don't spend randomly. They raise budgets when demand is already climbing, during holidays, product launches, promotions, and seasonal surges. That's smart marketing, but it's a measurement headache.

When ad spend and natural demand rise and fall together, the pie chart formula can't tell them apart. Did sales jump in late November because you doubled paid social, or because it's BFCM and shoppers were coming anyway? From the model's point of view, both stories fit the data equally well. In fact, there are endless ways to divide that revenue between base revenue and media channels that all produce the exact same forecast.

Data scientists call this an identifiability problem, which is a technical way of saying the data alone can't settle the question. And because the forecast looks the same no matter which split the model picks, R² gives you no warning that anything's off.

Baseline leakage: Where the misplaced credit goes

When a model can't tell demand-driven sales from ad-driven sales, credit starts leaking between buckets. We call this baseline leakage, and it can run in both directions:

  • Base revenue gets credited to ads. Holiday demand gets assigned to whichever channels were spending heavily at the time, which makes those channels look far more profitable than they really are during peak periods.
  • Ad-driven revenue gets credited to base revenue. Sales your campaigns actually generated get written off as "organic," which makes those channels look weaker than they are.

Lower-funnel channels are especially prone to the first problem, since they tend to scale alongside existing demand. Campaigns that build demand, like video or audio, are especially prone to the second, since their impact often shows up later and through other channels. Either way, the forecast stays accurate while the channel ROI you're using for budget decisions drifts further from reality. Because this is an underlying math problem built into the model, it's not something better tagging or an incrementality test can patch over.

Why open-source MMMs don't solve the problem

Popular open-source MMM frameworks know about the correlated spend problem, and they try to handle it with statistical techniques. The most common is regularization, which adds mathematical penalties to discourage extreme or unstable answers. Bayesian approaches do something similar, using "priors," or starting assumptions, to nudge the model toward certain results.

Math penalties pick an answer, not the right answer

Remember that the pie chart formula can produce endless revenue splits that all fit the data equally well. Regularization doesn't narrow that set of possibilities down to the true one. It just gives the model a rule for choosing among them, like "prefer smaller numbers" or "prefer smoother curves."

That makes the output look stable and tidy, often with neat ranges around each estimate. But the rule doing the choosing has nothing to do with how your marketing actually works. So the model lands on one guess out of many equally valid-looking options, and the polished presentation can make that guess feel far more certain than it should.

More data makes the model more confident, not more correct

It's natural to assume a model will sort itself out with enough history, but for this problem, it won't. Adding more years of data where spend still rises with demand doesn't give the model any new information to separate the two.

What happens instead is that the model's confidence grows around whatever answer its built-in penalties prefer. Over time, a model with the wrong structure can become very sure of the wrong answer. And the more history you feed in, the harder those numbers become to question.

How Prescient's model approaches the problem differently

Our view is that the fix isn't a cleverer penalty. It's a model whose basic structure looks more like the way marketing actually works, which is the idea behind the research paper our team published on our model's design and performance.

Modeling marketing as a system instead of a pie chart

Rather than slicing revenue into separate, additive pieces, Prescient's model treats marketing as a system that evolves over time. It tracks underlying conditions you can't see directly, like demand and awareness, and how those conditions shift in response to your spend, the season, and everything else going on. Revenue is the visible result of that system.

This matters because base revenue and media effects aren't forced into separate boxes from the start. They come out of the same connected picture, so the model doesn't have to arbitrarily decide how to split a holiday sales spike between "organic" and "paid."

Building real marketing behavior into the model

Instead of relying on arbitrary math rules to choose an answer, our model narrows the possibilities using patterns that reflect how marketing really behaves. A few of the most important ones:

  • Demand creation and demand capture. Some campaigns build interest, and others convert people who are already interested. Our model gives credit to the campaign that created the demand, not just the one that happened to be there when someone converted.
  • Efficiency that changes with the season. The same dollar can work harder or less hard depending on the time of year, so the model doesn't assume a channel's return is fixed.
  • Flexible response shapes. Many MMMs force every channel onto a preset curve that assumes returns start shrinking early. Our model lets each channel's response take the shape the data supports, so it doesn't call a channel saturated before it really is. (Our research on saturation assumptions digs into why this matters.)
  • Carryover and halo effects. Ads keep working for weeks after they run, and they can drive revenue indirectly through another channel, like a social ad someone sees without clicking that leads to a later Amazon purchase. The model tracks both.

None of these are hard-coded outcomes. They're guardrails that keep the model's answers realistic, which regularization alone can't do.

What the benchmark results showed

Testing attribution with real brand data is tough, since nobody knows the true answer. So our research team built a simulated marketing environment, where virtual shoppers responded to spend, seasons, and events, and every channel's true contribution was known in advance. We ran Prescient's model and two widely used open-source MMMs across 10 separate datasets and compared each model's answers against the real ones. Because not every MMM measures at the campaign level, the comparison was run at the channel level.

Here's what we found:

  • Roughly 70% lower attribution error. Our model's average error was about 31,000 in the simulation's revenue units, compared to about 99,000 and 110,000 for the two open-source models. That's a gap of three to four times.
  • More accurate channel rankings. On a scale where 1.0 means perfect agreement with the true results, our model scored about 0.97, compared to 0.79 and 0.87 for the open-source models.
  • Consistency across the funnel. Our model held per-channel scores between 0.90 and 0.97 for both upper- and lower-funnel channels, while the open-source models' upper-funnel scores often fell below 0.6.
  • Less holiday inflation. The open-source models often overstated holiday effects by 20% to 30%, while our model's base revenue estimates stayed close to the true values.
  • Better BFCM budget calls. During a simulated peak period modeled on BFCM, one open-source model recommended overspending by about 81% and the other recommended underspending by about 11.5%. Our model's recommendation landed within about 1% of the ideal budget.

One more result is worth calling out. In a control test where the simulated world followed the pie chart rules exactly, the open-source models performed about as well as ours. That shows the gap comes down to whether a model's structure matches how marketing really works once channels interact and spend follows demand, rather than tuning or effort.

Predictive fit vs. accurate attribution at a glance

If you're comparing MMM approaches, it helps to see how they handle these issues side by side. The benchmark rows below reflect the two open-source models we tested.

Traditional and open-source MMMsPrescient's model
How revenue is modeledSeparate, additive slicesA connected system that changes over time
Predictive fitOften highHigh
How correlated spend is handledCredit leaks between base revenue and channels, or math penalties pick an answerReal marketing behavior narrows the possible answers
Attribution error in our benchmarkAbout 99,000 to 110,000About 31,000
BFCM budget recommendation in our benchmarkAbout 81% over or 11.5% under the idealWithin about 1% of the ideal

Questions to ask before you trust your MMM's channel ROI

You don't need a statistics degree to pressure-test an MMM. A few direct questions can show whether a model was built to forecast revenue or to explain where it came from.

  • How has channel attribution been tested separately from revenue forecasts? If the only proof offered is R² or forecast accuracy, you've only seen half the picture.
  • What happens to channel credit during peak periods? Ask to see channel ROI during BFCM or your biggest seasonal push. If every channel looks like a hero exactly when demand peaks, holiday demand may be leaking into media.
  • How does the model separate demand creation from demand capture? Look for an answer that explains how campaigns that build interest get credit when the sale lands somewhere else.
  • Does the model force preset response curves? If every channel is assumed to saturate on a fixed curve, you may be told to stop scaling channels that still have room to grow.
  • What non-marketing factors are included? Pricing changes, promotions, new retail distribution, and inventory swings all move revenue. If a brand launches in hundreds of new stores while raising connected TV spend, a model that ignores the retail expansion may hand that lift to TV.
  • How do tests fit in? Incrementality tests are accurate for a specific place and time, not your whole business. A good MMM provider should show you how model accuracy changes with and without a test result included, then let you make the call.

Where Prescient comes in

Prescient's marketing mix model was built for the exact situation that trips up traditional MMMs: omnichannel brands spending across digital, retail, and offline channels, with budgets that ramp up right alongside demand. Because our model treats marketing as a connected system, it can separate what your campaigns actually drove from what the season would have delivered anyway, and it measures halo effects across channels, including retail halo effects. Daily model updates and campaign-level attribution mean you're not waiting months to find out where credit really belongs.

That accuracy carries straight into planning. Our Media Forecaster feature uses what our MMM has learned about your seasonality to show what happens when you scale a channel or shift budget between channels, so your peak-season plan is built on real contributions rather than borrowed holiday demand. If you want to know which channels actually did the work, book a demo.

FAQs

What's the difference between predictive accuracy and attribution accuracy in an MMM?

Predictive accuracy measures how closely a marketing mix model's revenue forecasts match the revenue you actually earned. Attribution accuracy measures whether the model correctly identified how much of that revenue each channel added. A model can score high on the first and poorly on the second, because many different ways of splitting revenue between channels and base revenue can add up to the same total forecast.

Is a high R² a sign my MMM is reliable?

A high R² is a good sign the model has captured your revenue's overall patterns, but it isn't proof that channel ROI is right. R² only checks the total, not how the total was divided. To trust channel numbers for budget decisions, you'll want evidence that attribution has been tested on its own, not just forecasts.

Why do MMMs struggle most during the holidays?

Holidays are when brands spend the most and shoppers buy the most, so ad spend and natural demand move in lockstep. That makes it very hard for a traditional MMM to tell whether sales came from your ads or from the season itself. The result is often inflated ROI for channels that spent heavily during peak periods, which can push brands to overspend the following year.

Can incrementality tests fix attribution errors in an MMM?

Incrementality tests can give a useful read on a specific channel in a specific place and time, but they don't fix baseline leakage, which comes from the way many MMMs are structured. A test result is locally accurate but globally inaccurate, so it can't correct how a model splits revenue across every channel and season. At Prescient, we show brands how model accuracy looks with and without a test included, and the brand makes the final call.

Does adding more historical data make an MMM more accurate?

More data helps with many modeling problems, but not this one. If spend has always risen alongside demand, extra years of history don't give the model new information to tell the two apart. A model with the wrong structure tends to become more confident in its existing answer as data piles up, even when that answer is wrong.

The Halo

Exclusive insights, every week.

Subscribe to The Halo for sharper marketing thinking.

Keep reading

View all