---
id: object/codeunit/99000758
type: object
title: Codeunit 99000758 "Mfg. Cost Calculation Mgt."
summary: Codeunit 99000758 "Mfg. Cost Calculation Mgt." in Base Application (Microsoft.Inventory.Costing). 24 public procedures, 29 events, 3 event subscribers. Introduced in BC26, still in BC30, changed in BC27, BC29.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: "26"
  last_changed: "29"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 2b7f395d09000adfeefa02ee06f17bd21f685ae53efbd7bace8429f9699ce354
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al
    title: src/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/11959
    - change/bcapps/10631
    - change/bcapps/10173
object_type: codeunit
object_id: 99000758
name: Mfg. Cost Calculation Mgt.
namespace: Microsoft.Inventory.Costing
app: Base Application
extends: null
first_version: "26"
last_version: "30"
present_in:
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "27"
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 59
  events: 29
  subscribers: 3
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 5
  called_by: 19
  implements: 0
---

# Codeunit 99000758 "Mfg. Cost Calculation Mgt."

> Codeunit 99000758 "Mfg. Cost Calculation Mgt." in Base Application (Microsoft.Inventory.Costing). 24 public procedures, 29 events, 3 event subscribers. Introduced in BC26, still in BC30, changed in BC27, BC29.

Base Application · Microsoft.Inventory.Costing · BC26-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Permissions | TableData "Item Ledger Entry" = r, TableData "Prod. Order Capacity Need" = r, TableData "Value Entry" = r |

## Events published

