
How to move budget between channels without losing the gain
The distribution check tells you there's an opportunity. Moving it all at once eats most of it. Here are three execution rules, and what to watch afterwards.

One person browses on their phone in the morning, opens your store on a laptop at night, checks out as a guest once and signed in the next time. Most systems store that as four people.
Every number sitting above that layer inherits the error: repeat rate, lifetime value, cost per customer, and which channel gets credit for the sale.
A cookie identifies a browser, not a person. Which means:
And anything relying on email alone breaks the moment someone uses Sign in with Apple.
It groups those signals into one person. In Flowfy that runs on 14 identifier types: the device cookie, email, phone, the store's customer ID, the order ID, and click identifiers like fbclid, gclid and ttclid.
There's more to it than the count, though. Two conditions matter more.
Retroactive stitching. An anonymous visitor gets a profile on their first visit. The moment they sign in or buy, their earlier history attaches to that identity. Without it, the order gets credited to the last device rather than the first real source.
Deterministic matching only. The same email, phone or customer ID means the same person. Two devices on the same network with similar browsing behaviour don't get linked. Guessed links produce a wrong journey and wrong attribution, and you won't know which journeys are real and which ones were assembled.
A store doing 4,832 orders a month:
| Customer profiles | Orders per customer | |
|---|---|---|
| Before resolution | 4,100 | 4,832 ÷ 4,100 = 1.18 |
| After resolution | 2,900 | 4,832 ÷ 2,900 = 1.67 |
Same orders, same revenue, and 1,200 duplicate profiles gone. Repeat rate moves from a number that says your customers don't come back to a number that makes you rework the acquisition budget. Those 1,200 profiles were people you were paying acquisition ads to reach, and they'd been your customers all along.
Once the identities collapse into one person, their touchpoints line up in a sequence you can read: a Snapchat ad, then a Google search, then a WhatsApp message, then a direct visit, then the purchase. Each point is stored with its time, source and campaign, inside a 90-day attribution window.
That helps in two arguments. The first is attribution itself. Instead of one side holding a number and the other holding a hunch, you open a single customer and read the sequence. The second is spotting assist campaigns.
For each campaign, compare two figures: how many converting journeys it appeared in, and how many of those it actually won on last click.
When the first is large and the second is small, that campaign opens awareness while another one closes the order and takes the whole credit. Cut it on ROAS and two months later you'll see flat orders, fewer new customers, and retargeting reselling to a list that keeps shrinking. The channel that was filling the list got switched off, and the effect didn't show up until weeks after the decision.
Before you pause a campaign, ask how many converting paths run through it, not what its ROAS is.
And if your customer numbers are built on cookies alone, fix the unit of measurement before you try a different attribution model. Every model reads the same fragmented journey, so switching between them doesn't fix anything.

The distribution check tells you there's an opportunity. Moving it all at once eats most of it. Here are three execution rules, and what to watch afterwards.

Two products with the same revenue can need opposite budgets. One buys you new customers, the other is why they come back. Revenue alone doesn't tell them apart.

Tracking is fine and the money is going to the wrong place. That's the more common case, and it doesn't surface as an error anywhere. Here's the check, with the arithmetic.