Why Meta says 40 sales and Stripe says 25
Put in what each platform claims for the same period and what you actually banked. The difference has a name, a cause, and a cost — and it is currently setting your budget.
Ghost conversions = Σ(what each platform claims) − what your bank recorded
Every platform attributes independently and none of them can see the others, so the same sale is claimed several times. Summed channel reports always exceed real revenue.
Reported CPA uses the inflated denominator, which makes your worst-measured campaigns look like your best ones.
—
—
Spend ÷ claimed conversions
—
Spend ÷ banked orders
—
Per acquired customer
| Source | Conversions | Share of claims | Why it inflates |
|---|
The three sources of the gap
View-through credit
Someone scrolled past your ad and bought three days later from an email. The platform counts it as a conversion it caused. Your P&L has no idea that impression existed.
Cross-platform double claiming
Meta claims the sale. Google claims the same sale. Neither can see the other, and no shared ledger arbitrates. Both reports are internally consistent and jointly impossible.
Conversion modelling
Where the pixel could not observe the user — ATT, ad blockers, declined consent — the platform estimates. The estimate is reported in the same column as the observed conversions, undifferentiated.
Platform-specific breakdowns: Meta Ads attribution · Google Ads attribution · TikTok Ads attribution · Klaviyo attribution
Frequently asked questions
What is a ghost conversion?
A conversion an ad platform claims that your payment processor never banked. It is not fraud — it is the sum of view-through credit, cross-platform double claiming and statistical modelling, all reported in the same column as real sales.
Why do platform totals exceed my actual orders?
Because each platform attributes independently and none of them can see the others. Meta claims the sale, Google claims the same sale, your email tool claims it too. Add the reports together and you have more conversions than orders — always.
Is a 30% over-report normal?
Yes. Across DTC accounts running view-through attribution, 25–45% is the common range. Click-only windows bring it down to roughly 10–20%. If you are above 50%, check whether you are double-counting a client-side pixel and a server-side API event without a shared de-duplication key.
Does this mean the platforms are lying?
No. It means each one is answering 'did my ad influence this?' rather than 'did my ad cause this?', on data it partly estimates, with no visibility into the others. Every individual answer is defensible; the sum is not a number you can spend against.
What is the true CPA?
Ad spend divided by conversions your bank actually recorded. The reported CPA divides the same spend by an inflated conversion count, which makes every campaign look cheaper than it is — and makes you scale the ones with the most generous attribution rather than the best performance.
How do I stop this?
Keep one first-party ledger that sees every touch on one identity, and use it to arbitrate. Keep the platform numbers for in-platform optimisation, where they are genuinely good.
One ledger that can arbitrate.
Flowsk sees every touch on one identity, so it can tell you which channel actually created the customer — and count each sale exactly once, confirmed by your own server.
More free tools
Same deal — instant, no signup.