SAP Knowledge Base Article - Public

2967372 - Revenue Per Period for a Contract Item Differs from a Gross Amount Per Period Calculation


You have created a custom report to check the revenue per period of a contract item and used the standard key figure 'Gross Amounts (Document Currency)' to bring the values to the report. However, the amounts are different from the calculated amounts under Cost and Revenue when using accrual method 304 - Straight-line – prorate partial periods for fixed-price invoicing.


SAP Business ByDesign.

Reproducing the Issue

  1. Go to Business Analytics work center.
  2. Go to Design reports view.
  3. Open your custom report.
  4. Run the report for the desired contract.
  5. Include key figure 'Gross Amount (Document Currency)' or 'Net Amount (Document Currency)' and 'Month/Calendar Year'.
  6. Navigate to Cost and Revenue work center.
  7. Go to Sales document items.
  8. Find the related contract.
  9. Click the Accounting Data tab.
  10. Refer to Revenues per Period in default Set of Books table.

You see that the amounts from the repot are different from the amounts shown under Cost and Revenue. You expect these amounts to be the same since the contract has accrual method 304 - Straight-line – prorate partial periods.


The key figure is based on CRM data source, which retrieves the amounts to be shown, per period, from a business object that calculates the amounts differently from the revenue distribution calculation based on an accrual method 304 in accounting.

To illustrate the differences, consider a contract item as follows:

Contract Duration: From 26.08.2020 to 25.08.2021
Contract Item amount: 18.600,00 USD

In accounting, the revenues per period will be calculated and distributed based on the logic of the accrual method, in this case 304 - Straight-line – prorate partial periods. For this accrual method, the system first calculates the revenue to be recognized for the partial periods based on the day rate and then the remaining revenue is distributed equally across the full periods. Therefore, for this illustration, it means:

Contract Duration: From 26.08.2020 to 25.08.2021 -> 365 days.
Hence, day rate for this item is 18.600,00 USD / 365  days = 50,9589... USD/day of calculated revenue.

Given the accrual method, the logic is to calculate the revenue for the partial periods first and then distribute the remaining amount equally for the remaining periods. In this case 008/2020 and 008/2021 are the incomplete periods.

008/2020 -> This period has only 6 days to be calculated (since start date is on the 26th): 6 * 50,9589... = 305,75 USD (rounded).
008/2021 -> This period has 25 days to be calculated (since end date is on the 25th):  25 * 50,9589... = 1.273,97 USD (rounded).

So, 18.600,00 USD - 305,75 USD - 1.273,97 USD = 17.020,28 USD left to be distributed equally amount the remaining periods.

Since 008/2020 and 008/2021 are already calculated, the remaining periods are from 009/2020 to 007/2021, which means 11 periods left.
Therefore, 17.020,28 USD / 11 periods left = 1547,30 USD

Hence, in accounting, based on the accrual method, you have revenue distribution as follows:

008/2020 -> 305,75 USD
009/2020 to 007/2021 -> 1547,30 USD each period
008/2021 -> 1.273,95 USD

Now, in your custom report, to bring the the values in you are using the key figure 'Gross Amount (Document Currency)'. This key figure is based on a CRM data source. Hence, the calculation of the amounts differ, as it also does not consider an accrual method standard. For this key figure, the system calculated the gross amount as follows:

It considers this contract length as 12 calendar months in total. Being August/2020 and August/2021 incomplete months.
The logic determines the amount per month (18.600,00 USD / 12 months = 1550,00) and distributes in sequence for each of month. For incomplete months, it calculate a fraction to be assigned based on the total of days for incomplete periods:

August/2020 -> number of days = 6
August/2021 -> number of days = 25
Total number of incomplete month days: 31 (25+6)

The distribution per period is done as follows:

If the month is incomplete (e.g. August/2020): amount per month * (number of days / total incomplete month days).

Hence, for August/2020 it is 1550,00 * (6 / 31) = 300 USD
If the month is complete (e.g. September/2020), then it gets the calculated amount per month: 1550,00 USD


This is the designed system behavior, since the calculation is done differently for the key figure and in accounting, depending on the accrual method.

See Also

Help Document: Revenue Recognition for Customer Contracts


Revenue Recognition. Accrual Method. Revenue Per period. Cost and Revenue. Gross Amount. , KBA , SRD-FIN-COR , Cost & Revenue , How To


SAP Business ByDesign all versions