Reporting correct revenue when the store sells in several currencies
A store selling in multiple currencies reports meaningless revenue if the currency parameter is missing or wrong, because platforms assume a default and add 100 EUR to 100 USD as if they were the same number. The failure is almost invisible: totals look plausible, ROAS looks fine, and only a reconciliation against the store's own settled amounts reveals it. The fix is sending currency with every value and reconciling on the presentment currency the order was actually placed in.
Free30 minutesNo obligation
Multi-currency · what breaks
The situation, as it usually presents — Multi-currency
- 01
Reported revenue that never matches the books
By a percentage that shifts with the currency mix.
- 02
Currency parameter missing or hard-coded
A single value for a multi-currency store.
- 03
ROAS distorted by geography
Markets that look good because their currency inflates.
Multi-currency · the fix
What changes — Multi-currency
Currency sent with every value
Per order, from the order record.
Reconciliation on presentment currency
Then normalized once, deliberately.
Comparable performance across markets
Because the numbers mean the same thing.
Multi-currency · architecture
Why this pattern keeps recurring — Multi-currency
Multi-currency errors survive for years because every individual number looks reasonable.
- 1
Platforms assume a default when currency is absent
So 100 EUR silently becomes 100 of your account currency.
- 2
Formatted prices are not numbers
Scraping a displayed price picks up symbols, separators and thousands marks that parse unpredictably.
- 3
Rounding compounds at volume
A per-order rounding difference is invisible until it's a month of orders.
- 4
Market comparisons become nonsense
A market looks efficient because its currency has a bigger number, not because it performs better.
Multi-currency · diagnose
How the root cause gets found — Multi-currency
In this order. Each step rules out a class of cause, so the last one usually has a single explanation standing.
- 01
Split store revenue by currency
For a closed month.
- 02
Check whether currency is sent per order
Or hard-coded.
- 03
Inspect where the value comes from
Order record or rendered string.
- 04
Compare the mismatch against the currency mix
If they move together, that's the cause.
- 05
Confirm the platform's account currency
And how it converts.
Multi-currency · prove
How the work is proven — Multi-currency
Against the client's own records, not a dashboard turning green.
Source of truth
Store order records, in presentment currency
- Currency confirmed present and correct on a real order in each currency.
- Values sourced from the order record, not a rendered price.
- Reconciliation run per currency and reported per currency.
- Conversion rules documented so the client's team can re-run it.
- Reconciled over a fully closed window, matched on ID rather than on totals.
- Payload evidence captured from real transactions and handed over.
- The same reconciliation repeated 30 days later.
Multi-currency · free audit
What we check in the free audit
- Split store revenue by currency
- Check whether currency is sent per order
- Inspect where the value comes from
- Compare the mismatch against the currency mix
- Confirm the platform's account currency
Checked against
Store order records, in presentment currency
Free30 minutesNo obligation
Multi-currency · when not to buy
Why there are no client numbers on this page — Multi-currency
Most agency case studies lead with a percentage. This one doesn't, and the reason is worth stating.
- We don't publish client results we can't substantiate. An audit of this site in August 2026 found named testimonials and before-and-after figures that had never been measured — all of it was removed, and nothing has replaced it that isn't checkable.
- The results that do exist belong to clients under agreement. Publishing anonymised numbers without their sign-off would be the same problem in a thinner disguise.
- What we will commit to in writing is 95%+ conversion accuracy and 8+ Meta Event Match Quality, reconciled against your own order records. That is checkable by you, which a case study percentage never is.
- For proof from actual clients, the video testimonials on the site are real people describing their own rebuild. That is the strongest evidence we have, and it isn't a number we wrote.
Multi-currency · what we deliver
What the work involves — Multi-currency
Currency sourced per order
Not from a site-wide default.
Values taken from the order record
Rather than from a rendered price string.
Rounding and conversion rules agreed
Which rate, applied when.
Reconciliation run per currency
Then combined.
Written guarantee
95%+ tracking accuracy
Measured against Store order records, in presentment currency. Miss it and we keep working at no cost.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Repairs the fault in your existing browser-side setup and verifies it on a live transaction. Honest about its ceiling: it fixes this instance, not the class.
- Root cause fixed, not worked around
- Verified on a live transaction
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Removes the class of failure rather than this instance. Money events sent from your order records through a first-party container on your own subdomain, so the browser can no longer lose them.
- First-party server container on your own subdomain
- Money events from your order records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, for advertisers whose spend makes an attribution leak more expensive than the build.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop
- Refunds reversed at every destination
- Monitoring so the next break surfaces in days
FAQ
Multi-currency questions, answered
Reconcile in presentment currency, then normalize once for the combined view. Normalizing before reconciling hides the error you're looking for.
The one your payment processor settled at, if you can get it. A daily reference rate is acceptable if the method is documented and consistent.
Often because the currency isn't being sent, so a larger nominal number is being read as your account currency. Check that before congratulating the market.
Shopify records presentment and shop currency correctly. Whether your tags pass them on is a separate question, and usually the failing one.
Free · 30 min
Get multi-currency revenue reported correctly
Free30 minutesNo obligation
