Break through a common misconception about how the actual cost is updated as the standard price in the material ledger and actual costing. Understand the process of how you can use the functionality to compute the actual cost of the material and carry out accurate inventory valuation at the end of the period. By following the sequence of the material ledger closing process, you’ll see why the update of the actual cost of the material as a standard price happens with a lag.
Key Concept
SAP actual costing/material ledger functionality fulfills two basic objectives of product cost controlling: the ability to carry material prices in multiple currencies and valuations, and carrying out actual costing. In the absence of the material ledger, inventory values are maintained in local currency in SAP systems. The material ledger enables the system to carry inventory values in two additional currencies or valuations by updating all goods movements for a material in up to three currencies or valuations. Actual costing expands on the material ledger functionality by determining actual costs for externally procured materials and materials produced in house. Actual costing calculates an actual cost (i.e., periodic unit price) for each material and valuates inventories of raw materials, semi-finished products, and finished products.
Many SAP users are confused by the term “actual costing” in the material ledger. They expect that the periodic unit price computed by the material ledger for the last period is immediately updated as the standard price of material for the following period. This is not the case — there is always a one-month delay in the update of the periodic unit price as the standard price.
I’ll explain why the delay occurs and what prerequisites enforce this delay, followed by recommendations on how to carry out a material ledger closing process in the correct sequence. You’ll see how the actual cost is calculated by the material ledger to revalue the inventory and how to update the standard price of a material. Based on the sequence of the material ledger closing process, the update of the actual cost of the material as a standard price happens with a lag. Knowing why this lag occurs helps in defining the correct period-end close process. It also helps cost accountants define the strategy of material valuation with the material ledger and actual costing.
See the sidebar “Valuating at Actual Cost” for more information about how companies use the method. For information about terminology such as periodic unit price, price determination, and process categories, see the sidebar “Key Terms in the Material Ledger.”
Overview of Costing Cockpit
These are the steps associated with the material ledger closing process, starting with an overview of the costing cockpit. You can execute period-end closing for the material ledger with transaction CKMLCP (Figure 1).

Figure 1
Steps in actual costing
You perform the following steps:
Step 1. Execute a selection
Step 2. Determine the costing sequence
Step 3. Perform single-level material price determination
Step 4. Perform multi-level material price determination
Step 5. Perform revaluation of consumption
Step 6. Post closing entries
Step 7. Mark prices for future valuation
I’ll look briefly at each of these steps. However, the focus is on defining the sequence and explaining how periodic unit price is updated as the standard price. I won’t go into detail about exactly how the costing run is created and how you enter the data in each step.
Step 1. Execute a Selection
Select and filter the materials for processing following these rules:
- Materials with price indicator 3 and price control S are related to price determination
- Materials with price indicator 2 and price control V are not related to material ledger price determination. Therefore, all such materials are filtered from the actual costing run.
Step 2. Determine the Costing Sequence
All materials selected for the costing run are related to single-level price determination by default. Therefore, the main task of this step is to determine the materials that are related to multi-level price determination.
As explained earlier, the sequence type depends on the type of transaction performed for a material. For example, an assembly material that has consumption of components from a lower-level bill of material (BOM) is considered multi-level and the sequencing is determined accordingly. The production scenarios consider the BOM and quantity structures to determine the relevance for the multi-level price determination. Based on this determination, the value of variances and price differences of the lower-level component is distributed in proportion to quantity consumed and considered in the actual cost computation of a higher-level assembly item.
Step 3. Perform Single-Level Material Price Determination
This step is executed only for the material that is set with the price determination as 3 and the price control in material master as S. Also, you need to allow the price determination set for the period in transaction CKMF. When performing a single-level price determination, the system considers the variances (e.g., price differences or exchange rate differences) that have been booked for the specific material.
Consider a scenario of a material being procured from an external vendor on a purchase order (Figure 2). In this example, material 1475 has a standard price of US $5 per 100 units. Goods receipt on an external purchase order is performed for this material for 800 units. Inventory value is debited for the material based on preliminary standard price as US $40. However, the purchase order price is different from the standard price, which results in a purchase price difference of US $6360. The price differences generated during goods receipt transaction for the material is considered in the single-level price determination process and the system calculates a new periodic unit price for the material.

