Currency conversion does not match the expected amount


Description

As indicated in the documentation, currency conversion on the Servicenow platform is, almost always, a two-step process. If the original currency is stored in EUR then it is simply a one-step conversion.


When converting from one currency to another, the platform must first convert to EUR and, afterwards, to the desired currency. This is because our daily conversion rates are downloaded from the European Central Bank (ECB) and are always calculated against the value of 1 Euro.


For example, all of the below values are equal to 1 Euro:


https://<INSTANCENAME>.service-now.com/fx_rate_list.do


When carrying out a currency conversion, for example: SGD to GBP, the platform will perform the following operation:


Where:

1 EUR = 1.5979 SGD

1 EUR = 0.9104 GBP

We perform the following:

100 SGD / 1.5979 = 62.5821 EUR

62.5821 EUR * 0.9104 = 56.9747 GBP

Cause

https://docs.servicenow.com/csh?topicname=currency-conversions.html&version=latest

Conversion rates are stored in the fx_rate table. Each record contains the conversion rate from a given currency to the Euro.

Resolution

Expected and documented behaviour