What Multi-Touch Attribution Actually Computes
Seven credit rules run on the same journeys, from last touch to Markov chains and Shapley values, against the effects that generated them. What changes between rules, what does not, and why the sophisticated ones fail in the same place.
A conversion happens. Five touches preceded it over three weeks, on five different channels. Somebody has to decide how the credit splits, and there are a dozen rules for doing it that all disagree.
The argument in most companies is about which rule is right. That argument has an answer, and the answer does not help much.
What a credit rule is
Every rule below is a function of one thing: the observed sequence of touches on paths that converted.
Last touch gives everything to the final touch. First touch gives everything to the opener. Linear splits evenly. Time decay weights touches nearer the conversion. Position based gives 40% each to the first and last and splits 20% across the middle.
Two are more interesting. The Markov removal effect builds a transition chain over observed paths, then asks how far the conversion probability falls when a channel is deleted from the graph. The Shapley value treats the channels as players in a cooperative game and gives each one its average contribution across every order they could have arrived in.
Those two are real methods, and they are doing something more principled than splitting by position. They also take the same input, which is the set of paths that were observed. None of the seven takes as an input what would have happened without a channel, because that is not in the data.
They divide the same number, whatever they disagree about
The program below ran for a quarter. 28,691 conversions happened. 27,816 of them had at least one marketing touch, so that is the pool every rule divides.
Marketing caused 17,562 of them. With nothing running at all, 10,972 would have happened anyway.
The rules disagree by more than people expect
Branded search is where this decision usually gets made. It is large, it looks cheap per conversion, and it is the first line anyone proposes cutting.
Show the data
| Rule | Credited | Multiple of measured incremental |
|---|---|---|
| Last touch | 11,239 | 21.9x |
| Time decay | 8,144 | 15.9x |
| Markov removal effect | 6,038 | 11.8x |
| Position based | 5,674 | 11.1x |
| Linear | 5,124 | 10.0x |
| Shapley value | 3,994 | 7.8x |
| First touch | 1,199 | 2.3x |
Across the seven rules, branded search’s share of total credit runs from 4.3% to 40.4%. That is a ninefold range on one channel, from one dataset, with no modeling error anywhere. Each rule is computing its own quantity correctly.
There is a trap in reading the chart row by row. First touch looks good here, at 2.3x the measured effect. It is the worst rule on the books for display prospecting, at 7.0x, where last touch is nearly exact at 0.9x. Every rule looks accurate on the channels it happens to under-weight, and picking the rule that flatters your prior is how these arguments get settled.
Sophistication moves the answer without fixing it
The Markov and Shapley figures are better than last touch on branded search, at 11.8x and 7.8x against last touch’s 21.9x. Moving from the crudest rule to the most sophisticated one recovers most of the error and leaves an answer still wrong by most of an order of magnitude.
That pattern is not specific to one channel.
- Credited by Shapley
- Measured incremental
Show the data
| Conversions per quarter | Credited by Shapley | Measured incremental | Gap |
|---|---|---|---|
| Branded search | 4.0k | 513 | 3.5k |
| Non-brand search | 9.7k | 7.0k | 2.7k |
| 7.1k | 4.9k | 2.2k | |
| Paid social | 5.3k | 3.8k | 1.5k |
| Display prospecting | 1.7k | 1.3k | 437 |
Sophistication buys a better description of the paths. It does not buy a counterfactual, and the ordering it produces still puts budget behind the channel that captures demand rather than the one that creates it.
Why no rule can fix it
Branded search appears on 12,591 of the 27,816 converting paths. It appears there because someone who has decided to buy types the brand name into a search box.
A credit rule sees a channel that is present on most converting paths. So does a channel that causes conversions. The path is identical in both cases, and there is nothing further down in it that separates them. Deleting branded search from a Markov graph estimates how much the observed paths depended on passing through that node, which is a real quantity and is not the effect of turning the campaign off.
The fix is not a better rule. It is a comparison group that did not get the channel, which is a different kind of data and has to be created on purpose. Attribution Is Not Incrementality makes that argument from the other direction, and Designing a Credible Geo Holdout is what creating it looks like.
The one rule with a counterfactual in it, briefly
Shapley values need a value function: what a coalition of channels is worth. Two definitions are in circulation, and the difference between them is the whole lesson in miniature.
Define a coalition’s value as the number of conversions from paths touching only channels in it, and the values sum to the observed total. Define it as the conversion rate of the users those channels touched, and the empty coalition becomes the conversion rate of people no channel reached. The values then sum to a difference against that group rather than to everything that happened.
On this data the rate form totals 22,400 conversions before anything is renormalized, against 27,816 credited and 17,562 caused. It is not right, because the untouched group is nothing like a random holdout: it is the people no channel bothered to reach, who were less likely to convert for reasons that have nothing to do with advertising. It is closer, and it is closer for the only reason that ever makes a number closer, which is that something was subtracted.
A footnote worth knowing before you buy one
Under the count-based definition, every converting path is a game in which the coalition is worth nothing until all of its channels are present. The Shapley value of a game like that splits the payoff equally among the players.
So count-based Shapley attribution is linear attribution. Not approximately, and not usually. The two columns are identical in this data to every decimal place the generator emits, because they are the same calculation.
The identity, on this data Code
Credit assigned to each channel, under linear splitting and under Shapley values with a count-based coalition function:
- Display prospecting: linear 4451.13, Shapley 4451.13
- Paid social: linear 5463.72, Shapley 5463.72
- Non-brand search: linear 6872.88, Shapley 6872.88
- Email: linear 5904.38, Shapley 5904.38
- Branded search: linear 5123.88, Shapley 5123.88
Which is worth knowing when a vendor deck cites cooperative game theory. The citation is real. Whether it bought you anything over dividing by the number of touches depends entirely on the value function, and that is the part the deck usually does not name.
What multi-touch attribution is still good for
Discarding it is the wrong conclusion, and it is the one people reach after reading an argument like this.
- Describing how demand arrives. Path length, time to conversion, which channels open and which close. That is a real description of a real thing.
- Deduplicating across platforms. Every ad platform claims the same conversion. One consistent rule applied to one dataset at least stops the claimed totals from exceeding the actual ones.
- Finding channels with no path presence at all. A channel that never appears in journeys is a tracking problem or a reach problem, and both are worth knowing about before anyone argues over its effect.
- Pacing and diagnosis inside a period, where the question is what changed this week rather than what to fund next quarter.
The line is between describing the paths and deciding the budget. The first is what the data supports. The second needs a counterfactual, and no rule applied to the same paths will produce one.
Context
Best suited for
Understanding how conversions arrive, deduplicating platform-reported numbers, and diagnosing tracking gaps. Not for setting channel budgets.
Data requirements
- Journey-level touch data with timestamps, joined across platforms rather than reported by each
- A stated lookback window, since the window silently decides which touches exist
- A consistent identity spine, or the paths are fragments of paths
- A separate source of causal evidence if the output will inform spend
What changes by context
- B2C ecommerce
- Short windows and heavy branded search make this the worst case. The channel closest to the purchase collects the credit under most rules, and it is usually the channel with the least incremental effect.
- B2C subscription
- Lifecycle messaging appears on almost every converting path because it is sent to almost everybody. Presence carries very little information when reach is near total, and every rule will still hand it credit proportional to that presence.
- B2B SaaS
- Paths run for months across several people at one account, so the unit of the path is wrong before any rule is applied. Account-grain journeys and opportunity-grain outcomes are the minimum, and even then the window question dominates the rule question.
When it breaks down
- Any channel selected by the intent that drives the outcome. Credit tracks presence, and presence is a symptom.
- Programs where a large share of conversions never touch a tracked channel. The pool being divided is not the pool that matters.
- Upper-funnel channels with no clickable touch, which cannot enter a path at all and therefore receive nothing under every rule.
- Any use where the output becomes a budget decision without a separate causal estimate alongside it.
What this does not establish
- That Markov and Shapley are no better than last touch. On this data they are substantially better on four channels of five. They are still wrong by a factor of eight or more on the channel the budget argument is about.
- That the ninefold spread between rules is typical. It follows from how much of this program is demand capture. A program with little branded or retargeting spend would show a much narrower spread and a smaller gap to the truth.
- That the credited-to-incremental ratio here transfers anywhere. It is a property of one simulated program with a large baseline.
- That an attribution rule can be validated by fit or by stability. Both are properties of the description, and a stable description of the wrong quantity stays wrong.
- Anything about which rule to use. The argument is that the choice matters less than whether a holdout exists.
What to test next
Pick the channel that takes the largest share of credit and hold it out somewhere. A geo holdout or a randomly withheld audience will do. The comparison that matters is not between two attribution rules; it is between the credit that channel receives and the difference its absence makes.
If a holdout is impossible this quarter, the cheaper diagnostic is to compute two rules that disagree structurally, such as first touch and last touch, and look at which channels move most. Those channels are where the credit is being decided by the rule rather than by the data, and they are the ones worth measuring first.
Where these figures came from Code
One simulated program of 400,000 users across 5 channels and a 30-day window. Each user has a latent intent that drives both their chance of converting without any marketing and their chance of being exposed to each channel. Branded search has the strongest dependence on intent and the smallest true effect, which is what produces the demand-capture pattern; display prospecting is the reverse.
Conversion is a noisy-OR over the channels a user was exposed to, so removing a channel is well defined and the incremental effect can be computed exactly rather than estimated. That is the only reason a truth column exists here. On a real program that column comes from an experiment or it does not exist.
Time decay uses a 7-day half-life. The Markov removal effects are computed on all paths, converting and not, since the chain needs both absorbing states. Shapley values are exact over all 32 coalitions rather than sampled. These are not measurements from a real company.