- `OnBeforeCalcRoutingCostPerUnit(Type: Enum Microsoft.Manufacturing.Capacity."Capacity Type"; var DirUnitCost: Decimal; var IndirCostPct: Decimal; var OvhdRate: Decimal; var UnitCost: Decimal; var UnitCostCalculation: Enum "Unit Cost Calculation Type"; WorkCenter: Record Microsoft.Manufacturing.WorkCenter."Work Center"; MachineCenter: Record Microsoft.Manufacturing.MachineCenter."Machine Center"; var IsHandled: Boolean)` (integration)
- `OnAfterCalcRoutingCostPerUnit(Type: Enum Microsoft.Manufacturing.Capacity."Capacity Type"; var DirUnitCost: Decimal; var IndirCostPct: Decimal; var OvhdRate: Decimal; var UnitCost: Decimal; var UnitCostCalculation: Enum "Unit Cost Calculation Type"; WorkCenter: Record Microsoft.Manufacturing.WorkCenter."Work Center"; MachineCenter: Record Microsoft.Manufacturing.MachineCenter."Machine Center")` (integration)
- `OnAfterCalcShareOfTotalCapCost(var ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var ShareOfTotalCapCost: Decimal)` (integration)
- `OnCalcProdOrderLineStdCostOnAfterCalcSingleLevelCost(var Item: record Item; InvtAdjmtEntryOrder: record "Inventory Adjmt. Entry (Order)")` (integration)
- `OnBeforeCalcProdOrderLineStdCost(var ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; QtyBase: Decimal; CurrencyFactor: Decimal; RndgPrec: Decimal; var StdMatCost: Decimal; var StdCapDirCost: Decimal; var StdSubDirCost: Decimal; var StdCapOvhdCost: Decimal; var StdMfgOvhdCost: Decimal; var IsHandled: Boolean)` (integration)
- `OnCalcProdOrderLineExpCostOnAfterProdOrderCompSetFilters(var ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component"; ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line")` (integration)
- `OnCalcProdOrderLineExpCostOnAfterProdOrderRtngLineSetFilters(var ProdOrderRtngLine: Record Microsoft.Manufacturing.Document."Prod. Order Routing Line"; ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line")` (integration)
- `OnCalcProdOrderLineExpCostOnExpOperCostCalculated(var ExpOperCost: Decimal; ProdOrderRtngLine: Record Microsoft.Manufacturing.Document."Prod. Order Routing Line")` (integration)
- `OnAfterCalcProdOrderLineExpCost(var ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var ShareOfTotalCapCost: Decimal; var ExpMatCost: Decimal; var ExpCapDirCost: Decimal; var ExpSubDirCost: Decimal; var ExpCapOvhdCost: Decimal; var ExpMfgOvhdCost: Decimal)` (integration)
- `OnBeforeCalcProdOrderLineExpCost(var ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; ShareOfTotalCapCost: Decimal; var ExpMatCost: Decimal; var ExpCapDirCost: Decimal; var ExpSubDirCost: Decimal; var ExpCapOvhdCost: Decimal; var ExpMfgOvhdCost: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCalcProdOrderLineExpCostWithNonInvMatCost(var ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; ShareOfTotalCapCost: Decimal; var ExpMatCost: Decimal; var ExpNonInvMatCost: Decimal; var ExpCapDirCost: Decimal; var ExpSubDirCost: Decimal; var ExpCapOvhdCost: Decimal; var ExpMfgOvhdCost: Decimal; var IsHandled: Boolean)` (integration)
- `OnCalcProdOrderLineActCostOnBeforeSetProdOrderLine(var ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var ActMatCost: Decimal; var ActCapDirCost: Decimal; var ActSubDirCost: Decimal; var ActCapOvhdCost: Decimal; var ActMfgOvhdCost: Decimal; var ActMatCostCostACY: Decimal; var ActCapDirCostACY: Decimal; var ActSubDirCostACY: Decimal; var ActCapOvhdCostACY: Decimal; var ActMfgOvhdCostACY: Decimal)` (integration)
- `OnBeforeCalcProdOrderExpCapNeed(ProductionOrder: Record Microsoft.Manufacturing.Document."Production Order"; var ProdOrderCapacityNeed: Record Microsoft.Manufacturing.Document."Prod. Order Capacity Need"; var ProdOrderRoutingLine: Record Microsoft.Manufacturing.Document."Prod. Order Routing Line")` (integration)
- `OnCalcProdOrderExpCapNeedOnAfterProdOrderCapNeedSetFilters(var ProdOrderCapNeed: Record Microsoft.Manufacturing.Document."Prod. Order Capacity Need"; ProdOrder: Record Microsoft.Manufacturing.Document."Production Order")` (integration)
- `OnCalcProdOrderExpCapNeedOnBeforeMarkNotFinishedProdOrderRtngLine(ProdOrderRtngLine: Record Microsoft.Manufacturing.Document."Prod. Order Routing Line"; WorkCenter: Record Microsoft.Manufacturing.WorkCenter."Work Center"; var ExpectedCapNeed: Decimal)` (integration)
- `OnBeforeCalcProdOrderActTimeUsed(ProductionOrder: Record Microsoft.Manufacturing.Document."Production Order"; var CapacityLedgerEntry: Record Microsoft.Manufacturing.Capacity."Capacity Ledger Entry")` (integration)
- `OnCalcProdOrderActTimeUsedOnAfterCapacityLedgerEntrySetFilters(var CapLedgEntry: Record Microsoft.Manufacturing.Capacity."Capacity Ledger Entry"; ProdOrder: Record Microsoft.Manufacturing.Document."Production Order")` (integration)
- `OnCalcProdOrderActTimeUsedOnBeforeCalcQty(CapLedgEntry: Record Microsoft.Manufacturing.Capacity."Capacity Ledger Entry"; var Qty: Decimal; var IsHandled: Boolean)` (integration)
- `OnAfterClearWorkCenter(var CapacityLedgerEntry: Record Microsoft.Manufacturing.Capacity."Capacity Ledger Entry"; var WorkCenter: Record Microsoft.Manufacturing.WorkCenter."Work Center")` (integration)
- `OnBeforeCalcOutputQtyBaseOnPurchOrder(ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; ProdOrderRtngLine: Record Microsoft.Manufacturing.Document."Prod. Order Routing Line"; var OutstandingBaseQty: Decimal; var IsHandled: Boolean)` (integration)
- `OnCalcActOutputQtyBaseOnAfterSetFilters(var CapacityLedgerEntry: Record Microsoft.Manufacturing.Capacity."Capacity Ledger Entry"; ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; ProdOrderRoutingLine: Record Microsoft.Manufacturing.Document."Prod. Order Routing Line")` (integration)
- `OnCalcActOperOutputAndScrapOnAfterFilterCapLedgEntry(var CapacityLedgerEntry: Record Microsoft.Manufacturing.Capacity."Capacity Ledger Entry")` (integration)
- `OnBeforeCalcActNeededQtyBase(var OutputQtyBase: Decimal; ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component"; ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var Result: Decimal; var IsHandled: Boolean)` (integration)
- `OnCalcActTimeAndQtyBaseOnAfterFilterCapLedgEntry(var CapacityLedgerEntry: Record Microsoft.Manufacturing.Capacity."Capacity Ledger Entry")` (integration)
- `OnBeforeCalcCompItemQtyBase(ProdBOMComponent: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line"; CalculationDate: Date; var MfgItemQtyBase: Decimal; RtngNo: Code[20]; AdjdForRtngScrap: Boolean; var IsHandled: Boolean)` (integration)
- `OnFindRoutingLineOnAfterRoutingLineSetFilters(var RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line"; ProdBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line"; CalculationDate: Date; RoutingNo: Code[20])` (integration)
- `OnBeforeCalcQtyAdjdForBOMScrap(Qty: Decimal; ScrapPct: Decimal; var QtyAdjdForBomScrap: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCalcQtyAdjdForRoutingScrap(Qty: Decimal; ScrapFactorPctAccum: Decimal; FixedScrapQtyAccum: Decimal; var QtyAdjdForRoutingScrap: Decimal; var IsHandled: Boolean)` (integration)
- `OnAfterCalculateCostTime(MfgItemQtyBase: Decimal; ScrapFactorPctAccum: Decimal; FixedScrapQtyAccum: Decimal; UnitCostCalculationType: Enum "Unit Cost Calculation Type"; var CostTime: Decimal; SetupTime: Decimal; RunTime: Decimal; CostInclSetup: Boolean; ConcurrentCapacities: Decimal)` (integration)

