MMM scenario planning is the practice of using a marketing mix model’s response curves to compare specific budget plans (“what if we move £30k from search to social?”) under assumptions you state out loud, and comparing each plan with the current one under those same assumptions. Sensitivity analysis is the second half of the job: you change the assumptions one at a time and see which of them would change the recommendation. The output of both is a conditional sentence, not a number, and the most common mistake I see is that the “if” gets dropped somewhere between the analyst’s notebook and the slide that reaches the CFO.
When I’ve built marketing mix models for clients, the model itself was rarely the thing people argued about in the end. The argument was about the plan: should we really move a fifth of the search budget, what happens if social doesn’t scale the way the curve says, and is the gain worth the risk? Those are scenario and sensitivity questions, and they deserve the same care as the model fit. This page walks through both using the invented Northstar case from the Vexpower course, with two tools you can play with and a workbook you can take away.
What MMM scenario planning is, and what it isn’t
A scenario evaluates a specified change under assumptions about response, costs and business conditions. It is not automatically a forecast of the whole future business outcome, and keeping those two ideas apart is most of the discipline. A model may support a scenario about media impact while being poorly suited to forecasting total sales, because total sales depend on a baseline (seasonality, trend, pricing, competitors, the economy) that nobody can promise will behave next quarter the way it did last year. The incremental question is narrower and much more answerable: holding everything else the same, does this plan beat that one?
To make the comparison fair, use the same outcome definition, horizon, population and background conditions for both plans, and say which conditions are held fixed and which are allowed to vary. If a scenario changes the media budget and the assumed market demand at the same time, you need to explain which part of the difference comes from each change, otherwise a sunny demand assumption gets credited to the media plan. In practice that means every scenario row should be read as a difference versus current under identical assumptions, never as two unrelated totals sitting side by side.
This is also why “forecasting with MMM” needs a qualifier. You can absolutely use the model to project what the media contribution would be under a plan, and many teams then add a baseline forecast on top to get a total sales number for the finance plan. That’s fine, as long as everyone understands the total inherits all the uncertainty of the baseline forecast, which the media model was never built to resolve.
The Northstar planning case
In the course’s invented Northstar case, an online homeware brand has £300,000 authorised for next quarter. The marketing lead wants to shift £30k from search to social, and finance asks whether the expected gain justifies the uncertainty. The operating brief is strict: keep the total at £300k, reserve exactly £30k for brand presence, and keep search between £90k and £180k (social takes the remainder, so it sits in the same range). Those are management constraints, not outputs of a model, which is exactly how constraints should work in any budget allocation.
The response curves were invented for the exercise, in £ thousands for the quarter, with the familiar diminishing-returns shape you’d get from a saturation curve:
Here and are quarterly search and social spend. Brand is fixed at £60k of incremental revenue on its fixed £30k, and contribution after advertising is the pre-advertising margin (40%, rechecked at 30%) times incremental revenue, minus the £300k budget. The social multiplier takes three values, 0.7, 1.0 and 1.3, and the case is explicit that these are stress scenarios, not probabilities or a credible interval. They answer “what if social responds 30 percent worse or better than the central curve?”, which is a different question from “how likely is that?”.
Under the central assumption at a 40% margin, the measured shift (£120k search, £150k social) adds about £4.9k of contribution after advertising relative to the current mix. That’s a small gain on a £300k budget, and the interesting part is what happens around it: if social responds at 0.7 of the central curve, the same move loses about £3.1k, and if it responds at 1.3, it gains about £12.9k. The sign changes. The search-heavy plan loses money under every social assumption, so it is easy to rule out, while the social-heavy plan only wins if social is genuinely stronger than the central curve. Dropping the margin to 30% shrinks the measured shift’s central gain to about £3.7k without changing its sign, because with the total budget fixed the margin simply scales the revenue difference.
The chart under the stats is the view I’d show a finance partner. Each line is one social assumption, and where a line crosses the “same as current” line is the point at which a shift stops paying for itself. When the three lines sit on opposite sides of zero for the plan you’re proposing, the honest summary is that the ranking depends on an assumption you haven’t tested yet.
Keep the “if” attached to the result
The Vexpower lesson on comparing planning scenarios puts it as “keep the ‘if’ attached to the result”, and that’s the habit to build. An unconditional claim sounds like this: “Moving £30k to social will add £4.9k of profit.” Every word of that is overstated. It’s not profit (fixed overhead, tax and financing are excluded), it’s not “will” (it’s a modeled difference under invented curves), and it hides the fact that a plausible alternative assumption makes the number negative.
The conditional version is longer but much harder to misuse: “If these response curves remain relevant next quarter and price and fulfillment don’t change, moving £30k from search to social adds about £4.9k of contribution after advertising relative to the current mix at a 40% margin. If social responds 30 percent below the central curve, the same move loses about £3.1k. We should not treat the gain as reliable until we have evidence on social’s response at higher spend.” The switcher above has a button that writes this sentence for whatever plan and assumptions you’ve selected, which is a decent starting point for a decision memo.
It’s worth naming the conditions that deserve monitoring alongside the result. In the Northstar case those are additive effects (no interaction between search and social), curves that transport to next quarter, unchanged price and fulfillment, and the assumption that the quarter plus its follow-up captures all the relevant carryover. Those are strong assumptions, and writing them down is what lets a colleague challenge the right one.
Sensitivity analysis: which assumption is the decision hanging on?
Sensitivity analysis on a marketing mix model asks a different question from “how wide is the interval?”. A fitted model can produce a narrow interval on a channel’s return while a different, equally defensible prior or carryover specification produces a materially different channel ranking. Both facts matter, because a narrow interval does not describe every uncertainty. Parameter uncertainty conditional on one specification is not the same as uncertainty about whether that specification is right, and most MMM outputs only report the first kind.
The practical method is to change one defensible assumption at a time (priors, response forms, carryover, control variables, data treatment, time windows) and observe the effect on the actual decision. The alternatives should each have a reason, not merely be the result the team would prefer. And the thing to watch is the decision, not the coefficient: a ranking can change without changing the feasible allocation, while a small numerical change can matter a great deal when the business is close to a constraint or close to breakeven.
A tornado chart is the most compact way to show the result. Each bar is one assumption swung from a low to a high value with everything else held at the base case, and the bars are sorted widest first. For Northstar’s measured shift, here is what that looks like.
The social response multiplier dominates, swinging the contribution change from about −£3.1k to +£12.9k, which is why the case keeps returning to it. The second bar is more surprising: if only 80 percent of social’s effect lands inside the planning horizon (because social’s carryover runs longer than the quarter plus follow-up, say), the measured shift goes from +£4.9k to roughly −£0.4k. That’s a sign flip from an assumption that rarely makes it onto a slide. Margin and the shape of the search curve move the number but not its sign, so they’re worth noting and not worth a test.
Now flip the toggle to the plan’s total contribution. Margin becomes the widest bar by far (roughly £68k to £313k), and brand revenue, which had a zero-width bar in the difference view, now moves the total by about £24k, because both assumptions add or remove contribution from every plan, the current one included. This is the clearest illustration I know of why you compare differences rather than totals: an assumption can move the total a lot and the decision hardly at all. If someone in the room is arguing about the value of brand while you’re deciding between two plans with identical brand spend, the tornado shows them (politely) that the argument belongs to a different decision.
One-at-a-time sensitivity has a known blind spot, which is that it ignores interactions. A weaker social response and less captured carryover together would be worse than either bar suggests. I still prefer it to a grand simulation for most meetings, because people can read it, but if two of your top bars are plausibly correlated, run them together as a named scenario.
The sensitivity table to ask your analyst for
The tornado ranks your doubts. The table below is what turns them into a decision, and it’s what I’d request from whoever built the model (or produce myself before presenting). Fill in one row per alternative specification:
| Changed assumption | Why it’s defensible | Resulting recommendation | Evidence that would resolve it |
|---|---|---|---|
| Social multiplier at 0.7 | If social never ran near £150k a quarter historically, the curve there is extrapolated | Keep current mix | A regional social spend test at the proposed level |
| 80% of social effect captured in horizon | Social carryover may run past the follow-up window | Measured shift roughly breakeven | A longer post-period on the test; compare adstock specifications |
| Search half-saturation £130k | Search curve less saturated than assumed | Measured shift still positive, smaller gain | Search query volume and impression share at current spend |
| Margin 30% | Finance’s recheck case | Measured shift still positive | None needed for the decision |
A useful conclusion from a table like this identifies which decisions are stable across reasonable alternatives and which depend strongly on unresolved assumptions. For Northstar, ruling out the search-heavy plan is stable. Choosing between the current mix and the measured shift is not, and the cheapest thing that would resolve it is evidence on social’s response at higher spend, ideally from a geo lift test that can later calibrate the model. Don’t hide the inconvenient variants or average incompatible quantities into an apparently precise answer; the inconvenient row is usually the one that tells you what to measure next.
Scenario planning in Robyn, Meridian and other MMM tools
Most MMM tools ship a budget optimizer, and it’s worth knowing that an optimizer is a scenario engine with a search attached. Meta’s Robyn has a budget allocator that its documentation describes with two scenarios: “maximum response” (given a total budget and media-level constraints, find the split with the highest response) and “target efficiency” (given a target ROAS or CPA, find the split and total budget that reach it). Google’s Meridian documents a fixed-budget scenario that maximizes ROI (or incremental KPI when revenue per KPI is unknown), plus two flexible-budget scenarios that target a minimum ROI or a marginal ROI. By default, Meridian’s fixed-budget optimization lets each channel move between 70% and 130% of its baseline spend, which is a sensible guard against extrapolating curves far past the data. Google has since added a no-code Scenario Planner on top of Meridian (announced in early 2026 and still in open beta), aimed at marketers rather than analysts.
These tools make it much faster to generate scenarios, which is mostly good news. However, they also make it easier to skip the step this page is about. An optimizer’s output is only as good as the curve shape, carryover and priors it inherits, and its recommended split is usually computed from one fitted specification. Before taking an optimizer’s answer to finance, check three things: the spend constraints are management constraints you actually agreed to (not the tool’s defaults), the recommended spend levels stay inside the range the channel was observed at historically, and the recommendation survives the sensitivity table above. The general logic of equalising returns at the margin is covered in marginal ROAS and the older budget optimization brief, and whether a modeled gain covers its costs is the job of breakeven ROAS and contribution margin.
A checklist before you present a scenario
The workbook below reproduces both widgets with live formulas, so you can swap in your own channels and curves (any curve of the form ceiling × spend / (half-saturation + spend) drops straight in) and keep the same layout for your next planning cycle.
If you want to work the Northstar case end to end (audit the messy data, challenge two model review cards, then write the memo), the full pack is free to download, and it’s the capstone of the Vexpower marketing mix modeling course. The case doesn’t contain enough evidence to award one universal winning allocation, and that’s deliberate: keeping the current mix, making the measured shift or proposing a bounded test can each be defensible, as long as the “if” stays attached.
