Mid-Market Rate vs Your Bank's Rate: How to Spot the Hidden Currency Markup

By Ferdie Correa - Published: October 5, 2026 - Last updated: October 5, 2026

What the Mid-Market Rate Is

At any moment, currency markets have a price at which dealers will buy a currency and a slightly higher price at which they will sell it. The mid-market rate is the midpoint between the two. It is the fairest single reference for what one currency is worth in another, and it is the rate most converters, news sites and QuickToolApp show.

Consumers almost never get it. Banks, card networks, exchange kiosks and money-transfer services quote their own rate, and the gap between that rate and mid-market is a fee, even when the receipt says "0% commission."

Where QuickToolApp's Rates Come From

QuickToolApp requests rates from the free Frankfurter API (v1), which serves the euro foreign exchange reference rates published by the European Central Bank. The ECB publishes one set of rates per working day, around 16:00 Central European Time. There are no new rates on weekends or ECB holidays; the last working day's rates stay current.

Three things to know when you read a QuickToolApp currency result:

How to Calculate the Markup From a Receipt

You need three things: the amount in the foreign currency, what you paid in your own currency, and the mid-market rate for that date.

Markup % = (amount you paid ÷ mid-market cost − 1) × 100

The examples below use ECB-based rates for October 5, 2026: 1 USD = 0.89254 EUR and 1 USD = 18.1498 MXN.

Example 1: buying euros at an airport kiosk

You hand over $500 and receive €420. At mid-market, $500 is 500 × 0.89254 = €446.27. You received €26.27 less. Measured in dollars, €420 should have cost 420 ÷ 0.89254 = $470.57, so the markup is (500 ÷ 470.57 − 1) × 100 = 6.3%. Put the other way, you received 5.9% fewer euros than mid-market. Either figure is fine as long as you use the same one when comparing providers.

Example 2: a card payment in Spain

A €85.00 dinner appears on your US card statement as $97.40. The mid-market USD cost is 85 ÷ 0.89254 = $95.23. Markup: (97.40 ÷ 95.23 − 1) × 100 = 2.3%. If your card agreement lists a foreign transaction fee, that likely accounts for most of it.

Example 3: a card payment in Mexico

A 2,000 MXN hotel deposit posts as $112.95. Mid-market: 2,000 ÷ 18.1498 = $110.19. Markup: (112.95 ÷ 110.19 − 1) × 100 = 2.5%.

Card transactions often post a day or two after the purchase, so compare against the rate for the posting date shown on your statement, not the day you paid.

Card Fees vs Dynamic Currency Conversion

When you pay by card abroad, two separate costs can apply:

The rule of thumb: always choose to pay in the local currency. In the European Union, the cross-border payments regulation, Regulation (EU) 2021/1230 (which carried over the 2019 rules on conversion charges), requires DCC offers to show the markup as a percentage over the latest ECB euro reference rate before you accept. You can check that percentage against the method above.

Comparing Providers Before You Exchange

Markups vary by provider, amount, currency pair and day, so published averages go out of date quickly. A more reliable approach is to measure your own options with one test amount:

OptionYou payYou receiveMid-market value of what you receiveMarkup
Bank branch$500€_____$_________%
Card at merchant (local currency)$_____€100$_________%
Money-transfer app$500€_____$_________%
Airport kiosk$500€_____$_________%

Include any flat fees in "You pay." A low percentage with a $10 fixed fee can be worse on small amounts.

Invoicing Across Currencies

Exchange rates on invoices cause disputes when nobody agreed which rate to use. Good practice:

  1. Agree the rule in the contract: the source (for example ECB reference rates) and the date (invoice date, delivery date, or payment date).
  2. Use the last published rate on or before that date. For a Sunday invoice using ECB rates, that is Friday's rate.
  3. Show the working on the invoice: "EUR 4,250.00 converted at ECB reference rate of 2026-10-05, 1 USD = 0.89254 EUR, = USD 4,761.69."
  4. Keep the rate to at least five significant digits and round only the final amount, as described in the currency guide.
  5. Check your tax authority's rules. Some countries require a specific official rate for tax reporting.

Using QuickToolApp's Live and Fallback Modes Correctly

FAQ

Why does Google show a slightly different rate?

Different sources sample the market at different times. The ECB rate is a once-a-day snapshot; other sites update continuously. Differences in the third or fourth decimal place are normal.

Is "no commission" exchange really free?

Rarely. The cost is usually built into the rate. Calculate the markup to see it.

Is it cheaper to withdraw cash from an ATM abroad?

It depends on your bank's fees and the ATM operator's fees. Decline the ATM's conversion offer and let your bank convert, then check the statement using the markup formula.