You can use the Report Painter tool under Product Cost Controlling in the IMG to display actual cost, work in process, and variances for all of the production orders in a plant on one report.
Key Concept
To have the break-up of total production variances on the reports in Product Cost Controlling, you need to make sure you set your system to split the total variance on production orders into different categories. These categories are predefined by SAP and explain the reason for a variance. This customization, in addition to the assignment of the variance key to the production orders, ensures that the system breaks up total variances on the order into different variance categories during variance calculation in transaction KKS2. This allows detailed analysis of production variances and helps in understanding how the actual process differs from the standard process. If this customization is missing, then you cannot split the production variance into variance categories.
You can simplify your month-end analysis by creating one report that displays all of the costs for your production orders. Production and accounting departments at the month end want to know which orders carry above-average work in process (WIP) and which orders resulted in more production variances. For example, they may want to see which orders have only debits from the goods issue and no credits from the goods received into inventory. They then can check with the shop floor to discover the reason for the delay in goods receipts.
In business environments with hundreds of orders opened and closed in a month, a detailed analysis of all orders isn’t feasible. It is important to have one report so you can quickly scan all of the costs on the orders. This helps you to zero in on orders that require further detailed cost analysis.
You access the standard reports for production orders by following SAP Easy Access menu path Controlling > Product Cost Controlling > Cost Object Controlling > Product cost by order > Information system > Reports for Product Cost by Order. Different standard reports display actual costs, WIP, and variances on the order. However, users have to shuffle through different standard reports for actual costs, WIP, and individual variance categories, respectively. This could be confusing if you are trying to see the values for the same orders across different reports. You would have to download data from different SAP reports into Microsoft Excel and combine these downloads to have one view with all of the details.
I am going to provide steps for using Report Painter under Product Cost Controlling in the IMG to create such a report. It can cut the time you would have to spend on downloading and consolidating data and allows you to move quickly to analysis.
Before beginning, you should check whether your system is configured to split the total variance on production orders into different variance categories in variance calculation. In IMG transaction OKVG, you can check whether the variance variant is defined and configured in your system to split the total variance — if so, the check boxes for the different variance categories for the variance variant are already selected. You should assign the variance variant to the target cost version 0 under IMG transaction OKV6. If you add the variance key created in IMG transaction OKV1 to the costing view of the material in the material master, the system can assign the variance key to the production order.
The steps to create reports using Report Painter are fairly standard across different components of CO. SAP documentation lists these steps. The steps in my process are similar, but are specialized for Product Cost Controlling.
Note
You can use Report Painter for Cost Center Accounting, Product Costing, Profit Center Accounting, and Profitability Analysis as well. The characteristics and the key figures available are different depending on the component you use.
Step 1. Assign the active cost component structure. Use transaction OKN0 or follow IMG menu path Controlling > Product Cost Controlling > Information System > Control Parameters (Figure 1).

Figure 1
OKN0 screen
On the Data Extraction/Product Drilldown tab, assign the active cost component structure for the Cost comp.str. field. You can find the active cost component structure in your system in IMG transaction OKTZ or follow menu path Controlling > Product Cost Controlling > Product Cost Planning > Basic Settings for Material Costing > Define Cost Component Structure. In the Report Selection tab, select Flexible Itemization, Flexible Cost Component Report, and Flexible Cost Display.
Step 2. Create the form for the report. Use transaction KKO4 or follow IMG menu path Controlling > Product Cost Controlling > Information System > User-Defined Reports > Create User-Defined Reports for Product Drilldown > Define Forms.
Enter the name and the description of your choice. Then, to create the rows and columns in this form, select Two axes (matrix) and click on the Create button (Figure 2).

Figure 2
Create form in KKO4
This brings up the screen in Figure 3, where you define the rows and lead columns.

Figure 3
Form layout in KKO4
Double-click on the Row 1 cell under Lead column in Figure 3 and in the pop-up screen select Characteristics (Figure 4).

Figure 4
Select the element type in the pop-up
Press Enter, and in the resulting pop-up screen, add Period/year to Selected characteristics using the left arrow icon
, then select the check box next to it, which defines it as a local variable (Figure 5). In the pop-up screen that appears, select 7GJPER, a predefined global variable.

Figure 5
5 Define Lead column in KKO4
Step 3. Define columns in the form. The column definition controls the layout and the kind of data the report output displays. To define the first column in the form, double-click on Column 1 (Figure 5), which brings up a pop-up screen similar to the screen from Figure 4. Select the option Key figure with characteristics. This is followed by one more pop-up screen (Figure 6) where you define the key figure and the characteristics with its values. This determines combinations of characteristics for which the value is displayed under a column and the currency (key figure) in which it is displayed.