Figure 2
Single-level price determination — Price differences on purchase order goods receipt
Similarly, the exchange rate differences that are booked during invoice receipt are also considered during single-level material price determination calculation for the material.
Step 4. Perform Multi-Level Material Price Determination
This step has the same prerequisites as single-level price determination. When performing multi-level price determination, the system considers the single-level price differences specific to the material and any lower-level variances that have been rolled up to the material based on sequencing of the material derived in step 2.
Consider a scenario of a material stock transfer between two plants in the same company code. With an inter-plant UB stock transport order, the material ledger treats the goods movements in both the sending and receiving plants with the process category as stock transfer. This enables multi-level price determination and ensures that variances are transferred across plants, with the actual cost of the material across both the plants remaining the same.
Figure 3 depicts the stock transfer of 12 for a material from the sending plant (DM01) to the receiving plant (DM02). When the stock transfer was executed, the standard cost of material was US $14.41 per piece. Single-level price determination in the sending plant DM01 for the material resulted in a periodic unit price is US $39. Variances of $295.03 are transferred from plant DM01 to plant DM02 when multi-level price determination is executed as Consumption for Next Level. A variance of US $295.03 results due to the difference between the standard price (US $14.41) and the periodic unit price (US $39) for 12 quantity of consumption as a stock transfer.

Figure 3
Multi-level price determination — stock transfer in sending plant
In Figure 4, you can see that variances of US $295.03 were transferred as Receipts from Lower Levels. As a result, the system sets the material actual cost across both the plants to US $39.00 after performing multi-level price determination.

Figure 4
Multi-level price determination — stock transfer in the receiving plant
Step 5. Perform Revaluation of Consumption
After calculating the periodic unit price of a material using single-level or multi-level price determination, you can configure the system to revaluate the consumption at actual cost. This step applies only for those consumption postings and process categories that are categorized as single level (e.g., 201 movement goods issue to a cost center). You can also configure account assignments for revaluation posting to use the same original cost center as used in booking of the material document.
Figure 5 shows one material that was issued to cost center 74500 at a standard price of US $39.05. The periodic unit price determined for the material for the period is US $50, so the variance of US $10.95 is booked as Revaluation of Consumption to a Cost Center.

Figure 5
Revaluation of consumption to a cost center
Step 6. Post Closing Entries
Before you can perform closing entries, you need to perform three prerequisites:
- New material master period has been opened using transaction MMPV
- Material price determination has been completed as a part of the material ledger close
- The period is set to allow closing entries in transaction CKMG
This step generates necessary accounting entries for revaluation of consumption and the revaluation of material stock for the period, if selected. Alternatively, you can choose not to revaluate the material stock in the previous period. Instead, you can post price differences to an accrual account, which you access via transaction OBYC and then by choosing account key LKW (Figure 6).

