Knowledge Center

Knowledge Center > Zuora RevPro > Multi-Currency

Multi-Currency

When there are more than one Transaction Currencies in a Revenue Contract, those contracts are termed as Multi-currency contracts. The Multi-currency contracts are shown with suffix (M) in revenue contract display. RevPro identifies the currency to be used for allocations when there is more than one transaction currency in the revenue contract. The possible options are follows:

  • Functional Currency
  • Reporting Currency

If there is a difference in Transaction Currency, RevPro uses the MULTI_CURR_FV_REPORT_LEVEL profile setup to determine the allocation currency. If the profile is set to Lowest Common Currency, and all the lines in the Revenue Contract have the same Functional Currency. RevPro will perform allocations in Functional Currency. In all other situations, RevPro uses Reporting Currency.

Determination of Allocation Currency

Scenario 1 - Allocation in Transaction Currency

Line No SO Book Name Company Code Amount T.Curr F.Ex.Rate F.Ex.Date F.Curr G.Ex.Rate G.Ex.Date G.Curr
1 01/01/2017 100 1000 GBP 1.1 01/01/2017 EUR .90 01/01/2017 USD
2 01/02/2017 100 2000 GBP 1.2 01/02/2017 EUR .88 01/02/2017 USD
3 01/03/2017 100 3000 GBP 1.3 01/03/2017 EUR .85 01/03/2017 USD
4 01/04/2017 100 4000 GBP 1.4 01/04/2017 EUR .82 01/04/2017 USD

In the above scenario, the allocation happens in GBP since the transaction currency of all the lines are same. The exchange rate and exchange rate date used to post the allocations from transaction currency to functional and reporting currency is determined based on the minimum SO Book date of 01/01/2017. The exchange rate from transaction to functional currency is 1.1 and from functional to reporting currency is .9.

Scenario 2 - Allocation in Functional Currency

Line No SO Book Name Company Code Amount T.Curr F.Ex.Rate F.Ex.Date F.Curr G.Ex.Rate G.Ex.Date G.Curr
1 01/01/2017 100 1000 EUR 1.0 01/01/2017 EUR .90 01/01/2017 USD
2 01/02/2017 100 2000 GBP 1.2 01/02/2017 EUR .88 01/02/2017 USD
3 01/03/2017 100 3000 USD 1.3 01/03/2017 EUR .85 01/03/2017 USD
4 01/04/2017 100 4000 GBP 1.4 01/04/2017 EUR .82 01/04/2017 USD

In the above scenario, RevPro uses the profile because the lines in the Revenue Contract have Transaction currencies. If the profile is set to Lowest Common Currency, the allocations happen in EUR because all lines have the same Functional Currency. The Functional exchange rate used to calculate the allocation amounts is based on the line level exchange rates. The Functional exchange rate used to post the allocations is 1 because there is no conversion. The Reporting exchange rate for posting is determined based on the minimum SO Book date rate of .9 on 01/01/2017. 

Scenario 3 - Allocation in Reporting Currency

Line No SO Book Name Company Code Amount T.Curr F.Ex.Rate F.Ex.Date F.Curr G.Ex.Rate G.Ex.Date G.Curr
1 01/01/2017 100 1000 EUR 1.0 01/01/2017 EUR .80 01/01/2017 USD
2 01/02/2017 200 2000 GBP 1.0 01/02/2017 GBP .70 01/02/2017 USD
3 01/03/2017 300 3000 USD 1.0 01/03/2017 USD 1.0 01/03/2017 USD
4 01/04/2017 400 4000 GBP 1.0 01/04/2017 GBP .72 01/04/2017 USD

In the above scenario, RevPro considers the profile setup as there are multiple Transaction Currencies in the revenue contract. If the profile is set to Reporting Currency, then the allocations happen in USD. The Reporting exchange rate used to calculate the allocation amounts is based on the line level exchange rates. When posting the allocations, RevPro derives the Functional exchange rate based on 1/Reporting exchange rate at the line level. The Reporting currency exchange rate used for posting is the line level Reporting exchange rate.

Scenario 4 - Allocation in Reporting Currency Even for the Same Functional Currency

Line No SO Book Name Company Code Amount T.Curr F.Ex.Rate F.Ex.Date F.Curr G.Ex.Rate G.Ex.Date G.Curr
1 01/01/2017 100 1000 EUR 1.0 01/01/2017 EUR .90 01/01/2017 USD
2 01/02/2017 100 2000 GBP 1.2 01/02/2017 EUR .88 01/02/2017 USD
3 01/03/2017 100 3000 USD 1.3 01/03/2017 EUR .85 01/03/2017 USD
4 01/04/2017 100 4000 GBP 1.4 01/04/2017 EUR .82 01/04/2017 USD

