Back to blog
Analytics3 min read

Why your store counts one buyer as four customers

A cookie identifies a browser, not a person. Once identity is resolved across devices, your customer count drops while your order count doesn't, and repeat rate and acquisition cost correct themselves.
A cookie identifies a browser, not a person. Once identity is resolved across devices, your customer count drops while your order count doesn't, and repeat rate and acquisition cost correct themselves.

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.

Why identity breaks

A cookie identifies a browser, not a person. Which means:

  • Phone, home computer and work laptop become three identities
  • Safari's ITP expires the cookie, so a visitor returning later starts from zero
  • A guest checkout doesn't attach to the account opened afterwards
  • Alternate email addresses split one person across two records

And anything relying on email alone breaks the moment someone uses Sign in with Apple.

What identity resolution actually does

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.

What changes in your numbers

A store doing 4,832 orders a month:

Customer profilesOrders per customer
Before resolution4,1004,832 ÷ 4,100 = 1.18
After resolution2,9004,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.

The journey you get afterwards

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.

How to spot an assist campaign

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.

What to do next

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.