--- alias: user-guide-material-costing description: "This documentation outlines the system’s method for tracking material costs through absorption, incorporating time and quantity variations, and managing material" --- # Material Costing ## Overview Critical Manufacturing provides a mechanism to keep track of the current Material cost using the Cost Absorption method. Costs are incurred whenever a Material is processed at a step or incorporates other Materials. The following picture illustrates the objects in the system which support costing. ![Material Costing][materialCosting] !!! info Cost Absorption factors are used to add cost to Materials in runtime. Cost Forecast factors are used to forecast a Material or standard Product cost. ## Cost Absorption The following list describes in detail the mechanism used to keep track of the Material Cost: 1. Costs are only applied to the Material primary quantity 2. When a material is created, the standard product initial cost is used. The material will be valued at that product initial cost. 3. Time variable costs (Step, Resource and Labor) are incurred proportionally for every unit. 4. For incorporating time based costs, only the time between TrackIn and Abort as well as TrackIn and TrackOut will be considered. 5. The fixed and unit costs will be incurred only at TrackOut. 6. For Abort Material, time costs and unit costs are incorporated, but not fixed costs. 7. Fixed and unit costs are incurred at TrackOut for non pass-through Steps and at MoveNext, SpecialMoveNext and Rework for pass-through Steps. 8. For labor costs, the system considers the rate and time worked by every Employee that was (or has) Checked-In for any time when the Material was processing. It also includes any Calendar Day overtime as well as any Shift overtime. In case that more than one Material is In-Process at the Resource, costs are distributed in a quantity proportional manner. Note that pass-through steps will not use this information because it's not possible to determine correctly the processing time. 9. Because Employees can Check-in into and Check-out from the Resource at any time, every time an Employee checks-in or checks-out from a Resource with Materials InProcess, the labor costs are calculated and distributed at that time. For that reason, each Resource stores the date and time when the costs were calculated the last time. Also, because there may be already Materials InProcess when performing a Track-In, the labor costs are calculated and distributed for the Materials which are already InProcess. In every case, the labor costs are distributed in a quantity proportional manner. 10. In case that one Employee is checked-in at more than one Resource, costs are distributed proportionally to the quantity of the Materials InProcess at those Resources. 11. Pass-through steps do not incur in variable time costs, only variable units and fixed costs. For pass-through steps, these costs are incurred at MoveNext/SpecialMoveNext. 12. If a Material has SubMaterials and SubMaterial tracking is enabled, cost is nevertheless only incurred when the TopMost Material performs the TrackOut. For performance reasons, the cost will only be incorporated in the SubMaterials when the step of the Material changes. Meanwhile, the SubMaterials cost will be stored in an internal Material property called `SubMaterialsDeferredCost`. While these costs are not distributed, they are also added to the TopMostMaterial cost so that at any time, the total costs are reflected correctly. 13. Merges, combines, assembles, etc. add the cost of the incorporated source materials in the target material. 14. Splits, expands, etc. will work by distributing the costs proportionally to the quantity of the new materials. 15. Losses and Bonuses do not affect the Material cost (as a whole) although the Material unit costs will be changed proportionally to the new quantities. 16. Unit-of-conversion changes - costs are transferred one-to-one and remain unchanged (of course the material unit cost will be changed). 17. Change Material Quantity, Change Material Product and Change Material Flow and Step do not change the Material cost. 18. The transaction Change Material Cost can be used to adjust manually the cost for a Material. ## Material Cost Transactions The section below describes the different Material transactions that affect the Cost, `SubMaterialsCost` and `SubMaterialsDeferredCost` properties of the Material. | Transaction | Cost | SubMaterials Cost | SubMaterials Deferred Cost | | ----- | --- | -- | -- | | • **Create / Clone Material** | Set with `Product Initial Cost x Material Primary Quantity` | Set with zero | Set with zero | | • **Change Material Cost** | Set with the defined Cost (note that it must be greater than the `SubMaterialsDeferredCost`) | Unchanged | Unchanged | | • **Abort Material** | Costs are calculated as:
`Time Variable Costs = (AbortTime - TrackInTime in hours) x (StepCostPerHour + ResourceCostPerHour) + LaborCost`
+
`Unit Variable Costs = (StepCostPerUnit + ResourceCostPerUnit) x Material.TrackInPrimaryQuantity`

