InventItemPrice
transaction headerItem price records — activated cost, purchase, and sales prices per item, costing version, and dimension; the source for standard-cost analysis
AOT table group is TransactionHeader (CDM files it under TransactionHeader). Pending (not yet activated) prices live in InventItemPriceSim.
What the badges mean
- main
- Table group: how F&O categorizes the table's role — main entity, group/header, transaction, worksheet header, worksheet line, reference, parameter, or framework.
- Shared across companies
- The table carries no
DataAreaId— rows aren’t partitioned per company, so a query never needs (and can’t use) a company filter here (see the quirks guide). - Date-effective
- The table carries a
ValidFrom/ValidToeffectivity window — a join without a date filter multiplies every key by its history (see the quirks guide).
Fields
15 fields · 2 key
15 fields.
| Key | Field | EDT | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| Key | ItemId | ItemId | Item the price record is for | string | ||
| Key | VersionId | Costing version the price was activated under | string | |||
| CostingType | Which price this record carries — cost, purchase price, or sales price | enum | ||||
| ActivationDate | Date the price became active — the primary analysis date for cost history | date | ||||
| Price | The activated price amount | real | ||||
| PriceUnit | Number of units the price applies to (price per 1, 100, 1000…) — divide before comparing | real | ||||
| PriceQty | Default order quantity used when the price was calculated | real | ||||
| Markup | Charge amount included on top of the price | real | ||||
| PriceAllocateMarkup | Whether the charge is spread over the price quantity | enum | ||||
| PriceType | Price model behind the record (standard cost vs planned cost calculation) | enum | ||||
| PriceCalcId | BOM calculation the price came from, when it was calculated rather than entered | string | ||||
| StdCostTransDate | Date the standard-cost revaluation posted; unset rows carry the 1900-01-01 sentinel | date | ||||
| StdCostVoucher | Voucher of the standard-cost revaluation posting | string | ||||
| UnitID | Unit of measure the price is expressed in | string | ||||
| InventDimId | InventDimId | Dimension combination the price is specific to (typically the site); join to InventDim | string |
Field provenance: hand-curated.
Boilerplate SQL
Starting point for reading InventItemPrice on Databricks — enums are decoded, 1900-01-01 dates are wrapped to NULL, and the DataAreaId anchor is in place. Set your Unity Catalog location, company, and filter values below; they’re substituted into the SQL and the copy button.
6 parameters not filled: <catalog>, <schema>, <company>, <ItemId>, <DATE_FROM>, <DATE_TO>
-- ============================================================
-- Table : InventItemPrice Item price records — activated cost, purchase, and sales prices per item, costing version, and dimension; the source for standard-cost analysis
-- Purpose: Column-selected read of InventItemPrice — auto-generated from field metadata
-- Grain : One row per company (dataareaid) + ItemId + VersionId
-- Notes : Auto-generated skeleton for Synapse Link / Fabric Link-landed F&O data (lowercase column names). Enums decoded inline where verified; datetimes stored in UTC; 1900-01-01 dates are sentinels mapped to NULL. System/audit columns omitted — see the quirks guide.
-- ============================================================
SELECT
i.itemid AS "Item the price record is for",
i.versionid AS "Costing version the price was activated under",
i.costingtype AS "Which price this record carries — cost, purchase price, or sales price", -- enum: decode i.costingtype via GlobalOptionsetMetadata join — see quirks guide #enums
i.activationdate AS "Date the price became active — the primary analysis date for cost history",
i.price AS "The activated price amount",
i.priceunit AS "Number of units the price applies to (price per 1, 100, 1000…) — divide before comparing",
i.priceqty AS "Default order quantity used when the price was calculated",
i.markup AS "Charge amount included on top of the price",
i.priceallocatemarkup AS "Whether the charge is spread over the price quantity", -- enum: decode i.priceallocatemarkup via GlobalOptionsetMetadata join — see quirks guide #enums
i.pricetype AS "Price model behind the record (standard cost vs planned cost calculation)", -- enum: decode i.pricetype via GlobalOptionsetMetadata join — see quirks guide #enums
i.pricecalcid AS "BOM calculation the price came from, when it was calculated rather than entered",
CASE WHEN CAST(i.stdcosttransdate AS DATE) = DATE '1900-01-01' THEN NULL ELSE CAST(i.stdcosttransdate AS DATE) END AS "Date the standard-cost revaluation posted; unset rows carry the 1900-01-01 sentinel", -- 1900-01-01 sentinel → NULL
i.stdcostvoucher AS "Voucher of the standard-cost revaluation posting",
i.unitid AS "Unit of measure the price is expressed in",
i.inventdimid AS "Dimension combination the price is specific to (typically the site); join to InventDim"
FROM <catalog>.<schema>.inventitemprice i
-- Dimension expansion: uncomment to resolve site / warehouse / location / batch
-- LEFT JOIN <catalog>.<schema>.inventdim id ON id.inventdimid = i.inventdimid AND id.dataareaid = i.dataareaid
WHERE
i.dataareaid = '<company>'
-- AND i.itemid = '<ItemId>'
-- AND i.activationdate >= '<DATE_FROM>' -- yyyy-MM-dd (UTC)
-- AND i.activationdate <= '<DATE_TO>' -- yyyy-MM-dd (UTC)
ORDER BY i.itemid;Verified September 2026
Relationships
Diagram of 1-hop neighbors — join details below. RecId and InventDim edges are highlighted; they’re the joins newcomers most often get wrong.
Join details
ON inventitemprice.itemid = inventtable.itemid AND inventitemprice.dataareaid = inventtable.dataareaidON inventitemprice.inventdimid = inventdim.inventdimid AND inventitemprice.dataareaid = inventdim.dataareaid
Data Entities That Expose This Table
More Inventory tables
- InventJournalTableInventory journal header — one row per movement, adjustment, transfer, BOM, or counting journal, with its type, posting status, and line count
- InventJournalTransInventory journal line — one row per item movement in a journal, with quantity, cost, counted figures, and the dimension combination it posts against
- InventLocationWarehouse master — one row per warehouse (inventory location) with its site and type
- InventSiteSite master — one row per operational site, the top of the inventory dimension hierarchy that warehouses roll up to
- InventSumAggregated on-hand quantities by item and inventory dimension — physical, available, and posted balances
- InventTransThe inventory transaction ledger — every physical and financial stock movement, with issue/receipt status, quantities, dates, and links back to its source document