Skip to content
EBS Reference

CST_ITEM_COSTS

Schema: BOMmasterPer inventory org

The item cost header — one row per item, organization, and cost type, carrying the total unit cost and its five cost-element buckets plus this-level/previous-level splits

Identity
Module: BOM & CostingInventory-org partitioned (ORGANIZATION_ID)
Grain note

One row per item per org PER COST TYPE — filter one cost type or unit costs multiply; which type is current depends on the org's costing method (see MTL_PARAMETERS)

Notes

Frozen is the live cost for standard-costing orgs, Average for average-costing orgs — the org's PRIMARY_COST_METHOD decides. Owned by the BOM schema (Cost Management shares it) per the data dictionary.

What the badges mean
Schema: INV
Schema: the Oracle product schema that owns the table (INV, ONT, WSH, PO, BOM, WIP, MRP, MSC, AR, AP, GL, HR, APPLSYS) — tells you which product family the object belongs to, not who can query it.
master
Data class: what the table holds — master data, transaction documents, control/configuration, interface/staging, or an APPS-schema view.

Structural facts — how the table is partitioned, not a trap by itself

OU-striped (ORG_ID)
Rows are scoped to an operating unit. A landed extract carries every operating unit’s rows — filter or join on ORG_ID, and don’t confuse it with ORGANIZATION_ID (see the quirks guide).
Per inventory org
Rows are scoped to an inventory organization (plant or warehouse) via ORGANIZATION_ID — a different partition from OU-striped tables (see the quirks guide).
Language-striped
The table carries a LANGUAGE column (a _TL translation table or FND_LOOKUP_VALUES) — one row per language. Filter to one LANGUAGE or a join multiplies rows (see the quirks guide).

Join & extract hazards — verify before you rely on this

View
This is an APPS-schema convenience view, not a physical table. Extract the base tables it joins instead — views can be slow at scale and aren't guaranteed stable across patches.
In field listings, the Key chip marks a primary-key field.

Fields

16 fields · 3 key

16 fields.

Table fields: position, field name, description, data type, and flags. 16 fields.
#FieldDescriptionTypeFlags
1INVENTORY_ITEM_IDItem id — the cost is per item, org, and cost typeNUMBER
Primary-key field
2ORGANIZATION_IDInventory organizationNUMBER
Primary-key field
3COST_TYPE_IDThe cost type — filter to one or unit costs multiplyNUMBER
Primary-key field
4ITEM_COSTTotal unit cost — the sum of the element bucketsNUMBER
5MATERIAL_COSTMaterial element of the unit costNUMBER
6MATERIAL_OVERHEAD_COSTMaterial overhead elementNUMBER
7RESOURCE_COSTResource elementNUMBER
8OUTSIDE_PROCESSING_COSTOutside processing elementNUMBER
9OVERHEAD_COSTOverhead elementNUMBER
10TL_MATERIALThis-level material — the split between the item's own cost and its components'NUMBER
11TL_RESOURCEThis-level resourceNUMBER
12PL_MATERIALPrevious-level material — rolled up from componentsNUMBER
13INVENTORY_ASSET_FLAGWhether the item is an inventory asset under this cost typeNUMBER
14BASED_ON_ROLLUP_FLAGWhether the cost came from a rollup vs manual entryNUMBER
15LOT_SIZECosting lot size lot-basis charges spread overNUMBER
16SHRINKAGE_RATEShrinkage rate applied in the rollupNUMBER

Field provenance: hand-curated. 3 key fields.

Boilerplate SQL

Starting point for reading CST_ITEM_COSTS on Databricks — real DATE columns need no conversion, and the org anchor is already in place. The optional LAST_UPDATE_DATE watermark is included. Set your Unity Catalog location, schema, and org values below; they’re substituted into the SQL and the copy button.

Query parameters

6 parameters not filled: <catalog>, <schema>, <inventory_org_id>, <INVENTORY_ITEM_ID>, <COST_TYPE_ID>, <watermark>

