Inventories
- Last UpdatedAug 11, 2025
- 11 minute read

Inventories are used to define minimum or maximum amounts of material that should be available during the planning period. Inventories can be associated with both feedstocks and products and may be opening inventories (that is, amounts of material present at the start of optimization that should be used during the planning period), or final inventories (that is, amounts of materials that should be present at the end of the planning period).
Inventories are associated with tanks by using an Assignment.
Each inventory can be reviewed by adding its variables to a watch set.
Configure an inventory
The following is a typical workflow to configure an inventory:
-
Add a tank (or tanks) to the flowsheet to hold the inventory and connect the tank correctly to the topology. If necessary, define any modes on the tank.
-
Create a planning inventory for the material.
-
Assign the inventory to the tank (or tanks).
-
If the inventory has a non-zero starting amount, define the opening inventory.
-
Ensure that the planning period an the preceding case, if necessary, are correctly configured.
Set the planning period
You can define the case period length using the Planning Period controls in the Summary tab. This is used for calculations where purchases and sales are entered in cumulative amounts rather than per unit time amounts. For example, if the case has a planning period duration set of 30 days, an entered crude purchase of 600 kbbl may be converted to 20 kbbl/d for calculation purposes, or can be reported in this converted unit of measure.
If the current case is linked to a preceding case, the end date of the preceding case is used as the start date of the current case and the date cannot be changed.
Set the preceding case
Choose a Preceding Case in the Summary tab to define the period from which inventory is carried over. This is used in multi-period cases to define the sequence of periods.
The preceding case is also used to obtain a value from for global variables declared as multi-period.
When no preceding case is set, Plan does not pass materials between cases, and you can set opening and final inventory manually.

By default, you must click the
icon to manually update the opening inventory of the current period to the final
inventory of the previous one. Alternatively, select Automatically set Opening Inventory from the Final Inventory of preceding case. With this option selected, when you click Optimize the opening inventory is updated with the final solution results from the preceding
case before the optimization begins.
Add and edit inventories
To add a new inventory:
-
Click Add Inventory in the Inventories group of the Home ribbon tab. A new row is added to the grid.
-
If desired, click the Name cell and type a name for the new inventory, replacing the default one.
-
Double-click the Material Type cell and choose a material type for the inventory.
-
If needed, choose a Grade for the inventory. If you do so, any non-zero final inventory must meet the specifications associated with this grade.
-
Enter an Opening Amount and choose the corresponding unit of measure in the Amount UoM column.
-
If needed, enter an Opening Cost and Final Cost and choose the corresponding unit of measure in the Cost UoM column.
-
If needed, enter Min, Max or Fixed values for the Final Amount. Make sure the Active check box next to a value is selected to activate that constraint. The final amount is the absolute minimum and maximum amount that must be present in the associated tank at the end of the planning period.
-
On the Tank Assignments tab, associate the inventory with a tank on the flowsheet.
To edit an existing inventory, just edit cell values in the corresponding grid row.
Warning: If you are using mixed weight/volume pricing and inventory amounts, ensure that density is available for the inventory components.
Warning: When adding an inventory which may possibly have an opening amount, always run the model with a non-zero inventory opening amount, to ensure that the inventory feedstock has all required downstream properties. For example, it is easy to define an inventory with an opening amount of zero and associate a feedstock for future use. In the future, when the amount is changed to a non-zero amount, the model may not run because the feedstock is lacking a property required by a downstream process unit. If, after adding the opening material, you run the model with a small amount of inventory, this will ensure the feedstock has all necessary properties.
Delete inventories
To remove an inventory:
-
Select the inventory to remove in the Inventories grid.
-
Click the Delete Inventory button in the Inventories group of the Home ribbon tab.
Opening and final costs
An inventory can have an associated opening and final cost. The opening cost is the amount that must be paid for the opening inventory if it is used. That is, it is a cost which is subtracted from the profitability of the plant. So, for example, if there is an opening inventory of 2000 bbl, and this has an opening cost of 50 $/bbl, then if this inventory is used $ 100,000 must be paid for it.
The inventory final cost is the value of an inventory remaining at the end of the optimization. That is, it is a value which is added to the profitability of the plant. So, for example, if there is a closing inventory of 2000 bbl, and this has a final cost of 55 $/bbl, then $ 110,000 is added to the revenue of the plant. Within a multi-period optimization where the inventory has no value, the optimizer will usually try to minimize the amount of inventory (because if you are holding inventory you are not selling product and therefore losing money). To avoid this problem, you can use minimum inventory amounts, but the optimizer will still tend toward minimizing the inventory. Alternatively, you can use a final inventory cost. This is the value of the material that will be obtained when the inventory is sold (which will be in a future period).
Lock inventories
Solution values can be locked during subsequent runs. This means that a solution value will not change in any subsequent run, even if other input to the run is changed.