## Event subscriptions

- OnBeforeValidateStandardCost subscribes to Table "Item" OnBeforeValidateStandardCost
- OnBeforeValidateSKUStandardCost subscribes to Table "Stockkeeping Unit" OnBeforeValidateStandardCost
- OnCanIncNonInvCostIntoProductionItem subscribes to Codeunit "Cost Calculation Management" OnCanIncNonInvCostIntoProductionItem

## Procedures

- `CalcRoutingCostPerUnit(Type: Enum "Capacity Type"; No: Code[20]; var DirUnitCost: Decimal; var IndirCostPct: Decimal; var OvhdRate: Decimal; var UnitCost: Decimal; var UnitCostCalculation: Enum "Unit Cost Calculation Type")`
- `CalcRoutingCostPerUnit(Type: Enum "Capacity Type"; var DirUnitCost: Decimal; var IndirCostPct: Decimal; var OvhdRate: Decimal; var UnitCost: Decimal; var UnitCostCalculation: Enum "Unit Cost Calculation Type"; WorkCenter: Record "Work Center"; MachineCenter: Record "Machine Center")`
- `CalcShareOfTotalCapCost(ProdOrderLine: Record "Prod. Order Line"; var ShareOfTotalCapCost: Decimal)`
- `CalcProdOrderLineStdCost(ProdOrderLine: Record "Prod. Order Line"; CurrencyFactor: Decimal; RndgPrec: Decimal; var StdMatCost: Decimal; var StdCapDirCost: Decimal; var StdSubDirCost: Decimal; var StdCapOvhdCost: Decimal; var StdMfgOvhdCost: Decimal)`
- `CalcProdOrderLineStdCost(ProdOrderLine: Record "Prod. Order Line"; CurrencyFactor: Decimal; RndgPrec: Decimal; var StdMatCost: Decimal; var StdNonInvMatCost: Decimal; var StdCapDirCost: Decimal; var StdSubDirCost: Decimal; var StdCapOvhdCost: Decimal; var StdMfgOvhdCost: Decimal)`
- `CalcProdOrderLineExpCost(ProdOrderLine: Record "Prod. Order Line"; ShareOfTotalCapCost: Decimal; var ExpMatCost: Decimal; var ExpCapDirCost: Decimal; var ExpSubDirCost: Decimal; var ExpCapOvhdCost: Decimal; var ExpMfgOvhdCost: Decimal)`
- `CalcProdOrderLineExpCost(ProdOrderLine: Record "Prod. Order Line"; ShareOfTotalCapCost: Decimal; var ExpMatCost: Decimal; var ExpNonInvMatCost: Decimal; var ExpCapDirCost: Decimal; var ExpSubDirCost: Decimal; var ExpCapOvhdCost: Decimal; var ExpMfgOvhdCost: Decimal)`
- `CalcProdOrderLineActCost(ProdOrderLine: Record "Prod. Order Line"; var ActMatCost: Decimal; var ActCapDirCost: Decimal; var ActSubDirCost: Decimal; var ActCapOvhdCost: Decimal; var ActMfgOvhdCost: Decimal; var ActMatCostCostACY: Decimal; var ActCapDirCostACY: Decimal; var ActSubDirCostACY: Decimal; var ActCapOvhdCostACY: Decimal; var ActMfgOvhdCostACY: Decimal)`
- `CalcProdOrderLineActCost(ProdOrderLine: Record "Prod. Order Line"; var ActMatCost: Decimal; var ActNonInvMatCost: Decimal; var ActCapDirCost: Decimal; var ActSubDirCost: Decimal; var ActCapOvhdCost: Decimal; var ActMfgOvhdCost: Decimal; var ActMatCostACY: Decimal; var ActNonInvMatCostACY: Decimal; var ActCapDirCostACY: Decimal; var ActSubDirCostACY: Decimal; var ActCapOvhdCostACY: Decimal; var ActMfgOvhdCostACY: Decimal)`
- `CalcProdOrderExpCapNeed(ProdOrder: Record "Production Order"; DrillDown: Boolean): Decimal`
- `CalcProdOrderActTimeUsed(ProdOrder: Record "Production Order"; DrillDown: Boolean): Decimal`
- `CalcOutputQtyBaseOnPurchOrder(ProdOrderLine: Record "Prod. Order Line"; ProdOrderRtngLine: Record "Prod. Order Routing Line"): Decimal`
- `CalcActOutputQtyBase(var ProdOrderLine: Record "Prod. Order Line"; ProdOrderRtngLine: Record "Prod. Order Routing Line"): Decimal`
- `CalcActualOutputQtyWithNoCapacity(ProdOrderLine: Record "Prod. Order Line"; ProdOrderRtngLine: Record "Prod. Order Routing Line"): Decimal`
- `CalcActQtyBase(ProdOrderLine: Record "Prod. Order Line"; ProdOrderRtngLine: Record "Prod. Order Routing Line"): Decimal`
- `CalcActOperOutputAndScrap(ProdOrderLine: Record "Prod. Order Line"; ProdOrderRtngLine: Record "Prod. Order Routing Line"): Decimal`
- `CalcActNeededQtyBase(ProdOrderLine: Record "Prod. Order Line"; ProdOrderComp: Record "Prod. Order Component"; OutputQtyBase: Decimal): Decimal`
- `CalcActTimeAndQtyBase(ProdOrderLine: Record "Prod. Order Line"; OperationNo: Code[10]; var ActRunTime: Decimal; var ActSetupTime: Decimal; var ActOutputQty: Decimal; var ActScrapQty: Decimal)`
- `CalcCompItemQtyBase(ProdBOMComponent: Record "Production BOM Line"; CalculationDate: Date; MfgItemQtyBase: Decimal; RtngNo: Code[20]; AdjdForRtngScrap: Boolean): Decimal`
- `CalculateCostTime(MfgItemQtyBase: Decimal; SetupTime: Decimal; SetupTimeUOMCode: Code[10]; RunTime: Decimal; RunTimeUOMCode: Code[10]; RtngLotSize: Decimal; ScrapFactorPctAccum: Decimal; FixedScrapQtyAccum: Decimal; WorkCenterNo: Code[20]; UnitCostCalculation: Enum "Unit Cost Calculation Type"; CostInclSetup: Boolean; ConcurrentCapacities: Decimal): Decimal`
- `FindRoutingLine(var RoutingLine: Record "Routing Line"; ProdBOMLine: Record "Production BOM Line"; CalculationDate: Date; RoutingNo: Code[20]): Boolean`
- `CalcQtyAdjdForBOMScrap(Qty: Decimal; ScrapPct: Decimal): Decimal`
- `CalcQtyAdjdForRoutingScrap(Qty: Decimal; ScrapFactorPctAccum: Decimal; FixedScrapQtyAccum: Decimal): Decimal`
- `CanIncNonInvCostIntoProductionItem(): Boolean`

