Marketing mix modeling (MMM, sometimes called media mix modeling) is a statistical method that estimates how much revenue each of your marketing channels actually drives, using your own historical spend and revenue data instead of cookies, pixels, or click paths.
It used to be something only big brands could afford: enterprise MMM platforms are sold on annual contracts that typically run into tens of thousands of dollars per year. That changed when Google and Meta released their MMM frameworks (Meridian and Robyn) as free open-source software. The modeling engine now costs nothing; what you still have to solve is the data preparation, and that costs far less than an enterprise contract.
This guide covers what MMM is, how it works, what data it needs, and how to run one on free open-source frameworks with your data pipeline handled by Windsor.ai.
What is marketing mix modeling?
Marketing mix modeling answers one question: if I change how much I spend on each channel, what happens to revenue?
It works from the top down. Instead of following individual users across touchpoints, MMM looks at your aggregate history, typically two or more years of weekly spend and revenue per channel, and uses regression analysis to estimate each channel’s contribution. Because it never tracks a person, it is unaffected by cookie loss, iOS privacy changes, or walled gardens, and it can credit things no pixel ever sees: organic baseline demand, seasonality, price changes, and channels where nobody clicks.
The output is a set of practical answers:
- How much revenue each channel actually contributed, including your organic baseline
- Where each paid channel saturates, the spend level past which extra budget stops producing extra revenue
- What a reallocated budget would return, so you can plan next quarter instead of only explaining last quarter
How MMM works
Under the hood, an MMM is a regression model fitted to your time series. Three concepts do most of the work:
Baseline vs. incremental revenue
The model first estimates what you would have earned with zero paid spend: the revenue driven by brand strength, organic search, email lists, repeat buyers, and seasonality. Everything above that baseline gets attributed across your paid channels. Many teams are surprised by how large the baseline is, and that finding alone changes budget conversations.
Adstock (carryover)
Ads keep working after they run. Someone who sees a Meta ad this week may buy in three weeks. Adstock models that decay, so channels with delayed effects get proper credit instead of losing it to whatever the buyer touched last.
Saturation (diminishing returns)
The first $1,000 you spend on a channel earns more than the tenth $1,000. MMM fits a response curve per channel, which is what lets it tell you “Google Ads is saturated at your current spend, the next dollar is better spent elsewhere.”
A worked example
Say an online retailer feeds two years of weekly data into an MMM: spend for Google Ads, Meta Ads, and email, plus revenue, promotions, and seasonality. The model comes back with:
- Organic search and email drive 30% of revenue as baseline, holding steady even in weeks with no paid campaigns.
- Meta Ads saturate at about $8,000/week. Below that, strong returns; above it, each extra dollar returns less than it costs.
- Roughly half the revenue credited to branded Google Ads would have arrived through organic search anyway, because those searchers were already looking for the brand.
Acting on this, the team caps Meta at $8,000/week, trims branded search, and moves the freed budget into prospecting campaigns that the response curves show are far from saturation. Total revenue goes up with no increase in total spend. None of those three findings is visible in a last-click report, which is the point of running an MMM.
MMM vs. multi-touch attribution
MMM and multi-touch attribution (MTA) answer different questions, and mature teams run both:
| Marketing mix modeling | Multi-touch attribution | |
|---|---|---|
| Level | Aggregate: channels and weeks | Individual: users and touchpoints |
| Data | Historical spend and revenue time series | Click and event tracking per user |
| Privacy exposure | None: no user tracking involved | High: depends on cookies, pixels, consent |
| Sees non-click effects | Yes: baseline, brand, seasonality | No: only tracked touchpoints |
| Best for | Budget allocation, quarterly planning | Campaign and creative optimization, daily decisions |
| Refresh cadence | Monthly or quarterly | Continuous |
A useful rule of thumb: MTA tells you which ad to fix this week, MMM tells you which budget line to change this quarter. For where MMM fits in a broader measurement stack, see our guide to tracking marketing ROI.
What data you need for MMM
This is the part that decides whether your MMM works. The model itself is free; the input data is where projects stall. You need:
- Weekly (or daily) spend per channel, ideally 2+ years of history. Google Ads, Meta Ads, LinkedIn Ads, TikTok Ads, whatever you run.
- Impressions or clicks per channel as activity measures.
- Revenue or conversions from your store, CRM, or analytics, on the same time grain.
- Control variables: promotions, price changes, seasonality markers, anything else that moves revenue independent of media.
The catch: this data lives in six different platforms with six different export formats, currencies, and naming conventions. Practitioners consistently report that assembling and cleaning it is the majority of the effort in a first MMM project. Doing it by hand means weeks of CSV exports, and doing it once isn’t enough, because a model you can’t refresh goes stale.
What MMM costs: dedicated platforms vs. the open-source route
There are two ways to get an MMM today:
| Dedicated MMM platform | Open-source MMM + Windsor.ai data feed | |
|---|---|---|
| Modeling engine | Proprietary, vendor-run | Google Meridian or Meta Robyn, free and open source |
| Data pipeline | Included, priced accordingly | Windsor.ai: free forever plan, paid from $19/mo |
| Typical price | Annual contracts, commonly tens of thousands of dollars per year | The cost of your data plan and some analyst time |
| Best fit | Large brands wanting a managed service and consulting layer | Teams with an analyst who can follow a guide and run Python or R |
| Lock-in | Model and data live with the vendor | You own the data, the code, and the model |
To be clear about the trade-off: the open-source route is dramatically cheaper, but it is not zero effort. Meridian and Robyn are real statistical tools; your first model is an afternoon-to-a-few-days project for someone comfortable following a technical guide, not a one-click dashboard. An enterprise contract mainly pays for two things: a modeling engine and a managed data pipeline. Meridian and Robyn made the engine free, and Windsor handles the pipeline starting from a free plan.
How to set up MMM with Windsor.ai, step by step
Windsor.ai connects 350+ marketing and business data sources and delivers them, normalized and on one time grain, to wherever your model reads from: Google Sheets, BigQuery, or a CSV.
- Connect your channels. Sign in at onboard.windsor.ai and authorize each ad platform and your analytics or e-commerce source. A few minutes per platform, no code.
- Build the MMM dataset. Select date, source, spend, impressions, and conversions/revenue, set the granularity, and point the output at Google Sheets or BigQuery. This is the step that replaces weeks of manual exports.
- Run the model. Follow our step-by-step guides: Meridian for non-technical users, Meridian in Python, or Meta’s Robyn.
- Refresh on a schedule. Because the data feed updates automatically, re-running the model monthly or quarterly is a re-run, not a rebuild. That is the difference between an MMM you use and an MMM you did once.
Frequently asked questions about marketing mix modeling
What is marketing mix modeling in simple terms?
It’s a statistical way to measure which marketing channels drive revenue, using your historical spend and sales data instead of tracking individual users. Think of it as asking your own history: “in weeks where we spent more on channel X, how much more did we sell, after accounting for everything else?”
Is MMM only for big brands with TV budgets?
No. That reputation comes from MMM’s origin in the TV era, when only enterprise vendors offered it. A digital-only brand running Google Ads, Meta Ads, and email benefits from the same analysis: baseline measurement, saturation curves, and privacy-proof channel credit. With open-source frameworks, the budget barrier is gone; the only real requirement is enough history.
How much data do I need?
A common rule of thumb is at least two years of weekly data (roughly 100+ observations) so the model can separate marketing effects from seasonality. More channels means more data helps. If you have less history, you can still start collecting a clean dataset now; the pipeline you set up today is the model you can run next year.
Should I use MMM or multi-touch attribution?
Both, for different jobs. Multi-touch attribution follows individual users across touchpoints, which makes it the tool for day-to-day work: comparing campaigns, creatives, and audiences while they run. MMM works on aggregate spend and revenue, which makes it the tool for quarterly budget decisions across channels. Running both also lets MMM act as a sanity check on MTA’s numbers, since it catches effects that click tracking structurally misses: baseline demand, brand strength, and one channel cannibalizing another.
How much does marketing mix modeling software cost?
Dedicated MMM platforms are typically enterprise contracts running into tens of thousands of dollars per year. The open-source route costs the price of your data pipeline: Google Meridian and Meta Robyn are free, and Windsor.ai feeds them from a free forever plan, with paid plans from $19/month.
How often should an MMM be refreshed?
Monthly or quarterly is typical. MMM is a planning tool rather than a live dashboard; refreshing it each quarter with an automatically updated dataset keeps the response curves current without turning it into a maintenance burden.
Conclusion
Marketing mix modeling went from an enterprise luxury to something any team with an analyst and clean data can run. The models are free and the guides exist; the one remaining barrier is assembling the dataset, and that is a solved problem.
When you’re ready to build one, pick your framework and follow the walkthrough: Google Meridian for non-technical users (or the Python version) and Meta Robyn in R. Both start from the same Windsor.ai dataset, so you can try either without redoing the data work.
💡 Start building your MMM dataset today: connect your ad platforms, analytics, and CRM with Windsor.ai and feed Meridian or Robyn with clean, always-current data. Free forever plan, no credit card: https://onboard.windsor.ai/.
Windsor vs Coupler.io

