Attribution PlaybookMeasurement that survives the browser

Your Promo Codes Are Stealing Credit From Organic Search

Look at your last-click attribution and the email channel looks like a hero. Look at the actual journeys and the email did nothing: the customer found you on organic search, typed the brand name into Google, and checked out with a promo code they saw in a subject line they never opened.

How a code hijacks the journey

Last-click attribution gives the whole sale to the last touchpoint, and a promo code is the easiest last touchpoint to manufacture. The customer searches for the brand, lands on the site, and at checkout the site asks for a code. The customer opens their email, finds the code from a campaign they never read, pastes it in, and checks out. Last-click gives the email channel the sale. Organic search, which did the actual work of bringing the customer back, gets nothing, and the next budget meeting moves money from search to email on the strength of a number that describes a paste event, not a purchase decision.

Discount codes inflate channel credit in a second way. A customer who was going to buy anyway, at full price, uses a code and the channel that delivered the code gets credited with a sale that needed no persuasion. The code did not create the demand. It discounted it, and the attribution system recorded the discount as a win. The margin cost is real, the incremental revenue is zero, and the report says the channel is performing.

How to see it, and what to do about it

The test is a code-source audit. Pull every order with a promo code and look at the journey before the code was entered: how many of those customers arrived through organic search, direct, or a branded search, and how many arrived through the channel that sent the code. If most code users were already on the site through another channel, the code is a discount on existing demand, not a driver of new demand. The second test is a holdout: stop sending the code to a segment for a month and see whether their purchase rate actually falls. If it does not fall, the code was not doing anything.

The fix is not to kill promo codes. It is to stop crediting them as a channel. Attribute the sale to the channel that brought the customer, and treat the code as what it is, a margin cost, reported separately from acquisition. A code that brings a new customer is a marketing expense. A code that discounts an existing customer is a pricing decision, and the two should never share a line in the attribution report. For the last-click version of this problem, see Last-Click Attribution Hides the Channels That Assist, and for the test that settles it, Incrementality Tests You Can Run Without a Data Team.

The number to watch instead

Watch the share of code orders that arrived through another channel, and watch the holdout purchase rate. If the code is doing real work, the holdout rate falls when the code stops. If it does not fall, the code is a discount, and the budget that went to the channel that delivered it should go to the channel that brought the customer in the first place.

Frequently asked questions

Why do promo codes distort attribution?

Last-click gives the whole sale to the last touchpoint, and a code is the easiest last touchpoint to manufacture. A customer who arrived through organic search and pasted a code at checkout gets credited to email, even though email did nothing.

How do I know if a code is cannibalizing organic?

Audit the journeys behind code orders. If most code users arrived through organic search, direct, or branded search, the code is discounting existing demand, not creating new demand.

Should we stop using promo codes?

No. Stop crediting them as a channel. Attribute the sale to the channel that brought the customer, and report the code as a margin cost, separate from acquisition.

What is the holdout test for a promo code?

Stop sending the code to a segment for a month and watch their purchase rate. If it does not fall, the code was not driving purchases, and the budget should go to the channel that was.