Plus 3 local procedures.

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (2 calls: `CalcOutputQtyBaseOnPurchOrder → GetQtyPerUnitOfMeasure`, `CalculateCostTime → TimeRndPrecision`)
- [Codeunit 5896 "Calc. Inventory Adjmt. - Order"](../codeunit/5896.md) (2 calls: `CalcProdOrderLineActCost → CalcActualUsageCosts`, `CalcProdOrderLineActCost → CalcOutputQty`)
- [Codeunit 99000755 "Shop Calendar Management"](../codeunit/99000755.md) (2 calls: `CalcProdOrderActTimeUsed → TimeFactor`, `CalculateCostTime → QtyperTimeUnitofMeasure`)
- [Codeunit 5836 "Cost Calculation Management"](../codeunit/5836.md) (1 call: `CalcProdOrderLineExpCost → CalcOvhdCost`)
- [Codeunit 99000756 "VersionManagement"](../codeunit/99000756.md) (1 call: `FindRoutingLine → GetRtngVersion`)

## Called by

- [Codeunit 5812 "Calculate Standard Cost"](../codeunit/5812.md) (8 calls: `CalcMfgItem → CalcQtyAdjdForBOMScrap`, `CalcMfgItem → CanIncNonInvCostIntoProductionItem`, `CalcMfgSKU → CalcQtyAdjdForBOMScrap`, …)
- [Codeunit 99000776 "Mfg. InventoryAdjmtEntryOrder"](../codeunit/99000776.md) (8 calls: `OnAddDirectCostNonInv → CanIncNonInvCostIntoProductionItem`, `OnAddSingleLvlNonInvMaterialCost → CanIncNonInvCostIntoProductionItem`, `OnAfterCalcDiff → CanIncNonInvCostIntoProductionItem`, …)
- [Page 99000816 "Production Order Statistics"](../page/99000816.md) (7 calls: `OnAfterGetRecord → CalcProdOrderActTimeUsed`, `OnAfterGetRecord → CalcProdOrderExpCapNeed`, `OnAfterGetRecord → CalcProdOrderLineActCost`, …)
- [Codeunit 5407 "Prod. Order Status Management"](../codeunit/5407.md) (5 calls: `FlushProdOrderProcessProdOrderRtngLine → CalcActOperOutputAndScrap`, `FlushProdOrderProcessProdOrderRtngLine → CalcActualOutputQtyWithNoCapacity`, `GetOutputQtyForProdOrderRoutingLine → CalcActOutputQtyBase`, …)
- [Codeunit 99000820 "Mfg. Bom Buffer"](../codeunit/99000820.md) (5 calls: `OnAfterCalcDirectCost → CanIncNonInvCostIntoProductionItem`, `OnAfterCalcOvhdCost → CanIncNonInvCostIntoProductionItem`, `OnAfterGetUnitCost → CanIncNonInvCostIntoProductionItem`, …)
- [Report 99001015 "Calculate Subcontracts"](../report/99001015.md) (4 calls: `CalculateSubContractRequirements → CalcActOutputQtyBase`, `CalculateSubContractRequirements → CalcOutputQtyBaseOnPurchOrder`, `CalculateSubContractRequirements → CalcQtyAdjdForBOMScrap`, …)
- [Codeunit 5845 "Get Inventory Report"](../codeunit/5845.md) (3 calls: `CalcDiff → CanIncNonInvCostIntoProductionItem`, `CalcInvtPostingSetup → CanIncNonInvCostIntoProductionItem`, `CalcValueEntries → CanIncNonInvCostIntoProductionItem`)
- [Codeunit 5406 "Output Jnl.-Expl. Route"](../codeunit/5406.md) (2 calls: `OnRun → CalcActOutputQtyBase`, `OnRun → CalcQtyAdjdForRoutingScrap`)
- [Codeunit 5510 "Production Journal Mgt"](../codeunit/5510.md) (2 calls: `CalculateQtyToPostForProdOrder → CalcActOutputQtyBase`, `CalculateQtyToPostForProdOrder → CalcQtyAdjdForRoutingScrap`)
- [Codeunit 99000774 "Calculate Routing Line"](../codeunit/99000774.md) (2 calls: `CalculateRoutingLine → CalcActOutputQtyBase`, `ReplanRoutingLine → CalcActOutputQtyBase`)
- [Table extension 99000820 "Mfg. BOM Buffer"](../tableextension/99000820.md) (2 calls: `TransferFromProdComp → CalcCompItemQtyBase`, `TransferFromProdComp → CalcQtyAdjdForBOMScrap`)
- [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) (1 call: `OnValidateCapUnitOfMeasureCodeOnCaseOrderTypeElse → CalcRoutingCostPerUnit`)
- [Codeunit 99000770 "Where-Used Management"](../codeunit/99000770.md) (1 call: `BuildWhereUsedList → CalcCompItemQtyBase`)
- [Codeunit 99000773 "Calculate Prod. Order"](../codeunit/99000773.md) (1 call: `InitProdOrderRoutingLine → CalcRoutingCostPerUnit`)
- [Codeunit 99000819 "Mfg. Planning Line Management"](../codeunit/99000819.md) (1 call: `TransferRoutingLine → CalcRoutingCostPerUnit`)
- [Codeunit 99000822 "Mfg. Item Jnl.-Post Line"](../codeunit/99000822.md) (1 call: `PostFlushedConsumption → CalcActNeededQtyBase`)
- [Page 5510 "Production Journal"](../page/5510.md) (1 call: `GetActTimeAndQtyBase → CalcActTimeAndQtyBase`)
- [Report 99000754 "Rolled-up Cost Shares"](../report/99000754.md) (1 call: `CalcMfgItemQtyBase → CalcQtyAdjdForBOMScrap`)
- [Table 5407 "Prod. Order Component"](../table/5407.md) (1 call: `GetNeededQty → CalcActNeededQtyBase`)

## Recent changes

- 2026-10-07 [#11959 [Master]-Production Order Fails to Finish Due to Quantity Rounding Difference Between Component Consumption and Item Tracking Quantity - Copy](../../changes/bcapps/11959.md) (main, BC30, fix)
- 2026-08-26 [#10631 Integration/main to releases 29.x 31a860b5](../../changes/bcapps/10631.md) (releases/29.x, BC29, feature)
- 2026-08-24 [#10173 [Extensibility Request] issue 30129: expose manufacturing cost calculation events](../../changes/bcapps/10173.md) (main, BC30, feature)

## Across versions

- Present in: BC26-30
- Changed (declaration) in: BC27, BC29

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "Mfg. Cost Calculation Mgt.")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
