Attribution models vs incrementality

Attribution decides how to split the credit for a sale. Only a holdout can tell you whether the channel actually caused it.

The idea

A customer touches several channels before buying — social, then email, then a branded search click. Attribution models are just rules for slicing that one sale’s credit among the touches. First-touch gives it all to social; last-touch gives it all to search; linear splits evenly; position-based favors the ends; data-driven learns a weighting from the data.

But every one of them is dividing a pie that already exists. None of them answers the real question: if we turned this channel off, would the sale still have happened? That’s incrementality — and you can only measure it by running an experiment: withhold the channel from half the audience (a holdout) and see how much conversions actually drop.

the interactive · slice the credit, then test the truth

The journey to purchase — drag a channel to reorder it, or focus it and use the arrow keys.

Attribution model

Credit for this one sale

Run a holdout — withhold one channel from half the audience

Press run holdout to compare what a model credits the channel against what it actually caused.

Last-touch hands 100% of this sale to Search — the final click. Social and email, which built the demand, get nothing. Switch models and watch the same sale get sliced completely differently.

How it works

Attribution partitions one observed conversion. Incrementality estimates the — what would have happened without the channel — which no attribution rule can see from the data it has.

Journey:  Social -> Email -> Search -> Purchase   (one sale, split 100%)

  first-touch    Social 100 · Email  0 · Search   0
  last-touch     Social   0 · Email  0 · Search 100
  linear         Social  33 · Email 33 · Search  33
  position (U)   Social  40 · Email 20 · Search  40
  data-driven    Social  56 · Email 33 · Search  11

Holdout:  withhold a channel from half the audience.
  incremental lift = (conv_treatment - conv_holdout) / conv_treatment

  Social held out:  8.0% -> 5.6%   lift = 30%   (last-touch credited it 0%)
  Email  held out:  8.0% -> 6.6%   lift = 18%
  Search held out:  8.0% -> 7.5%   lift =  6%   (last-touch credited it 100%)

Read those last two lines together. Last-touch says Search drove the whole sale; the holdout says turning Search off barely moves conversions — it was capturing demand social and email already created. That gap between credit and lift is exactly what you’d over-invest in if you trusted attribution alone.

When to use it

Use…For…Blind spot
Attribution modelsDirectional, fast, per-conversion path insight; day-to-day optimization.Correlational — can’t prove a channel caused anything.
Holdout / lift testsCausal lift for one channel or campaign; settling “is this incremental?”Costs conversions you deliberately forgo; needs scale and patience.
Marketing mix modeling (MMM)Whole-budget causal estimates across channels, privacy-safe, long horizons.Aggregate and slow; sensitive to model choices and confounders.

Watch out for

Worked example

An interviewer asks: “Branded search shows the best ROAS in our last-touch report. Should we put more budget there?” The disciplined answer separates credit from cause: “Last-touch will always flatter branded search because it’s the final click before purchase — but many of those people were already going to buy. Before shifting budget I’d run a geo or audience holdout on branded search and measure the incremental lift. If turning it off only drops conversions a few percent, its true value is far below its attributed credit, and the marginal budget is better spent upper-funnel — where a holdout would likely show higher lift.” Naming the holdout as the tie-breaker, not a prettier attribution model, is what signals you understand causation.

Check yourself

Your data-driven model gives branded search 45% of credit. A holdout shows only 8% incremental lift. What’s the honest read?

Why can’t even a well-trained data-driven attribution model measure true incrementality?