Cost Component Split (CCS) is one of the most powerful features in SAP Actual Costing and also the one that generates the most questions.
After running CKMLCP, you may wonder: where exactly do those numbers in the Periodic Unit Price breakdown come from? why does my Direct Material component show a negative value in order settlement? And why is there variable cost on a component in the actual result?
This blog walks through the full CCS lifecycle using a concrete example, from configuration to CKMLCP settlement, so you can trace every value back to its origin.
Master Data: Material Standard Cost Estimates and Activity Type
Raw Material RM124
RM124 is an externally procured material. Its standard cost is 0.35 EUR/PC and entirely falls into component 101 Direct Material (100% variable). This is the CCS template that will be applied when RM124 is received from a purchase order.
Semi-Finished Material SG124_MA06
SG124_MA06 is a manufactured material with standard price 0.89 EUR/PC (88.51 EUR / 100 PC lot). Its BOM and routing drive a richer CCS as below:
The costing structure shows:
- RM124 (100 PC × 0.35 = 35.00) maps to 101 Direct Material via cost element 51100000
- Activity types 3, 1, 11 at cost center 10101301 map to Personnel/Machine/Set-Up Time
- Material Overhead (94111000) and Production Overhead (94112000)
In the Itemization view of SG124_MA06, the cost elements are derived by the system. For example:
- For a BOM component like RM124, CK11N simulates the goods issue using account GBB/VBR (consumption account for production):
- Automatic Account Determination (SSCUI 100297) resolves GBB/VBR + RM124's valuation class to G/L account 51100000.
- Define Cost Component Structure (SSCUI 102427) then maps 51100000 to cost component 101 Direct Material. See section 2. Configuration: Define Cost Component Structure (SSCUI 102427).
- For activity types, the cost element (e.g. 94311000 for activity type 11) is defined directly on the activity type master data and does not go through account determination. See below for more info.
Activity Type Master Data
Taking activity type 11 (Personnel Hours) as an example, in its master data, allocation cost element 94311000 is specified for transferring cost of labor from a cost center to a production order when confirming personnel hours, e.g. in CO11N (Confirm Production Order Operation).
The Actual Price Indicator = 5 means the activity type uses an actual cost rate determined at period end. During the period, confirmations post at the planned rate; at period end, CKMLCP revalues them using the actual rate, generating a price difference that rolls up into the manufactured material's CCS.
Configuration: Define Cost Component Structure (SSCUI 102427)
Define Cost Component Structure (SSCUI 102427) is where you set up cost components and map cost elements (G/L accounts) to them. The same structure is used for both standard cost estimates and Actual Costing.
The structure Y1 used in our example defines the following components:
Cost Element to Component Mapping
Each cost component maps to one or more cost element intervals. As you can see:
- Cost elements 51100000 ~ 54400000 covering material consumption postings are all mapped to component 101 (Direct Material). This includes cost element 51100000 used when issuing RM124 to a production order discussed earlier.
- The allocation cost element 94311000 of activity type 11 (Personnel Hours) is mapped to component 201 (Personnel Time).
Important Component Attributes
- For “Inventory Valuation Relevant”, when set to Relevant, the component's value contributes to inventory valuation and is included in the PUP calculation. When set to Not Relevant (e.g. Sales and Administration Costs), the component is shown in cost reports but does not affect the revaluation in Actual Costing.
- “Roll up Cost Component” means costs roll up to the next higher costing level, e.g. from personnel costs to the manufactured material's CCS.
Goods Movements and Order Settlement
Every goods movement, e.g. a purchase order GR, a GI to a production order, a GR from a production order, writes a row to MLDOCCCS, using the standard price proportions from the cost component structure as the template.
Purchase of RM124
In period 7/2026, 100 PC of RM124 were received against purchase order 4500000060/10. The GR posted at the standard price of 0.35 EUR/PC, as seen in Material Price Analysis (CKM3N) :
At the time of the GR, MLDOCCCS is written at 100% Direct Material (component 101) with the following:
- Preliminary value split = 35.00 EUR for 100 PC.
- Price difference of -22.25 EUR (price lower than standard)
- Exchange rate difference of +1.54 EUR
Production Order Settlement
When production order is completed and settled, as shown in the Order Cost Details – Event-Based app, order 1000922 accumulates actual costs across three debit transaction types:
- Confirmations (Activity)
The three confirmation lines correspond to activity types 1 (Machine), 3 (Set-Up), and 11 (Personnel Hours) at cost center 10101301. As shown previously, cost element 94311000, the allocation cost element of activity type 11, maps to component 201 (Personnel Time) via SSCUI 102427.
- Goods Issues (Component Consumption)
40 PC of RM124 were issued to the production order at the standard price of 0.35 EUR/PC = 14.00 EUR. Cost element 51100000 maps to 101 Direct Material. At the time of the GI, MLDOCCCS for RM124 is updated with a consumption row at 100% Direct Material.
- Overhead Absorption
Overhead keys absorb indirect costs onto the order. Cost element 94111000 maps to Material Overhead (109); 94112000 maps to Production Overhead (209).
The Goods Receipt credits the order at standard price when finished goods are received into stock, reducing the order balance:
- Goods Receipt (Production Output)
50 PC of SG124_MA06 are received into stock. The GR credits the production order at standard price 0.89 EUR/PC = 44.50 EUR (account 55100000, determined by transaction key GBB/AUF of movement type 101). At the time of the GR, MLDOCCCS for SG124_MA06 is written using the standard cost proportions from the CK13N estimate (costing lot size 100 PC, total 88.51 EUR): each component's share of 88.51 EUR is scaled to the 44.50 EUR GR valu, e.g. 101 Direct Material = 35.00/88.51 × 44.50 = 17.59 EUR. The full split: 101 Direct Material 17.59, 109 Mat.Ovhd 1.23, 201 Personnel 9.24, 202 Machine 2.08, 203 Set-Up 12.02, 209 Prod.Ovhd 2.34 (all EUR, total 44.50).
Order settlement: Debits (34.40 + 14.00 + 4.42 = 52.82) minus GR credit 44.50 = +8.32 EUR remaining on the order. This is the variance on production order 1000922 (8.32 EUR) settles to SG124_MA06, creating a price difference visible in CKM3N.
How the Order Settlement CCS Is Calculated
The 8.32 EUR remaining balance on order 1000922 settles to SG124_MA06. The CCS split of this settlement amount is simply the difference between actual debits and GR credit, calculated component by component.
Each debit posted to the order carries a cost element, which is mapped to a CCS component:
- GI of RM124 (51100000): 14.00 EUR → component 101 Direct Material
- Activity type 1 Machine (94301000): 4.13 EUR → component 202 Machine Time
- Activity type 3 Set-Up (94303000): 11.95 EUR → component 203 Set-Up Time
- Activity type 11 Personnel (94311000): 18.32 EUR → component 201 Personnel Time
- Overhead Material (94111000): 0.98 EUR → component 109 Material Overhead
- Overhead Production (94112000): 3.44 EUR → component 209 Production Overhead
The GR of 50 PC at standard price 0.89 EUR/PC = 44.50 EUR credits the order using the standard CCS proportions of SG124_MA06 (101: 17.59 EUR; 109: 1.23 EUR; 201: 9.24 EUR; 202: 2.08 EUR; 203: 12.02 EUR; 209: 2.34 EUR).
The settlement CCS is then debits minus GR credit per component:
Component | Debits (EUR) | GR Credit (EUR) | Settlement (EUR) |
101 Direct Material | 14.00 | 17.59 | -3.59 |
109 Material Overhead | 0.98 | 1.23 | -0.25 |
201 Personnel Time | 18.32 | 9.24 | +9.08 |
202 Machine Time | 4.13 | 2.08 | +2.05 |
203 Set-Up Time | 11.95 | 12.02 | -0.07 |
209 Production Overhead | 3.44 | 2.34 | +1.10 |
Total | 52.82 | 44.50 | +8.32 |
This matches the CCS columns I highlighted in the blue box CKM3N. The negative values on Direct Material (-3.59 EUR) and Material Overhead (-0.25 EUR) are not errors. The settlement CCS is calculated as actual debits minus GR credit, component by component. For Direct Material, the GR already credited 17.59 EUR at standard, but only 14.00 EUR of actual input cost was posted so the settlement value is negative, meaning the standard GR overstated this component.
CKMLCP: Allocating Actual CCS to Consumption and Inventory
After posting all period transactions, CKMLCP runs the Actual Costing cycle. For SG124_MA06, this involves the following:
1. Actual cost differences from lower BOM/routing levels (input materials and activities) roll up into SG124_MA06's actual value. Taking activity 11 as an example:
The actual rate (36.73 EUR/H) is lower than the standard (55.01 EUR/H). CKMLCP uses this rate to revalue all activity confirmations on production orders from standard to actual. For order 1000922, the confirmation of 0.333 H at standard is 18.32 EUR (≈ 55.01 × 0.333). In addition, the revaluation price difference of -6.09 EUR is determined (≈ (36.73-55.01) × 0.333) and rolled up as a price difference into SG124_MA06, as seen from the CKM3N screen below:
2. All received differences and actual values together form the Cumulative Inventory row (60 PC, actual value 47.18 EUR, Periodic Unit Price 0.79 EUR/PC). The per-component actual CCS at the cumulative level sums to:
- 101 Direct Material 15.72 EUR,
- 109 Material Overhead 0.98 EUR,
- 201 Personnel 12.23 EUR,
- 202 Machine 12.24 EUR,
- 203 Set-Up 2.57 EUR,
- 209 Production Overhead 3.44 EUR.
3. Cumulative actual value is allocated to consumption and ending inventory in proportion to quantity. With 10 PC consumed and 50 PC in ending inventory out of 60 PC cumulative:
- Consumption (10/60 = 1/6): 47.18 × 1/6 = 7.86 EUR
- Ending Inventory (50/60 = 5/6): 47.18 × 5/6 = 39.32 EUR
4. The same ratios, i.e. 1/6 and 5/6 apply component by component, e.g. 101 Direct Material:
- Consumption: 15.72 × 1/6 = 2.62 EUR
- Ending inventory: 15.72 × 5/6 = 13.10 EUR
As you can see from CKM3N view, the system always enforces 2 consistency rules across every row and column:
- Row rule: for every row, the sum of all cost component values equals the Actual Value.
- Column rule: for every column, e.g. Actual Value and each CCS component, Beginning Inventory + Receipts = Cumulative Inventory = Consumption + Ending Inventory.
Why does a component show a small variable amount in the actual CCS when the standard cost estimate had zero variable planned?
When you compare the standard cost estimate (CK13N) with the actual PUP cost component split after CKMLCP, you may occasionally notice a small variable amount, e.g. -0.01 or +0.01 on a component that is configured as 100% fixed. This is a rounding artifact, not an error.
To understand why, consider how CKMLCP distributes cumulative inventory values to consumption and ending inventory. It calculates the total value and the fixed value of each cost component using two different quantity-proportion methods:
- Cumulative method: The total value is calculated cumulatively across all rows. The system accumulates a running total and scales it once, ensuring the column sum is always exact.
- Row-by-row method: The fixed value is calculated row by row, i.e. each row is scaled independently.
Take an example:
Cumul. qty ratio | Cumulative method (TOT) | TOT | Row-by-row method (FIX) | FIX | Variable | |
Cumulative inventory | 11 KG | 9.00 EUR (source pool) | 9.00 | 9.00 EUR (source pool) | 9.00 | / |
Ending inventory | 5/11 | (9+9) × 5/11 − 4.09 = 4.09 | 4.09 | 9 × 5/11 = 4.09 | 4.09 | 0.00 |
Consumption for production | 8/11 | (9+9) × 8/11 − 10.64 = 2.45 | 2.45 | 9 × 8/11 − 4.09 = 2.46 | 2.46 | -0.01 |
Consumption for cost center | 11/11 | (9+9) × 11/11 − 15.54 = 2.46 | 2.46 | 9 × 11/11 − 6.55 = 2.45 | 2.45 | +0.01 |
Column total | 9.0 | 9.00 | 0.00 |
Both methods use the same quantity proportion, but because they apply it at different points, they can produce a result that differs by one cent on a given row. Since variable is derived as total minus fixed, this one-cent difference shows up as a small non-zero variable, even though no variable cost was planned for that component.
Note: These ±0.01 amounts have no impact on FI postings, the PUP, or your inventory balance.
Actual Price (PUP) CCS Result for SG124_MA06 After CKMLCP
After CKMLCP settlement, SG124_MA06's actual PUP = 0.79 EUR/PC is determined (= cumulative actual value 47.18 EUR /cumulative quantity 60 PC).
The PUP CCS (visible in the ‘Cost Components for Price' view with Type of Price: Periodic Unit Price, base quantity 100 PC) is derived the same way: each component's cumulative actual CCS value is divided by cumulative quantity and scaled to the costing lot size of 100 PC. For example, 101 Direct Material: 15.72 EUR (60 PC) ÷ 60 × 100 = 26.32 EUR per 100 PC. The full result per 100 PC:
- 101 Direct Material 26.32,
- 109 Mat. Overhead 1.64,
- 201 Personnel 20.48,
- 202 Machine 20.50,
- 203 Set-Up 4.30,
- 209 Prod. Overhead 5.76
(total 79.00 EUR = 0.79 EUR/PC).
Compared with the standard price CCS below:
- Direct Material (101) is lower than standard (26.32 vs 35.20): This is partially because raw material RM124's actual price was lower than standard (PUP 0.14 vs std 0.35), and this flows into SG124_MA06 via multilevel price determination.
- Personnel Time (201) is higher than standard: This is due to more personnel hours were spent (actual 0.333 H vs planned 0.168 H) as seen from Production Order Settlement although actual cost rate (36.73 EUR/H) is lower than planned (55.01 EUR/H).
Summary: The CCS Lifecycle
Putting it all together, here is when each CCS value is written and what drives it:
Step | Transaction / Event | What Drives the CCS Value |
1 | GR from Purchase Order (RM124) | Standard CCS of RM124 (100% Direct Material) |
2 | GI to Production Order | Proportional to RM124's current PUP CCS |
3 | GR from Production Order (SG124_MA06) | Standard CCS of SG124_MA06, scaled to GR value |
4 | Order settlement (SG124_MA06) | Actual debits minus GR credit, component by component |
5 | CKMLCP single-level (RM124 price diff) | Price differences distributed across components proportionally |
6 | CKMLCP multilevel | RM124's actual CCS rolled up into SG124_MA06 |
7 | CKMLCP allocation to consumption (SG124_MA06 GI) and ending inventory | Proportional to quantity ratio |
Conclusion
Cost Component Split in SAP S/4HANA Actual Costing is not a black box, every value has a clear origin in either the cost component structure configuration, the standard cost estimate, or the actual costs posted through goods movements and production activities. Understanding these origins enables us to explain why a particular component value differs between standard and actual, and which business event drove the change.
Related Resources
Actual Costing in SAP S/4HANA Cloud Public Edition
Introducing Bulk Analysis and Export for SAP Actual Costing
Source link

