
How to settle an attribution argument by opening one order
Most arguments about channel performance aren't arguments about data. Identify the type first, because only one of the three is settled by opening a record.

The simplest question in e-commerce is where an order came from. It's also the one most stores can't answer for any specific order.
You know the totals: orders today, revenue this month. What's missing is one level down. You open order 4,812 and see the channel, the campaign, the ad set and the ad that produced it.
With the field missing, three habits fill the gap, and all three measure something other than what you wanted:
Each one produces a number. None of them produces a number you can put next to ad spend and compare.
A fourth habit is to take the answer from each platform's own dashboard. That gives you a number built on that platform's methodology and window, and adding two or three dashboards together yields more conversions than your store had orders. You can't build a comparison on it, because every row was counted under a different rule.
Three influencers, each paid 5,000 SAR:
| Influencer | Visits | Orders | Cost per order |
|---|---|---|---|
| Influencer A | 900 | 45 | 111 SAR |
| Influencer B | 4,200 | 28 | 179 SAR |
| Influencer C | 600 | 6 | 833 SAR |
Illustrative figures.
Without a source on the order, all you have is the visits column. The visits column names Influencer B the winner, and B costs 68 SAR more per order than A. With the orders column, renewing Influencer C takes about a second to decide.
The same arithmetic works on paid ads. Every order carries its channel, campaign and ad, so you compare source against source instead of comparing visits against orders and hoping the two move together.
Free channels join the same table. Brand search, referral, a WhatsApp message and an email campaign are all measured on the same ruler as paid. That's the first time you can compare a channel that costs you nothing against one you fund daily, because both numbers came from the same place.
A source you reconstruct later, by matching UTM strings or reading the last referrer at checkout, inherits every gap in whatever it was rebuilt from. A UTM written under a different name, a link somebody forgot to tag, a payment redirect that broke the session. Each one produces an order with no source, and those orders pile up in "direct".
Writing the source onto the order at the moment it's created, from the server, means the field is there whether or not the browser cooperated. It's written once and it doesn't erode.
That's also what keeps historical reads honest. A source stored on the order is still there when you change attribution model six months later. A source inferred from a session isn't, because the session is gone.
The source on every order is live in Flowfy today: channel, campaign, ad set and ad, written from the server at checkout and stored with the order, and it comes out in exports like any other field. Attribution reaches back inside a 90-day window, so an order that lands weeks after the first click still returns to it.
Three things:
"Direct" stays, and that's honest. Real direct orders exist: someone typed your URL, or opened a bookmark. The goal is for "direct" to stop swallowing orders that had a source you failed to capture.
The number to watch after the change is the share of total orders sitting in "direct". If it drops from a third to under a tenth, what you were losing was sources rather than customers.
Open the last twenty orders in your store and see how many you can name a source for. If more than a third sit in "direct" while you advertise daily, the problem is in collection rather than in the channels.

Most arguments about channel performance aren't arguments about data. Identify the type first, because only one of the three is settled by opening a record.

An 890 SAR order credited to a channel you didn't spend on this month. If you can't explain why, that number dies and takes every other figure from the same source with it.

No attribution model answers this question. The only method is a holdout, and it costs real money. Here's how to design one and which channel deserves it.