and then distributed (added) proportionally for each Material in the Material hierarchy according its current Quantity

:information_source: `LaborCost` takes into account all Employees which were Checked-In at the time of the Material Track-In or checked-in before the Material Track-Out | Refer to the calculation on the column "Cost" at the left.
`SubMaterialsCost` is increased by the Costs proportional to `SubMaterialsPrimaryQuantity` in relation to (`PrimaryQuantity` + `SubMaterialsPrimaryQuantity`) as it's distributed (added) across the Material hierarchy | Unchanged | | • **TrackIn Material** (for TopMost **Material**) | Labor Costs for other Materials in Process at the Resource are calculated until the current time and distributed in a quantity proportional manner. | Unchanged | Labor Costs for other Materials in Process at the Resource are calculated until the current time and distributed in a quantity proportional manner. | | • **TrackIn Material** (for non-TopMost **Material**) | Unchanged | Unchanged | Unchanged | | • **Resource Check-In** | Labor Costs for Materials in Process at the Resource are calculated until the current time and distributed in a quantity proportional manner. | Unchanged | Labor Costs for Materials in Process at the Resource are calculated until the current time and distributed in a quantity proportional manner. | | • **Resource Check-Out** | Labor Costs for Materials in Process at the Resource are calculated until the current time and distributed in a quantity proportional manner. | Unchanged | Labor Costs for Materials in Process at the Resource are calculated until the current time and distributed in a quantity proportional manner. | | • **TrackOut Material** (for TopMost **Material**) | Costs are calculated as:
`Time Variable Costs = (TrackOutTime - TrackInTime in hours) x (StepCostPerHour + ResourceCostPerHour ) + LaborCost`
+
`Unit Variable Costs = (StepCostPerUnit + ResourceCostPerUnit) x Material.TrackInPrimaryQuantity`
+
`Fixed Costs = (StepFixedCosts + ResourceFixedCosts)`

and then it's added to the Material Cost

