Updated October 2026

By MCP Analytics Team. Real data: none. This article uses the simulated Robyn demo file, credited under the data section. For one brand's real weekly orders, see the business version.

Also on this topic: the idea, no data · the business version, on one brand's real weekly orders.

The answer first: a tidy fit, shaky parts

This data is simulated. A marketing mix model fitted to the Robyn demo file, which its publisher calls a "simulated dummy dataset to test and run demo", reproduces weekly sales on the last 42 weeks, which were left out of the fit (the shape settings were chosen on all 208 weeks, a softer test), with a typical error of 11.9 percent of weekly sales, and the split of sales between the five channels in the model and the baseline adds up. That does not make every channel's number readable. One channel overlaps the others too much for the model to separate it, and two of the four channels we can quote have 95 percent intervals that include zero.

Our position: a total that adds up and a holdout error figure still do not make every channel's share readable. Check the overlap and the interval first.

What a marketing mix model is

A marketing mix model relates weekly sales to weekly spend in each channel, with a baseline for the sales you would have had anyway and allowances for carryover and diminishing returns. It is fitted to past weeks, so it reports associations in that data, not proof of cause.

The data and the question

The file is the Robyn demo dataset dt_simulated_weekly from Meta's open-source Robyn repository, released under the MIT License. It is simulated: no brand, no company and no customers are behind it, and the publisher does not give the true effect of any channel. That matters for this page, because it means the fit cannot be graded against a known answer. We chose it because it is open, long enough to leave weeks out of the fit, and a standard teaching file for the method.

It holds 208 weekly rows, the weeks starting on Mondays from 2015-11-23 to 2019-11-11, with no gap and no empty cell. The outcome is weekly sales, in a column the file names "revenue", in the file's own units; the publisher states no currency. The model has five channels: TV, out of home, print, search and Facebook. Spend is zero in some weeks in four of the five, and we kept those zeros. Five other columns in the file (Facebook impressions, search clicks, competitor sales, events and a newsletter) are not in the model, because the tool takes an outcome and spend only. We say nothing about their effect.

The question: when a media mix model gives a tidy-looking fit and a total that adds up, how much of its split can you read?

Data: Robyn demo dataset dt_simulated_weekly, MIT License, Copyright (c) Meta Platforms, Inc. and its affiliates. Simulated data. Not endorsed by Meta Platforms. Changes: none to the values; the sales column and the five spend columns only.

The fit and the split

We ran our free media mix tool on the 208 weeks, in one run, with no second window and no tuning after the fit. R-squared over all 208 weeks is 0.836.

To check the fit, the tool left the last 42 weeks out of the fit and compared them. On those weeks its typical error is 11.9 percent of weekly sales (mean absolute percentage error). The shape settings, carryover and saturation, were chosen using all 208 weeks, so this is a softer test than weeks held back from every choice.

The total adds up. The five channels in the model are credited with 28.5 percent of all sales over the 208 weeks, and the baseline, trend and yearly shape together with the other 71.5 percent. The tool's label for this decomposition is "coherent". The residuals show no strong autocorrelation (Durbin-Watson 1.87).

Figure 1. Actual weekly sales, simulated data, with the last 42 weeks marked as left out of the fit. Typical error on those weeks 11.9 percent of weekly sales.

A line chart of simulated weekly sales over 208 weeks, with the last 42 weeks shaded and labelled as left out of the fit. Text under it: average error on those weeks 11.9 percent of weekly sales, a softer test than a forecast. No fitted line.
Simulated data. Weekly sales; the shaded weeks were left out of the fit. Data: Robyn demo dataset dt_simulated_weekly, MIT License, Copyright (c) Meta Platforms, Inc. and its affiliates. Simulated data. Not endorsed by Meta Platforms. Changes: none to the values; the sales column and the five spend columns only.

Which channel numbers can you read?

Two checks come before any channel number: how much the channels overlap, and how wide each interval is.

Overlap. The tool measures how much of one channel's spend pattern the others already explain (the variance inflation factor). About 5 and over means that channel's split is shaky. The largest value here is 6.68, for one of the five channels. In plain words, that channel moves closely enough with the others that the model cannot cleanly separate it. The tool's label for this overlap is "fragile", and it says the per-channel split should be read as indicative. We quote no share or return for that channel, and nothing quoted below should be added up to the 28.5 percent total, because the channel we do not quote carries part of the 28.5 percent.

Intervals. For the four channels whose own overlap is under 5, the tool reports a return per unit of spend with a 95 percent interval. The table gives three of them, to show what an interval that includes zero looks like. The tool reports a fourth, which is drawn in Figure 2 and left out of this table; its interval is very wide, so we do not read it as a ranking.

Channel in the modelReturn per unit of spend95 percent intervalWhat the interval says
TV7.22134.5997 to 9.8429stays above zero
Out of home1.7872-0.4119 to 3.9863includes zero; "not distinguishable from zero"
Print7.2391-0.1157 to 14.5938includes zero; "not distinguishable from zero"

Population: one simulated series, 208 weeks, five channels in the model. Returns are in the file's own units of sales per unit of spend.

Our reading: print and TV have almost the same return in this fit, yet the data pin TV down and leave print's interval wide enough to include zero. An interval that includes zero means the data cannot tell this channel's contribution from none. That says how well the file supports the number. It does not say the channel does nothing, and it ranks no channel.