In the above scenario, RevPro considers the profile setup as the transaction currencies of the lines are different. If the profile is set to Reporting Currency, then the allocation happens in USD. The Reporting exchange rate used to calculate the allocation amounts is based on the line level exchange rates. When posting the allocations, RevPro derives the Functional exchange rate based on 1/Reporting exchange rate at the line level. The Reporting currency exchange rate used for posting is the line level Reporting exchange rate.

Intercompany Transactions

When the lines in the revenue contract have more than one company code, RevPro will create intercompany transactions.

Scenario 1 – Allocation with Different Company Codes

Line No SO Book Name Company Code Amount T.Curr F.Ex.Rate F.Ex.Date F.Curr G.Ex.Rate G.Ex.Date G.Curr
1 01/01/2017 100 1000 GBP 1.1 01/01/2017 EUR .9 01/01/2017 USD
2 01/02/2017 100 1000 GBP 1.2 01/02/2017 EUR .88 01/02/2017 USD
3 01/03/2017 200 2000 GBP 1.3 01/03/2017 EUR .85 01/03/2017 USD
4 01/04/2017 100 -4000 GBP 1.4 01/04/2017 EUR .82 01/04/2017 USD

In this Scenario, the transaction currency of all the lines are the same but the company code of one of the lines is different from other lines. The intercompany transactions are triggered when performing allocations. The offset entries for the intercompany accounts are only created for the initial reporting entries.

Line No Type Company Code Amount Currency Debit Credit
1 Adjustment Liability 100 1000 GBP   1000
1 Intercompany 100 1000 GBP 1000  
2 Adjustment Liability 100 1000 GBP   1000
2 Intercompany 100 1000 GBP 1000  
3 Adjustment Liability 200 2000 GBP   2000
3 Intercompany 200 2000 GBP 2000  
4 Adjustment Liability 100 4000 GBP 4000  
4 Intercompany 100 4000 GBP   4000

Derivation of Allocation Adjustment (Carve) Amount

Once the allocation currency is determined, then the allocatable functional price (sell price converted into allocation currency), the extended fair value price, and allocated value have to be calculated in the allocation currency. These are calculated using the exchange rate that is available on the line/header.

In the scenario below, the allocation currency is USD, the Functional Currency.

SO No Ext.List Ext Sell Price Item T.Curr F.Curr Fair Value % F.Ex Rate G.Ex Rate Ext Fair Value (*) Allocated F.Curr (*) A Allocated F.Curr (*) B Carve Amount B-A
1 1000 800 Hardware USD USD 90 1 1 900 800 942.86 142.86
2 1200 1000 Support EUR USD 75 0.8 1 720 800 754.29 -45.71
3 800 600 PS USD USD 60 1 1 480 600 502.86 -97.15

Note: (*) See calculations below.

Extended FV Calculations

SO No Ext.List Price (A1) Item T.Curr F.Curr Fair Value % (B) F.EX Rate (C) G.EX Rate (D) Ext Fair Value (*) A1*B*C
1 1000 Hardware USD USD 90 1 1 900
2 1200 Support EUR USD 75 0.8 1 720
3 800 PS USD USD 60 1 1 480
Total 3000             2100

Allocatable Func

SO No Ext.List Price (A2) Item T.Curr F.Curr Fair Value % (B) F.EX Rate (C) G.EX Rate (D) Ext Fair Value (*) A2*C
1 800 Hardware USD USD 90 1 1 800
2 1000 Support EUR USD 75 0.8 1 800
3 600 PS USD USD 60 1 1 600
Total 2400             2200

Allocated Amount

SO No Item T.Curr F.Curr F.EX Rate (C) G.EX Rate (D) Extended FV Price RSP Allocateable FUnc Allocated
1 Hardware USD USD 1 1 900 0.428571 800 942.86
2 Support EUR USD 0.8 1 720 0.342857 800 754.29
3 PS USD USD 1 1 480 0.228571 600 502.86
Total           2100 1.00000 2200 2200

Link - Delink

A revenue contract may become Multi-currency or Single currency due to Linking and Delinking.

Scenario 1 – Revenue Contract Changing to Multi-currency – Allocations change from transaction to reporting currency

When the transaction currency of the new lines is different from the existing lines, then the revenue contract becomes Multi-currency.

SO No Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 Hardware USD EUR USD 1.2 .84 USD
2 Support USD USD USD 1 1 USD
3 PS USD USD USD 1 1 USD

In the above scenario, allocations initially happen in transaction currency as all the lines have the same transaction currency. When the new line is added with a different transaction currency, the revenue contract becomes a multi-currency contract which affects allocations. The allocation currency will change either to functional or reporting currency depending on the profile setup and the value of the lines’ functional currencies.

SO No Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
4 Maintenance EUR USD USD .84 1.2 USD

