Funnel-Aware MMM: A Bayesian Architecture for Full-Funnel Marketing Optimization
A standard marketing mix model (MMM) treats every channel as independent: spend goes in, conversions come out, and each channel gets its own response curve. That assumption breaks when upper-funnel activity, such as demand generation or video, creates awareness that shows up weeks later as branded and non-branded search. If a model cannot see that path, it can recommend cutting the upper-funnel budget that was quietly driving the lower-funnel result.
The path a funnel-blind model can't see
Two dynamics make a standard MMM undercount upper-funnel value. First, upper-funnel spend has both a direct effect on leads and an indirect effect that flows through lower-funnel spend it helped create. Second, lower-funnel channels like paid search often carry daily budget caps: when demand exceeds the cap, the surplus clicks and leads are never observed, so the data understates true demand.
A funnel-aware Bayesian MMM architecture addresses both problems. It models lower-funnel spend as an outcome of upper-funnel activity and as an input to lead generation at the same time, and it uses a censored likelihood so capped days are treated as "demand was at least this high," not "demand was exactly this much." This mirrors the mediation structure documented in pymc-marketing.io's guide to measuring upper-funnel impact, which walks through the same direct-plus-indirect attribution logic on the open-source PyMC-Marketing library.
Inside the funnel-aware architecture
The core extension is a two-stage causal structure with four components:
- Media transformations on both stages. Adstock (decay) and saturation (diminishing returns) are estimated separately for the upper-to-lower relationship and the lower-to-lead relationship, since a channel can decay slowly toward awareness but saturate quickly toward search volume.
- Time-varying baselines. A Gaussian-process-based baseline lets lower-funnel spend drift with seasonality and organic growth that has nothing to do with upper-funnel spend, so a Q4 seasonal lift in branded search doesn't get misattributed to a video campaign that happened to run at the same time.
- Channel-specific controls. External factors that move one lower-funnel channel, such as a promotion or a policy change, are modeled separately from global controls so a one-off spike doesn't contaminate the upper-to-lower effect estimate.
- Censored likelihood. Days where a budget cap binds are treated as censored observations rather than exact counts, which recovers a larger upper-funnel effect than a model that reads capped spend at face value.
Where a funnel-aware model changes the optimization question
A standard optimizer answers "spend more here, less there" across channels it treats as independent. A funnel-aware optimizer treats lower-funnel budget caps as a decision variable alongside channel spend, because raising upper-funnel investment only pays off if the lower funnel has room to capture the demand it creates.
| Question | Standard MMM optimizer | Funnel-aware optimizer |
|---|---|---|
| What can it recommend? | Reallocate spend across channels treated as independent | Reallocate spend and adjust lower-funnel budget caps together |
| How does it treat a capped channel? | Reads observed spend as the true ceiling | Treats observed spend as a lower bound on true demand |
| What happens if you raise upper-funnel spend? | No mechanism to say whether downstream capacity exists | Flags how much lower-funnel headroom is needed to capture the new demand |
| Risk of ignoring this | Upper-funnel budget looks wasted and gets cut | Upper-funnel investment and lower-funnel caps are planned jointly |
Where this connects to Subconscious's approach
Subconscious does not build marketing mix models and does not run, replicate, or validate this architecture. The two approaches do share one discipline: model the causal path an action takes before trusting the number the model reports. Subconscious applies that same discipline by testing a budget, channel, or messaging decision as an explicit causal comparison on a simulated market and, where it changes the answer, checking that comparison against real-human validation. Read more about that testing approach at /how-we-work or the underlying method at /research.
Method boundaries
This is a time-series Bayesian MMM fit on historical spend and lead data with a censored likelihood, a different method from a decision-specific causal experiment run on simulated or recruited buyers. It estimates attribution and budget response from observed spend history; it does not test a new message, price, or concept that has never been run before. Extending this kind of architecture to production, such as handling campaigns that change strategy mid-series or channels that enter partway through the data, is engineering work layered on top of the core model and is out of scope here.
What to check before you cut upper-funnel spend
Before trusting a recommendation to cut demand-generation or video spend on weak direct ROI, confirm the model that produced it accounts for two things: whether upper-funnel spend has an indirect path through lower-funnel channels, and whether any of those lower-funnel channels were capped. If the model can't answer both, the "weak" channel may simply be one whose effect was absorbed and hidden downstream.