<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=9151474&amp;fmt=gif">
Skip to content

Guide

What is marketing mix modeling? The complete guide.

How MMM estimates what each channel really contributes, why the data and the priors decide everything, and how a model becomes a monthly budget decision. Written by the team that runs it for companies like Aprila Bank, Høie and CDON.

Updated September 2026 · about 45 minutes to read

By the Odins team · Updated September 2026 · About 45 minutes

What is marketing mix modeling? The short answer

Marketing mix modeling (MMM) is a statistical method that estimates how much each marketing channel, and each non-marketing factor, contributed to a business outcome such as sales. It works on aggregated data, typically weekly spend and sales, rather than on tracking individual people. Its outputs are the numbers a budget decision needs: what each channel returns today, where the next unit of spend earns most, and what happens to sales if the budget goes up or down.

That is the whole idea. Everything else in this guide is about how to do it well, because the gap between a good marketing mix model and a bad one is not the math. It is the data that goes in, the assumptions the model starts from, and whether anyone can act on what comes out.

Marketing mix modeling in six steps

  1. Collect the data. Two to three years of weekly spend per channel, one outcome series, and a list of the events and business changes in the period. Digital channels through APIs, offline channels through a pipeline for media plans and spot reports.
  2. Design the channels. Decide which spend rows form a channel, which small channels join a bigger one, and which are left out.
  3. Set the priors. Encode what the business already knows about each channel, from past budgets, platform response data and interviews, and check what those beliefs imply before any training.
  4. Train and verify. Fit the model, check that the data moved the priors, and store a forecast before the actuals arrive to see whether it predicts.
  5. Turn it into decisions. Read contribution and return per channel with ranges, find the budget where the next unit still clears the required return, allocate within it, and compare scenarios.
  6. Repeat monthly. New data in, retrain, re-verify, fresh recommendations reviewed by people, tests where the model is unsure. The results feed the next model.

The rest of this guide takes each step in turn, after three short sections on why MMM is back, what it measures and how it differs from attribution.

We run MMM for a living at Odins, for companies like Aprila Bank, Høie, CDON and Nettbil, so this guide is written from the inside. Where our own practice differs from the textbook, we say so and say why. Where MMM has real limits, we name them, because a model you trust for the wrong reasons is worse than no model at all.

Marketing mix modeling or media mix modeling?

Same method, two names. "Marketing mix" is the older term, borrowed from the four Ps of marketing (product, price, place, promotion), and the early models did try to estimate all four. "Media mix modeling" narrows the label to the media budget, which is what most models today are used for. In practice the two terms are used interchangeably, and both abbreviate to MMM. This guide uses marketing mix modeling because a good model still has to account for price, promotions and the rest of the business, even when the decision it supports is about media.

Who this guide is for

Anyone who owns or influences a marketing budget: CMOs and marketing directors deciding where the money goes, CFOs and CEOs deciding how much there is, and the analysts and marketing managers who have to make the plan work week to week. It goes deeper than most introductions, into data, priors and validation, because those are the parts that decide whether the numbers can be trusted. Skip ahead with the contents if you already know the basics.

Why marketing mix modeling is back

MMM is old. Consumer goods companies were running regression models on TV spend and shipments in the 1960s, and the discipline lived quietly inside econometrics teams and research agencies for decades. Then digital advertising arrived with something that looked better: a click, a cookie, a conversion pixel. Why estimate what marketing did when you could track it?

MMM came back for reasons that are not going away.

Tracking is losing its footing

Privacy regulation, browser changes and platform policy have removed much of the individual-level data that attribution depends on. Apple's App Tracking Transparency, the decline of third-party cookies, consent banners across Europe: each one takes a bite out of the conversion paths attribution needs to see. A model that never needed individual data does not notice.

The platforms grade their own homework

Google, Meta and the rest report conversions inside their own walls, with their own attribution windows, and every one of them has a reason to claim credit. Their algorithms are excellent at optimizing within a channel. They are structurally unable to tell you whether the channel deserves the budget in the first place, or what happened to sales in the shop, on the phone or through a reseller. MMM sits outside the platforms and reads the outcome the business actually cares about.

The budget question was never a click question

Attribution, at its best, answers "which touchpoint got credit for this conversion?" A finance team asks something else: "Is the marketing budget the right size, and what would we lose if we cut it by a fifth?" That question needs a model of how sales respond to spend across every channel, including the ones with no pixel, with a baseline for what would have sold anyway. That is what MMM is built to produce, which is why the method has come back as a board-level tool and not a marketing-department curiosity.

The market has responded. Google, Meta and the PyMC community have all open-sourced MMM frameworks, and a generation of platforms, ours among them, turned the method into a product. The statistics are largely shared. What differs is the data discipline, the assumptions, and how far each provider takes the model toward a decision. We compare them in build, buy or open source.

What MMM measures, and what it does not

A marketing mix model takes one outcome series and explains it as the sum of parts. The outcome is whatever the business steers by: revenue, orders, new customers, loan applications, bookings. The parts are the baseline and the channels.

Baseline: what would have happened anyway

The baseline is everything that is not marketing. The level of demand the brand starts the period with. The trend, up or down, that demand is on. The yearly seasonality that sends sales up in November and down in July. Known events like Black Friday or a January sale that spike sales for a week. Occasionally an outside factor with a known future value, like a public holiday calendar.

The baseline is usually the largest single component, often half of sales or more, and getting it right matters as much as getting the channels right. Every unit of sales the model puts in the baseline is a unit it does not credit to marketing, and the other way round. A model with a lazy baseline will hand seasonality to whichever channel happens to spend more in the peak season.

Channels: the incremental effect of each spend

For each channel, the model estimates a response curve: how many extra sales a given level of weekly spend produces, over and above the baseline. That word, extra, is the point. MMM measures incrementality. A brand-search campaign that catches people who were already on their way to buy shows a high return in the ad platform and a much lower incremental effect in a good model, because the baseline already contained those buyers.

