Skip to Content
Technical Articles
Author's profile photo Lucy Gray

Results Analysis : How to calculate Revenue when total Plan Cost is unavailable

This blog explains how to perform Results Analysis and calculate Revenue, when the total cost of a project cannot be estimated (and hence SAP standard Cost-based RA methods cannot be used directly).

Prerequisite : Knowledge of Results Analysis in general, and how it is calculated in SAP.

The idea here is to leverage Customer enhancement 2 (user exit) of Results Analysis Method for such kind of requirement.

Business scenario behind calculating Revenue when total plan costs are unknown.:-
In case of long-term customer contracts, total project costs cannot be estimated (plan cost is zero) at the time when the project is created. In such a case, using SAP standard Cost-based RA method will result in zero Revenue, because PoC is zero.
But as per IFRS 15 requirement, in case if Plan cost & PoC is unknown, the costs incurred must be recognized as Revenue. (assuming that the costs can be recovered as revenue)

(This is a common business requirement in Japan, and also known as Cost recovery method of Revenue recognition; IFRS 15)

Concept behind fulfilling the above requirement:
Generally, at the time of Results Analysis, the Revenue of a period is calculated as :

Revenue = PoC × Total Planned Revenue

= (Actual Costs of the period ÷ Total Planned Costs)  × Total Planned Revenue

(PoC = Percentage of Completion)

Now, since as per the requirement, the Revenue of a period should be equal to the actual cost incurred in that period, if we input the value of ‘Total Planned Revenue’ into ‘Total Planned Costs’ in the above formula, then we would get the desired Revenue.

Hence, to fulfill this requirement, we need to perform customization settings & write a small piece of code in a user exit, so that the value of ‘Total Planned Revenue’ is copied into ‘Total Planned Costs’, in case if ‘Total Planned Costs’ are zero.

From here on, we will customize SAP standard Cost-based PoC method (03) in Expert Mode, and use of Customer enhancement 2 (EXIT_SAPLKKAG_002) for achieving the above mentioned result.

Disclaimer : The below information has been referenced from SAP Note 26957.


Step 1 :
Customization of Cost-based PoC method (03) :

This is required to make the system consider the coding done in the user exit when RA is executed.

T-Code : OKG3

SPRO : Controlling > Product Cost Controlling > Cost Object Controlling > Product Cost by Sales Order > Period-End Closing > Results Analysis > Define Valuation Methods for Results Analysis

  • Select your controlling area row and press ‘Details’.
  • Press ‘Expert mode’.
  • Select the row for Status ‘REL’, and press ‘Details’.
  • Here, change the Valuation Basis to ‘0’, and save.
    This setting will allow to
    assign the actual values read by the system to other line IDs, in the user exit.

Step 2 :

Write your code in Customer enhancement 2 :

Here, write a simple code to input the value of ‘Total Planned Revenue’ into ‘Total Planned costs’.

T-Code : CMOD

  • Create a project.
  • Assign the SAP enhancement KKAG0001 to the project.
  • Choose the component EXIT_SAPLKKAG_002 from this enhancement; this is a function module.
  • The function module contains the include ZXKAGU02.
    Go to this include and write a code which copies the value of ‘Total Planned Revenue’ into ‘Total Planned costs’.
  • Finally, Activate the Include as well as the Project.

    The below coding is just an example.

The above two steps are enough for fulfilling our requirement.

Now let’s test the system settings done above.

Let say a WBS element has been created for managing a long-term customer contract.

  • Revenue has been planned for this project as below, but the total cost cannot be estimated.
    Total Planned Revenue – 1,377,000 JPY
    (T-code CJR2)
  • For a particular period, actual costs incurred are posted to this WBS as below.
    Actual Costs  – 110,000 JPY

Now, at the end of the period, we perform RA to calculate revenue on the basis of the actual costs.

This enables you to report a revenue before any revenue has actually been received.

Results Analysis performed (T-code KKA2):

Revenue Affecting Net Income

= PoC × Total Planned Revenue

= (Actual Costs of the period ÷ Total plan costs)  × Total Planned Revenue

= (110,000 ÷ 1,377,000) × 1,377,000

= 110,000 JPY

Furthermore, since there is no Actual revenue posted in this period, Revenue in Excess of Billings is calculated as:

Revenue in Excess of Billings

= Revenue Affecting Net Income – Actual Revenue

= 110,000 – 0

= 110,000 JPY

‘Revenue affecting net income‘ and ‘Costs affecting net income‘ can be settled to CO-PA.

Profitability Analysis



Cost of sales




‘Revenue in excess of billings’ can be settled to FI and EC-PCA.

P&L Statement



Actual costs 110,000

Actual revenue 0

Profit 0

Revenue in excess of billings 110,000



I hope this blog has elaborated how Planned costs can be changed on the fly using Customer enhancement 2 of Results Analysis.

Thank you for reading.


Further references:
Configuration required for settlement of RA results to FI, EC-PCA & CO-PA
SAP Help document for Cost-based PoC method (03)

Copyrights reserved.
Copying this blog and posting it on other sites is strictly prohibited.

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Gregory Rigal
      Gregory Rigal


      thanks for your info I found your blog after testing the same solution 🙂

      However changing the valuation basis to 0 (or from 0 to 9) makes the system w/o any limiter for POC. Meant that if your actual costs are higher than actual revenues, the system calculates a POC higher than 100% .


      kind regards