SAP ML Run System Audit

ML / Actual Costing run in SAP is a complicated process. Hence, in this Post, I am going to cover ML run from the perspective of Raw Material. Will cover from the perspective of Finished goods in another article.

The Below article explains how to Test “ML Run” in SAP ERP. The article is written for system auditors to understand nitty gritty and what all things to be checked.

Introduction

What is ML Run

In SAP, Material valuation depends upon “Price Control” set in Material Master. There are 2 options in Price Control – Standard Price (Denoted by ‘S’) and Moving Average Price (Denoted by ‘V’). If Price Control is set as “S”, then the material will be valued by standard price set in Material Master. The actual purchase price of the product will not be taken into consideration. For example, we have a Purchase Order (PO) of 100Kg with Unit Price as 20 Rs. and we create a Goods Receipt Note (GRN) using MIGO. Material Master has 15 Rs as the standard price. Now in case “S” is set, accounting entry for GRN will be for Rs 1500 (1000Kg X 15 ). Difference in PO price and Standard Price will go in Variance Account. In case “V” is set, accounting entry will be for Rs 2000 (1000Kg X 20).

By the above example, you will realise that “Price Control” Key is very important, as it directly affects my inventory valuation. Generally, businesses adopt either of approach to inventory valuation.

Price Control key is set as “V” for raw materials and “S” for finished goods

Price Control key is set as “S” for raw materials and finished goods and then the standard price is updated at the time of ML run.

The below screenshot shows Price Control key. The screenshots are of Material Master (TCode – MM03)

In the newer version of SAP, Material Master has only 1 accounting tab. The look is little different.

Testing

Steps to test ML Run

It is important understand how businesses are using ERP while performing system audit. The approach which I have shown below should be used only for reference. These steps are in NO way comprehensive. I am covering only walkthrough of the ML Run. Configuration testing for ML run will be covered in another post.

Let’s Start. Select a sample material for which ML run is already carried out. Our objective is to perform recalculation and test whether ML run has updated Inventory and General Ledger (GL) correctly.

Execute TCode CKM3N to view Material Price Analysis. As shown in the screenshot below, we have selected period as 06 and year as 2017. In the below screenshot we can observe that Opening price is 68.46 and closing price is 67.27.

Open material master (TCode MM03) and check if the per unit price matches with ending inventory price. In our case, the price is 67.27 Rs. We should also note that the standard price is 60 Rs for the material. This will come in handy when we check accounting entries. We can also make one more observation, after ML run, the standard price is still same i.e. 60. This can be inferred from the “Future Price” mentioned as 60.

Just to make sure, we are looking at the most recent period for which ML run is completed, let’s change the period to ’07’. In the below screesnhot, we can make the following observations – Since ML run is not yet done for 7th period, the ending inventory price is showing as ’60’ Rs, which is standard price of our sample raw material.

Another important observation to make is, the consumption (3708 Kg) is being booked at standard price, while for the 6th period it was booked at the new price of 67.27 Rs

Open Receipts and under that Purchase Order to view a list of purchase orders through with RM was purchased. In the screeshot below, we observe that there are 3 PO with different prices – 66.48, 66.74, 66.74.

Out of the 3 POs, let’s open a PO. In below PO screenshot, we observe that PO created with price – 65.5 Rs/Kg

Let us look at the Journal Entry (aka Accounting Document) using TCode FB03 for Goods Receipt. We can observe that 5290 Kg of RM was received. RM GL (31100090 – Stock STD-RM) was debited with Rs 317,400 at the price of 60 Rs/Kg (317400/5290).

Thus, we can note that RM ledger is not debited with the actual price, but the standard price defined for the RM.

Coming to Final step in testing, we need to identify the accounting document which was created by ML Run. The best way to know which accounting document was created is to check ML Run Logs. In case there are No logs, then ask process owner which GL accounts are Dr / Cr and from there using Posting Date try to find Accounting Document.

Once the accounting document is identified, open the document, using TCode FB03. This document will have a huge number of line items, generally one per material. Filter Material (If this column is not visible, go to change layout and add it)

In the screenshot below, we can observe that RM (31100190) is debited with 69249.56 Rs. That is exactly the difference between standard price (60) and actual price (67.27) i.e. 7.27 X 9526 Kg (Closing Stock Qty).

Closing Notes

Points to Ponder

ML stands for “Actual Costing” and Costing Run is for plan cost estimate. Hence don’t confuse yourself by saying ML is costing run. ML Run can be scheduled to run periodically or can be run by a user using TCode CKMLCP.

Actual costing run needs to be done immediately after the new month roll over. After the actual costing run, you cannot post any MM(Materials Management) entry to the previous period.