The tool's intervals use the regression coefficients only. They leave out the uncertainty in the fitted carryover and saturation, so the true intervals are wider than these.

Figure 2. Return per unit of spend with 95 percent intervals for the four channels whose own overlap is under 5, simulated data, in the file's fixed channel order, with the zero line drawn.

Two panels of horizontal intervals with a vertical zero line, in the fixed order TV, out of home, print, Facebook. Top panel, all four on one scale: TV 7.2213 (4.5997 to 9.8429), out of home 1.7872 (-0.4119 to 3.9863), print 7.2391 (-0.1157 to 14.5938), Facebook 56.8888 (7.0185 to 106.759). Bottom panel, a zoom of TV, out of home and print on their own scale, so the out of home and print intervals visibly cross zero.
Simulated data. Return per unit of spend with 95 percent intervals, fixed order, no ranking. The intervals leave out carryover and saturation uncertainty. Data: Robyn demo dataset dt_simulated_weekly, MIT License, Copyright (c) Meta Platforms, Inc. and its affiliates. Simulated data. Not endorsed by Meta Platforms. Changes: none to the values; the sales column and the five spend columns only.

What this means for you

A tidy fit and a total that adds up are the start of the check, not the end. Before you quote any channel, look at its overlap with the other channels and at its interval. If the overlap is high, or the interval includes zero, quote the total and leave the channel out.

A media mix model vs a lift test

A media mix model reads the weeks that already happened, and channels tend to move together in those weeks. A lift test holds a group back on purpose, so it can show what a channel added. This page uses no lift test, and it makes no claim about cause. For what one channel adds, a lift test is the check.

What this does not tell you

  • Nothing about real markets. The data is simulated. These results describe this file, not any brand, channel or market.
  • No true answer to grade against. The publisher gives no real channel effects, so we cannot say whether the fit recovered them. We do not claim it did.
  • No cause. These are associations in one fitted model, not proof that any channel caused a sale. The tool uses no experiment or lift test.
  • No ranking. No channel is called best. A share or a return is a statement about this file.
  • A softer holdout. The shape settings were chosen using all the weeks, so the 11.9 percent figure is not a forecast error.
  • Columns left out. Impressions, clicks, competitor sales, events and the newsletter are in the file and not in the model.

How to check a media mix model on your own file

  1. Leave the last weeks out of the fit and compare the model with them. Say that the shape settings were chosen on all the weeks.
  2. Add up what the model gives the channels and the baseline, and compare it with your sales.
  3. Check the overlap between channels. Above about 5, treat the split between those channels as shaky.
  4. Read each interval. If it includes zero, the data cannot tell that channel from none.

What you need and what you get back

What your file needs: one date column, one numeric outcome and at least one spend column, with no gaps.

What you get back: the split of sales into baseline and channels, a return per unit of spend with a 95 percent interval for each channel, the overlap between channels with a verdict, a check on weeks left out of the fit, and the method named with the code that ran it. The tool says its intervals are narrower than the truth.

How we checked

Every figure on this page is copied from the answer key for this file, and our test station's gate passed on this file. The data are simulated, so there is no true answer to grade the fit against, and we say so above.

Three checks as rows. Weeks left out of the fit: a tick, 11.9 percent of weekly sales on the last 42 weeks, a softer test than a forecast. Does the split add up: a tick, coherent, 28.5 percent channels in the model and 71.5 percent baseline, trend and yearly shape. Can every channel be read: a cross, fragile, overlap 6.68, two of four intervals include zero.
Simulated data. The three checks on the split, with the tool's labels. Data: Robyn demo dataset dt_simulated_weekly, MIT License, Copyright (c) Meta Platforms, Inc. and its affiliates. Simulated data. Not endorsed by Meta Platforms. Changes: none to the values; the sales column and the five spend columns only.

Related articles

Your turn: run it on your own file

You need one date column, one numeric outcome and at least one spend column. The free tool infers the cadence from the dates and refuses a series that is too short or too broken. Run the free media mix tool on your own weekly data, and read the overlap verdict and each interval before you read any channel's share.

Questions people ask

These questions are inferred from the key and the brief, not taken from observed search queries.

Is this real data?

No. It is the Robyn demo dataset, which its publisher describes as a simulated dummy dataset to test and run demo. Nothing here describes a real brand or market.

Does a low holdout error mean the channel split is right?

No. On the last 42 weeks, left out of the fit, the typical error is 11.9 percent of weekly sales, and the total adds up. One channel still overlaps the others too much to quote, and two of the quotable channels have intervals that include zero.

What does an interval that includes zero mean?

The data cannot tell that channel's contribution from none. For out of home the interval runs from -0.4119 to 3.9863, and for print from -0.1157 to 14.5938, in the file's units of sales per unit of spend. It does not say the channel has no effect.

Why is no share or return given for one of the channels?

Its overlap with the other channels is 6.68, above the 5 at which the tool treats a split as shaky. We quote no share or return we cannot stand behind.

Can the fit be checked against the true channel effects?

Not here. The publisher does not publish them, so we make no claim that the model recovered them.

References

  1. Robyn demo dataset dt_simulated_weekly, from the Robyn repository (facebookexperimental/Robyn), file R/data/dt_simulated_weekly.RData; documentation in R/R/data.R. MIT License, Copyright (c) Meta Platforms, Inc. and its affiliates. Simulated data. Not endorsed by Meta Platforms.