SAP Knowledge Base Article - Public

2608974 - Exchange Rate Fluctuation on Revenue Recognition for Contracts


You are executing revenue recognition run for a specific contract in separate periods. Nevertheless, you noticed that, although the contract amounts remains the same across the periods, the calculated revenue for each periods changed. Furthermore, you are not clear on the exchange rate derivation on the process.


SAP Business ByDesign.

Reproducing the Issue

  1. Go to Cost and Revenue work center.
  2. Go to Revenue Recognition view.
  3. Execute revenue recognition for a contract on period e.g. 001.2018. You'll see a specific amount recognized in this period.
  4. Later on, on period 002.2018, you execute the run for the same contract again (for period 002.2018). Nevertheless, the realized amount per period differs from 001.2018

You want to understand how the calculation is done, considering the exchange rate fluctuation.



Let's assume company currency as USD.

The contract you've chosen in the revenue recognition has:

  • Item Start/End dates: 31.12.2017 / 30.06.2018
  • Contract Item Date: 01.01.2018
  • Contract Amount: 400.000 JPY

For period 001.2018:

You executed the first revenue recognition for 001.2018. In the run, the contract amount is converted to USD according to the exchange rate defined in January (contract item date). Let's assume JPY -> USD at rate  0,008. Hence, 400.000 JPY * 0,008 =  3.200 USD

In the next step, the accrual method is checked. Here the accrual method is: 303 - Straight-line – even periods. Further details and other applicable accrual methods can be found in ByDesign documentation Revenue Recognition for Customer Contracts via Help Center.

This method calculates equal amounts of revenue for each period regardless of how many days are involved. The amounts are calculated as the contract value divided by the number of periods. In this case, there are 6 periods, hence: 3.200 USD / 6 = 533,33 USD posted for period 001.2018

For period 002.2018:

After that, you execute the revenue recongnition for the same contract for period 002.2018.

Due to exchange rate fluctuation in between the runs, the rate taken is 0,0095. Therefore, 400.000 JPY * 0,0095 = 3.800 USD

Again considering the 6 periods due to contract length and accrual method: 3.800 USD / 6 = 633,33 USD for period 002.2018

Note that whenever revenue recognition is executed, it considers everytgin from inception of the document. In period 002.2018, it has identified that the currency conversion is 0,0095 and has calculated the amount for this period as being 633,33 USD. Therefore, for two periods (001.2018 and 002.2018), it calculated that it has to post 633,33 * 2 = 1.266,66 USD. The system then checks that 533,33 has already been posted in period 001.2018. Therefore, the posting for period 002.2018 has to be 1.266,66 USD - 533,33 USD = 733,33 USD


This is the designed system behavior.

See Also

Help Document: Revenue Recognition for Customer Contracts

KBA: 2609018 - How Exchange Rate is Derived for Different User's Time Zone


Revenue Recognition. Sales Documents. Contracts. Current Earned Revenues Amount. Total Revenue. Exchange Rate. Currency , KBA , SRD-FIN-COR , Cost & Revenue , How To


SAP Business ByDesign all versions