Figure 6
Account key LKW in transaction OBYC
If you have chosen to revaluate the material stock for the period in the costing run, then the system does the following when closing entries are done:
- The system changes the price control of the material for the previous period from S to V and sets the periodic unit price computed as the valuation price of the material
- The standard price remains unchanged and inventory revaluation is switched from standard price-based to periodic unit price-based as a result of the price control switch
- The accounting entry for inventory revaluation is posted for the period for which the material ledger close is performed. Reversal entry is automatically booked in the new period.
Step 7. Mark Prices for Future Valuation
You can mark the periodic unit price that has been computed as the future valuation price. Once this step is executed, the periodic unit price is updated in the material master as the future valuation price with an effective date.
This completes the overview of various steps in the material ledger close process. Now I will explain the sequencing of these steps and the integration of the material master close process with the material ledger close process.
Tip!
You can schedule each of the steps in the actual costing closing cockpit transaction as a batch program. The list of the programs that you can execute in batch mode is:
- Selection: SAPRCKMLMV_RUN_BASIC_LIST
- Determine sequence: SAPRCKMLMV_RUN_CREATE_STEPS
- Single-level price determination: SAPRCKMA_RUN_SETTLE
- Multi-level price determination: SAPRCKMLMV_RUN_MLEVEL_SETTLE
- Revaluation of consumption: VNB_REVALUATE_SL_CONSUMPTION
- Post closing: SAPRCKMA_RUN_CLOSE
- Mark material prices: SAPRCKM_PRMT_RUN_TYPE
Material Ledger Close Process Sequence
At the end of the material ledger close process, you can calculate the periodic unit price and mark it as the future planned price with a validity date. I’ll describe the process of how you can release this future planned price as a standard price for all materials that have price determination 3 and price control S.
To enable the release of planned prices as the standard price, you must meet these two prerequisites:
- The status of the material in the material ledger for the current (new) period is Period Opened / Price change complete. Once the system sets the status of the material to Quantities and Values Entered, the material is locked for the planned price change.
- The closing entries for the previous period’s material price determination have not yet been made. Note that when the closing entry of previous period is made, the system sets the status of the material in the material ledger for the new period to Quantities and Values Entered. As a result, you cannot release the price after posting the closing entries of the previous period.
Note
In the material ledger, the system maintains the period’s status of material based on what transactions or functions have been carried out on a material. Based on the material status, certain steps or functions are controlled. Some examples of period status maintained in the material ledger are:
- Period opened: The status is updated when the MMPV program is executed and no transactions have been done yet
- Price change completed: The valuation price of the material was changed in a period before any transactions are posted
- Quantities and values entered: The material transaction postings are done
Also, the status of material is changed for a previous period when every step of actual costing run is performed.
Next, I’ll explore two alternatives for sequencing the material ledger close process and enabling the release of the periodic unit price as the standard price.
- Alternative 1: Release the periodic unit price as the standard price with a one-period lag. Execute the actual costing steps of the prior period in the standard sequence as mentioned in the cockpit transaction. Mark prices for future valuation after executing the post-closing. In this option, the actual cost of a material is reflected as the standard price not immediately, but only after a one-month lag.
- Alternative 2: Release the periodic unit price as the standard price with no lag. With this alternative, you mark prices for future valuation before executing the post-closing step. The actual cost computed for a material by material ledger close processes is reflected as the standard price immediately in the subsequent period. However, this can happen only if no inventory transaction is booked for the material in the new period until the close process has been carried out.
I’ll go over each alternative in detail and review the pros and cons of each option.
Alternative 1: Release the Periodic Unit Price as the Standard Price with a One-Period Lag
In alternative 1, you can follow the sequence of steps as defined in SAP Financial Closing Cockpit to compute the periodic unit price, execute post closing, and then mark the periodic unit price as the future valuation price.
When a closing entry is posted, the material status changes to Quantities and Values Entered. Considering the two prerequisite conditions, the periodic unit price update as the standard price is possible only with a one-period lag. I will explain this process with an example.
For the purpose of illustration, consider the following data:
- The period for which the material ledger close has to be carried out: Period 6, June 2009
- The new period that is rolled forward in the material master: Period 7, July 2009
- The periodic unit price for period 5 (May 2009) has been updated as the future valuation price in the material master
Then follow this four-step sequence of the close process:
Step 1. Roll forward the materials management period to the new period (July 2009) using transaction MMPV on the last day of the period end
Step 2. Release the planned price (future price) as the standard price using transaction CKME. You need to do this before any first inventory transaction is carried out for a material. You can either execute it as a batch job immediately after transaction MMPV is carried out for a plant. Alternatively, the system updates the future price via dynamic price release immediately before the first transaction is carried out. I will explain the configuration of dynamic price release and its functionality in the next section.
Once the inventory transactions are posted, the status of the material in the material ledger is changed to Quantities and Values Entered and the price change cannot be done for the period.
Tip!
In rare scenarios, you can work around this price change constraint by following the instructions in SAP Note 555176. It explains how to change the standard price using transaction MR21 when the material ledger doesn’t allow it. For example, say the business is expecting a significant change of a business process, such as changing the material procurement strategy from internal sourcing to external sourcing. As a result the business wants to maintain a standard price manually and avoid price variances. Another example is if the business wants to overwrite the periodic unit price with a manual standard price.
Step 3. Execute the material ledger actual costing close process for the previous period (period 6, June 2009, in this example) for all materials in a plant. Execute the seven steps described earlier.
As mentioned earlier, you can execute these steps as a batch job executing relevant programs in the background and setting the dependency with the previous step completion.
Step 4. Mark the periodic unit price computed by the material ledger close of the previous period (period 6, June 2009) as the future planned price with the effective date valid from the start of next period (period 8, August 2009 in this example) using transaction CKMPRPN. The periodic unit price computed for June 2009 is updated as the standard price when the August period is rolled over.
From an accounting perspective, when I carry out the post-closing step of period 6 in 2009 in this example, the material ledger automatically posts the accounting entry for the stock revaluation based on the periodic unit price computed for the period. This is possible by the system setting price control indicator to V automatically and using the period unit price as the valuation price. This revaluation posting is automatically reversed in the next period because the next period is set with price control of S. Stock valuation should happen based on whatever standard price exist for material in the period.
For period 7 in 2009, material posting valuation is done based on the new standard price. As explained in step 2, the material will have a new standard price based on the May month actual cost.
SAP recommends this option because it ensures that all relevant period-end closing steps are performed for a material in the previous period and any value updating transactions in subsequent period for a material will be valuated based on the new standard price, which is equal to the actual cost with a period lag.
Alternative 2: Release the Periodic Unit Price as the Standard Price with No Lag
In this alternative, you can modify the sequence of steps as defined in SAP Financial Closing Cockpit to enable updating the periodic unit price as the standard price immediately. This means that after computing the periodic unit price, you mark the periodic unit price as the future valuation price, execute the release of the future price as the standard price immediately, and then carry out the post-closing step of the material ledger.
I’ll use the same example as in alternative 1. This sequencing has five steps:
Step 1. Roll the materials management period forward to the new period (July 2009) using transaction MMPV on the last day of the period end.
Step 2. Execute the material ledger actual costing close process for the previous period (period 6, June 2009, in this example) for all materials in a plant. Execute these steps:
- Create costing run
- Perform selection
- Determine sequence
- Determine single-level and multi-level price
- Revaluate consumption
In this option, you do not yet carry out the post-closing step.
Step 3. Mark the periodic unit price computed by the material ledger close of the previous period (period 6, June 2009) as the future planned price with effective date valid from start of the current period (period 7, July 2009 in this example) using transaction CKMPRPN.
Step 4. Release the periodic unit price (future price) as the standard price using transaction CKME. SAP ERP allows you to release the planned price as the standard price only before any inventory transaction is carried out for a material.
In this alternative, it is a big assumption that no inventory postings will be carried out for a material until the material ledger close is done and the periodic unit price is computed. Considering that the material ledger close process is executed only on day 1 or day 2 after month-end close, it is practically impossible to have a scenario that does not having any inventory postings until then.
If any postings happened before this step is carried out for a material, transaction CKME cannot update standard price for the material in the new period and gives an error in execution. This limitation or failure to release the periodic unit price (future planned price) as standard price for the material in certain scenarios in this option results in an incomplete period-end closing process for some materials, which leads to inconsistency in the system. The system might give errors when you carry out period-end close process in subsequent period. SAP Note 361236 explains the possible issues that you might face and provides recommendations to overcome the technical issues.
Step 5. When the execution of transaction CKME is complete, execute the post-material ledger closing for the previous period.
This alternative does not guarantee that all materials in a plant are a new standard price based on the periodic unit price of the previous period. Changing the standard price happens if no value-updating transactions are performed for a material in a period until the material ledger close is done. This alternative is feasible only for those enterprises that can ensure user lockout during the period-end close for quite a long time.
For manufacturing business enterprises that have continuous inventory transactions and continuous production confirmation bookings, this option is really not feasible.
Dynamic Price Release Concept
In the previous section, I discussed the concept of the dynamic price release as a part of the release of the future planned price as the standard price.
You can set dynamic price release in your SAP system at a plant level in transaction SPRO by following menu path Controlling > Product Cost Controlling > Actual Costing / Material Ledger > Configure Dynamic Price Changes (Figure 7).

