D365 Reference
InventModelGroup
groupItem model group master — one row per company and model group, controlling inventory policy for its items: costing model, negative-stock rules, and whether the product is stocked at all
Module: Product InformationCompany-partitioned (DataAreaId)
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).
In field listings, K marks a key field.
Fields
8 fields · 1 key
8 fields.
| Key | Field | EDT | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| Key | ModelGroupId | ModelGroupId | The item model group code — inventory policy bucket assigned to items via InventModelGroupItem | string | ||
| Name | Model group name | string | ||||
| InventModel | Costing / inventory valuation model for the group (FIFO, weighted average, standard cost…) | enum | ||||
| StockedProduct | Whether items in this group are stocked — non-stocked items never hit the on-hand tables | enum | ||||
| NegativePhysical | Whether physical inventory is allowed to go negative for this group | enum | ||||
| NegativeFinancial | Whether financial inventory is allowed to go negative for this group | enum | ||||
| StandardCost | Whether the group is standard-cost valued | enum | ||||
| QuarantineControl | Whether receipts for this group are quarantine-managed | enum |
Field provenance: hand-curated.
Boilerplate SQL
Starting point for reading InventModelGroup 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
3 parameters not filled: <catalog>, <schema>, <company>
-- ============================================================
-- Table : InventModelGroup Item model group master — one row per company and model group, controlling inventory policy for its items: costing model, negative-stock rules, and whether the product is stocked at all
-- Purpose: Column-selected read of InventModelGroup — auto-generated from field metadata
-- Grain : One row per company (dataareaid) + ModelGroupId
-- 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.modelgroupid AS "The item model group code — inventory policy bucket assigned to items via InventModelGroupItem",
i.name AS "Model group name",
i.inventmodel AS "Costing / inventory valuation model for the group (FIFO, weighted average, standard cost…)", -- enum: decode i.inventmodel via GlobalOptionsetMetadata join — see quirks guide #enums
i.stockedproduct AS "Whether items in this group are stocked — non-stocked items never hit the on-hand tables", -- enum: decode i.stockedproduct via GlobalOptionsetMetadata join — see quirks guide #enums
i.negativephysical AS "Whether physical inventory is allowed to go negative for this group", -- enum: decode i.negativephysical via GlobalOptionsetMetadata join — see quirks guide #enums
i.negativefinancial AS "Whether financial inventory is allowed to go negative for this group", -- enum: decode i.negativefinancial via GlobalOptionsetMetadata join — see quirks guide #enums
i.standardcost AS "Whether the group is standard-cost valued", -- enum: decode i.standardcost via GlobalOptionsetMetadata join — see quirks guide #enums
i.quarantinecontrol AS "Whether receipts for this group are quarantine-managed" -- enum: decode i.quarantinecontrol via GlobalOptionsetMetadata join — see quirks guide #enums
FROM <catalog>.<schema>.inventmodelgroup i
WHERE
i.dataareaid = '<company>'
ORDER BY i.modelgroupid;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 inventmodelgroupitem.modelgroupid = inventmodelgroup.modelgroupid AND inventmodelgroupitem.modelgroupdataareaid = inventmodelgroup.dataareaidON inventmodelgroupitem.modelgroupdataareaid = inventmodelgroup.dataareaid
Data Entities That Expose This Table
No standard export entity confirmed — land the raw table alongside InventModelGroupItem to resolve item-to-model-group assignments.
More Product Information tables
- InventModelGroupItemThe link table that assigns each released item to its item model group — like the item group, the model group is not a column on InventTable. Cross-company, with explicit ItemDataAreaId / ModelGroupDataAreaId columns
- InventTableReleased product master — one row per item within a company, carrying the RecId link to its shared product; item group and model group are assigned in the InventItemGroupItem / InventModelGroupItem link tables, not here
- InventTableModulePer-module item settings — one row per released item per module (inventory, purchase, sales), holding that module's default unit, base price and price unit, discount groups, tax item group, and over/under-delivery tolerances; a fully set-up item normally has exactly three rows per company
- UnitOfMeasureThe shared unit-of-measure master — one row per unit symbol (kg, ea, hr) with its unit class and system of units; every quantity column in the lake ultimately resolves to a symbol here
- UnitOfMeasureConversionUnit conversion rules — factor, numerator/denominator, and offsets for converting between two units, referenced by RecId to UnitOfMeasure on both sides; product-specific conversions carry the product's RecId, standard conversions leave it 0
- EcoResProductThe shared product master — one row per product across all companies; released products in InventTable point back to it by RecId