:information_source: `LaborCost` takes into account all Employees which were Checked-In at the time of the Material Track-In or checked-in before the Material Track-Out | Unchanged
For performance reasons, the costs are effectively distributed only when the step of the Material changes. | Refer to the calculation on the column "Cost" at the left
`SubMaterialsDeferredCost` is set with the Costs proportional to `SubMaterialsPrimaryQuantity` in relation to (Material.`PrimaryQuantity` + Material.`SubMaterialsPrimaryQuantity`) so that it can be distributed later across the Material hierarchy | | • **TrackOut Material** (for non-TopMost **Material**) | Unchanged
Costs are distributed (added) only when the Material Step changes or when a Ship transaction occurs | Unchanged | Unchanged (it's zero) | | • **Material MoveNext** (if **Step** is Pass-Through) | Costs are calculated as:
`Unit Variable Costs = StepCostPerUnit x Material.TrackInPrimaryQuantity`
+
`Fixed Costs = StepFixedCosts`

and then distributed (added) proportionally for each Material in the Material hierarchy according its current Quantity

:information_source: `LaborCost` is taken from the user that performed the Abort | Refer to the calculation on the column "Cost" at the left.
`SubMaterialsCost` is increased by the Costs proportional to `SubMaterialsPrimaryQuantity` in relation to (`PrimaryQuantity` + `SubMaterialsPrimaryQuantity`) as it's distributed (added) across the Material hierarchy. | Unchanged | | • **Material MoveNext**

• **Special Material MoveNext**

• **Rework Material**

• **Receive Material**

• **Change Material Flow/Step**

• **Ship Material** (local **Facility**)
(for TopMost **Material**) | Decreased by the `SubMaterialsDeferredCost` as it will be distributed (added) to the SubMaterials | Added in the amount of `SubMaterialsDeferredCost` | Set with zero | | • **Material MoveNext**

• **Special Material MoveNext**

• **Rework Material**

• **Receive Material**

• **Change Material Flow/Step**

• **Ship Material** (local **Facility**)
(for non-TopMost **Material**) | Increased in the `SubMaterialsDeferredCost` proportion of the Material `PrimaryQuantity` in relation to the TopMost Material `SubMaterialsPrimaryQuantity` | Increased in the `SubMaterialsDeferredCost` proportion of the Material `SubMaterialsPrimaryQuantity` in relation to the TopMost Material `SubMaterialsPrimaryQuantity` | Unchanged (it's zero) | | • **Split Material** | • *Main Material*:
Decreased proportionally to the Child Material `PrimaryQuantity` in relation with the original Material.`PrimaryQuantity`

• *Child Material:*
Set proportionally to the Child Material `PrimaryQuantity` in relation with the original Material.`PrimaryQuantity` | • *Main Material*:
Decreased proportionally to the Child Material SubMaterials PrimaryQuantity in relation with the original Material `SubMaterialsPrimaryQuantity`

• *Child Material:*
Set proportionally to the Child Material SubMaterials `PrimaryQuantity` in relation with the original Material `SubMaterialsPrimaryQuantity` | • *Main Material*:
If Main Material is TopMost, it's decreased proportionally to the Child Material SubMaterials `PrimaryQuantity` in relation with the original Material `SubMaterialsPrimaryQuantity`; otherwise it's unchanged

• *Child Material:*
If Main Materials is TopMost, it's set proportionally to the Child Material SubMaterials PrimaryQuantity in relation with the original Material `SubMaterialsPrimaryQuantity`; otherwise it's set with zero | | • **Merge Material** | • *Main Material*:
Increased by the Child Material Cost

• *Child Material:*
Set with zero | • *Main Material*:
Increased by the Child Material `SubMaterialsCost`

• *Child Material:*
Set with zero | • *Main Material*:
In case that the Main and Child Material belong to different Material hierarchies, if the TopMost of Main Material `SubMaterialsDeferredCost` > 0 then it's distributed proportionally to the Main Material Hierarchy so it will be zero after the merge; otherwise it will remain unchanged

• *Child Material:*
a) In case that the Main and Child Material belong to different Material hierarchies, if the TopMost of Child Material `SubMaterialsDeferredCost` > 0, then it's distributed proportionally to the Child Material Hierarchy
b) Set with zero | | • **Combine / Compose Material** | • *Source Material:*
a) The cost is decreased in proportion to the combined quantity in relation with the original Source Material quantity.
b) In case that the Source is not TopMost and the TopMost of Source has the property `SubMaterialsDeferredCost` > 0, the cost is further decreased by the `SubMaterialsDeferredCost` in proportion to the combine quantity in relation to the TopMost of Source SubMaterialsQuantity


• *Target Material:*
a) If TopMost of TargetMaterial `SubMaterialsDeferredCost` > 0 then it's distributed proportionally to the Target Material Hierarchy
b) Increased by the Cost calculated above for the Source Material | • *Source Material:*
Unchanged

• *Target Material:*
Unchanged | • *Source Material:*
Reduced by the item b) in column Cost at the left for the Source Material

• *Target Material:*
If TopMost of TargetMaterial `SubMaterialsDeferredCost` > 0 then it's distributed proportionally to the Target Material Hierarchy; otherwise unchanged | | • **Assemble Material**

• **Disassemble Material**

• **Replace Assembled Material** | • *Source Material:*
Decreased in proportion of the assembled quantity in relation to the Material `PrimaryQuantity`

• *Target Material:*
Increased by the source material assembled quantity cost | • *Source Material:*
Unchanged

• *Target Material:*
Unchanged | • *Target Material:*
Unchanged

• *Target Material:*
Unchanged | | • **Attach Material** | • *Parent Material:*
In case that the TopMost of Parent Material has the property `SubMaterialsDeferredCost` > 0 then it's distributed proportionally to the Parent Material Hierarchy; otherwise it remains unchanged

• *Child Material:*
In case that the Child Material has the property `SubMaterialsDeferredCost` >0 the `SubMaterialsDeferredCost` is distributed proportionally to the Child Material Hierarchy; otherwise it remains unchanged
| • *Parent Material:*
Increased by the Child Material Cost (refer to the column Cost at the left for its calculation)

