eliya AI — For Business Decisions
  • Enterprise

Marketing Measurement

How Does Full-funnel Marketing Mix Modeling (MMM) Account For Upper-funnel Channels?

Simple MMM models assign all the credit to performance channels, while full funnel MMM provides a more balanced image of channels’ performance.

By Neeraj Bhauryal (author & editor)·October 12, 2026·Updated October 13, 2026·13 min read
Human-in-the-loop AI workflow in ELIYA AI: routine marketing analysis runs automatically, while budget decisions pause for human approval

What is Full-Funnel MMM?

Full-funnel Marketing Mix Modeling (MMM) is an advanced measurement framework that quantifies how marketing activities across the customer journey, from top-of-funnel brand awareness to bottom-of-funnel conversions, interact and drive revenue.

Unlike traditional MMM, which focuses primarily on direct, short-term conversions, full-funnel MMM captures the cross-funnel effects of brand investments. It models how upper-funnel tactics, such as Connected TV and PR build brand equity and improve the performance of lower-funnel channels.

By accounting for these indirect pathways and long-term carryover, it gives marketers a unified view of total ROI, helping them allocate budgets strategically across every stage of the buyer’s journey.

Key Takeaways

  • Upper-Funnel Undervaluation: Standard MMM treats all channels in parallel, allowing lower-funnel channels (like paid search) to capture credit for demand built by upper-funnel channels (like CTV or Broadcast).
  • Search as a Mediator: Full-funnel MMM explicitly models search spend and impressions as a multi-stage mediator to capture indirect brand halo effects.
  • Increased ROAS Attribution: In our 4-year dataset analysis, accounting for mediated search demand attributed 21.7% more revenue and boosted upper-funnel ROAS from 28.0 to 35.0.
  • Privacy-Safe Measurement: Full-funnel Bayesian MMM relies purely on aggregated time-series data without user-level tracking or cookies.

Upper-Funnel Marketing Mix Model

Some marketing channels push people toward other channels.

In this demo marketing data that we use for this blogpost, Broadcast and Streaming ads are the awareness-building, “upper funnel” spend. We want to test if this spend influence people to search for the product.

If, for example, we build a flat model where Search sits next to CTV, a part story will be hidden: Search will steal some of the credit that belongs to CTV.

This notebook builds two models on a four-year weekly dataset:

  • The first is a standard model, where Search is treated like any other channel.
  • The second is a funnel-aware model, where part of Search is a result from the upper-funnel channels.

We then compare the two models and assess how well each model fits the data.

This notebook assumes introductory knowledge about modeling with pymc-marketing, refer to step-by-step guide to modeling with pymc-marketing.

How we think about the funnel

Let’s start by looking at the following chart

schematic design for a Full-funnel marketing mix model showing different channels at the different stages of the buyer journey

The diagram above shows two channel groups: upper-funnel and lower-funnel. Also, a chain of boxes on the bottom that explains how Search really works

The two channel groups. Broadcast and Streaming are the upper-funnel channels: awareness-building spend that we think also creates search demand.

DirectMail and Digital channels (lower-funnel channels) that don’t believe they feed search, so each group has one arrow labeled “direct” going straight to revenue.

The hidden demand. In addition to directly influencing revenue, the upper-funnel channels create a “hidden search demand”. These are people who become more likely to search for the product. We can’t observe this demand directly, hence it’s drawn as a dashed node.

The mediator. That hidden demand combines with search spend into a single “mediator.” It is the total pool of search-driven interest in a given week, whether that comes from upper-funnel activities or from search spend.

The mediator does two jobs:

  • It is measured by search impressions. Impressions are a noisy readout of the mediator.
  • Separate from the upper-funnel channels’ direct arrows, mediator has its own indirect arrow into revenue. Model would miss this credit if it treats search as an ordinary channel.

So every dollar of upper-funnel spend can reach revenue directly, and indirectly through the demand it creates in search. The funnel-aware model estimates both; the standard model (described below) only sees the direct path.

Setup

All the Python code, datasets, and models used in this analysis are available on Explore the Full-Funnel MMM GitHub Repository.

First, we import the foundational libraries for probabilistic modeling, data manipulation and Bayesian diagnostics.

python

Loading the data

Next, we load the dataset and define the key variables that structure our modeling framework. In this step, we parse the primary date and revenue metrics, specify which media channels operate as top-of-funnel drivers versus lower-funnel mediators, isolate control variables like holiday flags, and split the dataset into our features (XXX) and target variable (yyy).

python

A Quick look at the data

We start by visualizing our target metric over the entire observation window, from mid-2020 through mid-2024.

python
weekly revenue for a brand that we want to design full funnel MMM for

