To compare prices in multiple currencies, always keep the original amount and currency, then add a dated conversion into an analysis currency. Store separately the rate source, its quotation direction, the rate actually applied by the payment provider, and the fees. The European Central Bank's reference rates serve as an informative benchmark; the ECB advises against using them for transactions. An estimate must therefore stay marked as such, while the final landed cost must use the debit actually observed and the justified fees. This separation prevents an apparent margin from hiding the cost of exchange.
The six values you must never overwrite
Useful normalization does not replace the supplier price with a euro figure. It keeps a calculation chain. For each price, record:
- the source amount;
- the source currency code;
- the business date of the price;
- the conversion rate and its direction;
- the date and source of the rate;
- the converted amount, then the transaction costs, kept separate.
This structure allows an analysis to be recalculated without altering the original evidence. It also avoids comparing two converted offers from different dates without noticing it. For the same EAN offered by several catalogs, the method for comparing two suppliers must show the currency and timestamp of each offer before concluding there is a price gap.
The currency code must not be inferred from the symbol alone. The $ sign, for example, is not enough to identify a specific currency. If the feed provides neither an explicit code nor a documented contractual rule, classify the currency as unknown and block the calculation. An unknown value is not equivalent to the account's default currency.
Understanding the rate direction before calculating
The ECB's reference rates page states that currencies are quoted against the euro, which is the base currency. In other words, the published number represents an amount of foreign currency per one euro. If R denotes this amount and M an amount in the foreign currency, the reference conversion to euros is:
eur_reference_amount = M / R.
To convert an amount from currency A to currency B, with both rates quoted against the euro:
B_reference_amount = A_amount / R_A × R_B.
These formulas say nothing about the price actually offered by a bank, a card, or a payment provider. They serve to check the quotation direction and produce a dated benchmark. An inverted rate can produce a plausible-looking but wrong result; that is why the system must keep base_currency, quoted_currency, and the formula, rather than a single number simply called rate.
Reference, estimate, and transaction: three distinct states
| State | Data used | Prudent use | What must not be claimed |
|---|---|---|---|
| Reference | dated ECB rate | control, comparison, and informative benchmark | guaranteed cost of the conversion |
| Estimate | chosen rate plus explicit fee or prudence assumptions | pre-purchase simulation | final debit or realized margin |
| Transaction | provider's statement or invoice, fees shown separately | observed landed cost | rate reusable for a future transaction |
The ECB states that its reference rates are normally updated on business days around 16:00 CET, except on TARGET closing days, and are published for informational purposes. This requires recording the publication date actually used. A supplier price received over the weekend must not be silently associated with a rate that does not exist for that day: internal policy must specify which available date is used and mark the result as an estimate.
A hypothetical, reproducible example
Take a fictitious currency X. Assumptions are purely educational, with no connection to any real rate or price: an invoice is worth 200 X; the benchmark used is 2 X per 1 EUR; the provider ultimately debits 104 EUR, including all exchange-related costs tied to this transaction.
The reference amount is:
200 X / 2 X per EUR = 100 EUR.
The observed transaction gap is:
104 EUR - 100 EUR = 4 EUR.
For this invoice, the observed landed cost tied to the currency purchase is 104 EUR, not 100 EUR. The 4 EUR gap must stay visible as the difference between the benchmark and the debit, based on the detail available from the provider. This example does not propose a universal cushion or safety percentage: a future simulation must use an assumption that is chosen, named, and adjustable by the seller.
If the invoice has several lines, the allocation of the gap and the fees follows a documented internal rule — by source value, converted value, or another justified key. As with allocating shipping costs per product, no key should be presented as a universal truth. The allocated total must reconcile with the cost actually observed.
Controllable normalization procedure
1. Read the source currency. Use the code provided by the catalog or the contractual documentation. In case of ambiguity, stop the conversion. 2. Keep the raw price. Do not round or replace the original amount. Also keep quantity, unit, and any applicable tier. 3. Choose the analysis currency. Document it at the scenario level so that all compared offers use the same reference. 4. Select the dated rate. Record the official source, the date, the base, the quoted currency, and the direction of the formula. 5. Calculate with sufficient internal precision. Defer rounding to the display or the appropriate accounting step; keep the pre-rounding value for audit purposes. 6. Add the estimation assumptions. Flat fees, rate spread, or a prudence margin must each be a visible line item, with its author and date. 7. Reconcile after the transaction. Replace the estimate in the final calculation with the observed debit and fees, without erasing the previous scenario. 8. Recalculate the indicators. Margin or ROI is recalculated after exchange, discount, shipping, and other relevant costs; they are not guaranteed by the converted price alone.
Handling dates, rounding, and tiers without bias
The date must match the objective. To compare offers today, use a common, clearly dated benchmark. To calculate a historical cost, start from the amount actually debited. To make a tax or accounting entry, apply the rules confirmed with the relevant professional and jurisdiction; a commercial analysis rate must not be presented as an official tax rate.
Cumulative rounding can also distort a volume comparison. Do not convert each unit to two decimal places before multiplying if the contract bills a single line with more precision. Calculate first according to the billing method, then reconcile the total. Then display the monetary amounts at the expected precision, while keeping the technical detail.
Finally, convert the right price. A tier discount may depend on the quantity ordered. The guide on tiered discounts and unit price shows why quantity, unit, and conditions must be resolved before currency. Converting a tier price that does not apply gives a mathematically exact but commercially useless result.
What ArbitragePro+ can automate / what the seller must verify
The currency-converter function is a proposed specification, not a function stated as available. It could keep the source price, import a dated reference rate, apply a formula with an explicit direction, display the fee assumptions, and compare the estimate to the observed transaction. It should prohibit the automatic conversion of an unknown currency and keep every version of the scenario.
The seller must verify the currency, the relevant date, the rate, and the fees actually applied by their provider, as well as the accounting and tax rules of their situation. They choose the prudence assumptions and confirm that no profitability indicator is shown as certain before the transaction.
Checklist before comparing margins
- The original amount and currency stay unchanged and reviewable.
- The currency code is explicit; no ambiguous symbol is interpreted alone.
- The base, the quoted currency, and the direction of the formula are recorded.
- The rate date follows a documented policy.
- The ECB rate is presented as an informative reference, not a transaction rate.
- Fees and rate spreads are separate line items.
- Assumptions are named and do not replace observed costs.
- Rounding is deferred and the total reconciles with the invoice.
- The tier price that actually applies is determined before conversion.
- The final calculation uses the observed debit as soon as it is available.
Test a transparent conversion
Open cost analysis in ArbitragePro+
Official sources
- European Central Bank, euro reference exchange rates: https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html (accessed 2026-08-17).
- European Central Bank, framework for the euro foreign exchange reference rates: https://www.ecb.europa.eu/stats/pdf/exchange/Frameworkfortheeuroforeignexchangereferencerates.en.pdf (accessed 2026-08-17).
