Skip to content
D365 Reference

InventItemPrice

transaction header

Item price records — activated cost, purchase, and sales prices per item, costing version, and dimension; the source for standard-cost analysis

Module: InventoryCompany-partitioned (DataAreaId)
Notes

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/ValidTo effectivity window — a join without a date filter multiplies every key by its history (see the quirks guide).
In field listings, K marks a key field.
Used in the library

Fields

15 fields · 2 key

15 fields.

Table fields: key flag, field name, extended data type, description, data type, length, and quirk flags. 15 fields.
KeyFieldEDTDescriptionTypeLengthFlags
KeyItemIdItemIdItem the price record is forstring
KeyVersionIdCosting version the price was activated understring
CostingTypeWhich price this record carries — cost, purchase price, or sales priceenum
ActivationDateDate the price became active — the primary analysis date for cost historydate
PriceThe activated price amountreal
PriceUnitNumber of units the price applies to (price per 1, 100, 1000…) — divide before comparingreal
PriceQtyDefault order quantity used when the price was calculatedreal
MarkupCharge amount included on top of the pricereal
PriceAllocateMarkupWhether the charge is spread over the price quantityenum
PriceTypePrice model behind the record (standard cost vs planned cost calculation)enum
PriceCalcIdBOM calculation the price came from, when it was calculated rather than enteredstring
StdCostTransDateDate the standard-cost revaluation posted; unset rows carry the 1900-01-01 sentineldate
StdCostVoucherVoucher of the standard-cost revaluation postingstring
UnitIDUnit of measure the price is expressed instring
InventDimIdInventDimIdDimension combination the price is specific to (typically the site); join to InventDimstring

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.

Query parameters

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

  • InventItemPriceInventTableforeign key · N:1
    ON inventitemprice.itemid = inventtable.itemid AND inventitemprice.dataareaid = inventtable.dataareaid
  • InventItemPriceInventDimInventDim · N:1
    ON inventitemprice.inventdimid = inventdim.inventdimid AND inventitemprice.dataareaid = inventdim.dataareaid

Data Entities That Expose This Table

No data-entity mappings populated for this table yet.

Browse more inventory tables

More Inventory 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 Microsoft. Microsoft, Dynamics 365, and Microsoft Fabric are trademarks of the Microsoft group of companies.