For about ten years I could tell you, with real conviction, why position-based attribution was better than last click for a considered purchase. I had the argument rehearsed. I won it in meetings. I was wrong in a way that took me an embarrassingly long time to see, and the error was not which model I picked.
The error was believing that the credit assignment problem had a measurement answer. It does not. It has a decision answer, and those are different things, because a model that divides credit between touchpoints is describing correlation in a dataset that has no counterfactual in it. Nothing in that dataset records what would have happened if the ad had not run. Every attribution model, without exception, is an opinion about how to split an outcome among the things that preceded it.
The number that made it obvious
What eventually broke the belief was not an argument. It was a documentation page. Google states that more than 95% of key events get attributed within the first 14 days, while the default conversion window sits at 90 days.
Ninety days of window. Ninety-five percent of the answer inside fourteen.
I had spent years having opinions about the shape of a window whose contents were, in practice, already decided in the first fortnight. The remaining 76 days were mostly a long tail of noise that felt like rigour. Adjusting that setting was one of the levers I used to reach for when performance looked soft, and it produced changes in reported numbers that I interpreted as insight.
The second thing I ignored for too long
The other half of the error was treating the tracking layer as though it were neutral infrastructure. It has not been neutral for years. Under Safari’s tracking prevention, persistent cookies set through document.cookie are capped to one day of storage when a visitor arrives via a decorated link from a domain classified as a cross-site tracker.
Set that against a 90-day conversion window and the mismatch is not subtle. The window is a setting in a reporting interface. The storage is a property of the browser the customer actually used. When those disagree, the browser wins, and the report still renders a confident number with a decimal point in it.
Google’s own tooling is honest about this in the small print: attributed key events can be updated for up to 7 days after the event is recorded, which is a polite way of saying the number on screen today is not final. I read that page for years without registering what it implied about every screenshot I had ever put in a client deck.
The meeting where it stopped being abstract
On one lead-gen account the client asked a reasonable question: which channel should get the next increment of budget. I built the answer carefully, presented it, and was asked to show the same view under a different attribution model. The ranking inverted. The channel I had just recommended defunding came out on top, and nothing about the business, the market or the customers had changed in the ninety seconds between the two slides.
I remember trying to explain why the first view was the more appropriate one, and hearing how it sounded as the words came out. The honest answer was that I preferred the first model, and preference is not evidence. That meeting is the reason I stopped arguing about models and started asking what would have happened without the spend, which is a harder question and the only one the client had actually asked.
What I do instead now
The change was not adopting a better model. It was demoting the whole category from evidence to navigation.
- Attribution reports became a directional instrument. Useful for spotting that something moved, useless for deciding how much a channel is worth.
- Anything expensive gets a holdout. If a decision is large enough to matter, it is large enough to justify turning the spend off somewhere and watching what happens. That is the only method that contains a counterfactual.
- One source of truth for money. The business’s own order data, reconciled against platform reports rather than replaced by them. Where they disagree, the shop is right.
- Windows get set once, deliberately, and left alone. Changing a lookback window mid-flight does not change reality, it changes the description of reality, and I had been doing that while believing I was optimising.
The part that still bothers me
I am not fully comfortable with where I landed, for two reasons.
The first is that holdout testing is expensive and slow, and most accounts cannot afford a clean one. Telling a business with a modest budget that the only trustworthy method requires deliberately switching off revenue for a period is close to useless advice. In my own practice the compromise is geographic splits where the geography allows it, and an honest shrug where it does not.
The second is that I may have overcorrected. Data-driven models genuinely do use more information than a rule-based split, and dismissing the entire category as opinion is a rhetorically satisfying position that could easily be too strong. Somebody with access to the inside of one of those models would probably be able to show me that the credit assignment is better grounded than I am giving it credit for. I would want to see it, and I have not seen it.
What I am confident about is the smaller claim. For a decade I treated a reporting configuration as though it were a description of cause, argued about it with people who were also arguing about a reporting configuration, and mistook the confidence of the output for the reliability of the input. The models were never the problem. The problem was that I wanted the question to have an answer I could read off a screen, and it does not have one.