Every cross-category email, text and recommendation gets credit for purchases. A holdout tells you how many it caused.
Your cross-sell flow reports every purchase by someone who got the message, within an attribution window. Some bought because of it. If the Amazon estimate for recommendation clicks in chapter 7 carries over, many would have bought anyway. The only way to know the split is to hold some customers back.
Take everyone who qualifies for the flow, say everyone who has placed a second core order, and randomly assign a fixed share, often 10%, to get nothing from it. They still get newsletters and core flows. After 60 to 90 days, compare the groups on three numbers, counted from the day each customer qualified, opened or not:
Say 40,000 customers qualify and 4,000 are held out. In 90 days, 6.0% of the customers who got the flow buy the new category, against 4.5% of the holdout. Attribution would credit the flow with about 2,160 buyers, 6.0% of 36,000. The holdout says it caused about 540, 1.5 points on 36,000: a quarter of what the dashboard shows Derived. At these sizes the difference is about four times its standard error, well clear of noise Derived. With a smaller list, work out first whether the test can see the lift you care about; the sample-size math is in The Honest Test.
Attributed revenue is what the flow was near. Incremental revenue is what it did.
Bundles and cart add-ons are the same question at checkout: they need a holdout too, and they’re covered in The First Offer.
A small permanent holdout, 5% of new customers who never get cross-category messages, lets you check every quarter whether the whole cross-sell program still adds contribution. It costs a little revenue, and it’s the one cross-sell number nobody can argue with.
This is one chapter of The Next Category, which is free and readable in full on a single page with no form in front of it.