Convert world currencies at mid-market rates with a bank-fee breakdown. Swap pairs, override the rate manually, and export the result.
This tool runs entirely in your browser. No amount or rate data is sent to any server.
Mid-market rates vs USD · live ECB reference data, with a bundled offline snapshot as fallback
All cross-currency rates are derived from USD-based snapshots using triangular arbitrage to ensure consistency:
rate(X → Y) = USD→Y ÷ USD→Xconverted = amount × customRatebankRate = midMarketRate × (1 + markup/100)fee = amount × (bankRate − midMarketRate)| Currency | Code | Rate vs USD |
|---|
Three everyday situations where knowing the difference between mid-market, bank, and card rates saves money.
You're based in Jakarta and invoice a US client $3,000/month. How much you actually receive in IDR depends on three choices:
This tool's "Bank vs Mid-Market" comparison is built exactly for this scenario — plug $3,000 in, select USD→IDR, set bank markup to 2.5%, and see your hidden fee instantly.
You're a EU expat with a Portuguese bank account (EUR) and a US credit card. Prices in Brazil are in BRL (Reais). Here's what actually happens when you pay:
That's the thing about cross-currency spending: it's not just about fees, it's about cross-rate arbitrage. This calculator shows both — so you can compare EUR→BRL vs USD→BRL rates before every trip.
You source industrial supplies from Guangzhou, paying in USD. Your customers in Brazil pay in BRL. Every fluctuation in USD/BRL hits your margins. An example:
For importers, this isn't just a calculator — it's a risk-management tool. You can run break-even analysis: "If USD/BRL goes above X, I need to raise prices by Y% to maintain 30% margin."
You'll see three numbers here. They're all "correct" — but they answer different questions.
The mid-market rate is the midpoint between what banks pay to buy a currency and what they charge to sell it. It's the rate you see on Google Finance, XE.com, or your trading app. It's also the rate that Wise, Revolut, and TransferWise base their pricing on (they just add a small transparent fee on top).
Who actually gets this rate? Banks trading with each other (interbank market), currency exchanges at airports with "0% commission" (they build markup elsewhere), and fintech apps that hedge on your behalf. Individuals almost never get the pure mid-market rate.
Banks make currency exchange profitable by adding a spread to the mid-market rate. Typical markups:
| Channel | Typical markup | Notes |
|---|---|---|
| Traditional bank wire | 2.0 – 4.0% | + fixed incoming/outgoing fees ($15-$50) |
| PayPal / Stripe international | 2.5 – 3.5% | + processing fees (3.4% + fixed) |
| Airport currency exchange | 3.0 – 8.0% | Worst rates in town by far |
| Wise / Revolut | 0.4 – 1.2% | Uses mid-market + transparent flat fee |
| Credit card foreign transaction | 1.0 – 3.0% | Visa/Mastercard FX markup + issuer fee |
Here's a secret most banks won't tell you: when you "convert $3,000 to EUR", your money doesn't physically get sent to Europe. Your bank simply:
The markup they charged you (2-4%) is pure profit — because they're hedging at almost zero cost by matching their global books. This is why bank currency conversion is one of the most profitable revenue lines for retail banks.
Every row below is computed live in your browser from the current rate data:
| Test Case | Expected | Our Result | Match |
|---|
All cross rates satisfy the documented formula exactly, computed live in your browser on every page load. Bundled fallback snapshot dated 2026-10-15.
When you are online, the page loads the latest ECB reference rates from frankfurter.dev (a free, key-less API) and shows the publication date. No personal data is sent — only the rate request itself. If the network is unavailable, it falls back to the snapshot bundled with the page, and you can always override any rate manually to match your bank.
The mid-market rate is the interbank rate used when currencies are traded globally. Banks and currency services add a markup (typically 0.5%–3%) to this rate, which is the 'bank rate'. This converter shows both so you can compare the hidden fees you may be paying.
Yes. Each conversion has a manual rate override field. Enter your bank's quoted rate, a rate you found elsewhere, or a future projected rate to model different scenarios.
Only for live rates. The page first tries to fetch the latest ECB reference rates. If that fails — offline, or a blocked network — it uses the bundled snapshot, so every conversion still works with no connection at all.
Cross rates are derived from USD-based rates using the formula: X→Y rate = (USD→Y rate) ÷ (USD→X rate). This gives consistent triangular arbitrage-free rates. The accuracy depends on the freshness of the rate source: the live ECB date when online, or the bundled snapshot date when offline.
Converting for one specific purchase? Work the trip itself out in the Fuel Cost Calculator and compare shelf prices per gram or per pack with the Unit Price Calculator.
If you just finished with Multi-Currency Converter, the natural next steps are Unit Converter, Salary Converter, Cross-border Tax Estimator, or browse every tool in Cross-border Finance.