Example: The flow of naphtha from a crude could be locked, and in subsequent runs it would not be able to change. Therefore, if a fixed swing cut point was changed and the model re-run, the crude blend would have to change in order to match the fixed flow rate.
Locking a solution value acts in a similar way to fixing the value. The advantage over fixing a value is that the lock can be clearly seen in the user interface, so it is simpler to distinguish true fixed values from those which are temporarily locked.
To lock one or more solution values, select the corresponding rows in the table and do either of the following:
-
Click Lock Solution in the Behaviour group of the Home ribbon tab.
-
Right-click on the table and choose Locking > Lock from the context menu.
To unlock one or more solution values, select them and either click Unlock Solution in the ribbon or choose Locking > Unlock from the context menu.
Show differences with the master case
Note: The contents of this section apply only to the Overview tab. You cannot restore values for the Material Type and Grade columns.
Whenever a value in the row is different from the value in the parent case within
the model, the unnamed column next to the Active column shows a double arrow icon (
) . Note that this column may not be present in all views.
The Deltas group of the Home ribbon tab lets you further manage these differences:

-
Click the Show button to display a blue triangle icon in the top right corner of every cell whose value overrides the value in the parent case. This allows you to pinpoint the specific cells with overridden values, rather than whole rows.
-
A dark blue triangle means that the value is different from the parent case value.
-
A light blue triangle means that the value is the same as in the parent case, but has been entered manually, so it is still treated as an override. Future changes in the parent case value will not be reflected in the subcase value.

-
-
Click Restore to change the values of the selected cells back to those of the parent case. You can also right click and choose Restore from the context menu.
Tip: To show all the differences between cases within a model, see Compare Cases.
To merge differences across cases, see Update Cases.
Inventory blending
When a material flows through a tank containing inventory, that material is blended with the inventory material before exiting the tank. That is, the product of the tank is the sum of the material and inventory, and its properties are the weighted average of the two.
|
Material amount (kbbl) |
Material sulfur (ppm) |
Inventory amount (kbbl) |
Inventory sulfur (ppm) |
Product amount (kbbl) |
Product sulfur (ppm) |
<10ppm sul spec |
|---|---|---|---|---|---|---|
|
10 |
1 |
50 |
1 |
60 |
1 |
✔ |
|
50 |
1 |
50 |
1 |
100 |
1 |
✔ |
|
10 |
1 |
50 |
18 |
60 |
15.17 |
✘ |
|
50 |
1 |
50 |
18 |
100 |
9.5 |
✔ |
|
44.4 |
1 |
50 |
18 |
94.4 |
10 |
✔ |
For example, in the table above, when the alkylate inventory sulfur is high and the material flow is low, there is not enough material to dilute the original inventory sulfur and the resultant product is off-spec. In order to meet the final product requirement, it is necessary to purchase more material to dilute the inventory down.
|
Material price ($/bbl) |
Material sulfur (ppm) |
Material amount (kbbl) |
Inventory used (kbbl) |
Inventory sulfur (ppm) |
Product price ($/bbl) |
|---|---|---|---|---|---|
|
200 |
1 |
0 |
50 |
1 |
150 |
|
200 |
1 |
44.4 |
50 |
18 |
150 |
Set tank capacities
You can set capacity limits of the tanks in your model by clicking on the Tanks tab. There are two types of limits:
-
The Design Min and Design Max limits are the minimum and maximum capacity the tank is designed for. Typically, the minimum will be zero and the maximum will correspond to the full capacity of the tank.
-
The Working Min and Working Max limits are the minimum and maximum capacity under normal operating conditions. Typically, tanks are never completely emptied or filled. Therefore, the Working Min will usually be slightly higher than the Design Min, and the Working Max slightly lower than the Design Max.

