Inventory over time
Daily inventory history — starting and ending units, quantities and value per item, location and day.
22 fields — 11 dimensions, 11 metrics. Date clauses (SINCE, UNTIL, DURING) use createdAt.
The live, authoritative list is always GET /v1/datasets — this page is regenerated from the same catalog, but the endpoint reflects exactly what is deployed.
Query it
FROM inventory
SHOW ending_inventory_units
GROUP BY product_title
SINCE -30d
See Querying with SoloQL for the language.
This dataset is queryable through SoloQL; it has no record-retrieval endpoint.
Fields
| Field | Type | Role | Description |
|---|---|---|---|
product_title | string | dimension | Title of the product this inventory item belongs to. |
product_variant_title | string | dimension | Title of the variant this inventory item belongs to. |
product_variant_sku | string | dimension | SKU of the inventory item. |
barcode | string | dimension | Barcode of the inventory item. |
product_type | string | dimension | Type (category) assigned to the product. |
inventory_location_name | string | dimension | Location holding the stock on that day. |
product_variant_abc_grade | string | dimension | ABC grade for the variant over the report's own window — A is the top 80% of revenue, B the next 15%, C the last 5%, ranked by gross sales. Recomputed for whatever window you ask for, exactly as Shopify does: the same variant can be A over 90 days and B over 30. |
inventory_is_tracked | boolean | dimension | Whether Shopify tracks quantities for this item. |
snapshot_date | date | dimension | The day this snapshot describes (one tick per day, at 00:00 UTC). The dataset's default date field, so SINCE/UNTIL window on this. |
ending_inventory_units | number | metric | Units on hand at the end of the day. For a month-end figure, narrow the window to that single day. |
starting_inventory_units | number | metric | Units on hand at the start of the day. |
inventory_item_cost | money | metric | Cost of a single unit. Averaged, so it stays a per-unit figure at every rollup. |
ending_inventory_value | money | metric | Value of the stock on that day — cost per item × ending units. For a month-end figure, narrow the window to that single day. |
ending_inventory_retail_value | money | metric | Value of the stock on hand at its selling price, rather than at cost. Empty for variants with no price set. |
inventory_units_sold | number | metric | Net units sold on that day (orders minus same-day-booked returns), at inventory grain. |
sell_through_rate | percent | metric | Units sold as a share of units sold plus ending inventory. |
inventory_units_sold_per_day | number | metric | Average units sold per day over the selected period. |
days_of_inventory_remaining | number | metric | Estimated days until stock runs out — ending inventory divided by the period's daily sales rate. |
percent_of_inventory_sold | percent | metric | Units sold relative to the inventory at the start of the period. |
total_inventory_value_stored | money | metric | Stored inventory value from the snapshot writer. |
inventory_cost_is_recorded | boolean | dimension | Whether a cost was recorded for the item on that day. |
store | string | dimension | The shop the record belongs to. Filter with WHERE store IN ('Shop name') or GROUP BY store. |