Field Guide · Measurement

How to measure marketing in 2026

MMM, attribution, and incrementality each answer a different question and carry a different bias. The operator's move isn't picking one — it's giving each a job, and letting them calibrate each other.

By Khalid HamadehUpdated June 20269 min read
The short version

Stop asking "which measurement method is right?" Ask "which one answers this decision?"

The premise

Any single number is wrong — just in a different direction

Every measurement method is a lens, and every lens distorts. MMM smooths over the tactical detail it can't see. Attribution over-credits the last clickable touch and quietly loses signal to privacy. Incrementality is the truest read you can get — and it's too slow and expensive to run on everything. Pick one and crown it, and you inherit its blind spot as your strategy.

So don't crown one. The 2026 stack treats all three as instruments on the same dashboard — each trustworthy for the thing it's built to read. Tap a vertex below to see what each one is actually for.

"Half the money I spend on advertising is wasted; the trouble is I don't know which half."
— John Wanamaker, retail pioneer (attributed, ~1900). A century later the quote still bites — and triangulation is the closest we've come to an answer.
sets the envelope validates the model discounts the credit MMM how much? Attrib. what now? Increm. is it real?
Tap a vertex

Three instruments, one dashboard

Each method is built to read one thing well. Tap MMM, Attribution, or Incrementality to see its job, its bias, and what it should never be used for.

The edges are the calibration: incrementality discounts attribution's credit, MMM sets the spending envelope, incrementality validates the model.

The framework

Don't rank them — give each a job

The fastest way to sound junior in a measurement conversation is to argue that one method "beats" the others. They aren't competing; they're specialized. Here's the division of labor I run.

MethodThe question it ownsIts bias / blind spotCadence
MMMHow much should we spend in total, and how should the envelope split across channels?Can't see what it can't measure; smooths over tactics; needs historyMonthly / quarterly
AttributionWhat do I change this week — and what do the ad platforms optimize toward?Credits correlation, not cause; leaks signal to privacy; recency-biasedContinuous
IncrementalityIs this channel actually causing lift, or would it have happened anyway?Expensive, narrow, episodic; one channel at a timeA few times a year
The point everyone misses about attribution

Attribution isn't just a reporting tool you can demote and ignore — it's the only operational one. It runs in real time, and the same touch-level signal feeds the optimization engines inside Meta, Google, and Apple. So even where attribution is a biased measure, it's still a live input to performance. You don't get to throw it out; you get to discount it. It's the steering wheel, not the map.

The mechanics

How each one actually works

You can't trust an instrument you can't picture. Here's what each method is really doing under the hood — and exactly where its bias creeps in. Three diagrams, three jobs.

TL;DRAttribution splits credit across the touches in a journey. MMM decomposes aggregate sales into channel contributions with a statistical model. Incrementality compares an exposed group to a holdout and calls the gap causal lift.
Bottom-up

How attribution works

It reconstructs one buyer's path and hands out credit for the sale.
Meta view Day 1 Search click Day 4 Email click Day 6 $ Purchase Day 7 ⚠ blurred by ATT Last-click says: Email 100% Data-driven says: Meta 30% Search 45% Email 25%

Attribution stitches a user's touchpoints into a path and assigns credit for the conversion. Last-click gives 100% to the final touch — simple, and wrong in an obvious direction. Data-driven / multi-touch (MTA) spreads credit using the observed pattern across many journeys. Either way, it's correlational: it can only credit touches it saw, which is why Apple's App Tracking Transparency and cookie loss — which hide the early view-through touches — bias it systematically toward the last clickable step.

Definition: assigning fractional credit for a conversion to the marketing touchpoints that preceded it.
last-clickmulti-touch (MTA)data-driven attributionview-throughiOS ATTSKAdNetwork / AdAttributionKit
Top-down

How marketing mix modeling works

It explains aggregate sales with statistics — no user-level tracking at all.
INPUTS Channel spend (weekly) Price & promotions Seasonality Base demand / trend Bayesian regression adstock × saturation OUTPUTS Sales decomposition Base 50% Srch Response curve (per channel) spend →