Figure 6
Element definition: Column 1
Figure 6 shows the key figure and the characteristics you need to select to define Column 1. Describe the short text for column header with the change short, middle, and long texts icon
. For example, you could describe the header text for the first column as Act (Dr) GI — I reduced this as the field length allows only 10 characters — to represent “actual debits on the order.” Click on the Check and Confirm buttons, respectively. Repeat this process to create columns 2 to 14. You can add new columns to the form from the menu bar by choosing Edit > Element > Insert Element. In the pop-up screen that appears (Figure 4), continue the directions from earlier in this step. Figure 6 displays the details for defining Column 1.
Table 1 details how you should define Columns 1 to 14. The key figure selected for all of the columns in the form is Value COCurr. Once you have defined all of the columns, save the form that you started creating in step 2 by clicking on the save icon in the standard toolbar.
Col no. | Col interpretation | Col header texts | Value type | Dr/Cr indicator | Version | Target cost version | Variance category | RA version |
1 | Actual (Dr) | Act(Dr)GI | 04 | 0 | 770IVERS * | N/A | N/A | N/A |
2 | Actual (Cr) GR | Act(CR)GR | 04 | 5 | 770IVERS * | N/A | N/A | N/A |
3 | WIP | WIP | 06 | N/A | 770IVERS * | N/A | N/A | RAVER * |
4 | Settlement | Settlement | 04 | 6 | 770IVERS * | N/A | N/A | N/A |
5 | Scrap variance | ScrapVar | 30 | N/A | N/A | 790SVERS * | N/A | N/A |
6 | Total variance | TotalVar | 31 | N/A | 770IVERS * | 790SVERS * | N/A | N/A |
7 | Input price variance | InpPrcVar | 31 | N/A | N/A | 790SVERS * | PRIV | N/A |
8 | Input quantity variance | InpQtyVar | 31 | N/A | N/A | 790SVERS * | QTYV | N/A |
9 | Resource usage variance | ResUsgVar | 31 | N/A | N/A | 790SVERS * | RSUV | N/A |
10 | Remaining input variance | RemInpVar | 31 | N/A | N/A | 790SVERS * | INPV | N/A |
11 | Output price variance | OutPrcVar | 31 | N/A | N/A | 790SVERS * | OPPV | N/A |
12 | Lot size variance | LotVar | 31 | N/A | N/A | 790SVERS * | LSFV | N/A |
13 | Remaining variance | RemVar | 31 | N/A | N/A | 790SVERS * | REMV | N/A |
14 | Mixed Price Variance | MixPrcVar | 31 | N/A | N/A | 790SVERS * | MXPV | N/A |
Table 1Step 4. Create report. Use transaction code KKO1 or follow IMG menu path Controlling > Product Cost Controlling > Information System > User-Defined Reports > Create User-Defined Reports for Product Drilldown > Create report.
Enter the report name and description of your choice and the form name from step 2. Click on the Create button. On the following screen, choose the Characteristics tab shown in Figure 7. Add characteristics Plant, Order type, and Order from Char. list to Sel. characteristics with the left arrow icon.

Figure 7
Create a report in KKO1
Click on the check box in the Order type row and in the pop-up screen enter ORDTYP
. This defines the characteristic as a local variable and makes it available as a selection field when the system executes the report. Click on the check box in the Plant row and, in the pop-up screen, select 7WERKS. On the OutputType tab, select Classic drilldown. Under this option, select Basic list: D-down and save. You can enter default values for the variables on the Variables tab page — for example, Actual Version, Target Version, and RA Version as zero.
Step 5. Summarize data. Use transaction KKRV or follow SAP Easy Access menu path Accounting > Controlling > Product Cost Controlling > Product Cost by Order > Information System > Tool > Data Collection > For Product Drill down to summarize data for the plants for which you want to execute the above report. After you execute the report in step 6, the system pulls data from the last extract created with transaction KKRV, so you should run KKRV at regular intervals. Enter the plant and the period, and then select the check box for background processing. Execute the transaction by clicking on the execute icon. In the pop-up screen Background processing Job Parameter, provide details such as job name and time of execution, and then click on the Confirm button. In the following pop-up screen for Background Print Parameters, click on the Continue button. You can check the status of your job using transaction SM37.
Step 6. Execute the report. After completing the job started in step 5, execute the report created in step 4 with transaction KKO0. Enter the RA Version, Period/fiscal Year, Actual Version and Target cost version on the selection screen. Execute and you’ll have the output (Figure 8).

Figure 8
Report output in KKO0
Tip!
If the values for variance categories in transactions KKS2 and KKO0 for an order do not match, then add the output of transaction KKO0 for the order over different periods.
Naveen Sharma
Naveen Sharma is an FI/CO consultant. He is SAP certified in CO and has more than five years of SAP experience in implementations, production support, and upgrades. In addition, he has four years of experience in the manufacturing industry.
You may contact the author at naveensham72@yahoo.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.