Offline, Wholesale, and Manual Orders Are Polluting Your Ecommerce Attribution
A trade order keyed in by staff, a wholesale invoice, and a market stall sale can all land in the same dataset as web orders and quietly distort channel reporting. Separating order sources before attributing anything.
Somewhere in your order file there is a wholesale order for several thousand, entered by a member of staff as a draft order, sitting in the same table as web checkouts. There may also be phone orders, invoices paid by bank transfer, replacement orders sent free, and marketplace orders imported for stock purposes. If those flow into the same revenue figure your channel reports use, then your cost per acquisition is being calculated against revenue no ad could have produced, and a channel can look efficient purely because a trade customer reordered in the same week.
Attribution needs a clean population before it needs a clever model. The question which orders could an ad plausibly have influenced has a plain answer for a retail web store, and it excludes staff created orders, wholesale, and free replacements by definition. Many reporting setups never apply that filter, because the order export did not include the source field anyone thought to segment by.
Find the source field and use it
Most platforms record how an order was created: web checkout, draft order, point of sale, marketplace, subscription renewal, or an app. Pull that field into the reporting dataset and publish revenue in two lines, web checkout revenue and all other revenue, before any channel split. The first month you do this is usually uncomfortable. Reported return on ad spend falls, because the denominator was inflated, and a few historic wins turn out to be a wholesale order landing in a good week.
Renewals deserve their own line too. A subscription renewal is revenue an earlier acquisition produced, and folding it into this month's channel performance credits this month's ads for last year's decision. Report acquisition revenue and renewal revenue separately, then argue about credit with both numbers visible rather than blended.
Manual orders create fake channel data
Staff created orders often carry odd session data, or none. In analytics they can appear as direct, as an internal referral, or under whatever campaign the staff member's browser last touched, and a large one can single handedly make a channel look like it converted. Exclude internal traffic, tag staff devices where practical, and never let a manually created order inherit a marketing source without a human entering it deliberately.
Refunds and cancellations are the other half of the same problem. Attribution counted at order date, revenue reported gross, and refunds processed weeks later in a different system means the channel that generated a returned order keeps its credit. Report net revenue for judgement calls about budget, even if gross is what the weekly meeting is used to seeing.
A simple order hygiene checklist
Every order in the reporting set has a source, a net value, and a flag for staff created. Every import from a marketplace or an accounting system is mapped to its own source rather than to web. Test orders and staff personal orders are marked and excluded. Those three rules, applied consistently, do more for attribution credibility than any change of model or window.
Revisit it when anything new starts selling. A new channel, a trade portal, a pop up, a wholesale enquiry form that creates orders. Each new route in adds a new kind of order to the file, and unless somebody updates the segmentation at that moment, it lands in the web bucket by default and starts distorting the reports it was never meant to be in.
Related reading: Glossary, About, Attribution for Subscriptions: First Order Credit Is Not Renewal Credit.
Frequently asked questions
How do draft orders affect attribution?
A draft order is created by staff, often for phone, wholesale, or invoice sales. If it is counted as web revenue, channel efficiency is overstated, and if it carries session or campaign data it can credit a channel directly. Segment orders by source and exclude staff created orders from marketing attribution.
Should subscription renewals count toward ad performance?
They count toward revenue, and toward the lifetime value of the cohort that produced them. They should not be credited to the ads running in the month the renewal happened. Report renewals separately so both stories stay visible.
What is a good first check for order pollution?
Sort the last quarter's orders by value and look at the top twenty. If any are wholesale, staff created, free replacements, or marketplace imports, they are in your reporting population. Large orders distort averages and channel ratios far more than small ones.
Do refunds need to be in attribution reporting?
Yes, for budget decisions. A channel that produces high gross revenue and high returns is not equivalent to one with lower gross and few returns. Use net revenue after refunds and cancellations when judging channel efficiency, and keep gross for operational reporting if you need both.