MMM never touches a single user. It takes aggregate weekly data — what you spent per channel, plus price, promotions, seasonality and a base-demand trend — and fits a statistical model that asks: when this input moved, how did sales move? Two transforms make it realistic: adstock (advertising's effect carries over into later weeks) and saturation (each channel bends into diminishing returns). The outputs are a decomposition of sales into base + each channel, and a response curve per channel — which is exactly what a budget optimizer needs. Because it's privacy-safe and top-down, it sees brand and offline effects attribution misses — but it's coarse and needs years of clean history.

Definition: a regression model that estimates each channel's contribution to an aggregate outcome, controlling for non-marketing drivers. Open-source implementations: Meta's Robyn, Google's Meridian.
adstock / carryoversaturation curveHill functionBayesian priorsbase vs incrementalRobynMeridian
Causal

How an incrementality test works

It runs an experiment: show ads to one group, withhold from another, measure the gap.
conv. weeks of the experiment → Test — ads ON Control — ads OFF (holdout) ▲ incremental lift would've happened anyway (baseline)

An incrementality test is a real experiment. You split the audience — or, in a geo holdout, whole regions — into a test group that sees the ads and a control / holdout that doesn't, then measure conversions in both. The control tells you what would have happened anyway; only the gap above it is truly caused by the ads. That gap, divided by the total, is the channel's incrementality factor — e.g. a result of 0.6 means 40% of attribution's claimed conversions were going to convert regardless. It's the closest thing to ground truth, which is why it's the referee. The price: it's expensive, runs one channel at a time, and the read is only as good as the holdout.

Definition: a controlled experiment measuring the causal lift a channel drives versus a matched holdout that received no exposure.
geo holdoutghost adsPSA testtest vs controlincrementality factorconversion lift
The hard part

When they disagree, anchor by the decision

They will disagree — that's normal, not a failure. MMM says social is worth 0.8x what attribution claims; a geo test says paid search is 60% incremental. The rule isn't "average them." It's: match the number to the decision you're actually making right now.

Pick the decision in front of you →
Choose a question above and I'll tell you which instrument to trust.

And the tiebreaker behind the tiebreaker: a fresh, relevant incrementality test wins. Causal evidence beats correlation, so when you have a recent holdout result on the channel in question, it becomes the referee — you re-weight MMM and attribution toward it, not the other way around. The catch is in the words "fresh" and "relevant": a six-month-old test on a different geo doesn't get to overrule today's data.

The refinement

Sometimes you blend them, instead of choosing

"Give each a job" is the default, not the ceiling. When a decision recurs and the methods are stable, the sharper move isn't switching instruments per question — it's fusing them into a single composite KPI and steering on that. I call it the blended read: one number that already has the other methods baked in.

TL;DRTake attribution's granular, real-time number, discount it by the latest incrementality factor, and cap it with MMM's efficiency boundary. Now a single metric — a triangulated CAC — carries all three signals, and your team can act on it daily.
Attribution
Reported CAC $40 — granular, by campaign, today
Incrementality
× 0.6 truth factor — last geo holdout
MMM
Efficiency ceiling $80 — stay under it
The blended read
$67
triangulated CAC
✓ true cost, under the ceiling

Why $67, not $40? Attribution's $40 only counts the conversions it could see and credit. The incrementality factor of 0.6 says roughly 40% of those would have converted anyway — so the true cost of a genuinely incremental subscription is $40 ÷ 0.6 ≈ $67. MMM's $80 efficiency ceiling confirms you're still buying profitably. One number, all three lenses — and it updates daily off attribution while only needing a re-base when a new test or model refresh lands.

When to blend vs. when to switch

Blend when the decision is recurring and the inputs are stable — daily/weekly spend steering, pacing to a target CAC, channel guardrails. Switch back to "give each a job" when the decision is novel, the stakes are large, or a method just moved (a fresh test, a model refresh, a new channel) — because a blended number can hide a disagreement you actually need to see. The blend is for cruising; the individual instruments are for when the dashboard lights up.

The system

How the three calibrate each other

Triangulation isn't three reports in three tabs. It's a loop where each method corrects the next. Run it in this order:

1

Incrementality sets the truth factors

A geo holdout says paid search is ~60% incremental. That 0.6 becomes a discount you apply to attribution's claimed conversions for that channel. Now attribution is anchored to a causal read.

2

MMM sets the envelope

The model says total efficient spend is ~$X and social should be a smaller slice than it looks. That's the budget boundary — how much, and the rough split — that the tactical layer has to live inside.

3

Attribution steers within the envelope

Day to day, you allocate inside MMM's boundary using discounted attribution — and feed the platforms the signal they optimize on. Fast decisions, but bounded by the slower, truer layers above.

4

Re-test what changed

When a channel scales hard or a discount looks stale, you queue the next incrementality test — and the loop tightens. Measurement is a maintenance schedule, not a one-time project.

A note on "scrappy" modeling

You don't need a six-figure vendor to play the MMM role. Plenty of MMMs already refresh monthly — but you can still do ad-hoc, directional modeling between the outputs, at any cadence, or when you can't afford one at all. A lightweight response-curve fit won't be precise, but done honestly it's directionally useful and fast — and a timely directional read usually beats a perfect number that arrives after the decision. (Full piece on this coming in the series.)

In practice

The operator's measurement calendar

What "triangulation" looks like on an actual week, month, and quarter — so it's an operating rhythm, not a philosophy.

Weekly

Steer

  • Read discounted attribution by channel
  • Shift spend within the MMM envelope
  • Watch for divergence from the model
  • Feed clean conversion signal to platforms
Monthly / Quarterly

Reset the envelope

  • Refresh MMM (or the scrappy stand-in)
  • Re-cut the budget split & channel ceilings
  • Update saturation curves for allocation
  • Reconcile MMM vs attribution gaps
A few times a year

Find the truth

  • Run a clean geo / holdout test
  • Target the biggest or most uncertain channel
  • Set new incrementality discount factors
  • Re-validate the MMM against the result
Go to the source

Tools & references

The methods above aren't proprietary — they're built on open tooling and public research. If you want to go from understanding them to running them, start here.

Robyn — open-source MMMMeta's automated marketing-mix modeling package (R/Python). The most accessible way to fit adstock + saturation curves yourself. Source: Meta Open Source.
Meridian — open-source MMMGoogle's Bayesian MMM with built-in support for incrementality calibration as a prior. Source: Google.
Conversion Lift / geo experimentsThe native incrementality tools inside Meta and Google Ads — ghost-ad and geo-holdout lift studies. Source: Meta & Google Ads.
AdAttributionKit & SKAdNetworkApple's privacy-preserving attribution framework — the reason mobile attribution is aggregated and delayed. Source: Apple Developer.
GeoLift — open-source geo testingMeta's open package for designing and measuring geo-based incrementality tests. Source: Meta Open Source.
The budget allocatorThe interactive response-curve optimizer that puts the allocation half of MMM in your hands. Source: this site.
Go deeper

The rest of the stack

🎛️ Free tool

The budget allocator

Set a saturation curve per channel and watch the optimizer split a fixed budget — the allocation logic from this piece, made interactive.

Open the tool →
Method

Scrappy MMM

Directional media-mix modeling between the vendor outputs — or when there's no vendor at all.

Read it →
Method

Forecast a range

Three forecast models that should disagree — and why a range beats a number.

Read it →
Method

The experimentation agenda

You can run a handful of clean tests a year — how to choose them like a portfolio.

Read it →
Field guide

AI search optimization

The other thing I write about: how to get cited by ChatGPT, Perplexity, and Google's AI answers.

Switch topics →
Quick answers

Common questions

MMM vs attribution vs incrementality — which is best?
None is best on its own, because they answer different questions. MMM tells you how much to spend in total and how to split it. Attribution tells you what to change this week and feeds platform optimization. Incrementality tells you whether a channel is actually causal. The 2026 approach is to give each a job and let them calibrate each other — triangulation, not selection.
What should I trust when they disagree?
Anchor by the decision you're making. For whether a channel is real and deserves budget at all, trust a fresh, relevant incrementality test. For how much to spend in total and across channels, trust MMM. For what to change this week and what the platforms optimize toward, trust attribution. A recent incrementality result is the referee that re-weights the other two.
Is attribution dead in 2026?
No. Attribution lost its claim to being the source of budget truth, but it remains operationally essential: it runs in real time and it feeds the optimization engines inside the ad platforms, so it directly shapes performance. Treat it as the steering wheel — calibrated and discounted by MMM and incrementality, not thrown away.
Do I need an expensive MMM vendor to do this?
No. A vendor MMM is valuable, but you can also do scrappy, ad-hoc modeling between its outputs — at any cadence, or when you can't afford one at all. Done well, lightweight modeling is directionally useful and fast, which is often enough to make a timely allocation decision.
How often should each method run?
Attribution is continuous — you read it daily and weekly to steer. MMM typically refreshes monthly or quarterly to reset the budget envelope. Incrementality runs as a deliberate cadence of a few clean experiments a year on your biggest or most uncertain channels, each one recalibrating the other two.
What's the difference between MMM and multi-touch attribution (MTA)?
MTA is bottom-up: it tracks individual user journeys and splits credit across the touchpoints it can see, so it's granular but blind to anything untracked — offline, brand, and privacy-hidden touches. MMM is top-down: it models aggregate sales against aggregate spend and never uses user-level data, so it captures the full picture but can't tell you which specific campaign to scale today. They're complements, not substitutes.
What are adstock and saturation in a marketing mix model?
They're the two transforms that make MMM realistic. Adstock (or carryover) captures the fact that advertising's effect decays over several weeks rather than vanishing the day spend stops. Saturation captures diminishing returns — each extra dollar in a channel buys less than the last, which is the curve a budget optimizer needs. Together they turn raw spend into a believable response curve.
This is how I operate

I run this triangulation on a real growth budget

If you're building a measurement stack, pressure-testing an allocation, or just want a second set of eyes on what your three numbers are really telling you — let's talk.

Try the budget allocator → Work with me

Last updated June 2026 · Part of an in-progress series on growth measurement & budget allocation.