-- ============================================================
-- Table  : CST_ITEM_COSTS — The item cost header — one row per item, organization, and cost type, carrying the total unit cost and its five cost-element buckets plus this-level/previous-level splits
-- Purpose: Column-selected read of CST_ITEM_COSTS — auto-generated from field metadata
-- Grain  : One row per inventory org (ORGANIZATION_ID) + INVENTORY_ITEM_ID + COST_TYPE_ID
-- Caution: One row per item per org PER COST TYPE — filter one cost type or unit costs multiply; which type is current depends on the org's costing method (see MTL_PARAMETERS)
-- Notes  : Auto-generated skeleton for Oracle EBS R12 data landed in your lakehouse. Dates are real DATE/TIMESTAMP columns — no conversion needed. WHO audit columns omitted (see the quirks guide); the optional LAST_UPDATE_DATE watermark filter supports incremental extracts.
-- ============================================================
SELECT
  t.INVENTORY_ITEM_ID AS "Item id — the cost is per item, org, and cost type",
  t.ORGANIZATION_ID AS "Inventory organization",
  t.COST_TYPE_ID AS "The cost type — filter to one or unit costs multiply",
  t.ITEM_COST AS "Total unit cost — the sum of the element buckets",
  t.MATERIAL_COST AS "Material element of the unit cost",
  t.MATERIAL_OVERHEAD_COST AS "Material overhead element",
  t.RESOURCE_COST AS "Resource element",
  t.OUTSIDE_PROCESSING_COST AS "Outside processing element",
  t.OVERHEAD_COST AS "Overhead element",
  t.TL_MATERIAL AS "This-level material — the split between the item's own cost and its components'",
  t.TL_RESOURCE AS "This-level resource",
  t.PL_MATERIAL AS "Previous-level material — rolled up from components",
  t.INVENTORY_ASSET_FLAG AS "Whether the item is an inventory asset under this cost type",
  t.BASED_ON_ROLLUP_FLAG AS "Whether the cost came from a rollup vs manual entry",
  t.LOT_SIZE AS "Costing lot size lot-basis charges spread over",
  t.SHRINKAGE_RATE AS "Shrinkage rate applied in the rollup"
FROM <catalog>.<schema>.CST_ITEM_COSTS t
WHERE
  t.ORGANIZATION_ID = <inventory_org_id>  -- inventory org, NOT the operating unit — see quirks guide #two-orgs
  -- AND t.INVENTORY_ITEM_ID = <INVENTORY_ITEM_ID>
  -- AND t.COST_TYPE_ID = <COST_TYPE_ID>
  -- AND t.LAST_UPDATE_DATE >= TIMESTAMP '<watermark>'  -- WHO watermark, bulk-stamped by batch jobs; see quirks guide #who-columns
ORDER BY t.INVENTORY_ITEM_ID;

Verified September 2026

Relationships

Diagram of 1-hop neighbors — join details below. FND lookup decode and translation edges are highlighted; they’re the joins newcomers most often get wrong.

Join details

  • CST_ITEM_COSTSMTL_SYSTEM_ITEMS_Bforeign key · N:1
    ON CST_ITEM_COSTS.INVENTORY_ITEM_ID = MTL_SYSTEM_ITEMS_B.INVENTORY_ITEM_ID AND CST_ITEM_COSTS.ORGANIZATION_ID = MTL_SYSTEM_ITEMS_B.ORGANIZATION_ID
  • CST_ITEM_COSTSCST_COST_TYPESforeign key · N:1
    ON CST_ITEM_COSTS.COST_TYPE_ID = CST_COST_TYPES.COST_TYPE_ID
  • CST_ITEM_COSTSMTL_PARAMETERSforeign key · N:1
    ON CST_ITEM_COSTS.ORGANIZATION_ID = MTL_PARAMETERS.ORGANIZATION_ID
  • CST_ITEM_COST_DETAILSCST_ITEM_COSTSforeign key · N:1
    ON CST_ITEM_COST_DETAILS.INVENTORY_ITEM_ID = CST_ITEM_COSTS.INVENTORY_ITEM_ID AND CST_ITEM_COST_DETAILS.ORGANIZATION_ID = CST_ITEM_COSTS.ORGANIZATION_ID AND CST_ITEM_COST_DETAILS.COST_TYPE_ID = CST_ITEM_COSTS.COST_TYPE_ID

Browse more BOM & Costing tables

More BOM & Costing tables

Maintained by Summit Analytics, a supply chain analytics practice. The tools and references are free — the consulting is selective.

Part of the Summit Analytics reference library.

Work with the practice

Not affiliated with or endorsed by Oracle. Oracle and Oracle E-Business Suite are registered trademarks of Oracle and/or its affiliates.