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.
IntroductionWhat 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)
TestingSteps to test ML Run
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
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).
67.27 is derived by Opp + Receipts – Consumption = Closing / Closing Qty
Closing NotesPoints 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.