The above line is added to this scenario. The transaction currency of the new line is “EUR”, which is different from the transaction currency of the other lines creating a multi-currency contract. The RevPro profile is set to Lowest Common Currency and, therefore, allocations will now happen in reporting currency, which is the lowest among the all four lines.

The Reporting exchange rate used to calculate the allocation amounts is based on the line level exchange rates. When posting the allocations, RevPro derives the Functional exchange rate based on 1/Reporting exchange rate at the line level. The Reporting currency exchange rate used for posting is the line level Reporting exchange rate.

SO No Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 Hardware USD EUR USD 1.19 .84 USD
2 Support USD USD USD 1 1 USD
3 PS USD USD USD 1 1 USD
4 Maintenance EUR USD USD .83333 1.2 USD

Scenario 2 - Allocations changes from transaction currency to functional currency

SO No Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 Hardware USD EUR USD .8 1.2 USD
2 Support USD EUR USD .8 1.2 USD
3 PS USD EUR USD .8 1.2 USD

In the above scenario, initial allocations happen in transaction currency since all the lines have the same transaction currency.  A new line is added with a different transaction currency and revenue contract becomes multi-currency which affects allocations. The allocation currency will change either to functional or reporting currency depending on the profile setup and the value of the lines’ functional currencies.

SO No Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate
4 Maintenance EUR EUR USD 1.0 1.2

The above line is added to this scenario with a transaction currency of “EUR”, which is different from transaction currency of the other lines creating a multi-currency revenue contract. The RevPro profile is set to Lowest Common Currency which means that allocations will happen in functional currency, the lowest common among the all four lines. The Functional exchange rate used to calculate the allocation amounts is based on the line level exchange rates. The Functional exchange rate used to post the allocations is 1 as there is no conversion. The Reporting exchange rate for posting is determined based on the minimum SO Book date rate. 

SO No Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 Hardware USD EUR USD 1.0 1.2 EUR
2 Support USD EUR USD 1.0 1.2 EUR
3 PS USD EUR USD 1.0 1.2 EUR
4 Maintenance EUR EUR USD 1.0 1.2 EUR

In the above scenario if the profile specifies as Reporting currency, then the allocation happens in reporting currency that is USD. Even though the functional currency EUR is common among the transaction lines.

Scenario 3 – Allocation Changing from Functional to Reporting

SO No So.Book.Date Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 01/01/2017 Hardware USD EUR USD 1.2 1.2 EUR
2 02/01/2017 Support USD EUR USD 1.2 1.2 EUR
3 03/01/2017 PS GBP EUR USD 0.8 1.2 EUR

In the above example, the revenue contract is already a multi-currency revenue contract. The RevPro profile is set to Lowest Common Currency and, as the functional currency of all the lines are same, initial allocations happen in the functional currency of EUR. 

SO No So.Book.Date Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate
4 04/01/2017 Maintenance EUR USD USD .8 1.0

When a new line is added with a different functional currency, then the allocations change to reporting currency for example, USD.

SO No So.Book.Date Item T.Curr F.Curr G.Curr F.EX Rate-Allocation G.EX Rate-Allocation Allocation Currency
1 01/01/2017 Hardware USD EUR USD .8333 1.2 USD
2 02/01/2017 Support USD EUR USD .8333 1.2 USD
3 03/01/2017 PS GBP EUR USD .8333 1.2 USD
4 04/01/2017 Maintenance EUR USD USD 1.0 1.0 USD

Scenario 4 - Allocation Changes After Posting

A single currency revenue contract has allocations that are initially posted in transaction currency.

SO No Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency Allocation Amount
1 Hardware USD EUR USD .8 1.2 USD 1000
2 Support USD EUR USD .8 1.2 USD 1000
3 PS USD EUR USD .8 1.2 USD -2000

The initial Allocation adjustment entries are posted in January 2017 (period 201701):

LIne No Allocation Amount Allocation Currency Account Type Period Dr Cr F.EX Rate G.EX Rate
1 1000 USD ADJ.Liability 201701   1000 .8 1.2
2 1000 USD ADJ.Liability 201701   1000 .8 1.2
3 -2000 USD ADJ.Liability 201701 2000   .8 1.2

If in the same period the following line is linked with the above lines, the allocation currency changes to EUR based on the RevPro profile setup of lowest common currency. The allocation adjustment amounts are recalculated. 

SO No Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
4 Maintenance EUR USD USD 1.0 .8 EUR

The initial allocation adjustment entries that were posted in January 2017 (201701) are reversed. The new initial allocation adjustment entries are created based on functional currency and the exchange rate is given below:

The Functional exchange rate for allocation is 1 and Reporting exchange rate is derived from the line level.

