The model gives credit by surface.
The channel does its work across surfaces.

What halo actually is, why standard MMM cannot see it by construction, and what changes when the architecture can model what the channel is doing.

Last week I described how measurement bias propagates into the forecast. Today I want to back up one step and look at where the measurement bias originates, by looking at what most MMMs cannot, by construction, see.

The architectural blindness has a name. Halo.

Consider what happens when a customer sees a TikTok ad, then searches the brand on Google, then walks into Sephora and buys. A standard MMM will credit the Sephora purchase to the channel where the close happened. The TikTok influence is not modeled, because the model has no parameter for "TikTok caused the Sephora purchase."

This is not a flaw in any one vendor. It is a property of the separable, additive decomposition that almost every standard MMM uses.

Where the blindness starts

Most MMMs assume that channel A's effect on outcome X can be modeled independently of channel A's effect on outcome Y. That assumption is what makes the math tractable. It is also what makes halo invisible.

If TikTok ads cause one dollar of DTC revenue, two dollars of Amazon revenue, and one-and-a-half dollars of retail revenue, a standard MMM tries to fit each channel's effect on each outcome separately. The cross-channel and cross-surface interactions, which is where halo lives, are absent from the architecture. That is the core of the problem.

You can patch this with attribution rules layered on top. The patch will be wrong, because the underlying parameters were estimated under the assumption that halo did not exist.


The channel does work the model was not built to see.

A model is a structure. The structure decides what the model is even capable of estimating. If the structure cannot represent cross-surface effects, no amount of data will produce a cross-surface estimate.

This is why the answer to "is our halo measured correctly" is rarely about the data and almost always about the architecture.


The worked example

MaryRuth Organics scaled Pinterest 8x. In a standard MMM, that scale would have come with a Pinterest-specific saturation curve. The model would have projected diminishing returns somewhere between two and four times the baseline spend, and the team would have stopped there.

In a hierarchical Bayesian model that explicitly captures channel interactions, the picture changed. Pinterest's effect on revenue was modeled jointly with:

• DTC purchase paths

• Amazon search and purchase paths

• Sephora retail purchase paths

• Branded search lift

The model showed that 67% of Pinterest's incremental revenue impact landed on surfaces other than Pinterest's own conversion path. That 67% was halo. The model could see it because the architecture was built to model it.

MaryRuth's CAC stayed nearly 50% more efficient than the portfolio average at 8x scale. The math worked because the model started with the assumption that channels create demand across surfaces, not within them.


Same channel, two architectures

What the architecture seesPinterest 8x outcome
Single-surface attributionProjected diminishing returns at 2x to 4x. Scaling further is not recommended.
Joint cross-surface modelingHalo at 67% of total impact. CAC stays efficient at 8x scale. Scale further is the right move.

Same brand, same period, same data. Two architectures, two opposite recommendations.


Why this matters at peak

The architectural blindness is worst at peak, because at peak the cross-channel halo is highest.

Demand spikes activate multiple surfaces at once. A customer who saw a TikTok ad in mid-November buys on Amazon during the BFCM weekend. The conversion is the visible event. The TikTok influence that triggered it is the invisible event.

The MMM that cannot see cross-surface effects is the MMM that will mis-credit BFCM revenue, mis-forecast Q1 demand, and recommend the wrong budget moves for the year ahead.

This is the same structural cause behind the cascade I described in issues 003, 004, and 005. Identifiability fails because cross-channel interactions are unmodeled. Measurement error propagates because the parameters were estimated under the wrong assumption. The forecast bias is the downstream effect.

One architectural choice, three observable failure modes.

Two questions for your team this week

If you want to check whether this architectural blindness is operating in your own data, two questions are worth asking.

First. Pick a single channel you scale up at peak. Trace its modeled revenue impact by surface. If the model shows the impact landing only on that channel's own conversion path, the model has the architectural blindness this issue describes. The halo is happening, you just cannot see it.

Second. In your last BFCM, did your model recommend pulling back on an upper-funnel channel because of "saturation"? If yes, ask whether the saturation was learned from the data or imposed by the structure. Forced saturation, the structural ceiling I described in issue 005, is the same architectural issue viewed from the other end.

Both questions point at the same place: the choice between a model that gives credit by surface and a model that gives credit by structure.


See cross-surface halo on your data

The Halo

Exclusive insights, every week.

Subscribe to The Halo for sharper marketing thinking.