Figure 7
Dynamic release of planned price
If I configure dynamic price release change for plants, then the system automatically releases the future planned price as the standard price when the first movement is posted for a material. The price released is the marked future price valid on that date. However, if no movement happens for a particular material in a period, then dynamic price release cannot happen. FI must manually release the price for these materials before the next period-end close or execute transaction CKME in batch to clear up any such cases when SAP ERP does not release them automatically.
Note
Several steps in the material ledger close processes are related to the execution of SAP Financial Closing Cockpit transaction CKMLCP. In this transaction, the material ledger close is always executed at a plant level for all the materials. However, if the material ledger close has to be done at a material level in a plant, then you can carry it out using these transactions separately.
- Determine material prices (transaction CKMH)
- Post closing entries (transaction CKMI). This can only be executed after the new period has been opened in the material master module.
- Mark material prices (transaction CKMPRP)
Valuating at Actual Cost
Many global companies require that material inventory value and cost of goods sold be valuated at actual cost. From a global consolidation and internal management reporting perspective, you also need to provide inventory values in two currencies: the company code currency and the group currency.
In standard SAP ERP, you can set the standard price of a material by using costing transaction CK40N. You can also update the standard price for a material by using transaction MR21. If a material is valuated using the standard price, all inventory transactions are booked at the same cost. If goods movements or invoice receipts contain a price that differs from the standard price, the differences are posted to a price difference account. The variance is not taken into account in valuation.
Actual costing considers all goods movements within a period for valuation at the standard price. At the same time, all price and exchange rate differences for the material are collected in the material ledger. At the end of the period, an actual price is calculated for each material based on the actual costs of the particular period.
Key Terms Used in the Material Ledger
Here are some key concepts in the material ledger used in this article.
Periodic Unit Price
The periodic unit price is the price that changes within a period as a result of goods movements and invoice entries. You can use this price to valuate a material at the end of a period after the material ledger closing entry is done. You calculate the periodic unit price by dividing the material value by the quantity of that material in inventory. The price is recalculated when steps such as single-level or multi-level material price determination are performed as a part of the material ledger close process.
Price Determination in the Material Master
Material price determination as a parameter is maintained in the accounting 1 view of the material master if the material ledger is active for the plant. The field can have two values:
- Indicator 2: Transaction-based. If a material is set in a plant with indicator 2 as the price determination, the SAP system does not compute the periodic unit price during the material ledger closing process. Based on material movements performed for a material in a period, the system computes the value of the moving average price. There is no need for inventory revaluation based on this value.
- Indicator 3: Single/Multi-level. If a material is set in a plant with indicator 3 as the price determination, actual costing becomes more relevant. The value is updated in the material master and you can use it to valuate inventory of the material in the closed period.
In the configuration to activate the material ledger for the valuation area (transaction OMX1), you can specify what type of material price determination is proposed when creating a material in that valuation area (Figure A).

