TideWall is pure parsing plus interbank-rate arithmetic. Scan the same page twice, get the same answer, and every number in a report links back to a disclosed assumption you can check yourself.
Rendered from the scanner's own registry, so this list can never drift from what the code actually detects.
A “pay in your own currency” / “guaranteed exchange rate” dynamic-currency-conversion offer, whose markup the merchant usually never sees. Only flagged in a real checkout context, with negation and fair-rate guards, and only ever as a candidate until verified.
A local price whose implied FX rate sits above the live mid-market rate by more than the reference feed's own noise floor (a pinned offline rate must clear a much wider band than a live one, because the pin itself drifts).
The checkout only ever shows a foreign currency to a market's shoppers, with no way to switch. Detected from structured price data (JSON-LD / OpenGraph / microdata) or the store's own declared currency, on a real cart or checkout page. Marketing pages never count.
The checkout explicitly tells cross-border shoppers that import duties and taxes are their problem at delivery, the top stated reason for cross-border abandonment. Detected only when a duties/customs phrase sits next to a liability phrase in the same visible sentence, never when the store covers them (DDP) or the shopper is domestic / in the same customs union. The store's own text is the evidence.
Prices are displayed tax-EXCLUSIVE (“ex VAT”, “VAT not included”) to shoppers inside the store's own VAT area whose consumer law makes displayed prices tax-inclusive: in practice an EU store showing ex-VAT prices to another EU market, where that VAT really is added at checkout. Detected only from the store's own visible wording in a real checkout context; never outside the store's VAT area (an export price is net, so any charge at the door is the duty finding's territory), never when the page shows an inclusive price or display toggle, and only ever as a candidate to verify.
The market's dominant local method (TWINT, Pix, iDEAL, UPI…) is absent from a page that really displays payment options. Always reported as a checklist to verify at the final payment step, never a headline claim.
Live ECB reference (Frankfurter feed): the default fair rate for ~30 major currencies.
Live open-market feed (exchangerate-api) for currencies the ECB doesn't publish (ARS, COP, SAR, AED, NGN…).
Pinned reference table (pinned 2026-07-01) only when both live feeds are unreachable. A stale-FX claim then needs 12% drift, vs 2% on a live rate, because the pin itself drifts. Any figure from it stays “candidate”, never “verified”.
Every finding discloses which source its fair rate came from.
A single server-side fetch cannot know what a shopper in Brazil actually sees: stores geo-redirect and localise by IP. So:
Found from a neutral fetch. A real signal worth checking, clearly labelled, counted only in the “potential opportunity” band. Never sold as a confirmed loss.
The page was fetched from inside the shopper's own market and the leak reproduced, with a screenshot of exactly what that market receives when capture is enabled (the in-market fetch, not the picture, is the verification). Only these findings enter the confirmed “at least $X” floor.
Conversion-uplift bands per leak type, grounded in published cross-border research: 33 to 49% of shoppers abandon without local currency (PYMNTS / Passport 2025/26); local payment methods materially lift conversion (PPRO); DCC markups typically run 3 to 7% (Mastercard / Visa). Bands are deliberately conservative: realised recovery, not stated-intent ceilings.
Applied to your international revenue share only (default 30%, replaced by your real figure, the estimate scales linearly).
Stacked leaks combine with diminishing returns, hard-capped at 25% total uplift. We never sum leaks naively.
The headline is a floor (“at least $X/year”), from the low end of the band, and only from verified findings.
No AI, no models, no scores from a black box.
No claim that a spot-check could debunk. One false positive costs more than a hundred true ones earn.
No fake precision: modeled figures are labelled modeled, with their assumptions next to them.
No stealth scraping: the bot identifies itself (TideWallBot), fetches public pages only, honours a per-host delay.