Map Inventory State
Map raw rows into the scenario's inventory state table: the observed inventory at each location, the average level over the horizon, and the carrying cost realized.
This is the output side of inventory. Pair it with Map Inventory Policy for the per-unit rate.
When to use this¶
- Inventory is part of the scenario and you have observed levels or carrying-cost totals
- Cost to Serve reads the realized carrying cost when attributing inventory cost to customers
Inventory is the asymmetric case. Network Optimization computes no inventory outcome, so this table is always observation and never an optimizer result.
What you need¶
- An upstream Import Data node with one row per (location, product) you have observations for
- An average-inventory column or a realized-carrying-cost column, typically both
Field mapping¶
Auto-detection is all or nothing. With no explicit mapping on the node, every field is matched against the headers listed below, case-insensitively, and a space in your header reads as an underscore, so Site Name matches site_name. Set even one field explicitly and detection switches off for the whole node: only the fields named in the mapping are filled, and the rest arrive empty.
Set mappings in the node's panel. Connect an upstream table and select the mapping node to see automatic matches. Choosing a column saves all displayed matches as an explicit mapping. Use Use automatic detection to return to header detection. Required fields without a match are marked in the panel.
| Field | Type | Required | Example | What it is | Auto-detected headers |
|---|---|---|---|---|---|
| Location | text | Yes | Warehouse A |
Where inventory was held. Must match a Location name. | location, loc, name, id, location_id, loc_id |
| Product | text | Yes | Widget |
Product or SKU. Required — name it even in a single-product scenario. | product, sku, item, material, product_id |
| Average Inventory | number | No | 350.0 |
Average inventory level actually held in the recorded baseline. Its unit goes in Inventory Unit. | average_inventory, avg_inventory, inventory, stock, avg_stock |
| Inventory Unit | text | No | units |
Unit that average inventory is expressed in. | inventory_unit, stock_unit, unit |
| Realized Carrying Cost | number | No | 35.0 |
Total carrying cost actually incurred in the baseline (unit cost × average inventory). | realized_carrying_cost, carrying_cost, inventory_carrying_cost, holding_cost, storage_cost |
How it works¶
Each row becomes an inventory state record. Average inventory and realized carrying cost are separate concepts. The first is a quantity in your inventory unit; the second is money in the scenario currency. Cost to Serve reads the second when rolling up cost per customer.
Workflow wiring¶
flowchart LR
n1["Import Data (inventory.csv)"] --> n2["Map Inventory Policy"]
n2 --> n3["Create Scenario"]
n1 --> n4["Map Inventory State"]
n4 --> n3
Common mistakes¶
- Mapping the per-unit rate here. It belongs on Map Inventory Policy.
- Confusing Average Inventory with Realized Carrying Cost. Different units, different meanings. One is a quantity, the other is money.