Warning: Although you can set the Working Min of a tank lower than the Design Min, and the Working Max higher than the Design Max, such settings make no sense and should be avoided.
Tip: In the Summary tab, four read-only columns display the overall Design Min, Design Max, Working Min and Working Max for each inventory. These are the sums of the corresponding values for each tank assigned to the inventory. Note that these columns are not included in all views.
Use the values in these columns as a guide to define constraints for the final inventory
amounts. For example, you would want a Final Amount Max constraint to be at most equal to the overall Working Max for the inventory.
For these columns to be populated, the Amount UoM value for an inventory in the Summary tab must be the same as the UoM for the corresponding tanks in the Tanks tab.
Inventory assignments
Assignments link inventories and tanks. An inventory must be assigned to at least one tank to be used in the optimization.
To assign a planning inventory to a tank, select the check box at the intersection of the planning inventory column and the tank row.

The above image shows two scenarios:
-
On the left, the LSFO inventory is assigned to a single tank, BO101.
-
On the right, the LSFO inventory is assigned to three tanks: BO101, BO102 and BO103.
When an inventory is assigned to multiple tanks, the capacities shown in the Summary tab for the inventory (such as Design Min and Working Min) are the sums of the capacities of each assigned tank, as shown by the following image.

Note: The same tank can have more than one operating mode, shown in the Mode column. You need to assign an inventory to each tank mode separately.
Opening inventory
The materials present in an inventory at the start of the period, together with their amounts, are configured in the Opening Inventory tab.
This is necessary, for example, when inventory is not passed forward from the previous period through multi-period optimization.

To configure an opening inventory:
-
Select the required planning inventory from the Planning Inventory menu.
-
Choose whether to enter a Ratio or an absolute Amount.
-
If you have chosen Ratio, enter the total amount of the inventory at the start of the period in the Opening Amount text box, and choose the appropriate unit of measure.
-
Click the Edit Feedstock Components button in the Opening Inventory group of the Home ribbon tab.
-
In the Edit Feedstocks dialog (see: Global tab), select the required feedstocks.
-
For each feedstock in the inventory, enter either the absolute feedstock amount or the ratio of the feedstock in the total inventory.
Open inventory In subsequent periods
When using sequential multi-period analysis, inventory is passed between the consecutive periods, that is, the closing inventory of one period forms the opening inventory of the following period. In a subsequent period, the Opening Inventory tab shows the composition of the opening inventory, that is, the composition of the final closing inventory of the preceding period.

Warning: Where a pipe contains multiple sub-streams, an inventory is placed on the pipe, and it may be necessary to depool the inventory material later into the relevant process model. Where a pipe has multiple sub-streams, and these later enter a process unit with multiple process
models, you won't be able to automatically deduce which process model the inventory
will route to. Therefore, you must manually select the appropriate process model by
adding the feedstock to the relevant model (see: Feedstock Depooling).
When the inventory feedstock is manually depooled, the depooling is feedstock specific.
Therefore, if another feedstock is added to the inventory, this must also be manually
depooled.
Inventory materials
For each planning inventory, where the information is available, the Inventory Materials tab shows the qualities of the inventory material. Where the inventory has an opening amount from a previous period, the qualities of the material passed through from this period are shown. The final qualities of the inventory are also shown. Where the inventory is potentially made from several different components, the qualities of each different component are shown. This should be used along with the calculated ratios for the components to determine the bulk properties.
This tab is populated for sequential multi-period optimization. It is not populated for classical multi-period optimization.
