Currency

Currency Conversion: Rates, Spreads and Accuracy

Where live exchange rates come from and how to interpret them for real transactions.

OneCalc Team 18 November 2025 6 min read

The mid-market rate is a midpoint, not a price

The rate you see quoted in the news and in converters is the mid-market rate: the midpoint between the interbank bid and ask. Nobody actually transacts at it. It is a reference, and it is the right reference precisely because it is unbiased.

Your real price is mid-market plus a spread plus, often, a fixed fee. A 'zero-commission' bureau simply moves the entire margin into the spread.

Where the numbers come from

Rates aggregate from interbank feeds, central bank reference publications (the ECB posts daily around 16:00 CET) and market data vendors. Free public APIs typically refresh hourly to daily; trading feeds refresh in milliseconds.

Because sources differ, two converters can legitimately disagree in the fourth decimal place. Always display the timestamp of the rate you used.

Understanding the spread you pay

Major pairs such as EUR/USD carry retail spreads of 0.3–1%. Exotic pairs and airport bureaux can exceed 8%. Card networks add 1–3% on top of their own wholesale rate, and dynamic currency conversion at the terminal is almost always the worst option offered.

Effective rate = amount received ÷ amount sent. Compute it after every transfer and compare with the mid-market rate at the time to see what you really paid.

Rounding and accuracy in code

Never hold money in floating-point. Use integer minor units (cents, paise) or a decimal library, and round only at the final presentation step using the currency's own exponent — 2 for USD and EUR, 0 for JPY and KRW, 3 for BHD and KWD.

For cross rates, pivot through the base currency of your feed: GBP→JPY = (GBP→USD) × (USD→JPY). Rounding at the intermediate step introduces error that compounds across large amounts.

Frequently asked questions

How often should rates refresh?

Hourly is sufficient for informational conversion. Anything used to price a transaction should be quoted with an explicit validity window.

Why does my bank's rate differ from the converter?

Converters show mid-market; your bank adds its spread and may use a fixing taken at a different time of day.

Are crypto rates handled the same way?

Conceptually yes, but crypto trades on many venues with no single mid-market, so quoted prices are volume-weighted averages that diverge more between sources.

Share this article

Related articles