LIne No Allocation Amount Allocation Currency Account Type Period Dr Cr F.EX Rate G.EX Rate Posted Flag
1 1000 USD ADJ.Liability 201701   1000 .8 1.2 Y
2 1000 USD ADJ.Liability 201701   1000 .8 1.2 Y
3 -2000 USD ADJ.Liability 201701 2000   .8 1.2 Y
1 1000 USD ADJ.Liability 201701 1000   .8 1.2 Y
2 1000 USD ADJ.Liability 201701 1000   .8 1.2 Y
3 -2000 USD ADJ.Liability 201701    2000 .8 1.2 Y
1 800 EUR ADJ.Liability 201701   800 1.0 1.2 N
2 800 EUR ADJ.Liability 201701   800 1.0 1.2 N
3 -2000 EUR ADJ.Liability 201701 2000   1.0 1.2 N
4 400 EUR ADJ.Liability 201701   400 1.0 1.2 N

Scenario 5 – Functional Currency to Transaction Currency

In this scenario, a Multi-currency revenue contract with allocations in functional currency becomes a single-currency revenue contract after the delink of a line which changes the allocation currency to transactional.

SO No So.Book.Date Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 01/01/2017 Hardware USD EUR USD .8 1.2 EUR
2 02/01/2017 Support USD EUR USD 1 1 EUR
3 03/01/2017 PS USD EUR USD 1 1 EUR
4 04/01/2017 Maintenance EUR EUR USD 1.2 1 EUR

The allocation happens in “EUR” based on the RevPro profile setup. When the 4th line is delinked, all remaining lines in the revenue contract have a transaction currency of USD. Allocations are recalculated in USD. The exchange rate and exchange rate date used to post the allocations from transaction currency to functional and reporting currency is determined based on the minimum SO Book date.

SO No So.Book.Date Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 01/01/2017 Hardware USD EUR USD .8 1.2 USD
2 02/01/2017 Support USD EUR USD .8 1.2 USD
3 03/01/2017 PS USD EUR USD .8 1.2 USD

Scenario 6 – Reporting Currency to Transaction Currency

In this scenario, a Multi-currency revenue contract with allocations in Reporting currency becomes a single-currency revenue contract after the delink of a line which changes the allocation currency to transactional.

SO No So.Book.Date Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 01/01/2017 Hardware USD EUR EUR .8 1.0 EUR
2 02/01/2017 Support USD EUR EUR .8 1.0 EUR
3 03/01/2017 PS USD EUR EUR .8 1.0 EUR
4 04/01/2017 Maintenance EUR USD EUR .8 1.2 EUR

In the above example, the allocation happens in reporting currency “EUR”, which is the lowest common currency.

If the 4th line above revenue contract is delinked, then all the lines in the revenue contract have same transaction currency. Allocations are recalculated in USD. The exchange rate and exchange rate date used to post the allocations from transaction currency to functional and reporting currency is determined based on the minimum SO Book date.

SO No So.Book.Date Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 01/01/2017 Hardware USD EUR EUR .8 1.0 USD
2 02/01/2017 Support USD EUR EUR .8 1.0 USD
3 03/01/2017 PS USD EUR EUR .8 1.0 USD

Scenario 7 – Reporting to Functional

This scenario is about the Multi-currency contract that has allocations in Reporting currency after the delink of the line. Allocations become functional.

SO No So.Book.Date Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 01/01/2017 Hardware USD EUR USD 1.2 1.2 EUR
2 02/01/2017 Support USD EUR USD 1.2 1.2 EUR
3 03/01/2017 PS GBP EUR USD .8 1.2 EUR
4 04/01/2017 Maintenance EUR USD USD .8 1.0 EUR

In this case, transaction and functional currency of the lines are different. So, the allocation happens in the reporting currency. When delink of the 4th line happens, then the functional currency of all the lines changes to “EUR”. 

SO No So.Book.Date Item T.Curr F.Curr G.Curr F.EX Rate G.EX Rate Allocation Currency
1 01/01/2017 Hardware USD EUR USD 1 1.2 USD
2 02/01/2017 Support USD EUR USD 1 1.2 USD
3 03/01/2017 PS GBP EUR USD 1 1.2 USD

Display Multi-Currency in UI

Multi-Currency revenue contracts are displayed with "M” in the contract header. The overview page displays the allocation currency type and allocation currency.

In the revenue contract shown above, the allocation happens in reporting currency. The Overview page displays only the reporting currency. If the allocation happens in transaction currency, the Overview page will show all three currencies: transactional, functional, and reporting. If the allocation happens in functional currency, then the Overview page has the values in base and reporting currency. Using the exchange rate from the line/ header, the value is derived from one currency type to another. This is same for all the reports fetching the value for different currency types.

In the above example, Reporting Currency is the lowest common currency and the allocation for the revenue contract is in USD. The Revenue Contract details displayed at the top of the screen are the contract values in USD for example, the value of the contract in reporting currency, which is the common currency across all the transaction lines.

Last modified

Tags

Classifications

(not set)