• *Child Material:*
Unchanged
| • *Parent Material:*
In case that the TopMost of Parent Material has the property `SubMaterialsDeferredCost` > 0 then it's distributed proportionally to the Material Hierarchy and will be set with zero; otherwise it remains unchanged

• *Child Material:*
a) In case that the Child Material has the property `SubMaterialsDeferredCost` > 0 the `SubMaterialsDeferredCost` is distributed proportionally to the Child Material Hierarchy
b) Set with zero | | • **Detach Material** | • *Parent Material:*
Unchanged

• *Child Material:*
In case that the TopMost of Parent Material has the property `SubMaterialsDeferredCost` > 0 the `SubMaterialsDeferredCost` is distributed proportionally to the Child Material `PrimaryQuantity`; otherwise unchanged
| • *Parent Material:*
a) Decreased by the Child Material Cost (refer to the column Cost at the left for its calculation)
b) Decreased by the Cost of the Child Material

• *Child Material:*
Unchanged | • *Parent Material:*
In case that the Parent Material has the property `SubMaterialsDeferredCost` > 0 then it's decreased proportionally to the Child Material `PrimaryQuantity`; otherwise it remains unchanged

• *Child Material:*
Remains unchanged (must be zero) | | • **Expand Material** | • *Main Material*:
In case that the TopMost of Main Material has the property `SubMaterialsDeferredCost` > 0 then it's distributed proportionally to the Main Material Hierarchy; otherwise it remains unchanged

• *Sub Material:*
Set proportionally to the SubMaterial Quantity | • *Main Material*:
Increased by the SubMaterial Cost (refer to the column Cost at the left for its calculation)

• *Sub Material:*
Set with zero | • *Main Material*:
Unchanged

• *Sub Material:*
Unchanged | | • **Collapse Material** | • *Main Material*:
If MainMaterial Is`SubMaterialsDeferredCost` > 0 then the `SubMaterialsDeferredCost` is distributed proportionally to the the Main Material Hierarchy
The cost is increased by the SubMaterial Cost plus SubMaterial SubMaterials Cost

• *Sub Material:*
Set with zero | • *Main Material*:
Decreased by the SubMaterial Cost plus SubMaterial SubMaterials Cost

• *Sub Material:*
Set with zero | • *Main Material*:
If MainMaterial Is`SubMaterialsDeferredCost` > 0 then the `SubMaterialsDeferredCost` is distributed proportionally to the the Main Material Hierarchy; otherwise it remains unchanged

• Sub Material:
Unchanged | | • **Transfer SubMaterial** | • *Old ParentMaterial:*
Unchanged

• *Sub Material:*
If TopMost of Old ParentMaterial `SubMaterialsDeferredCost` > 0 then the `SubMaterialsDeferredCost` is distributed proportionally to the the Old Parent Material Hierarchy; otherwise it remains unchanged

• *New ParentMaterial:*
Unchanged | • *Old ParentMaterial:*
Decreased by the SubMaterial Cost (refer to the column Cost at the left for its calculation)

• *Sub Material:*
If TopMost of Old ParentMaterial `SubMaterialsDeferredCost` > 0 then the `SubMaterialsDeferredCost` is distributed proportionally to the the Old Parent Material Hierarchy; otherwise it remains unchanged

• *New ParentMaterial:*
Increased by the SubMaterial Cost (refer to the column Cost at the left for its calculation) | • *Old ParentMaterial:*
If TopMost of Old ParentMaterial `SubMaterialsDeferredCost` > 0 then the `SubMaterialsDeferredCost` is distributed proportionally to the the Old Parent Material Hierarchy; otherwise it remains unchanged

• *Sub Material:*
Unchanged (must be zero)

• *New ParentMaterial:*
If TopMost of New ParentMaterial `SubMaterialsDeferredCost` > 0 then the `SubMaterialsDeferredCost` is distributed proportionally to the the New Parent Material Hierarchy; otherwise it remains unchanged | | • **Ship Material** (remote **Facility**) | Set with zero | Set with zero | Set with zero | Table: Material Cost Transactions [materialCosting]: ../../images/materialCosting.png