A calculated price and an intentional price are not the same thing
There is a difference between a price that looks set and a price that looks calculated. €129 reads as a decision. €128.38 reads as a formula output. Customers pick up on the difference, especially in markets where they are evaluating an unfamiliar brand for the first time. The price is not just a number. It is a signal about whether this company knows how to operate in this market.
For classic B2C and D2C brands expanding internationally, an un-rounded price can undermine the local credibility being built through every other element of the experience (local domain, local language, local content) before the customer has read a word of product copy.
(Note: this does not apply everywhere. In B2B, unrounded prices signal net pricing and are expected. In price-comparison B2C, they can signal precision. The concern here is specifically for brands where trust and deliberate positioning are part of the conversion story.)
The fix is rounding. But the decision behind rounding is more specific than "apply a rule." The rounding convention carries its own signal: nearest whole number, nearest .99, nearest 5 each mean something different to the customer. .99 endings are associated with discount psychology and value positioning. Round numbers are associated with quality and deliberate pricing. A premium brand that rounds to .99 could be working against the positioning established everywhere else.
The convention should be decided as a brand choice, before any system is configured. Not discovered through a platform default. Decided, documented, and handed to whoever sets up the pricing.
The step that tends to get skipped
Currency conversion is the step operators plan for. Rounding is the step they often do not. Native rounding support is limited and varies significantly by platform. Shopify offers a rounding feature, but only for merchants using Shopify Payments, with restricted customisation: the rounding convention is set by the platform, not the brand. Magento and WooCommerce do not include it natively and require an extension. For most operators, this step will not happen by default. It needs to be deliberately set up, and the convention needs to be decided before setup begins.
The correct order is: base price, then any channel markup, then currency conversion, then rounding. Rounding fires last. If it fires before the markup step, the markup re-introduces un-rounded numbers. If it fires before conversion, the conversion produces a number that does not match the rounding rule.
This is a small sequencing detail that becomes visible only when something goes wrong. Getting it right the first time is a matter of knowing to check.
The promotional pricing trap
Percentage discounts create a specific version of this problem. Say you want to sell a product at €9.99 during a promotion. Apply 15% off €9.99 working forwards and you get €8.49. Not a price you would have set deliberately. Work backwards instead: decide the sale price is €9.99, divide by 0.85, and the base price needs to be €11.75. Now 15% off €11.75 lands exactly on €9.99. The direction of the calculation determines which end looks intentional.
The reverse technique in short: decide the sale price first, divide by (1 minus the discount rate) to find the required base price. The sale price becomes deliberate rather than a formula output.
A few important caveats. In the EU and several other markets, promotional pricing rules require that the displayed reference price must reflect the actual price charged in recent history: the EU Omnibus Directive sets this at the lowest price in the preceding 30 days. Engineering a base price specifically to produce a clean discounted price may constitute artificial reference price inflation in these markets. Check local regulations before applying this technique.
In multi-currency setups, the reverse technique still may need per-currency manual prices to land clean in each market, or you accept the rounding rule handles the sale price the same way it handles the base price.
The simpler alternative, which sidesteps both the maths problem and most regulatory risk: set deliberate outlet prices as absolute values rather than applying percentage discounts. The outlet price is intentional by definition.
What happens when you use manual overrides
Most multi-currency setups involve a mix: automated conversion and rounding for the majority of prices, manual overrides for specific markets or products where the formula produces something you would not have set intentionally. This hybrid approach works well. The maintenance risk is one worth knowing.
When a currency price is set manually and the base price later changes, the override stays in place. The automated prices update. The manual prices do not. Over time, the relationship between them drifts in ways that are invisible until someone specifically audits the currency prices. Deliberate overrides require deliberate maintenance.
The principle behind this is broader. Complexity in pricing rules creates ongoing maintenance debt. Every additional condition, every per-currency exception, every nested override adds a surface that can drift or break when something upstream changes. The simpler approach is more maintainable: a core set of conversion and rounding rules for the majority, with selective overrides for exceptions.
The one decision to make before you configure anything
Beyond the rounding convention, there is a broader pricing strategy question worth settling before launch: are market prices being set by formula or deliberately? Some operators embed all market-specific costs (marketing spend, fulfilment, platform fees) into the base price for each market and set deliberate per-market prices. Others apply dynamic markups on top of a single base price and let conversion handle the rest. Both approaches are valid. The hybrid works in practice.
The question to answer before configuring anything: what rounding convention fits this brand? Write it down. Give it to whoever sets up the system. Keep the configuration as simple as it can be and still produce prices that look like decisions.
The storefront showing €128.38 is not a technical failure. It is a decision that was never made.
Frequently Asked Questions
Why do prices look wrong after currency conversion?
Converting prices using live exchange rates produces decimal outputs that do not match normal retail price conventions. Without a rounding rule applied after conversion, a £29.99 product may display as €34.87 or $27.43. These prices look calculated rather than set. A rounding rule fixes the display; the convention you choose (nearest .99, nearest whole number) should match your brand positioning.
Should I use .99 pricing for international stores?
It depends on your brand positioning. .99 endings signal discount or value pricing: they are associated with promotional psychology. Round number pricing (€129 rather than €129.99) signals quality and deliberate pricing, and is often preferred by premium or luxury brands. The choice should be made explicitly as a brand decision before any pricing configuration, not left to a platform default.
What is commercial rounding in ecommerce pricing?
Commercial rounding is the step that converts a mathematically precise currency conversion output into a price that looks intentionally set. After converting a price from one currency to another, the rounding rule adjusts the result to the nearest acceptable price point for that brand. It fires after conversion and after any channel markups.
What is the correct order for currency conversion, channel markup, and rounding?
Base price, then channel markup (if applicable), then currency conversion, then rounding. Rounding always fires last. If rounding fires before the markup step, the markup will produce an un-rounded number. If it fires before conversion, the conversion will undo the rounding.
How do I produce a clean sale price across multiple currencies?
Percentage discounts always produce one clean price and one formula output. To make the sale price intentional, work backwards: decide the sale price you want (€9.99), divide by (1 minus the discount rate) to find the required base price. Note that some markets, including the EU, have legal rules about reference prices in promotional contexts. Check local regulations before applying this technique. A simpler alternative is to set absolute outlet prices rather than percentage discounts.
What goes wrong with manual price overrides in multi-currency systems?
Manual overrides stay in place until someone changes them manually, even when the base price changes. If you set a specific currency price by hand and then update the base price, the automated prices update but the override does not. This creates silent drift between the two. Manual overrides require periodic auditing to stay accurate.