Back to blog
Analytics3 min read

What a unified customer profile shows you

The same six hundred orders, read by last click and by first touch, give you two different budgets. Here's the arithmetic, and what to look at in one profile before you pause a channel.
The same six hundred orders, read by last click and by first touch, give you two different budgets. Here's the arithmetic, and what to look at in one profile before you pause a channel.

Aggregate reports answer the question of which channel. A customer profile answers the question of what happened.

The difference between those two answers doesn't show up in the argument, it shows up in the budget you write next month. Take an illustrative store with 600 orders in a month, and read the same month two ways.

Six hundred orders read two ways

ChannelLast clickFirst touch
Paid search36095
Snapchat60210
Influencers30145
Direct150150

Same orders, same revenue, an entirely different split of credit. The reason is simple: a single order has four or five touchpoints behind it, and last click sees exactly one of them.

Snapchat drops from 210 to 60, influencers from 145 to 30, and paid search rises from 95 to 360. The channel that closes journeys takes all the credit, and the channels that open them nearly disappear.

What changes in the budget decision

Build next month's budget on the last-click column and you'll cut the two channels that open most of your journeys, and scale the one whose main job is closing journeys somebody else opened.

That doesn't mean first touch is the right answer. It means the two readings differ enough that you shouldn't decide on either one alone. The minimum: before pausing a channel on last-click numbers, check its first-touch share for the same period.

The direct row gives you a second signal from the same table. It's 150 in both columns, so it doesn't move whatever attribution model you pick. A row that sits still across both readings usually isn't a channel, it's orders whose source was lost, and here that's a quarter of your month.

What's actually on the profile

A resolved customer record carries, in order:

The first touch. The channel, campaign and ad behind the very first visit, with its date.

Every visit since, with its source, whether or not it ended in anything.

Every order, with its value and the touch sequence that preceded it.

The identifiers that tie the record together, which is what lets you check the merge was sound.

That last item matters more than it sounds. A journey you can't audit is a journey you'll eventually distrust, usually in the middle of a budget conversation. If you open a profile and find identifiers you don't expect, that's a sign the merge has joined two records that aren't the same person.

This is also different from what your store platform shows. The platform gives you orders per customer. What it doesn't hold is the channel behind each one, or the visits that produced no order. The profile goes back over touch history within the 90-day window, plus the full order history for that customer.

Three numbers come out of the profile that no aggregate dashboard gives you. The first is the gap between first touch and first order per customer, which tells you how long a buyer takes to decide and whether your attribution window is long enough. The second is the count of orders where a campaign appears anywhere in the path against orders where it was the last touch, and the gap between them defines an assist campaign. The third is the reason a specific order was credited where it was, for when somebody opens an argument about one order.

The mistake it prevents

The common sequence: a channel shows a poor last-click ROAS, gets paused, and two weeks later total revenue falls by more than that channel's entire attributed contribution.

That happens when the paused channel was opening journeys other channels were closing. Nothing in a last-click table warns you, because in that table the channel genuinely does look weak. The profile shows the same channel appearing early in hundreds of paths that ended in orders credited elsewhere.

Protecting yourself from this is cheap. Instead of pausing the channel outright, cut part of its budget for two weeks and watch total store revenue rather than the channel's own revenue. If the total falls by more than its attributed share, it's working somewhere your table can't see.

In Flowfy, unified customer profiles and the full touchpoint journey are live today: identity is resolved across fourteen identifier types, anonymous history is backfilled the moment someone identifies themselves, and the path is stored per order within a 90-day window.

What to do now

You don't need to change your attribution model to get value from this. You need to open a small sample and read it yourself before the next budget meeting.