MMM complements attribution by estimating incremental impact at channel level. Today we'll walk through the v1 results for Germany, look at what the model tells us about budget efficiency, and discuss practical next steps — especially around SEO and the attribution workstream.
Let's start with what the model uses and why we made the channel choices we did.
The model uses weekly revenue in log-space as the target, covering about 75 weeks of history for the German market. We included three paid channels — Google Performance, Meta, and Influencer — plus seasonality controls and an SEO spend proxy. The channel set is deliberately small: we excluded channels with sparse data to keep the ROAS estimates stable and actionable.
Here's the full picture of what's in and what's out. The guiding principle: more channels doesn't mean a better model. When spend data is sparse, the ROAS estimates become unstable — they might look precise, but they aren't. We'd rather give you solid estimates for three channels than shaky ones for six.
Now let me explain the two core mechanisms the model uses — in plain terms, no equations.
Two core mechanisms. Adstock, or carryover: when you spend money on a channel, the impact doesn't happen instantly and disappear — it carries over into future weeks. How fast it fades depends on the channel. Saturation, or diminishing returns: each additional euro typically yields less than the previous one. At some point, you've reached everyone who's looking. The model estimates both of these for each channel.
We set adstock priors based on each channel's role in the funnel. Harvesters like Google capture existing demand — people who are already searching. Their impact fades quickly. Generators like Meta and Influencer create new awareness — their impact takes longer to materialise and fades more slowly. The half-life numbers are approximate, but they give you the intuition.
Saturation is harder to estimate than adstock, especially at weekly grain. For Google and Meta, where we have more spend variation, we set priors that expect diminishing returns. For Influencer, we keep the prior closer to linear in the observed range — this prevents the model from artificially compressing the influencer effect. The key point: priors aren't assumptions we refuse to change — they're starting beliefs that the model updates with the data.
Now the interesting part — what does the model actually say about channel efficiency and budget allocation?
[FILL VALUES FROM MODEL OUTPUT]
This table shows where each channel stands today, at the current average spend level. iROAS is the historical average return. mROAS is the marginal return — what the next euro gets you. P(mROAS>1) is the probability that the marginal euro is profitable. The core range shows where we think the true value sits, with 50% confidence.
[FILL VALUES FROM MODEL OUTPUT]
Same view for Nature Love. Note the differences — the two brands may have quite different channel dynamics even in the same market.
This chart breaks down weekly revenue into its components: how much is attributable to each paid channel, how much to baseline demand, and how much to seasonal controls like Black Week. The baseline is the revenue you'd expect even with zero marketing spend.
Same decomposition for Nature Love. Compare the relative size of channel contributions and baseline between brands.
[FILL FROM SCENARIO ANALYSIS]
These are small, realistic budget shifts — not dramatic reallocations. The model shows direction and rough magnitude. Think of it as: "the evidence says this direction is likely beneficial" rather than "do exactly this."
This shows what happens when you move one channel's spend up or down while holding total budget fixed. The shaded band is the 50% uncertainty interval. Where the curve flattens, additional spend stops paying off.
Same view for Nature Love. Compare the shape of the response curves — different brands may have different saturation points.
[FILL X% FROM MODEL OUTPUT]
This chart shows two things: the top panel is expected revenue vs. total weekly budget — the more you spend, the more you get, but the curve flattens. The bottom panel shows the marginal return factor — how much additional revenue each additional euro of spend generates. When it crosses below 1, you're losing money on the marginal euro.
[FILL X% FROM MODEL OUTPUT]
Same budget efficiency view for Nature Love. The breakeven point may differ between brands.
Now let's talk about SEO — this is an important part of the conversation because the current model has real limitations here.
Important context for the SEO expert in the room. The model shows a near-zero coefficient for SEO — but this is NOT a statement about whether SEO works. The issue is the input data: we're using a monthly spend estimate distributed evenly to weeks, which gives very low variance. The model can't distinguish signal from noise when the input barely varies. We need better data, not a different conclusion.
Quick framing on how to read the uncertainty in these results. We use two ranges: the core range is where we'd bet — the true value is most likely in here. The plausible range is wider — it could be anywhere in there, but most of the probability mass is in the core range. For decision-making, focus on P(mROAS>1): the probability that spending one more euro on a channel is profitable.
So where do we go from here? Four milestones for v2.
Four milestones. First: the attribution workstream — we'll extract touchpoint timing data and use it to refine our adstock priors. This also gives marketers a bridge between attribution and MMM. Second: upgrading our campaign calendar from binary flags to richer intensity measures. Third — and this is the big one for SEO: we need weekly organic traffic signals from Search Console or GA4, split by branded vs. non-branded. This is what enables SEO to become a real channel in the model. Fourth: expanding scope to include CRM and potentially TV/OOH as data permits.
Four questions to shape the discussion. First: does the harvester/generator framing match how you think about your channels? Second: should we run one of the budget shift scenarios as a real test? Third — and this is an action item: who can get us Search Console or GA4 organic data on a weekly basis? Fourth: how should attribution reports and MMM results coexist without confusing stakeholders?
Open floor for discussion. Let's dig into the scenarios and next steps.