
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.

A growing direct share reads like good news. It sounds like brand strength: people typing your name, coming straight to you, costing nothing to reach.
Sometimes that's what it is. Far more often, direct is where orders go when nobody recorded where they came from. In an illustrative store with 480 orders a month, 75% of them had no known source.
Every row in your channel report describes something a visitor did. Direct describes something your measurement failed to see. Treat it as a channel and you've put a measurement failure into a ranking next to real channels.
The practical consequence is that you can't optimise direct. There's no budget to move, no creative to change, no audience to widen. The only useful action is finding out what it's made of.
Payment gateway redirects. A shopper leaves for Tabby, Tamara or a 3-D Secure step and comes back in a new session. The original source is gone, and the order is recorded as direct or under the gateway's own name. In a market where instalments are common, this is usually the largest single cause.
Untagged links you own. The WhatsApp broadcast, the QR code on the packaging insert, the link in a partner's bio, the signature on a support email. Each is a real source, and each collapses into direct until it carries a tag.
Cookie expiry. Safari caps first-party cookie lifetime. A shopper who arrives from an ad, leaves, and returns after that window looks like a brand-new visitor with no source, and gets recorded as direct on a purchase your ad produced.
Genuine direct. Someone typing your domain, or opening a bookmark. This is real, and its share should be small and stable.
Dark social. A link pasted into a private message or a closed group, arriving with no referrer. Tagging your own links converts most of this, and some of it doesn't resolve.
The first one needs no tool, just five minutes and a spreadsheet:
If direct grew in step with instalments and nothing else grew, you have the first cause. If direct is large and flat while you run campaigns across many channels, look at causes two and three.
The second check is a segment: filter direct orders by device and browser. A share concentrated on Safari and iOS points at cookie expiry rather than brand loyalty.
| Cause | Fix | Cost to implement |
|---|---|---|
| Gateway redirect | Treat gateways as pass-through, hold the source across the hop | Configuration, not new spend |
| Untagged links | Tag every link you own | One afternoon, then permanent |
| Cookie expiry | Server-side event path, source written to the order | Configuration |
| Genuine direct | Nothing, this is the honest remainder | — |
| Dark social | Tagging, partially | Ongoing habit |
Notice that none of them is an advertising decision. They're all measurement fixes, which is why they're cheap: you aren't buying more traffic, you're correctly labelling traffic you already paid for.
In Flowfy, gateway pass-through and server-side source capture are live today, so the source is written to the order at checkout and a redirect through an instalment provider doesn't erase it. A link builder that manages your tagged links for you is on the roadmap and hasn't shipped. Tagging stays your job, and Flowfy holds the source after that.
An order misfiled as direct is missing from the channel that earned it, so that channel's ROAS is calculated on less revenue than it actually produced.
The effect isn't spread evenly. It concentrates on channels whose buyers take longer to decide, and on channels whose audiences skew to iOS. In this market those are the same channels people accuse of not working.
What's a normal direct share? There's no benchmark worth quoting, because the number depends on how much of it is measurement error. What matters is the direction and the composition, not the level.
Will fixing this increase my revenue? No. It moves revenue you already have into the rows that produced it, which changes where the next budget goes.
Does this affect card payments too? Any off-site redirect and return can break a session, including 3-D Secure. Instalment providers are simply the most common case here.
Run both checks on a closed month and identify your largest cause before changing anything. If instalments turn out to be the biggest one, start by holding the source across the hop, and watch your direct share across the first full month after that.
And note that historical orders aren't rewritten. The correction applies from the day it's switched on, so your comparison starts there.

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.