Figure A
Set the value of material price determination for the valuation area
Transaction CKM3 provides a detailed analysis of movements for a material in a period. The transactions are grouped under two heads: Receipts and Consumption. In each of these groupings, you can subgroup movements under different process categories. Material price analysis for a material is shown in
Figure B.
Procurement from purchase order | 101 movement | Single-level | Procurement from subcontracting | 101 movement | Multi-level | Procurement or goods receipt from production (production order or product cost collectors [PCCs]) | 101 against production order or 131 movement against PCC | Multi-level | Procurement as stock transfer – UB stock transport order | 641 movement | Multi-level | Procurement from intercompany stock transport order (NB) | 101 movement | Single-level | Consumption against cost center or internal order, or cost objects such as work breakdown structure (WBS) element | 201 movement | Single-level | Consumption for production (production order or PCCs) | 261 movement | Multi-level | Consumption for subcontracting purchase order | 543 movement | Multi-level | Post goods issue on a sales order or against intercompany stock transport order | 601 movement or 643 movement | Single-level | Goods issue for stock transfer (UB) and stock transport order | 641 movement | Multi-level | | Table A | Classify business transactions with single- or multi-level price determination | |

Figure B
Material price analysis and display of process categories
Muralidharan Sethuraman
Muralidharan Sethuraman is director enterprise ERP IT finance at Johnson Controls. He has more than 16 years of industry experience leading and managing multiple SAP implementation and business transformation programs across geographies. Muralidharan is currently leading the SAP S/4HANA program at Johnson Controls. He specializes in SAP Financials and has done design lead, solution architect roles in global SAP implementation programs. Muralidharan is a subject matter expert in the areas of product cost analysis and management, inventory and working capital management, management reporting and profitability analysis, financial analytics and reporting, and business planning. He has published multiple articles in Financials Expert in these areas.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.