The plot highlights strong annual seasonality, characterized by massive revenue surges at each holiday season (peaking near $350M–$370M near year-end) alongside steady baseline revenue hovering around $50M–$100M during non-peak periods.

Let’s break down marketing spend across channels to reveal distinct investment strategies and flighting patterns.

python
channel activations and spend for four different channels, some lower-funnel channels and some upper-funnel channels. This is the basis for a full-funnel mmm design

While DirectMail shows high-frequency, continuous weekly spend, upper-funnel channels like Streaming and Broadcast show heavier pulsing tactics, spiking sharply during Q4 holiday windows to capture seasonal demand.

To evaluate search as a mid-to-lower funnel mediator, we overlay search spend against search impressions on a dual-axis line plot.

python
a line chart showing search spend versus search impressions using this as a basis for full-funnel mmm design

The two metrics mirror each other almost perfectly, scaling from a baseline of ~200k impressions up to steep 900k+ impression peaks around November and December, confirming that impression volume reliably scales alongside search budget allocation.

Building the Search-as-Mediator Piece

To capture how awareness drives interest before turning into sales, we define a custom PyMC custom effect class, FunnelEffect, to model our full-funnel structure.

The library pymc-marketing lets you plug a custom extra term into a model’s mean, and that custom term is allowed to bring its own observed data with it. That’s what we use to add the mediator behavior.

Here’s what our custom piece does:

  • Takes the spend of Broadcast and Streaming, applies adstock and saturation to each (same as a normal channel would get), and adds them together into a hidden demand number
  • Adds a scaled version of search_spend on top of that hidden demand
  • Compares that combined total against the actual search_impressions we observed, treating the difference as noise
  • Passes the combined total through one more adstock-and-saturation step and adds the result to revenue, alongside the direct contributions of every channel

This way, the model estimates one set of numbers that has to explain both the search data and the revenue data at the same time.

What the next cell defines: upper_dim is the name ("channel_upper") of a new PyMC coordinate used only inside this effect, separate from the model’s regular "channel" dimension. FunnelEffect subclasses pymc_marketing.mmm.additive_effect.DataVarMuEffect and implements the four methods that interface requires:

  • to_dict: serializes the effect’s configuration (used if the model is saved/loaded).
  • incrementality_spec: tells pymc-marketing’s incrementality module how much extra carryover (l_max_lf lags) the mediator’s own adstock adds, so ROAS calculations later account for it.
  • create_data: registers upper_dim as a model coordinate.
  • create_effect: builds the actual PyMC graph — demand, mediator, the TruncatedNormal likelihood on search_impressions, and the returned funnel_effect_contribution term that gets added to the revenue mean.

None of this runs until the class is instantiated later, inside make_funnel_effect.

python

Setting up both models

Next, we establish our model configuration helpers and instantiate our custom funnel effect. We write a function to auto-scale channel saturation priors based on relative spend shares, set maximum adstock carryover windows (l_max), and configure the make_funnel_effect factory function, wiring up distinct geometric adstock and logistic saturation transformations for both the upper-funnel upper-channel path and the lower-funnel demand-to-revenue path.

python

The funnel model needs its input data in a slightly different format so that search_spend and search_impressions travel along with it, including when we later ask it to predict on new data. We handle that with a small subclass below.

python

Let’s define the following helper function that builds the dataset

python

Finally we are ready to define the two models

python

Fitting both models

We fit both models on the full history:

  • The standard model puts search_spend next to the other four channels as just another channel.
  • The funnel model keeps the same four direct channels, and adds the mediator piece so the two upper-funnel channels also get credit for the search demand they create.

Both use the same settings otherwise. Fitting both models takes a while, feel free to lower the draws/tuning numbers below for a quicker test run.

python
Screenshot_2026-10-07_at_11.43.59.png
python
The output of a full-funnel mmm model deisgn

After fitting in both models, lets now proceed with checking if there were any divergences.

Checking the Models Sampled Properly

Before looking at any results, it’s worth checking that the model fitting actually went well for both models

python

The results showed zero divergences for both the models with max r-hat as 1.004 and 1.005 for standard and funnel model respectively.

Does Each Model Reproduce What We Actually Saw?

The funnel model has to explain two things at once: revenue, and the search_impressions numbers it uses as a stand-in for hidden demand. We check both.

python
posterior results for a full funnel mmm model

Both models trace the major holiday spikes and non-peak fluctuations closely within their uncertainty bands, confirming that adding indirect search mediation and multi-stage adstock structure preserves strong predictive fit while accounting for cross-funnel dynamics.

