Ecommerce
Wrong prices in the wrong currency: how tax and currency conversion bugs quietly drain margin
Richard K. · September 16, 2026 · 8 min read

A customer in Toronto adds a $79 jacket to their cart. The listed price is CAD 79. But your exchange rate feed hasn't updated in eleven days, and the Canadian dollar has moved two cents since then. Multiply that gap across a few thousand international orders a month, and you have a margin leak that never shows up as an error, a chargeback, or a support ticket. It just shows up, eventually, as a smaller number at the bottom of your P&L, and nobody can say exactly when it started.
Why these bugs hide so well
Currency and tax errors are unusual among ecommerce failures because they don't break anything visible. The page loads. The checkout completes. The order confirmation email goes out. Every system in the chain reports success, because from a technical standpoint, nothing crashed. The price was simply wrong.
Compare that to a broken checkout button or a payment gateway outage, which announce themselves immediately through a drop in orders. A five percent currency conversion error, by contrast, produces a checkout that behaves normally for every customer, every time. Revenue still comes in. Orders still process. The only thing missing is the margin you expected to keep, and that's a much harder thing to notice in a daily sales report.
This is the same pattern behind other silent failures we've covered, like inventory counts that drift between sales channels or discount codes that stack past their intended limit. The store keeps running. The math just quietly stops matching what you planned.
Three ways the math goes wrong
Currency conversion errors in ecommerce tend to come from one of three places, and they compound if more than one is present at once.
Stale exchange rate feeds are the most common. Shopify, WooCommerce, and BigCommerce all support multi-currency selling, usually through a built-in conversion service or a third-party app that pulls rates on a schedule. If that schedule is daily, or the app silently fails to refresh and falls back to a cached rate, your storefront can be selling at yesterday's or last week's exchange rate during a period when currencies moved meaningfully. During high-volatility weeks, a rate that's a few days stale can mean pricing several percentage points off market.
Rounding rules are the second source, and they're sneakier because they look like a UX decision rather than a bug. A store that rounds all converted prices to the nearest whole unit (so CAD 78.53 becomes CAD 79) is making a small, usually harmless adjustment. But if the rounding logic is applied inconsistently, for example rounding up on list prices but down on sale prices, or rounding differently across currencies because of decimal-place assumptions built for USD, the effect compounds across thousands of SKUs and orders into a real margin gap.
Tax misconfiguration is the third, and the one with the highest downside. Tax calculation mistakes on Shopify (and equivalent misconfigurations on WooCommerce and BigCommerce) usually stem from outdated nexus settings, VAT thresholds that weren't updated after a rule change, or a plugin that calculates tax on the pre-discount price instead of the post-discount price. These aren't just margin problems: undercharging VAT in the EU or GST in Australia and Canada can create compliance exposure that surfaces months later as a tax authority notice, not a customer complaint.
Where multi-currency checkout actually breaks
Multi-currency checkout errors tend to cluster around a handful of predictable points, which is good news because it means you can check them directly rather than guessing.
The first is the moment a customer's storefront currency is detected or selected. Geolocation-based currency switching can misfire when a customer uses a VPN, shops from a mobile carrier's IP range registered in a different country, or switches currency manually and the cart doesn't fully recalculate line items, shipping, and tax together. The result is a cart where the subtotal is in one currency's logic and the tax line is calculated as if it were another.
The second is the interaction between currency conversion and discount codes. A percentage-off discount applied before conversion behaves differently than one applied after, and if your platform or app handles this inconsistently across currencies, some customers get a better deal than intended and others get a worse one.
The third is subscription and recurring billing. A subscription priced in EUR at signup but billed through a payment processor that reconverts to USD at each renewal can drift from the original price over months, especially if the processor's rate and your storefront's rate come from different sources entirely.
A price that's wrong by two percent doesn't look wrong. It looks like a normal day.
What catching this actually looks like in practice
You don't need to audit every transaction to catch cross-border ecommerce pricing drift. You need a routine that checks the things most likely to have quietly changed.
Start with a scheduled spot-check: once a week, load your storefront as a customer would from two or three of your top international markets, add the same product to cart in each currency, and compare the converted total against a current market exchange rate. A gap of more than one or two percent, sustained across multiple products, points to a stale feed or rounding issue rather than normal rate fluctuation.
Next, review your tax settings whenever a jurisdiction changes its rules, not just on a fixed annual schedule. VAT and GST thresholds, exemption rules, and marketplace facilitator laws change periodically, and a setting that was correct last year can quietly become wrong without any change on your end.
Finally, treat pricing consistency as part of your regular operational check, alongside the kind of routine covered in the Monday-morning store check. Continuous monitoring services, including Cassian™'s Pricing Pulse, are built for exactly this: they check live prices across your catalog on a schedule and alert you when a price deviates from what it should be, so you're not relying on a customer complaint or a quarterly finance review to surface the problem. The Cassian Score™ folds pricing health into an overall view of store condition, alongside uptime, order flow, and stock levels, so a currency drift doesn't get lost among dozens of other signals.
Frequently asked questions
- How do I know if my store's currency conversion is out of date?
- You can tell your store's currency conversion is out of date by comparing a live checkout total in a foreign currency against a current market exchange rate for the same product's base price. If the gap exceeds one or two percent and persists across multiple products, your exchange rate feed is likely stale or your app has stopped refreshing on schedule. Checking this manually once a week, or using an automated pricing monitor, catches the drift before it compounds across weeks of orders.
- Can a tax calculation mistake on Shopify actually create legal risk, not just a margin loss?
- Yes, a tax calculation mistake on Shopify can create legal risk when it results in undercharging VAT, GST, or sales tax below what a jurisdiction requires, since the store owner typically remains liable for the correct amount regardless of what was charged at checkout. This is separate from the margin loss of overcharging, which mostly damages trust and conversion. Reviewing tax settings whenever a jurisdiction's rules change, rather than only when the store is first set up, is the main way to avoid both outcomes.
- Why do rounding rules cause pricing errors even when nothing seems broken?
- Rounding rules cause pricing errors because a rounding method that behaves reasonably in one currency can produce systematic over- or under-charging in another, especially when list prices, sale prices, and taxes each round differently. The effect on a single order is often just a few cents, which is why nothing looks broken, but multiplied across thousands of international orders it becomes a measurable margin gap. Auditing rounding logic separately for each supported currency, rather than assuming the default setting works everywhere, is the fix.
The bottom line
Currency and tax pricing bugs don't announce themselves, and that's precisely why they're worth checking for on a schedule rather than waiting to notice them in a financial report. A stale exchange rate, an inconsistent rounding rule, or an outdated VAT threshold can each shave a small percentage off international margin, quietly, for as long as nobody looks. The fix isn't complicated: check live prices across your key markets regularly, keep tax settings current with jurisdiction changes, and treat pricing health as a routine part of store monitoring rather than an annual audit item.