Each channel curve has properties the next sections explain in detail: it saturates (the tenth unit of spend earns less than the first), it carries over (some of this week's effect lands next week), and it comes with uncertainty (a range, not a single number).

What comes out

Once the model is trained, it can decompose any period into baseline plus channels, report each channel's contribution and return with a confidence range, and, because it has a curve per channel, answer what-if questions: what if search went up by a quarter, what if TV were paused in the second quarter, what total budget still earns above the return the CFO requires. The decisions section covers each output and how to read it.

What MMM does not do

It does not tell you which ad, audience or keyword to run; the data is aggregated, so the platforms' own optimizers remain the right tool inside a channel. It does not measure a person's path to purchase. It estimates what is in the outcome series it is given: sales that happen outside that series, through a wholesaler or in a market not in the data, are invisible to it. And its estimates are model beliefs with uncertainty attached, not measured lift. A well-designed experiment measures; a model estimates. The two work best together, which is the subject of the next section.

MMM, attribution and experiments

Attribution, experiments and marketing mix modeling all compete for the same budget conversation. They answer different questions, at different levels, and the mistake is treating any one of them as the whole truth.

 Attribution (GA4, platform pixels, MTA)Experiments (geo lift, holdouts, conversion lift)Marketing mix modeling
Unit of analysisIndividual users and sessionsGroups of regions or users, treated vs controlWeekly aggregates across the whole business
What it answersWhich touchpoint preceded this conversionWhat one specific change caused, in one periodHow sales respond to spend per channel, and what the budget should be
Covers offline mediaNoYes, if you can vary it by regionYes
Measures incrementalityNo, it assigns creditYes, by designYes, estimated
SpeedDaily, liveWeeks per testMonthly refresh, minutes per scenario
Bias to watchOver-credits bottom-funnel channels and retargetingOnly valid for the channel and period testedDepends on data quality and priors; cannot see outside its series
Best used forOperating a channel day to daySettling one big question definitivelySetting budget levels and allocation across channels

Why attribution over-credits the bottom of the funnel

Last-click and data-driven attribution both work from conversion paths. A path can only contain touchpoints that were tracked, so TV, radio, print, out-of-home and most of the upper funnel never appear. Among the touchpoints that do appear, the ones closest to the purchase, brand search and retargeting above all, sit at the end of almost every path, including the paths of people who had already decided to buy. Attribution rewards them for being present, not for being the cause. This is not a flaw you can configure away. It is what the method is.

Why experiments are the gold standard, and why you cannot run on them alone

A well-run geo experiment, where some regions get a channel and comparable regions do not, is the closest marketing gets to a controlled trial. The result is a measurement, not an estimate. The limits are practical: one channel per test, several weeks per test, a cost in forgone sales while the test runs, and a result that holds for that channel at that spend level in that period. You cannot test twelve channels at six budget levels every quarter. Experiments answer the questions worth their price; a model has to carry the rest.

How they fit together: calibrate the model, do not stitch the outputs

Triangulation, running attribution, experiments and an MMM side by side, is sound advice, and Google and Meta both recommend it. The weak point is the last step. When the three disagree, somebody has to decide which number wins, and in our experience that decision gets made in a meeting rather than in a model.

The Bayesian approach offers a cleaner route. An experiment result, a lift and its uncertainty, becomes an informative prior on that channel's effect. Attribution data can inform priors too, once it has been corrected for its known biases. The model then returns one posterior that already reflects the evidence, instead of three numbers and an argument. Google Meridian and most serious vendors calibrate this way now, so this is mainstream practice rather than a novelty. Which brings us to the part of MMM that decides everything: the priors. First, the data they sit on.

The data a marketing mix model needs

If you own the budget rather than the model, jump to the outputs section. The four sections before it explain why those outputs can be trusted.

Most of the work in marketing mix modeling is not modeling. It is getting two to three years of spend, sales and business context into one table where every row means the same thing. Teams that underestimate this step produce models on time and regret them for a year. Here is what the table has to contain, where each part comes from, and the choices that shape what the model can learn.

The four inputs

Marketing spend, by channel, by week. Every unit of media money the company spent, with the date it ran and the channel it ran in. Digital platforms, affiliate and price-comparison networks, programmatic, TV, radio, print, out-of-home, sponsorships, influencers. If it left the marketing budget, it belongs in the table. Impressions and clicks are useful alongside spend, because they let you estimate saturation before the model runs, but spend is the variable the model needs.

The outcome. One series the business steers by: revenue, gross margin, orders, new customers, applications, bookings. It has to be defined the same way over the whole period, at the same weekly grain, and dated when the marketing could plausibly have caused it. If a loan application becomes a disbursed loan two weeks later, model applications, or shift the loan series back; do not ask the model to discover the lag on its own.

Business drivers. The things other than marketing that move the outcome: price changes, promotions and discount depth, distribution or store openings, product launches, stock-outs, competitor entries. Not all of these end up as variables in the model (the model section explains why most should not), but the modeler needs to know about every one of them to decide.

Events. Dated spikes that repeat: Black Friday, Christmas, the January sale, a fiscal year end, a regulatory date. And one-off events with a known date: a rebrand, a website replatform, a new application flow, a scandal. Events explain spend decisions too (TV clusters around Black Friday), which is exactly why the model needs them listed rather than discovered.

One structure for everything

Spend arrives in as many formats as there are sources. The job is to land it in one hierarchy, so that a unit spent on brand search in Sweden and a unit spent on a radio spot in Norway are described the same way. At Odins every spend row carries two descriptions: where it was spent for (company, market, and any dimensions the business reports on, such as brand or product line) and what it was spent on (channel, media group, medium, activity type). Search, then Google, then Google Search, then brand keywords. Social, then Meta, then Facebook, then prospecting video. The same code means the same thing across every source, and campaign names from the platforms are mapped to it once, with the mapping remembered.

This matters more than it sounds. First, the model's channels are built from this hierarchy: "brand search" as a model channel is a rule over the structured rows, and a rule can only separate what the structure separates. Second, the same structured data feeds reporting, so the number the model was trained on is the number in the report, with no reconciliation between the two.

How the data comes together
SearchAPISocial and videoAPIDisplay and programmaticAPIAffiliate and price comparisonAPITV, radio, print, OOHpipelineSales and business driversfeedOne structured tablesame meaning in every rowcompanymktchannelspendNordicNObrand srch▮▮▮NordicNOTV spot▮▮▮▮NordicSEmeta pros.▮▮NordicSEaffiliateNordicDKradio▮▮The modela curve per channelThe same table feeds reporting and the model

Where the data comes from

Digital channels come through APIs. Google Ads, Microsoft Advertising, Meta, TikTok, Snapchat, Pinterest, LinkedIn, the display and native networks, the affiliate networks, the price-comparison sites. Grant read access once, load two to three years of history, then sync daily. The unglamorous part is maintenance: platform APIs change, tokens expire, schemas drift, and a connector that quietly stops in March produces a model in June that credits March sales to the wrong channel. Someone has to watch every sync. At Odins that is our team, across 600 plus connectors, so the customer never has to.

Offline channels come through a pipeline for the files that exist. There is no API for TV. There is a media plan and a spot report, from the customer or their media agency, listing when each spot aired and what it cost. Radio, print and out-of-home have their equivalents at weekly or monthly grain. We set up a pipeline for those files, map them once into the same structure as digital, and from then on each new plan is a hand-off, not a project. The agency request is worth doing properly: invoice and airing report per channel, three years back, with gross versus net, agency fee and production, booked versus invoiced, and market and currency all made explicit. Most of the offline data problems we see trace back to one of those being assumed rather than asked.

Sales and outcome data comes from wherever the business keeps it. An analytics platform, a data warehouse, an order system, a CRM, a spreadsheet the finance team trusts. Automate the feed. A daily feed lets you verify the model as soon as a week closes; a monthly feed means you learn about a broken pipeline a month late.

How much history you need

Weekly is the usual grain, with daily an option when the outcome is measured daily and the history is long. Two years of weekly data is the comfortable floor, and three is better. The reason is seasonality: to tell the difference between "sales rose because November" and "sales rose because we doubled search spend in November", the model needs to have seen November at least twice. Six months is technically workable if priors do most of the work, and a good prior-setting process (next section) is what lets a model start earlier than the textbook says. But a short history means the priors decide more, and everyone involved should know that.

History matters in a second way. A channel is only learnable if the model has seen it at different spend levels. A channel that ran flat at the same weekly amount for two years teaches the model nothing about what would happen at twice that amount. Paradoxically, the campaigns marketers apologize for, the bursts and pauses and budget cuts, are the most informative data an MMM ever gets.

Designing the channels

The model attributes contribution to channels, so deciding what a channel is decides what you can learn. Some rules we hold to:

  • Keep the count realistic. Two years of weekly data is about 104 rows, and every channel needs a saturation curve, a carryover and a coefficient the data can support. Around ten channels is common; fifteen on 104 rows is thin. The priors section shows what that arithmetic means.
  • Split by default, group with a reason. Grouping two channels tells the model they share one saturation curve, which is a claim about the world. TV and YouTube are not the same resource. Two Google campaign types often are. Split unless you can defend the sharing.
  • Small channels join a bigger relative. A channel under about two percent of spend rarely earns a curve of its own. Group it with the channel it behaves most like, or leave it out and say so.
  • Separate brand from performance where the data allows. Brand search and generic search have different jobs and different curves. If campaigns are labeled, split them. If they are not, do not pretend; a split the data cannot support is a prior wearing a disguise.
  • Watch for channels that only run together. If TV airs only in Black Friday week, the model cannot separate the TV effect from the Black Friday effect. Either accept that the prior decides, or plan a test that runs TV in a quiet week.
  • One model per market. Different markets have different baselines, seasonality and channel mixes. Build the first market, learn from it, and carry the channel assumptions to the next as priors rather than forcing one model to fit both.

The data problems that ruin models

Missing periods, where a channel ran but its spend was not recorded, so the sales it drove get credited elsewhere. Renamed channels, where "Facebook" until 2024 and "Meta" thereafter become two half-length series unless merged. Definition drift in the outcome, where a CRM migration quietly changes what counts as a new customer. Currency mixing across markets. Attribution windows that changed inside a platform's own reporting. None of these are exotic. All of them are found by looking at the data before modeling it, and by having someone whose job it is to look.

In practice

Data is why an MMM takes weeks rather than days to stand up. At Odins the first model is typically live six to eight weeks after the data work starts, and most of that time is connectors, offline pipelines and the questions above. Some companies use the structured data on its own, delivered to their warehouse, before they model anything. That is a reasonable order: the data has value the day it is clean, and the model is only ever as good as it.

How a marketing mix model works

Under every marketing mix model is one equation, and it is worth seeing in words before the parts get names:

Sales this week = baseline this week + the sum over channels of response(carryover(spend on that channel)) + noise

The baseline is the part explained in what MMM measures: level, trend, seasonality, events. For each channel, spend first passes through a carryover transformation (this week's spend still works a little next week), then through a response curve (more spend earns less per unit), and the result is that channel's contribution to this week's sales. The model's job is to find the baseline and the curve parameters that, together, explain the sales series best, while staying inside what is believable. Here are the parts.

Carryover, or adstock

An ad seen on Tuesday can produce a purchase on Saturday, or the week after. Adstock is the transformation that spreads a week's spend forward in time, usually with geometric decay: a fixed share of the remaining effect carries into each following week. It has a decay rate and a maximum number of weeks the tail is allowed to run.

The textbook picture has TV carrying for months. On weekly data the picture is shorter. Most of a channel's measurable effect lands in the week of the spend, TV can be seen to carry for a few weeks after a burst, and search converts within hours. A model that lets adstock run long on every channel usually ends up using the tail to absorb slow movements in demand that belong in the baseline. Our own production models keep the tail short by default, and widen it only for a channel where there is a stated reason and a visible check on what it did to the baseline.

Carryover: where a week's effect lands
SearchConverts in the week it runswk 093%+15%+2+3+4+5TV burst, tail widenedA few weeks of carryover, then gonewk 062%+120%+210%+35%+4+5Spend happens in week 0. Bars show the share of its effect that lands in each following week.

Saturation, or the response curve

The first unit spent on a channel reaches the easiest customers to reach. The thousandth reaches someone harder. Response curves capture this with a saturating shape, most often a Hill function: slow at first, then steep, then flattening toward a ceiling. It is described by:

  • The ceiling: the most the channel could ever add per week at unlimited spend.
  • The half-saturation point: the weekly spend at which the channel delivers half its ceiling. Low means the channel fills up fast; high means you can keep spending for a long time before the curve bends.
  • The slope: how sharply the curve turns from steep to flat.

The curve is what turns the model from a report into a decision tool, because it separates two returns that get confused constantly. Average return is total contribution divided by total spend: what the channel earned per unit over the whole period. Marginal return is the slope of the curve at the current spend: what the next unit would earn. A channel can have an excellent average return and a poor marginal one, which is precisely the channel you should stop increasing. Budget decisions live on the margin. Reporting lives on the average. Mixing them up is the most common way a true MMM result gets misused.

The response curve, and the two returns it separates
Where you have actually spentWeekly spend on the channelIncremental salesCeiling: the most the channel can addHalf-saturation pointhalf the ceiling is reached hereToday's spendMarginal return: the slope at today's spend, what the next unit earnsAverage return: total sales over total spend, what a report showsSame channel, two returns. Reports use the average. Budget decisions have to use the marginal.

The baseline, built conservatively

The baseline in a well-built model is sparse: an intercept for the starting level, a trend that can bend at a handful of points and is held flat when projected forward, a smooth yearly seasonality, and explicit events for the dated spikes. That is the default, and it is a strength. Every extra component in the baseline takes variance that would otherwise be credited to marketing, so each one has to earn its place.

Whether a candidate variable belongs in the baseline at all comes down to causality. Does it affect how well marketing works, or is it affected by marketing? Discount depth, price and promotion intensity usually fail both directions at once: they change how ads perform, and they move with the marketing calendar. Treating them as neutral controls biases the channel estimates. And will its value be known in the future? A variable the model cannot see next quarter cannot be in a model that forecasts next quarter. When the causal story is unclear, the right first move is to leave the variable out and see whether the fit actually suffers. "It improves the fit" is not, on its own, a reason.

Seasonality and events are different things and should not be merged. Seasonality is the smooth shape of the year. Black Friday is a spike with a date. Fold the spike into the seasonality and you get a smeared blob that under-counts the peak and over-counts the weeks around it. Model it as an event, with a window as narrow as the visible effect, and resist adding an event for every unexplained bump: a mystery spike left unexplained is better than a mystery spike given a name and a parameter.

A year of sales, decomposed
JanAprJulOctDecBlack FridayActual salesBaselineSearchSocialTVDisplayAffiliateBaseline carries season, trend and the Black Friday event. Channels sit on top. The line is what actually sold.

Brand and the long tail

Adstock handles carryover measured in weeks. Brand effects can play out over quarters, and a model with a short adstock tail will book them as baseline, not as marketing. There are legitimate responses. Where a brand campaign started, paused or changed level on a known date, mark the level shift explicitly, so the durable change is captured without the channel having to carry it. And where a sizeable share of spend is brand-leaning, add a brand component: a slowly decaying stock that each channel feeds a fraction of its response into, so that payback landing months later is credited rather than lost.

Be clear about the limit. Long-running, near-constant brand spend cannot be separated from a constant baseline by any model, because neither one ever moves. That is structural, and the honest thing to do is say it before the model runs, not after.

Time-varying behavior

Most frameworks estimate one response curve per channel and hold its saturation fixed across the whole training window; none of the open-source frameworks ships time-varying saturation out of the box. Real markets drift: the budget level a business treats as normal moves through the year, and a channel's diminishing returns can differ by season. The models we run let the budget level each response curve is anchored to move with the season, so the same channel can be optimal at a higher spend in the fourth quarter than in July, and where a market's seasonality is visibly drifting, let the seasonal shape evolve rather than repeat identically. This is a second step after a static model has been trained and verified. Flexibility added first is flexibility the data cannot check.

What the model does not estimate

Interaction between channels. The model learns each channel's effect on its own, and the optimizer treats channels as independent saturable resources. When a heavy TV week lifts search and social conversions, that lift is credited to TV. What separates channels that often run together is natural variation across years of data, and where there is none, the model cannot tell them apart. Any MMM vendor who claims their model tells you which channels must run together is describing an assumption, not an estimate.

Priors: where thin data meets what you know

Here is the arithmetic that decides how MMM has to be done outside the United States, or in any single market. A national weekly series with two years of history is 104 observations. A model with ten channels, each needing a ceiling, a half-saturation point, a slope and a carryover rate, plus a baseline, is asking those 104 observations to pin down forty or more parameters. They cannot, not on their own. A classical regression forced to try will fit the noise, swing wildly when the window moves, and hand you a confident number that changes sign when you add a month of data.

US-built tools soften this by splitting the country into fifty states or hundreds of designated market areas, which multiplies the data per parameter and lets the model lean on volume. A Nordic or European advertiser with one market and one weekly series has no such luxury. What it has instead is knowledge. Years of budget decisions, platform data on how each channel responds, and people who know which channel saturates first. Bayesian modeling is the machinery for putting that knowledge to work.

Bayesian, in one paragraph

A Bayesian model starts from a stated belief about each parameter, the prior, expressed as a range with a shape: "the half-saturation point for paid social is probably here, could be anywhere from here to here." It then updates each belief against the data, producing the posterior: the same range, moved and narrowed by what the data showed. Where the data is rich, the posterior can land far from the prior and tight. Where the data is thin, the posterior stays close to the prior and wide, which is the model telling you, correctly, that it did not learn much. Every output downstream, every contribution and forecast and recommendation, inherits that range. A point estimate with no range is not a Bayesian output; it is a Bayesian output with the uncertainty cut off.

"Bayesian" is no longer a differentiator. Nearly every serious framework and vendor is Bayesian now; Meta's Robyn is the notable exception. The differentiator is what goes into the priors, and how carefully. That is where models built for data-rich markets and models built for thin ones part ways, and it is the part of our own method we would defend hardest.

From prior to posterior on one channel
Observed spend rangeWeekly spend on the channelIncremental salesPrior: what the team believed before the data, with its bandPosterior: after the data. Narrow where the channel has run, fanning out beyond itObserved spend range: the weekly spend levels the channel has actually run at

What a prior is, concretely

The priors that matter most are set per channel.

The allocation prior says where the channel's optimal spend is believed to sit, as a range. Not a guard rail on spend, and not a description of history: a claim about the optimum. A tight range centered on current spend says "we believe the current level is close to right." A wide range says "we are guessing." A range that sits below current spend, or reaches toward zero, says "we suspect this channel is over-funded and want the model to need evidence before it disagrees." The bounds become a weakly informative distribution, so clean evidence in the data overrides them. Weak evidence does not, and that is on purpose.

The half-saturation prior says how fast the channel fills up. In practice it is elicited as a question a marketer can answer: at this reference spend, if you raised spend by a quarter, how much more response would you expect, at best and at worst? A big expected lift means the channel is far from saturated; a small one means it is close.

The return anchor ties the two together. It is the marginal return at which the allocation prior is assumed to be optimal. It fixes the scale of every channel's curve, and the check on it is simple. Add up what the priors imply marketing contributes in a typical week and compare it to actual sales. If the priors say marketing generates three times total revenue, the anchor is wrong, however good each channel's curve looks on its own.

Where the numbers come from

In the order we lean on them:

1. The customer's own past budgets. Whoever set the budget knew something. Heavy spend on a channel means the business believes it works; heavy spend in a season means the season justified it. The starting assumption is that the historical split was roughly sensible, expressed as an allocation prior around observed spend. Then interviews find what was not sensible, and the data corrects the rest. Spend patterns carry more information than they get credit for: a channel being ramped up signals belief not yet fully acted on, so its prior sits a little above its recent average; a channel that only runs when total budget is high has an activation threshold the prior can encode; seemingly random bursts are worth a phone call, because "abandoned" and "waiting for the right moment" look identical in a spreadsheet.

2. Response data from the platforms. For digital channels, a year of weekly spend against impressions or conversions traces out a saturation curve before any MMM runs. Fit a curve to it, read off the half-saturation point, and use that as the prior. This is platform data used the right way: as evidence about the shape of a channel's response, not as a claim about its incremental return. A caution from doing this often: impressions on auction platforms are nearly linear in spend, so a fit that reports no saturation is a fit that could not see any, not evidence that the channel is unsaturated. And a fitted half-saturation that lands below the smallest weekly spend the channel ever ran, or several times above the largest, has latched onto noise and should be thrown out rather than trusted.

3. Structured interviews. Two or three one-hour sessions with the people who run the channels, asking the saturation and magnitude questions above per channel, plus context: seasonal restrictions, planned growth, dependence on other channels, and the big non-marketing changes in the period (a new application process, a competitor arriving, a price change). We ask for what the team thinks, deliberately, rather than what the ad platforms report, because the platform numbers already carry last-click bias and we do not want it in the prior.

Experiment results, where they exist, are the best input of all: a measured lift and its uncertainty go straight in as the prior on that channel's return. Earlier MMM work is something to learn from (what it found, which assumptions it landed on), never something to build on blindly. Industry benchmarks for TV and radio fill gaps. For a channel the business has never run, borrow the shape from a comparable one and scale it: a smaller search engine at a fraction of the larger one's half-saturation and a similar return, say.

Checking the priors before the model sees data

Before training, look at what the priors alone imply. Each channel's prior curve should cover the spend range the channel actually ran. The prior total, baseline plus channels, should land near the observed sales level, with bands that contain the real series. The implied share of sales that marketing drives should be a fraction the business recognizes: if the team's own estimate is "somewhere between fifteen and thirty-five percent", and the priors imply ninety, the return anchor needs correcting before a single sample is drawn. This check uses no posterior, so it is always allowed, and it catches most of the mistakes that would otherwise surface as a confidently wrong model.

This is the part of our process we have invested most in this year. Our model configurator now fits the half-saturation priors from each channel's own platform data and flags fits that landed outside the channel's observed range, fits the allocation bounds from a year of spend, renders every channel's prior curve over the spend it actually ran, sums the prior contribution against real sales, and solves for the return anchor from the customer's own estimate of marketing's share instead of leaving it to be guessed. What used to be an afternoon of spreadsheets and judgment is a review of charts and warnings, done before any training run, and the judgment goes where it belongs: into the interviews and the decisions about what the business believes.

The rule that protects the priors

Never set a prior from a posterior. Once you have seen the model's output, its fit, its forecast, its channel contributions, moving or tightening a prior to make that output look better is using the data twice. It turns the prior from independent knowledge into a tuning knob, and the confidence ranges that come out afterward mean nothing. What stays legitimate: fixing a prior that made the sampler fail, bringing in new outside information, widening a prior to see whether the data has anything to say, and restructuring channels for better identification. Iterating priors against forecast accuracy is the same violation with an extra step. If a vendor cannot tell you how they avoid this loop, ask.

Training, validation and verification

Training a Bayesian MMM means drawing thousands of samples from the posterior with a Markov chain Monte Carlo sampler, and it comes with its own diagnostics: did the chains converge, did they agree with each other, were there parameters the sampler could not explore. A model whose diagnostics failed is not a model with a slightly worse answer. It is a model with no answer, and it has to be fixed and re-run before anyone reads a number off it. That is the first gate, and it is mechanical.

The gates after it are about whether the model can be trusted, and they are where most MMM programs are weakest.

Did the data actually teach the model anything?

For every parameter, compare the posterior to the prior. Where the posterior moved and narrowed, the data spoke. Where the posterior is essentially the prior, the data was silent on that channel, and every recommendation touching it is "what your prior said", not "what the model learned." This is not a failure to hide. It is a finding: it tells you which channels need a test before they need a budget change. The test recommendations in the decisions section come straight from this comparison.

Then compare the posterior total marketing contribution against the business's own estimate. If the model says marketing drives sixty percent of sales and the team's own range was fifteen to thirty-five, the disagreement is itself a result: either a real insight or a bias to run down before the number is presented as truth. A model that never disagrees with its owners is not being checked hard enough; a model that disagrees by a factor of two has usually got something wrong.

Does it forecast?

In-sample fit, how closely the model traces the sales it was trained on, is the easiest number to make look good and the least informative. A model with enough flexibility will trace anything. What matters is whether the model predicts sales it has not seen.

The clean way to test this is to store the forecast before the actuals exist. Train the model up to a cutoff, record what it predicts for the following weeks, wait, and compare. No retrofitting, no picking the window afterward. At Odins every model has a verification view that does exactly this, week by week, and the target is that the forecast lands within ten to fifteen percent of actual sales in steady state, with early models allowed a little more slack while they learn a business's patterns. It is a high bar. It is also the only bar that makes the rest of the outputs worth reading: a budget scenario is a forecast, and a forecast from a model that cannot forecast is a guess with decimals.

Forecast accuracy needs careful reading. Accuracy over a few forward weeks is dominated by how the trend was extrapolated, so a model whose trend is still being revised as data arrives can verify well and still mislead; the fix is to fit the same configuration at several earlier cutoffs and check that the channel estimates stay put while only the trend moves. And a good verification is not a substitute for the prior checks above: two models can forecast equally well while attributing very different shares to marketing versus baseline, because the total is what the forecast checks, not the split. The split is decided by priors, interviews and how the business actually manages its spend, and it should be recorded as a decision.

Can anyone see inside it?

The most common objection to MMM in a boardroom is the black box: being asked to move budget on the word of an algorithm nobody in the room can inspect. It is a fair objection to a lot of measurement products, including some ad-platform optimizers. It should not be a fair objection to an MMM, because everything in the model is inspectable by construction: each channel's response curve, drawn over the spend it actually ran, with its uncertainty band; the parameters behind each curve; the baseline components and exactly which external factors the model controls for; the prior next to the posterior for every one of them; and the stored forecasts next to what happened. A model presented as a glass box, with those views available to the customer at any time, earns a different kind of trust from a model presented as a number. Insist on the views.

Keeping it current

Markets move, so a model trained once and consulted for a year is a report, not a system. Between retrains the model assumes each channel keeps working as it did; a creative change or a viral week shows up in the next training run, not the next morning. Re-verifying every month is also how you catch the quiet failures: a connector that stopped, a sales definition that changed, a channel whose curve drifted. The cadence itself is described under the monthly cycle, and the staying accurate page shows how we run it.

MMM outputs: from model to budget decisions

A trained, verified model is worth nothing until someone changes a budget because of it. Most MMM guides skip this part, and it is the part that separates a modeling project from a measurement system. Here is what comes out of a good model, in the order a marketing and finance team should read it.

1. Contribution and return by channel, with ranges

The first output is the decomposition. For any period, it shows how much of the outcome was baseline and how much each channel added, with each channel's average return over the period. Every number comes with a range, and the range is the instruction. We label channel estimates by how wide the inner range is relative to the estimate. Narrower than a fifth of the estimate is high confidence: the model pins the channel down and the number can be quoted directly. Up to about 45 percent is medium: quote the range alongside the number. Wider than that is low, and a channel whose spread rivals the estimate itself is a test candidate, not a scale-up candidate, however attractive its central number looks.

Read the ranges for what they are: uncertainty about the parameters, given the model's structure. They do not price in a competitor launching, a platform changing its auction, or a connector silently dropping a month. A model can be precisely wrong. Confidence ranges narrow the first kind of error; the checks in the previous section guard against the second.

2. How much to spend: the total budget

This is the question finance actually asks, and the one attribution can never answer. The model's response curves make it answerable. Set the minimum return the business requires on its last unit of marketing, a marginal return on ad spend or a maximum marginal acquisition cost, and the model finds the total budget at which every additional unit still clears that bar. Above it, the next unit no longer clears the return the business requires. Below it, money that would have cleared the bar is being left on the table.

How much to spend, decided on the margin
Total marketing budgetReturn on the next unit spent (marginal)Return the business requiresTodayRight-sizedEvery unit between today and the crossingstill clears the required returnBeyond the crossing, the next unitfalls short of the required returnThe budget question, answered on the margin: spend until the next unit no longer clears the return the business requires.

The number to watch is the marginal return at the proposed budget, compared with the target. Marginal above target means the optimal budget is higher than this one. Marginal below target means it is lower. Marginal roughly at target means the budget is the right size for that target. Framed this way, a budget conversation stops being "marketing wants more" and becomes "at what return do we stop", which is a question a CFO can answer and defend to a board.

3. Where to spend it: the allocation

Given a total, the optimizer distributes it across channels and weeks so that marginal returns are equalized, subject to the constraints the business imposes. Constraints are part of the model, not a workaround: a channel locked at a contracted amount, a channel held between a floor and a ceiling for a test, a channel excluded for a quarter. The model reports the cost of each constraint, so "we must spend this much on TV" becomes "and that costs us this much predicted revenue against the unconstrained plan." Sometimes the constraint is still right. Now it is a decision with a price rather than a habit.

One reading rule: the per-channel marginal return ranks channels for the next unit of spend at today's level and says almost nothing about twice the spend, so cite the curve at a specific spend level for any magnitude claim. And compare plans like for like, as two model forecasts over the same future window. A forecast for next quarter set against actuals from last quarter is noise dressed as a result.

4. Scenarios, side by side

A single recommended plan invites a yes or a no. Three or four scenarios invite a decision. The same model can forecast this year's plan repeated, the plan at the target-return budget, the plan with a fifth less, and the plan with the new channel tested, each with the same structure of outputs: total spend, forecast outcome with ranges, baseline versus marketing contribution, channel split, marginal return at the endpoint. Leadership sees the shape of the trade-off rather than one number to approve. For a CFO the relevant views are total budget against forecast outcome and marginal return; for a CMO the channel split and constraint indicators; for the media team the week-by-week plan per channel, exported to where the buying happens.

5. Recommendations, monthly, with a human in the loop

A model refreshed every month can produce a fresh set of recommendations every month, and it should, because a recommendation from a January model is a stale recommendation in June. The recommendations fall into a few kinds:

  • Reallocate. The model detects a channel past its bend and a channel with room, and proposes moving spend between them at the same total, with the expected gain and its range. Most of the value of MMM in the first year is here. In our experience, reallocation typically finds five to fifteen percent more effect from the same budget; Aprila Bank saw 37 percent more loan applications from the same budget, which is the upper end, not the promise.
  • Adjust. The marginal return at the current total is well above or well below the target, so the total should change. This is the recommendation the CMO takes to the CFO, with the curve behind it.
  • Test. A channel shows a positive but wide-ranged effect. The recommendation is not to scale it and not to cut it, but to run a structured test that narrows the range, with the design, cost and expected learning spelled out.

Model output is not a recommendation until someone who knows the business has read it. An optimizer will happily propose spending on radio in every week of the year, because nothing in the model says radio runs in campaign windows. It will propose moving a channel to zero when its allocation prior leaned that way and the data did not object. A human review catches these, adds the context the model lacks, and puts a name behind the advice. At Odins that review happens on every recommendation before it reaches the customer, and the standard is simple: it should be advice we would follow in the customer's seat.

6. Structured tests, designed by the model

Uncertainty is not a reason to do nothing. It is a reason to run a test, and a good MMM can design it. A structured pulse test changes one channel's spend by a deliberate amount for a fixed window, four, six or eight weeks, and measures the response against the planning baseline. Before it runs, the model can say for each channel whether a test at the available budget would be detectable at all (we require at least an eighty percent chance of detecting the true effect before calling a test worth running), what the test costs in spend, and what it costs in forgone outcome by diverting from the recommended plan. Those two costs are different questions, and both belong in the decision. When the test ends, the result goes back in as a prior, the channel's range narrows, and the next month's recommendation is built on measured ground.

The same logic covers channels the model has never seen. If every channel in the model is near its bend, the next move is exploration outside the modeled set. Pulse a new channel for two or three months, load the spend, retrain, and let the next model version quantify it. Present that plainly as unquantified. The model has no data on it yet; here is how to generate some.

7. The monthly cycle

MMM as a system, not a project
Datadigital syncs daily, offline lands through a pipelineModelretrains monthlyre-verified on closed weeksRecommendationsreallocate, adjust, test. Reviewed by peopleDecisions and testsbudget movespulse tests runEvery monthresults feed back inand the model gets sharper

Put together, this is what an MMM looks like as a system rather than a project. Digital data flows in daily and offline data lands through its pipeline. The model retrains monthly and re-verifies against the weeks that closed. Recommendations are produced, reviewed by people and delivered. The team acts on some of them, runs the tests the model asked for, and the results land back in the data. Each turn of the loop makes the next model a little better identified, and the recommendations a little bolder where the evidence supports it. Traditional MMM was a report delivered twice a year and out of date on arrival. The current generation is a loop, and the loop is the product.

Asking the model directly

One newer development is worth a mention because it changes who gets to use the outputs. Once a model is trained, the questions above ("what happens if we cut display in half", "what did TV contribute in the third quarter", "where is the next unit best spent") can be answered in seconds by an assistant connected to the model, in plain language, with the ranges and caveats attached. We ship this as the Odins MCP, which lets an AI assistant query the customer's own model. The important design rule is that the assistant reads the model; it does not replace the verification, the human review or the discipline in the sections above. A wrong answer delivered conversationally is still a wrong answer.

What to bring to the CFO

Not a dashboard. The verification chart, so the forecast has a track record before anyone relies on it. The marginal return at the current budget against the return the business requires, so the size of the budget is a question about return rather than about ambition. And two or three scenarios with the forecast outcome and its range for each, so the conversation is a choice between futures, not an argument about the past. Every figure in numbers finance already uses: revenue, margin, cost per acquisition, return on spend.

Common marketing mix modeling mistakes

Every failure mode below we have either made ourselves or inherited from a model built before us. They cluster around trusting the wrong number, over-building the model, and reading the output for something it cannot say.

Trusting the wrong number

  • Using platform-reported return as truth. Ad-platform ROAS and last-click conversions are inputs to a prior at most, and only after correcting for their bias toward the bottom of the funnel. Anchor the model on them and the model inherits the bias with a Bayesian stamp on it.
  • Confusing average and marginal return. The channel with the best average return is often the one to stop increasing. Budget decisions live on the slope of the curve, not its height.
  • Reporting a point estimate. If the range was wide and the deck showed a number, the deck lied. The range is the finding.

Over-building the model

  • Too many channels for the data. Fifteen channels on two years of weekly data is a model that will mostly return its priors. Group, or accept that the small channels are prior-driven and say so.
  • Control variables that are not exogenous. Price, discounts and promotions move with marketing and change how it performs. As plain controls they bias every channel estimate. Most of them do not belong in the model, and the ones that do need a causal argument, not a fit improvement.
  • An event for every bump. Each post-hoc event removes variance from the channels. An unexplained spike is better left unexplained than named and parameterized.
  • Long adstock everywhere. A long tail on every channel becomes a second trend component in disguise, absorbing demand movements that belong in the baseline. Keep it short by default.
  • Tuning priors to the output. The single most damaging habit in the discipline, and the hardest to detect from outside. Once the posterior has been seen, the priors are fixed except for new outside information or a sampler failure.

Reading the output for what it cannot say

  • Ad-level recommendations. There is not enough data in an aggregate model to say which creative or audience to run. Vendors who promise it are extrapolating. Let the platforms optimize inside a channel; let the model set the level and the mix.
  • Channel synergies. The model estimates each channel alone. Claims about which channels must run together are assumptions layered on top.
  • Cross-window comparisons. A forecast for next quarter against actuals from last quarter compares two different seasons and two different curves. Compare forecasts over the same window, or compare stored forecasts with the actuals for that same window, and nothing else.
  • Treating a good forecast as proof of the split. Verification checks the total. Two models can forecast equally well while crediting marketing with very different shares. The split rests on priors and interviews, and it should be documented as such.
  • Expecting the model to notice a regime change. It assumes the future looks like the training window. A competitor entering, a recession, a platform algorithm change: these show up as forecast misses first. Watching the verification chart monthly is how you find out early.

The limits of marketing mix modeling

A guide that only sells the method is not worth trusting. These are the questions a buyer should put to any MMM provider, including us, with the answers as we understand them after running it for years.

  • Can it tell us which creative or audience to run? No. It works on aggregates, so steering inside a channel stays with the platforms' own optimizers, which see far more signal. MMM sets the level and the mix.
  • Does it measure how channels work together? No. Each channel is estimated on its own; a TV week that lifts search is credited to TV. Claims about channel synergies from an MMM are assumptions layered on top of it.
  • Does it see all our sales? Only the outcome series it is given. Sales through a wholesaler, in a market outside the data, or driven by a channel with no recorded spend are invisible, and marketing's measured share is understated when those are large.
  • Can it measure our always-on brand spend? Not if it never changed level. A flat channel cannot be told apart from a constant baseline by any model. The prior decides, and a good provider says so.
  • Do the confidence ranges cover everything that could go wrong? No. They cover parameter uncertainty. A competitor entering, a recession or a platform changing its auction are not priced in; they show up as forecast misses, which is why monthly verification matters.
  • Is the number a measurement? No, it is an estimate: a belief updated by data. Where a question is worth settling for certain, an experiment measures it, and the result goes back into the model as a prior.
  • Does it model brand equity? Partly. A brand component credits slow payback, but as one pooled stream with one decay rate, not as per-channel brand equity, and it does not model awareness or consideration as funnel stages.
  • Will it work for us? It needs scale and variation. Below our fit line, or with spend that never moves, the model mostly returns its priors.

None of these is a reason not to use MMM. They are the reasons to use it with experiments beside it, a verification chart in front of it, and a person reviewing what it recommends.

MMM software: build, buy or open source

The statistics behind MMM are open. Google Meridian, Meta Robyn and PyMC-Marketing are free, well documented, and used by capable teams to build excellent models. So the question is rarely whether the math is available. It is who will do the rest: the data work, the prior-setting, the validation, the monthly cycle and the translation into decisions a business will act on.

Open-source frameworks

A framework is an engine, not a car. An independent 2026 academic review of the three main packages (Runge and Pauwels, Open-Source Media and Marketing Mix Modeling) puts a first working run at about a day for Robyn, several days for Meridian and up to two weeks for a newcomer's first full run with PyMC-Marketing, after the data is prepared and before anyone validates, maintains or explains the model. Meridian is Bayesian with the strongest built-in optimizer and native support for geo-level data; the same review flags its default priors as a misuse risk for teams that leave them alone. PyMC-Marketing is the most flexible and the closest to what we run ourselves. Robyn is frequentist rather than Bayesian, returns a set of candidate models to choose between, and is no longer under active development at Meta. If you have data scientists who can own a model for years, the frameworks are a serious option. If you do not, the license is free and the total cost is not.

Agencies and consultancies

Media agencies, holding-company analytics arms and research houses have run MMM for decades, and the best of them are very good. If the provider also buys your media, ask whether the people grading the channels are the people selling them. Research houses do not have that conflict, so ask them the second question instead: is it a system or a study? Does the model retrain and re-verify monthly, with your team able to run scenarios themselves, or does a deck arrive twice a year? Both exist in the market, at very different price points.

Platforms

A generation of software companies, ours included, run MMM as a product: data integration, modeling, verification and recommendations in one managed system, priced for advertisers well below the largest global brands. They differ on the axes this guide has spent its length on. How do they set priors, and does the approach assume data abundance the market does not have? Is offline media a proper input or an afterthought? Is the model a glass box you can inspect? Are forecasts stored before actuals arrive? Does a person review recommendations, and will they say when the data is too thin to act? We keep an honestly sorted list of the main providers, including open-source options and including ourselves, with who each is best for, and a comparison page per alternative for the detail.

Who should not bother

MMM needs variation to learn from. A business with a marketing budget too small to show up against the noise in its sales, or with spend so flat that no channel ever changes level, will get back its priors and a bill. Our own fit line is a marketing budget above about one million euros a year and a sales signal the model can learn from, and that is a floor; most of our customers spend many times more. Below it, structured data and a good attribution setup are the better investment, and MMM can come later on the same foundation.

Glossary of MMM terms

Short definitions of the terms that come up in every MMM conversation, written to be quoted.

Adstock (carryover)
The share of a week's advertising effect that lands in later weeks, usually modeled as geometric decay. Also called carryover or lag effect.
Allocation prior
A stated belief, as a range, about where a channel's optimal spend sits at a given marginal return. The model's starting point for that channel, updated by the data.
Attribution
Methods that assign credit for a tracked conversion to the touchpoints in that user's path: last click, first click, data-driven, multi-touch. Individual-level and limited to tracked channels.
Baseline
The part of the outcome the model attributes to everything other than marketing: starting level, trend, seasonality, events and any control variables. What would have happened with zero media spend.
Bayesian MMM
A marketing mix model that starts from stated prior beliefs about each parameter and updates them against the data, producing a posterior distribution and therefore a range for every output.
Calibration
Feeding outside evidence, typically an experiment result, into the model as an informative prior, so the model's estimate for that channel is anchored to a measurement.
Confidence range (credible interval)
The band within which the model places a given share of its probability for an estimate, for example 90 percent. Reported on every MMM output; its width tells you how much the data constrained the answer.
Contribution
The part of the outcome the model attributes to a channel over a period, over and above the baseline. The incremental effect of that channel's spend.
Control variable
A non-marketing series included in the model to explain part of the outcome. Should be causally independent of marketing and known in the future; most candidates fail one of those tests.
Geo experiment (geo lift)
A test where some regions receive a marketing treatment and comparable regions do not, so the difference in outcome measures the treatment's incremental effect.
Half-saturation point
The weekly spend at which a channel delivers half of its maximum possible effect. The main parameter describing how fast a channel saturates.
Incrementality
The outcome that happened because of a marketing activity and would not have happened without it. The quantity MMM and experiments estimate, and attribution does not.
Marginal ROAS / marginal CAC
The return on, or acquisition cost of, the next unit of spend on a channel at its current level: the slope of the response curve there. The right basis for a budget decision, as opposed to average ROAS.
Media mix modeling
Another name for marketing mix modeling, emphasizing the media budget. Same method, same abbreviation.
Posterior
The model's updated belief about a parameter after seeing the data: the prior, moved and narrowed by evidence. Every MMM output is derived from posteriors.
Prior
A belief about a parameter stated before the model sees the data, as a distribution. In MMM, priors carry the business's knowledge about how its channels behave; on thin data they decide a great deal.
Prior predictive check
Looking at what the priors alone imply about the outcome before training, to catch priors that are wrong in scale or shape. Uses no posterior, so it never contaminates the priors.
Pulse test
A structured experiment that changes one channel's spend by a deliberate amount for a fixed window, designed so that the response is detectable against the planning baseline.
Response curve (saturation curve)
The function relating a channel's weekly spend to its incremental contribution. Saturating by shape: each additional unit earns less than the one before.
Scenario
A forecast of the outcome under a specified spend plan, with ranges. Scenarios are compared over the same future window to evaluate budget options.
Seasonality
The smooth, repeating yearly pattern in the outcome, modeled in the baseline. Distinct from events, which are dated spikes.
Verification (forecast validation)
Comparing a forecast that was stored before the actuals existed with what actually happened. The test of whether a model can predict, as opposed to fit.
FAQ

Frequently asked questions.

What is marketing mix modeling in simple terms?

Marketing mix modeling is a way of working out how much each marketing channel actually contributed to sales, using weekly totals rather than tracking individuals. It separates what would have sold anyway (the baseline: seasonality, trend, price, events) from what each channel added on top, and gives each channel a curve showing how sales respond as spend goes up. Those curves are what let it answer how much to spend and where.

What is the difference between marketing mix modeling and media mix modeling?

Nothing in practice. Both describe the same statistical method and both abbreviate to MMM. "Marketing mix" is the older, broader term from the four Ps; "media mix" narrows the label to the media budget, which is what most models are used for today. A good model still accounts for price and promotions, whichever name it goes by.

How is MMM different from attribution?

Attribution assigns credit for a tracked conversion to the touchpoints in that user's path, so it only sees tracked channels and tends to over-credit the last click. MMM works on aggregate weekly data, includes offline channels and a baseline, and estimates incremental effect: what each channel caused, not what it touched. Attribution is for running a channel day to day; MMM is for deciding budget levels and the mix across channels.

How much data do you need for marketing mix modeling?

Two years of weekly spend and sales is the comfortable floor and three is better, mainly so the model sees each season at least twice. Six months is workable if well-set priors carry more of the load. You need spend by channel, one outcome series, and a list of the events and business changes in the period. Channels also need to have varied in spend; a channel that ran flat for two years cannot be learned.

How accurate is marketing mix modeling?

Judge it on forecasts stored before the actuals arrive, not on how well it traces the past. The bar we hold our own models to is a forecast within ten to fifteen percent of actual sales in steady state, with early models allowed a little more while they learn a business, and every estimate comes with a range. Accuracy should be re-checked every month against the weeks that have closed, because a market can change and a model cannot see that on its own.

Can MMM measure TV, radio and other offline channels?

Yes, and that is one of its main advantages over attribution. Offline spend comes in through media plans and spot or airing reports rather than an API, and once it is in the same weekly structure as digital, the model treats it identically: its own response curve, carryover and contribution. Offline channels that only run in bursts around events need more care in the priors, since the model has fewer clean observations to learn from.

What is Bayesian marketing mix modeling?

An MMM that starts from stated prior beliefs about each channel (where it saturates, roughly what it returns, where its optimal spend sits) and updates them against the data, producing a range for every output rather than a single number. It matters most where data is thin, such as a single national market with a weekly series, because the priors keep the model stable where a classical regression would overfit. Nearly every modern MMM is Bayesian; what separates them is how the priors are set.

Does MMM work for small marketing budgets?

Below a certain size, no. The model needs marketing to be large enough to show up against the noise in sales, and to have varied enough to trace a curve. Our own fit line is a marketing budget above about one million euros a year with a sales signal the model can learn from, and most companies running MMM spend many times more. Below that, structured data and good attribution are the better first investment.

How long does it take to build a marketing mix model?

Most of the time goes into data: connecting digital sources, setting up pipelines for offline media, agreeing the outcome series and listing the events. With that in hand, prior-setting takes two or three working sessions and training takes hours. At Odins the first verified model is typically live six to eight weeks after the data work starts, and it improves with each monthly retrain after that.

How often should a marketing mix model be updated?

Data should flow in as often as the sources allow, ideally daily. The model should retrain monthly and be re-verified against the weeks that have closed since the last run. A model refreshed twice a year is a report; a model refreshed monthly, with recommendations reviewed and acted on each cycle, is a measurement system.

Does MMM replace Google and Meta attribution, or my agency?

Neither. Platform attribution and the platforms' own optimizers remain the right tools inside a channel, at the campaign and ad level, where they have far more signal than any aggregate model. Agencies remain for strategy, creative and buying. MMM sits above both and sets the budget level and the split across channels that they then execute.

What does marketing mix modeling cost?

Open-source frameworks are free to license and paid for in analyst time, typically weeks to a first model and ongoing maintenance after. Commercial platforms and agencies rarely publish pricing, and enterprise engagements sit well above mid-market subscriptions. The useful anchor is the budget being steered. Ask any provider for the fee as a share of that budget, and for the verification chart before you pay it.

Talk to our team

Marketing spend, modeled like an investment.

A 30-minute walkthrough of what a verified Bayesian model would look like on your channels, offline included.

Book a demo