Beyond revenue, our full-funnel model includes a secondary likelihood to validate the intermediate stage of the customer journey: search impressions. By extracting the posterior predictive samples for funnel_search_impressions_likelihood, we plot the predicted search volume against observed data along with the 94% HDI.

python
a more realistic assignment of search credit to search channel under full-funnel marketing mix model mmm

The plot confirms that the model accurately tracks lower-funnel search demand, capturing both baseline impression levels and major Q4 volume surges, validating search as an effective, properly modeled mediator in the funnel. This check carries direct business value for search teams: If the model’s predicted demand contradicted real-world search impressions, the funnel logic would be fundamentally flawed in a way that evaluating sales fit alone could never uncover.

Splitting Upper-Funnel Credit into Direct and Indirect Parts

Only the funnel model can answer this: out of all the revenue we attribute to Broadcast and Streaming, how much comes from their direct effect, and how much comes from the extra search demand they generate? To isolate the indirect part, we compare the mediator’s contribution as fitted against what it would look like if upper-funnel spend had been zero the whole time, the difference is the part that’s actually caused by upper-funnel spend, rather than baseline demand or search’s own spend.

python

The following decomposition plot illustrates how upper-funnel investments translate into revenue through both paths over time.

python

Indirect share of the upper-funnel effect (posterior mean): 10.0%

indirect share of the upper funnel channels in a full-funnel marketing mix modeling mmm

While direct upper-funnel contribution provides the primary baseline lift (peaking near $50M during Q4 bursts), the indirect path, routed through search demand, contributes a reliable secondary lift peaking around $3M–$5M in key seasonal windows. Combining these components gives us the total upper-funnel effect and allows us to calculate the exact posterior share of revenue that would be missed by ignoring indirect search mediation.

Comparing the Two Models Head-To-Head

Here’s the number that actually matters for a spending decision: how much total revenue do Broadcast and Streaming create? In the standard model, that’s just their combined direct contribution. In the funnel model, it’s the direct-plus-indirect total we just computed.

python

Funnel model attributes +21.7% more mean revenue to the upper funnel than the standard model.

channel contribution depending on their stage of the funnel based on bayesian mmm model designed to account for full-funnel mmm

We also compare return on ad spend (revenue generated per dollar spent) for the same two upper channels across both models.

python
channel contribution correction depending on the stage in the funnel. Output of the modeling. Full funnel mmm
channel contribution posterior for full-funnel mmm

Standard MMM, which only accounts for direct conversions, understates the true value of upper-funnel investments, returning an all-time mean ROAS of 28.0. By incorporating both direct impact and search-mediated halo effects, the full-funnel model shifts the posterior distribution upward to a mean ROAS of 35.0. This comparison highlights how traditional attribution models systematically undervalue awareness channels by failing to credit the downstream demand they create.

Wrapping up

What we found

  • Treating search_spend as just another channel hides part of the upper funnel’s real value: the standard model gives Broadcast and Streaming less credit than the funnel model does, because it doesn’t have anywhere to put the indirect effect.
  • The funnel model separates that credit into a direct part and an indirect (search-mediated) part, fitting both alongside the search impressions data at the same time.
  • The two models can predict revenue about equally well even though they disagree on attribution, so prediction accuracy alone isn’t enough to catch this kind of mistake.

Frequently Asked Questions About Full-Funnel MMM

How does full-funnel MMM differ from single-stage MMM?

Single-stage MMM treats every marketing channel as a direct, parallel driver of a single outcome (like revenue). Full-funnel MMM explicitly models multi-stage dependencies, mapping how upper-funnel investments (like CTV or PR) generate latent brand demand, which then flows into intermediate mediators (such as branded search impressions or site traffic) before converting into sales.

Why does standard attribution or single-stage MMM undervalue upper-funnel campaigns?

When upper-funnel channels drive search interest, standard attribution assigns 100% of the conversion credit to the lower-funnel search ad that captured the final click. Single-stage MMM faces a similar dilemma: including lower-funnel metrics as control variables strips upper-funnel channels of the credit for creating that demand in the first place. Full-funnel MMM eliminates this bias by accounting for both direct paths and indirect halo effects.

Does full-funnel MMM require individual user tracking or cookies?

No. Like traditional MMM, full-funnel models operate entirely on aggregated time-series data such as weekly spend, impressions and revenue. It is fully privacy-safe and not impacted by cookie deprecation.

How ELIYA Helps Build Custom Full-Funnel Models

