Can't enter desired FX rate on orders ("auto-exchange") because currency pair is incorrectly inverted

Revolut supports limit orders, which it calls “auto-exchange”. This allows users to enter the rate at which they would like to sell one currency and buy another currency, together with the amount expressed in either the sold currency or the bought currency. When the market rate reaches the order level, the order is filled.

Revolut fails to adhere to two FX market conventions:

  • Currency precedence: FX rates are expressed in CCY1/CCY2 format, whereby CCY1 amount x rate = CCY2 amount or CCY2 amount ÷ rate = CCY1 amount. Market convention is that the more valuable currency is CCY1 and the less valuable currency is CCY2, causing an FX rate higher than 1, except for EUR, GBP, AUD, NZD, FJD, TOP, WST, PGK, BWP, SBD and USD, all of which are always CCY1 (except against each other in which case whichever currency comes first in this list will be CCY1). Instead, Revolut always sets the sold currency as CCY1 and the bought currency as CCY2.
  • Decimal places: Market convention is that FX spot rates are quoted to between 4 and 6 significant figures with an even number of decimal places (plus a fractional pip digit in major currency pairs), with some exceptions such as many CZK pairs (often 3 decimals) and many Arab currency pairs (often 5 decimals). Instead, Revolut displays all currency pairs to 4 decimal places, which appears to be hard-coded. Examples of market convention in major currency pairs can be found at (these live rates from an FX liquidity aggregator also prove that Revolut’s rates are genuine interbank rates).

Revolut’s failure to follow global FX market convention causes a problem when entering orders (“auto-exchange”). For example, let’s say for example want to enter an order to buy GBP/HUF (sell HUF and buy GBP) at 350.00. According to Revolut, GBP/HUF has traded over the last year in a range of 354.15 to 379.58. But because I am selling HUF and buying GBP, Revolut requires me to enter the 350.00 rate as an inverted reciprocal HUF/GBP rate of 0.00285714. Then because Revolut supports only 4 decimal places on FX rates, even where rates need to be quoted to many extra decimal places because of incorrect inversion, I can enter a rate only of 0.0028 (357.14 in GBP/HUF terms) or 0.0029 (344.83 in GBP/HUF terms). This means that a GBP/HUF rate, when selling HUF, can be entered only as an inverted HUF/GBP rate in huge increments of 3.5%.

Therefore I recommend that Revolut should always display FX rates and accept entry of FX rates according to FX market convention with respect to both currency precedence and decimal places.


I’ve noticed another bug when entering an order (auto-exchange). If you enter the amount in the sold currency, then it remembers the correct amount. But if you enter the amount in the bought currency, it rounds it up to the next whole unit.

If you want to buy a very precise amount of a currency, then it’s for a reason, and you don’t want small residual amounts left over.

Revolut, please stop incorrectly rounding rates and amounts on orders (auto-exchange).

I have realized the same issue. I am Hungarian. Yes, it is impossible to set reasonable price rates for HUF/EUR auto exchange. R should respond! I have contacted them already but no relevant answer. However the solution is exists for Crypto. They do not reverse the rate only change the buy and sell rates the value only shows stronger to weaker regardless of the direction, so that works fine. They should implement this method not only for Crypto, but currencies pars like HUF/EUR, HUF/GBP, etc as well.


+1 in this. I fully support this. Please :r: use market conventions for FX rates! I‘m doing FX since a long time and I am not used to have reciprocal rates.

1 Like