Actual Costing – Revaluation of Consumption in SAP S/4HANA
The idea of this blog post is to explain some of the situations vs. solutions I came across while using Revaluation of Consumption on the original account assignment. Below are the questions I will try to answer:
What is the use of Movement Type Group in Material Ledger?
How you can do a revaluation of consumption on original account for Returns if you already have a Movement Type Group Returns, assigned to the movement type?
How the revaluation on the original account should work for cross-company (intercompany) stock in transit movements?
The impact Revaluation of Consumption on the original account is having over CKMLCP Performance in SAP S/4HANA?
Revaluation of Consumption Prerequisites: ML + Actual Costing active.
With Revaluation of Consumption functionality, you can adjust the single-level consumption values in actual costing with the periodic unit price in all value records, if the Revaluation of Consumption step is run during ML closing (CKMLCP – Post Closing step).The price differences assigned to the category Consumption are distributed to the individual consumption alternatives in proportion to quantities consumed. Distribution only occurs for single-level consumption alternatives, as multilevel consumption has already been revaluated by multilevel material price determination.
Revaluation of Consumption can be performed on Collective (COC) and on Original Account Assignment (FI&CO).
Revaluation on collective account – for all consumption alternatives not marked as relevant for revaluation, the revaluation amounts determined are posted to a collective account during closing entry. The collective account must be stored in the customizing of the account determination, transaction OBYC, for transaction key COC.Revaluation on original account assignment: the original account assignment objects (the FI account posted on goods issue) are updated as key features of the consumption alternative. Price/exchange rate differences are posted to the same consumption account that was debited by the original goods issue.
To do this, you have to specify in customizing which movement types are relevant for revaluation. In this way, the amounts determined in Revaluation of Consumption can now be recalculated for these consumption alternatives of the original account assignment. As an option, you can additionally specify in customizing whether you also want to perform a recalculation in the CO account assignment.
You do that using Movement Type Group (MTG), which is a combination of movement types that are relevant to the material ledger update.
As mentioned, you have 2 options available, IMG – Controlling – Product Cost Controlling – Actual Costing/Material Ledger – Material Update – Define Movement Type Groups of Material Ledger:
- Revaluation of G/L account
- Revaluation of G/L account and CO Account Assignment
If you select option 1 or 2, the account assignment objects (G/L account and/ or CO account assignment) are stored as the consumption alternative key when consumption occurs for movement types that are assigned to these movement type groups. This allows the account assignment objects to be revaluated using actual costs at the end of the period.
After you have defined the MTG, you have to assign it to the movement types IMG – Controlling – Product Cost Controlling – Actual Costing/Material Ledger – Material Update – Assign Movement Type Groups of Material Ledger:Make sure you are assigning the correct single level movement types. As an orientation, I am proposing the following list, but you need to analyse which of the movement types make sense for you and if you use Z* movement types you need to consider those too.
To assign MTG to CO : 201, 202, 221, 222, 231, 232, 261, 262, 281, 282, 291, 292, 453, 454, 457, 458, 459, 460, 551, 552, 555, 556, 653, 654, 655, 656, 657, 658, 683, 684.
To assign MTG to FI only: 601, 602 (MTG CO can also be assigned to 601, 602, depends on how you want to do the revaluation)
Movement types like 241/242 (Asset) doesn’t allow Revaluation to Original Account, or for the 543 (GI Subcontracting = multilevel) the assignment will be ignored.
You need to make sure you have tested all movement types you are using.
The revaluation posting goes to the original CO account assignment, if:
- It has been stored in the consumption alternative, and
- the box ‘Set CO account assignment’ in the parameters of Post-Closing has been checked.
Otherwise, a CO account assignment is derived within Accounting Interface, e.g. from OKB9.
What is the use of Movement Type Group in ML?
Movement Type Groups are used to assign selected material movements to different categories.
As explained above, one of the Movement Type Group usages is Revaluation of Consumption on original account assignment.
Another good example is the returns from sales, which are being posted as receipts (ZU) in the price determination structure of the material ledger, affecting the price and generating an incorrect calculation of cumulative inventory (therefore periodic unit price).
As per the recommendation of SAP Note 575801 – Returns and inventories in material ledger, to move the returns into consumption (VN) you have to assign movement types to a specific Movement type Group defined for returns.
Define Movement Type Groups of Material Ledger (IMG path is mentioned above):
Assign Movement Type Groups of Material Ledger (IMG path is mentioned above):
In the ML Update Structure assign the Process Category `B+` and Movement Type Group` RT` to Category `VN`: IMG – Controlling – Product Cost Controlling – Actual Costing/Material Ledger – Material Update – Define Material Update Structure (table CKMLAB01Z)Movement types for returns: 453, 454, 457, 458, 653, 654, 655, 656, 657, 658, 701, 703, 707, 712, 718.
After this modification, the affected transactions are no longer posted as receipts but are posted as negative consumption in the material ledger, ensuring a correct calculation of actual price.
How you can do revaluation of consumption on original account for Returns if you already have a Movement Type Group for Returns, assigned to the movement type?
One of the questions I have asked myself, on my last project, was how to do Revaluation of Consumption on the original account for the Return movement types?
If I already have a Movement Type Group Return `RT` assigned to the movement type, I do not have the possibility to assign another Movement Type Group, defined for Revaluation of Consumption on original account assignment, to the same movement type.
- 601 has the MTG for Revaluation of Consumption on the Original Account assigned to it CF
- 657 has assigned the MTG for Returns RT
Because Movement Type Group `RT` is reassigning the Returns to `Consumption` category, both movement types are considered consumption and are assigned to category `VN`, with the difference that 601 has assigned to it the movement type group for Revaluation of Consumption.
What will happen during ML closing:
- 601 revaluation will be posted to original GL&CO assignment
- 657 will be revaluated on COC because we do not have the movement type group `CF` assigned to it.
In this case, the solution is simple, by assigning the MTG for Revaluation of Consumption `CF` the movement type is already directed to the Consumption `VN’ category. Therefore, the assignment of MTG for Returns `RT` should not be necessary for the movement types relevant for Revaluation of Consumption. The correct customizing will be to have Movement Type Group `CF` assigned to both movement types, including for returns:
How the revaluation on the original account should work for cross-company stock in transit (SIT) transfers?
In a cross-company-code or intra-company-code stock transfer, valuated stock in transit allows you to retain the quantity and value of a material that has already left the issuing plant but has not yet reached the receiving plant. Multiple scenarios are available for stock in transit, depending on how the ownership of the goods is being managed. Stock in transit transfers is also one prerequisite for transfer pricing using multiple valuations.
If the stock in transit movement types are not available for Revaluation of Consumption with movement types in Table T156Q see oss note 2154402 – SIT not available for Revaluation of Consumption2154402 – SIT not available for Revaluation of Consumption2154402 – SIT not available for Revaluation of Consumption
If you assign MTG for Revaluation of Consumption on original account for cross-company transfers, this will allow revaluating COGS account (+CO account assignment) in legal valuation.
For group valuation this has no impact, here the variances are rolled to the receiving material instead.
The impact Revaluation of Consumption on original account assignment is having over CKMLCP Performance in SAP S/4HANA
Here I am referring to Revaluation of Consumption postings done at Revaluation of G/L Account & CO Account Assignment.
While this setting gives detailed granularity of Revaluation of Consumption, posting at each account & CO object (profitability segment for example), there is also a downside, too many lines for consumption alternatives will get generated.
One example I have faced at one customer, ML closing selection count was 49.230 while ML settlement lines were over 4.5 mil entry, in one period. Because the original account assignment was the profitability segment PAOBJNR.
In case you are also using COGS split, each Revaluation of Consumption posting also adds an entry for actual COGS split. Each Revaluation of Consumption posting will further be split into many lines based on cost component detail.
Such a volume of settlement lines contributes to a long runtime during ML closing, especially when you are using Transfer Pricing and closing, for all valuation areas, needs to be performed in one run.
If you want to post Revaluation of Consumption on original consumption account, the configuration will be at the movement type level. A solution could be to have the option to do Revaluation of Consumption only for specific valuation areas/company codes (while leaving the rest at GL&CO level). As there is no such option of further lower-level configuration than at movement type, posting Revaluation of Consumption for problematic valuation areas at such detailed level, cannot be avoided.
What we did on the project, and it worked, was to use BAdI CKML_UPDATE and remove PAOBJNR while saving ML consumption alternative. Still, there is a PSG, but that is detailed just at the material and plant level. This can be limited to specific movement types, with a Z* table where you can maintain the limitation you want, in our case was company code, plant, material type, flag for clearing PSG.
E.g. For 10 postings of 601, the accounting will still have detailed PSG in the original posting. While storing that initial posting, the system clears detailed PSG and keeps the high-level PSG. This way, the Revaluation of Consumption gets posted on high-level, technically one entry per combination of material/plant/original account.
Be aware that the Profit Center is not derived anymore from the PAOBJNR. It will come from the material master instead.
The main reason for this enhancement is to reduce the number of settlement lines in MLRUNLIST table, with an expectation of quicker ML closing. In our case, the runtime has reduced significantly. Now it is running only 20% of what it used to run initially.
Below is an example of movement types consolidated into 1 settlement line instead of each consumption alternative (otherwise 16 lines in this example), after the implementation of the change.
I hope the information’s I have shared will be helpful.
Additional data for Revaluation of Consumption can be found on the links below:
Alina Cristina Vranceanu
SAP S/4HANA Regional Implementation Group