While open-source packages like pymc-marketing provide modular components, implementing robust production models requires enterprise data integration and validated causal priors. ELIYA’s proprietary Multi-Stage Demand-Bridge Framework connects top-of-funnel investments to downstream conversion channels without losing attribution credit

  • Custom Bayesian Funnel Architecture: ELIYA builds tailored multi-stage graphs calibrated to your specific purchase cycle, adstock carryover, and saturation curves.
  • Proven Impact: In enterprise B2B SaaS deployments, ELIYA’s full-funnel attribution restored an average of 18% to 25% additional revenue credit to upper-funnel awareness campaigns that standard single-touch or single-stage models ignored.
  • Expert PhD Validation: Every model specification is audited by PhD data science practitioners to prevent non-identifiable parameter ridges and ensure convergence.

Is your upper-funnel spend getting unfairly cut due to flawed lower-funnel attribution?

If you are a growth-stage B2B SaaS or multi-channel consumer brand spending across Connected TV, PR, or digital video, ELIYA’s full-funnel MMM program is built to quantify your true cross-channel halo effect. Request a Custom Measurement Assessment with ELIYA.


Similar Posts in Marketing Measurement

eliya AI — For Business Decisions

Building the future with innovative solutions that empower businesses and transform industries.

Book a Demo

Solutions

  • Budget Planning & Optimization
  • Marketing Mix Modeling
  • Incrementality Testing
  • AI Analytics

Industries

  • E-Commerce
  • Retail
  • CPG & FMCG
  • Video Games & Entertainment
  • Financial Services & FinTech

Resources

  • Blog
  • Use Cases
  • News
  • Whitepaper
  • LLM Information
  • ROI Calculator

Company

  • Enterprise
  • About
  • Career
  • Contact
  • Book a Demo
  • Privacy Policy

© 2026 Eliya GmbH. All rights reserved.

For Business Decisions

eliya.

    Marketing MeasurementTop Marketing Analytics Companies in 2025

    Top 8 Marketing Analytics Companies To Boost Performance With Real-time Data

    Explore top marketing analytics companies that leverage AI, predictive analytics, and big data to improve marketing ...

    November 21, 2025

    Marketing MeasurementUnderstanding Lift Analysis: How to Quantify Marketing Success

    How To Run A Lift Analysis: Step-by-step Guide

    Lift analysis helps you compare control vs test groups, calculate conversion lift, and measure real marketing impact ...

    May 23, 2025

    Marketing MeasurementMarketing Measurement and Data Privacy

    Marketing Measurement And Data Privacy: GDPR, CCPA & Pixel-free Solutions

    Learn how to navigate privacy regulations and replace tracking pixels with safer, privacy-compliant alternatives. ...

    July 23, 2025

    Marketing MeasurementMulti-Touch Attribution vs MMM Explained

    MMM Vs Multi Touch Attribution: Pros, Cons & When To Use Each

    Compare multi-touch attribution vs MMM to understand their strengths, limitations, and how to choose the right model ...

    May 29, 2025

    Marketing MeasurementSet the Right Attribution Window

    The Ultimate Guide To Mastering Attribution Window In Marketing

    Learn how attribution windows work, their role in tracking conversions, how they influence marketing models, and how to ...

    June 1, 2025

    Marketing MeasurementServer-Side Tracking

    The 2025 Guide To Smarter Data Collection With Server-side Tracking

    Understand what server-side tracking is, how it works, and why it’s crucial for data accuracy and privacy. Learn ...

    May 28, 2025

    Marketing MeasurementCover image for blog post related to Offline Media Measurement and GeoTesting for Offline measurement in marketing and marketing mix modeling

    Offline Media Channel Measurement: The Complete Guide To Geo Testing And MMM

    Offline Media Channel Measurement: The Complete Guide to Geo Testing and MMM explores how marketers can measure the ...

    August 18, 2026

    Marketing MeasurementHuman-in-the-loop AI workflow in ELIYA AI: routine marketing analysis runs automatically, while budget decisions pause for human approval

    How Does Full-funnel Marketing Mix Modeling (MMM) Account For Upper-funnel Channels?

    Simple MMM models assign all the credit to performance channels, while full funnel MMM provides a more balanced image ...

    October 12, 2026

    Marketing MeasurementMarketing measurement framework diagram showing KPIs, MMM, incrementality testing and attribution feeding one budget decision

    Marketing Measurement Framework: The Complete Guide For Building Data-driven Growth In 2027

    A 2027-ready marketing measurement framework that combines business KPIs, MMM, incrementality testing, attribution and ...

    May 20, 2025

    Marketing Measurementmmm-vs-incrementality-testing-ecommerce

    Should E-commerce Brands Use MMM Or Incrementality Testing?

    Guide demystifies Marketing Mix Modeling (MMM) and Incrementality Testing for E-Commerce brands for waste-free ad spend ...

    September 11, 2026