Currency and price fields — frequently asked questionsIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Find answers to frequently asked questions about currency and price fields in ServiceNow, including how financial data is stored, reference currency, exchange rates, single-currency mode, and session currency calculations. Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } All supported releases Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Where is financial data stored with the system Financial data is stored in three tables depending on the field type: Currency type fields store data in the [fx_currency_instance] table.Price type fields store data in the [fx_price] table.Exchange rate information is stored in the [fx_rate] table. Important: Do not manually adjust data in these tables. They are maintained by the system. [fx_currency_instance] table ColumnDefinitiontableThe table where the record existsfieldThe field where the financial data is enteredidThe sys_id of the associated record in the table where data is storedcurrencyThe currency the user used to enter the dataamountThe amount the user used to enter the datareference_currencyThe currency based on the system localereference_amountThe currency amount based on the system locale [fx_price] table ColumnDefinitiontableThe table where the record existsfieldThe field where the financial data is enteredidThe sys_id of the associated record in the table where data is storedcurrencyThe currency the user used to enter the dataamountThe amount the user used to enter the datareference_currencyThe currency based on the system localereference_amountThe currency amount based on the system localetypeThe type of currency used — for example, calculated, fixed, or multiple For more information about price fields and currency types, see the price fields documentation. What is reference currency and why is it used? The system accepts financial data in multiple currencies but stores all financial data in a single currency — the reference currency. The reference currency is determined by the system locale and is used for all calculations and aggregations. The system locale is controlled by the system property glide.system.locale. If this property is blank, the reference currency defaults to US dollars. For more information, see the system localization documentation. Can the system locale be changed? Do not change the system locale after go-live. Changing this property does not update existing financial data. Any financial data added or updated after the change uses the new locale for the reference currency. Because all calculations and aggregations use the reference currency, mismatched values produce inaccurate results. Why is the SUM different from the value in the list view? When a SUM is performed, the system uses the reference currency values and then converts the total to the user's session currency for display. Session currency conversions always use the latest exchange rate in the system. Example In the following example, the user's language is set to English and their country code is set to Australia, so their session locale is en.au and currency is displayed in Australian dollars. The list view shows two currency values entered in Australian dollars: $100 and $50. The SUM displays $159.1896, not the anticipated $150. This difference occurs because the SUM uses reference currency values (stored in USD), totals them, and then converts the total to the session currency using the latest exchange rate. How the calculation works Step 1 — Add the reference currency values: 34.6352 + 69.2704 = 103.9056 USD Step 2 — Convert the total to the user's session currency: (103.9056 ÷ 1.1307) = 159.1896 (rounded to 4 decimal places) Because SUM calculations always use the latest exchange rate, a significant change in the exchange rate since the record was saved can produce a noticeable difference in the displayed total. In most cases the difference is small. What is single-currency mode? Single-currency mode lets all users see currency values in the same currency. Because the reference currency matches the single currency in use, rate conversions are not required. For more information, see the single-currency mode documentation. How can I switch to single-currency mode? If you have not yet gone live Set the following system properties to configure single-currency mode: glide.i18n.single_currency: trueglide.i18n.single_currency.code: the three-letter ISO currency codeglide.system.locale: the system locale For more information, see the single-currency mode documentation. If you have already gone live All currency and price data must be in a single currency before switching. Review all [fx_currency_instance] and [fx_price] records that are not in your desired currency and have an amount greater than zero. Note: It is not always possible to convert to single-currency mode. Factors such as the number of currency records and instance usage are considered. If you have concerns, contact ServiceNow support before beginning this procedure. Important: Test this procedure on a non-production instance before applying it to production. Performing a clone of production to a non-production instance before testing is strongly advised. Go to fx_currency_instance.list to open the [fx_currency_instance] table.Filter for records where the amount is not zero and the currency is not your desired single currency. For example: https://<instance>/fx_currency_instance_list.do?sysparm_query=amount!%3D0 Note the id, table, and field column values. See the financial data storage section of this article for details on these fields.Go to each record identified in step 2 and update the associated fields to reflect the correct value in your desired currency.Go to fx_price.list to open the [fx_price] table.Filter for records where the amount is not zero and the currency is not your desired single currency. For example: https://<instance>/fx_price_list.do?sysparm_query=amount!%3D0 Note the id, table, and field column values.Go to each record identified in step 5 and update the associated fields to reflect the correct value in your desired currency.Go to [fx_currency_instance.list] and [fx_price.list] and verify that all records with an amount greater than zero are in your desired currency: https://<instance>/fx_price_list.do?sysparm_query=amount!%3D0 https://<instance>/fx_currency_instance_list.do?sysparm_query=amount!%3D0 If any records are not in your desired currency, repeat steps 3 and 6 as needed.Submit a case to ServiceNow support. They will assess your instance and provide next steps. How is my session currency determined? The user locale is determined in the following order: User record — when both country and language are specified.System locale — set using the glide.system.locale property.Browser locale — determined by the language setting in the browser. How do currency conversions work? The [fx_rate] table stores all exchange rates. Each exchange rate value represents the rate used to convert that currency to euros. Exchange rates are gathered daily from the European Central Bank (ECB) website by a scheduled job called ECB Exchange Rate Load. How the reference currency is calculated When a financial record is updated, the system converts the entered currency value to euros, then converts from euros to the reference currency (system locale currency) using the exchange rates in effect at the time of the update. The formula is: (Entered amount ÷ Exchange rate for entered currency) × Exchange rate for system locale currency Example A user enters 100 AUD. The system converts this to USD for the reference currency as follows: (100 ÷ 1.6168) × 1.1198 = 69.26026 (69.2603 rounded to 4 decimal places) Note: Currency conversions always use the latest exchange rate in the system at the time the financial record is updated. This record was updated on 27/05/2019 17:12. To find the exchange rates used, check the earliest fx_rate records for USD/AUD created before this time. *Note: Currency conversions always use the latest exchange rate at the time of the record update. Why don't I see the globe icon for my currency fields in list view? The globe icon appears next to a currency value when the user's session currency is different from the currency entered. Selecting the icon cycles through the following display options: Value as entered by the userValue in session currencyValue as entered, with the reference currency value in brackets If the session currency matches the entered currency, the globe icon does not appear. What is the difference between Calculated, Fixed Single, and Multi-currency price types in Service Catalog? When you access a Service Catalog item, the Price field displays in the user's session currency by default. The behavior varies by price type: Calculated The value entered is converted to the user's session currency using the latest exchange rate. Fixed Single The currency is not converted to the session currency. The value displays in the currency specified on the catalog item. Multi Multiple [fx_price] records are generated — one for each active currency in the system. When a user visits the catalog item, the record matching their session currency is used. No conversion occurs. For more information, see the price fields documentation. The example below orders the default catalog item "Apple iPad 3" with a user locale set to en.GB, showing how each price type displays the record. Calculated catalog item fx_price record: Ordering the Apple iPad 3 (displayed in GBP): Fixed Single catalog item fx_price record: Ordering the Apple iPad 3 (displayed in USD): Multi catalog item fx_price records: There are now multiple fx_price records for this item linked by the parent record. Ordering the Apple iPad 3: In this example, the GBP record was updated to GBP100 and will be used when ordering the item. Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Currency conversions