Marketing Mix Modeling for B2B SaaS
Whether MMM works at B2B SaaS data volumes, what it costs, open source options like Robyn and Meridian, and the three conditions that make it worth running.
On this page 7 sections
- What MMM actually needs before it can tell you anything
- The data density reality check for a company under 50M ARR
- The options ladder, from spreadsheet to vendor
- Reading adstock and saturation curves without over-reading them
- Why three incrementality tests a quarter beat one model
- When MMM does earn its place, and how to calibrate it
- What to do instead this quarter
- Frequently asked questions
The short answer
Marketing mix modeling needs two to three years of weekly data, real spend variation across at least four channels, and a stable product and price. Most B2B SaaS companies under 50M ARR have 100 to 150 weekly observations, thin spend variation and a long sales cycle, which is not enough to separate channel effects from noise. Below that threshold, three incrementality tests a quarter will produce better decisions than a model, at a fraction of the cost.
Key points before you start
MMM came back into fashion because cookies stopped working, and the vendors selling it did not check whether B2B SaaS has the data to support it. A consumer brand running MMM has millions of weekly purchases across a dozen channels. A 30M ARR SaaS company has maybe 60 closed won deals a month, a sales cycle measured in months, and three channels doing 85 percent of the spend. Those are not the same problem.
What MMM actually needs before it can tell you anything
Three conditions, all of them non-negotiable, and most mid market SaaS companies fail at least two.
Enough observations. MMM regresses an outcome against spend series and control variables. Weekly data over three years gives you 156 rows. That sounds fine until you count what the model has to estimate: a coefficient and an adstock parameter and a saturation parameter for each channel, plus seasonality, plus trend, plus controls for price changes and product launches. Eight channels at three parameters each is 24 before you’ve modelled a single control. The statistical term is degrees of freedom, and you run out of them fast.
Meaningful spend variation. A regression can only measure the effect of something that changed. If you spent 40,000 a month on LinkedIn every month for three years, the model has nothing to work with and will assign that channel’s effect arbitrarily to whatever else moved. Variation has to be real: on and off periods, step changes, regional differences. Teams that ran stable budgets and then commissioned MMM are asking a model to identify an effect from data containing no experiment.
A stable product and price. If you repositioned, changed pricing, launched a second product or moved upmarket during the modelling window, your outcome series contains structural breaks the model will attribute to media. That is the single most common source of nonsense results in B2B MMM, because sub-50M SaaS companies change their pricing roughly every 18 months.
The degrees of freedom check
Count your channels, multiply by three, add ten for seasonality and controls, and compare that number to your row count. If the ratio of observations to parameters is under four to one, your confidence intervals will be too wide to inform a budget decision, whatever the vendor dashboard displays.
The data density reality check for a company under 50M ARR
Run the arithmetic on your own business before anyone builds anything. Here is the comparison that makes the problem concrete.
| Business type | Weekly conversions | Channels with real variation | Years of clean data | MMM viability |
|---|---|---|---|---|
| DTC consumer brand, $50M revenue | 4,000 to 20,000 | 8 to 12 | 3 to 5 | Strong |
| PLG SaaS, $30M ARR, self serve | 300 to 900 signups | 3 to 5 | 2 to 3 | Possible on signups, weak on revenue |
| Sales led SaaS, $30M ARR | 15 to 40 opportunities | 2 to 4 | 2 to 3 | Poor |
| Sales led SaaS, $8M ARR | 4 to 12 opportunities | 2 to 3 | 1 to 2 | Not viable |
The PLG row is the interesting one. If you have hundreds of weekly self serve signups, you can model that intermediate outcome with far better resolution than you can model closed won revenue. The catch is that signups and revenue are not the same target, and a channel that drives cheap signups can drive terrible customers. Model signups if you must, then check the quality split separately rather than assuming it holds.
Sales led companies have the hardest version of the problem. Forty opportunities a week is a small number, the variance between weeks is large, and the lag between spend and closed revenue can be six months. By the time the outcome lands, the model is fitting a relationship between this quarter’s revenue and last year’s spend, across a period when you also changed your ICP. The honest answer at that size is that the data cannot separate the channels, and any model that claims to is fitting noise with confidence.
4:1
Minimum ratio of weekly observations to estimated parameters before MMM output becomes usable
saas-marketing.net model, method shown on the page
Editable CSV worksheet
SaaS benchmark evaluation worksheet
Record the source, date, cohort and metric definition before comparing your numbers with a benchmark.
The options ladder, from spreadsheet to vendor
There are four rungs, and most companies should stop on the first or second.
| Option | Cost | Time to first result | Skill needed | Honest fit |
|---|---|---|---|---|
| Spreadsheet regression on aggregate spend | Free | 1 to 2 days | Comfortable with regression basics | Sanity checking, never budget allocation |
| Meta Robyn (open source, R) | Free licence, 40 to 80 analyst hours | 4 to 8 weeks | R, data engineering, statistics | Teams with a data scientist and 3 years of data |
| Google Meridian (open source, Python, Bayesian) | Free licence, 60 to 120 analyst hours | 6 to 12 weeks | Python, Bayesian modelling, priors | Same, plus willingness to set informed priors |
| Commercial vendor (Recast, Prescient and similar) | $40K to $150K per year | 8 to 16 weeks | Analyst to interpret and challenge | $50M ARR and above with 5+ funded channels |
Robyn, from Meta, uses ridge regression with automated hyperparameter search. It’s fast to iterate and it will happily give you an answer from a thin dataset, which is both its convenience and its danger. Meridian, from Google, is Bayesian, which means you specify prior beliefs about each channel’s effect and the model updates them against the data. For small datasets that is genuinely better, because informed priors stop the model from producing wild coefficients when the evidence is weak. It also means the output partly reflects your assumptions, which you have to disclose honestly when you present it.
The spreadsheet rung deserves more respect than it gets. Regress monthly pipeline against monthly spend by channel with a lag term, look at the residuals, and you will learn whether any relationship exists at all before committing 80 hours. If nothing shows up in the crude version, a sophisticated model is unlikely to rescue it.
Reading adstock and saturation curves without over-reading them
Two outputs get quoted in every MMM readout and both are routinely misread.
Adstock is the assumption that spend this week keeps working next week, decaying over time. The model estimates a decay rate. With 150 observations and correlated spend series, that parameter is weakly identified, meaning it can shift a lot when you add one quarter of data. Treat a reported half-life of 3.4 weeks as “somewhere between two and six weeks” and cross-check it against your known sales cycle. If the model says your LinkedIn adstock decays in four days and your average cycle is four months, something is wrong with the specification, not with reality.
Saturation curves describe diminishing returns. The dashboard will show a curve and tell you that you’re at 60 percent of the saturation point on paid search, so you could add 40 percent more budget. Check what range of spend the model actually observed. If your search budget never went above 30,000 a month, the shape of the curve above 30,000 is extrapolation, and the model cannot know whether the next 20,000 works. Vendors rarely shade the unobserved region on the chart. Ask them to.
The confident extrapolation
The most expensive MMM error in B2B is acting on a saturation curve outside the observed spend range. A team reads that they are underinvested in a channel, triples the budget, and discovers the efficient inventory was exhausted at the old level. The model did not lie. It was asked a question about data it never saw.
Editable CSV worksheet
Save your marketing measurement plan
Keep a worksheet for your inputs, assumptions and next actions. You can also print the calculation directly from your browser.
Why three incrementality tests a quarter beat one model
Here is the position: most SaaS companies under 50M ARR should not buy MMM. They should build a testing cadence instead, and the comparison is not close on cost or on decision quality.
An eight week geo holdout on one channel costs you the withheld spend in the holdout regions, plus a few days of analyst time to design and read it. Call it under 10,000 dollars of opportunity cost for a meaningful channel. Three of those per quarter gives you twelve causal readings a year for roughly the price of a junior contractor, and each one is an experiment rather than a coefficient. When a holdout says paid social produced no detectable lift in the withheld regions, that is a fact about your business. When a regression coefficient says the same thing, it’s a claim that depends on the specification.
A quarterly incrementality cadence
- Pick the three channels with the most contested budget
Usually the ones where finance and marketing disagree. Testing an uncontested channel wastes a slot.
- Design each test as a geo holdout or a scheduled pause
Geo holdout when you have regional volume. Scheduled pause when you do not, accepting weaker controls. Document the expected effect size before you start.
- Run for at least eight weeks, longer than your median sales cycle where possible
You know the window is long enough when the metric you are reading has stabilised in the control group for two consecutive weeks.
- Read leading indicators first, revenue second
Branded search, direct traffic and signups move before pipeline does. If the leading indicator shows nothing at week six, the revenue read will not save it.
- Write the decision rule before the data lands
Set the threshold in advance: below X percent lift we cut the budget by half. Deciding afterwards guarantees the result gets rationalised.
- Record every result in one place
After a year you have a documented causal history, which is the calibration input any future model would need anyway.
The detailed test design, including sample size maths and how to pick matched regions, is in incrementality testing for B2B SaaS, with the statistical treatment in the guide version. If you’re weighing this against a touchpoint model, the multi-touch attribution versus incrementality testing comparison sets out where each one breaks.
When MMM does earn its place, and how to calibrate it
Three situations make a model worth building even at moderate size. You run significant offline or unmeasurable spend, such as events, podcast sponsorships, out of home or field marketing, where no click data exists at all. You operate across enough regions that geo tests are cheap and frequent, giving you real calibration inputs. Or you’re above 50M ARR with five or more funded channels and a genuine budget allocation problem that no single test can resolve.
Even then, the model is only as good as its calibration. The correct pattern is to run incrementality tests, then use those measured lifts as priors or constraints in the model, rather than letting the regression free-run. Meridian supports this directly through its prior specification. Robyn supports it through calibration inputs. A model that has never been checked against an experiment is a curve fitted to coincidence, however good the fit statistics look.
| Question | MMM answers it | Incrementality test answers it |
|---|---|---|
| Should I move budget from LinkedIn to paid search? | Weakly, wide intervals at small n | Yes, one test per channel |
| What is my saturation point on paid search? | Yes, within observed spend range | Only at the tested spend level |
| Does my podcast sponsorship do anything? | Yes, this is MMM’s best use | Hard, no clean holdout available |
| What happens if I cut all paid next quarter? | Directionally | Yes, that is literally the test |
| How do brand and performance interact? | Yes, with enough history | Poorly |
That table is the real decision. MMM is strongest on the unmeasurable and on interaction effects. Tests are strongest on everything you can switch off. Most sub-50M SaaS budgets are dominated by channels you can switch off.
What to do instead this quarter
Before commissioning anything, count your rows. Pull weekly spend by channel and weekly outcomes for as far back as your data is trustworthy, then count how many weeks you have and how many channels show real variation. Take that one page to whoever is pitching you MMM and ask them what confidence interval they expect on a channel coefficient given those inputs. The quality of that answer tells you whether they’re selling a model or a feeling.
Then set up the underlying data properly regardless, because both paths need it. A clean weekly spend and outcome table in your warehouse is the prerequisite for modelling, for testing, and for the reporting you already owe the board. Start with the marketing tracking plan template and the SaaS marketing dashboard template, check what the tools in your attribution stack can actually export, and benchmark your channel mix against published sales and marketing spend benchmarks. The wider measurement context sits in SaaS metrics and analytics, and if you’re rebuilding the plumbing anyway, the B2B SaaS marketing tech stack guide covers where warehouse-first setups pay off.
Editable CSV worksheet
SaaS Metrics and Analytics planning worksheet
A practical metrics planning worksheet: decisions, owners, evidence and next actions.
Frequently asked questions
Does marketing mix modeling work for B2B SaaS?
It works at scale and struggles below it. MMM was built for high frequency consumer purchases with large numbers of weekly conversions. B2B SaaS has long cycles, few weekly conversions, and lumpy spend. Companies above roughly 50M ARR with multi-channel budgets and several years of history can get value. Below that, the data density usually cannot support reliable channel level estimates.
How much data does MMM need?
Two to three years of weekly observations is the working minimum, so 104 to 156 data points. Each channel you model, each seasonality term and each control variable consumes degrees of freedom. With eight channels plus holiday effects and a price change dummy, a three year dataset leaves very little room, and confidence intervals on individual channel coefficients become too wide to guide a budget decision.
What does marketing mix modeling cost?
Open source tools such as Meta's Robyn and Google's Meridian are free to license but cost 40 to 120 hours of analyst or data scientist time for an initial build, plus ongoing refresh work each quarter. Commercial vendors aimed at mid market B2B typically charge 40,000 to 150,000 US dollars a year. Enterprise engagements with consultancies run well above that.
What is the difference between MMM and multi-touch attribution?
MMM is top down: it regresses aggregate outcomes against aggregate spend and external factors, so it needs no user level tracking and captures offline and brand channels. Multi-touch attribution is bottom up: it stitches individual user journeys from tracked touchpoints. MMM handles privacy loss well and resolves slowly. MTA gives fast granular signal but misses everything it cannot cookie.
Should a Series B SaaS company buy MMM?
Usually no. At Series B you typically have 18 to 30 months of history, two or three channels carrying most of the spend, and a product that changed materially last year. A model built on that will produce confident looking numbers that are mostly artefacts. Run geo holdouts and channel pauses instead, and revisit MMM when you cross roughly 50M ARR with four or more funded channels.
What is adstock and how should I interpret it?
Adstock models the decay of advertising effect over time, so a week of spend contributes to conversions in following weeks. The decay rate is estimated from data, and with few observations it is poorly identified, meaning small data changes swing it a lot. Treat an estimated adstock half-life as a range rather than a fact, and sanity check it against your known sales cycle length.
How do incrementality tests compare to MMM on cost?
A geo holdout or channel pause test costs the withheld spend plus a few analyst days, typically under 10,000 US dollars of opportunity cost for an eight week test on one channel. Three tests a quarter gives you twelve causal readings a year for less than one vendor MMM contract, and each result is a direct experiment rather than a coefficient from a regression.
The saas-marketing.net editorial team Research and editorial
We research, write and maintain every page on this site. The library explains marketing decisions through practical frameworks, explicit assumptions and references. Corrections can be requested through the contact page.
Published September 11, 2026. Last updated .