Back to blog
Attribution2 min read

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.
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.

"Why is this order credited to Snapchat? I'm certain it came from Instagram."

That sentence repeats in a lot of meetings and produces more reports without ever ending. The reason is that three types of disagreement look alike, and only one of them is settled by opening an order.

Type one: a dispute about one order

"That order came from Instagram." This is a dispute about a fact. You open the order and read the sequence, and it ends in two minutes without anyone having to back down. The record just says what happened.

Type two: a dispute about the model

"Last touch is unfair to our awareness spend." This isn't a dispute about data and opening an order won't settle it. Read the same period under two models side by side and the argument becomes a decision about which assumption fits your store. The comparison is in first versus last.

Type three: a dispute about causation

"That channel isn't really driving anything." No amount of attribution settles this, because attribution divides credit for what happened. It needs a holdout, and the details are in what a channel's absence costs.

The most common failure in these meetings is treating a type two or type three argument as though it were type one, and producing more reports for a disagreement no report can settle.

The procedure for type one

  1. Pick the specific order, not a channel total. Disputes are anchored on a particular sale someone remembers.
  2. Open the sequence. Every touch, in order, with dates and sources.
  3. Read the identity evidence. Which identifiers tied these touches together. This pre-empts the next question.
  4. Name the model. State which model is running and what it gave each touch.

In Flowfy, per-order journeys with sources, timestamps and resolved identity are live and cover this procedure entirely. Reading the same period under more than one model is live too, which covers type two.

Showing per-touch weight side by side is on the roadmap. Until it ships, you infer the weights from the model you selected.

If the sequence shows an Instagram touch the model didn't credit, the disagreement was type two from the start and you've just found that out. That's a better outcome than either side winning.

If the journey is missing a touch you're sure happened, you have a collection problem rather than an attribution problem. Check whether that source was tagged and whether the session survived a payment gateway redirect.

Name the model on every figure

Most type two arguments happen because two people are looking at numbers produced under different models and assuming they're comparing like with like.

The next step

Decide first who owns the model choice: one person, documented, changed rarely. If the model changes whenever someone disagrees with it, you can't compare one month to the next.

Then, in the next meeting, before anyone asks for a report, ask which type this is: one order, the model, or causation. Open the first one now, read the second under two models, and put the third on your holdout list.

And if a customer insists they came from somewhere else, they may be right about what influenced them and wrong about what they clicked. The journey records the second, not the first, and that limit is worth stating plainly rather than papering over.