Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Unified Supply Chain

Demands

  • Last UpdatedAug 11, 2025
  • 9 minute read

The Demands page is renamed to Sales if you do not have a valid Spiral Network license.

For more information about checking for installed licenses, see the Configure your Licenses topic. Contact AVEVA support (spiral.support@aveva.com) for information about obtaining new licenses.

Demands are the products that are sold from the network. Each demand has a time period over which it is relevant, and an associated grade, constraints and price.

Demands must be connected to a source of the material, either a supply node or a terminal node via a transport link.

Each demand is independent, so it is possible to add two demands of the same material with different pricing and availability, and these are optimized separately.

For example, if there is a demand of 10 kbbl at 100 $/bbl, and another demand of 15 kbbl at 120 $/bbl, and if the value of the material is 102 $/bbl (based on the finished production cost) then the second demand would be sold, but the first demand would not. That is, the first demand would have a +18 $/bbl marginal value, and the second demand would have a -2 $/bbl marginal value.

You cannot use a traded material as component of a terminal blend and sell the same traded material directly as a demand. This is not supported and prevents the model from optimizing correctly.

Use this workaround to achieve the same result:

  1. In the plant producing the material, create two grades with different traded materials, one for terminal blending and one to be sold directly. Both grades should be produced from the same components and with the same property specifications.

  2. In the Network model, use one grade for terminal blending and the other grade for the demand.

The result is conceptually the same as using a single traded material.

Buying and selling a material without processing it

If you want to buy and sell a material without processing it (for example buy ethanol at one location, transport via your trucks and then sell it at a different location), both the supplied material and the sold grade must have the same traded material.

Note: Plan sales and demands
Even though the network may contain plant models, which already have sales defined in them, these demands can be redefined in the model.
For example, you may create a Network model using the Corsicana plant model. This has a list of sales such as jet and gasoline. These demands can be added again with their availability to the Network model. The values and materials in the original source plant model are not automatically used. Alternatively you can link directly to the plant Sales table.
All of a plant's products must be disposed of, that is, there must be a corresponding sale for every single grade potentially produced by a plant. Therefore each plant must be connected to at least one demand via a transport link, and all of the plant's products must appear as a demand in at least one demand node.

Add a demand

Follow these steps to add a demand:

  1. Do either of the following:

    • Click Add Demand in the Demands group of the Home ribbon tab.

    • Right-click anywhere in the table and choose Add Demand from the context menu.

    A new row is added to the table.

  2. Make sure that the check box in the Active column is selected if you want the demand to be active within the optimization.

  3. Enter a Name for the demand. Double click in the cell and type the new name.

  4. Choose the Node to which the material is being sold.

  5. Optionally, select a Market for the demand. By default, the market selected for the node also applies to the demand, but you can override it.

  6. Choose the Traded Material of the feedstock required at the node.

  7. Optionally, choose the Grade of the feedstock required at the node.

    You can create a demand by choosing only a traded material and leaving the Grade field blank. When you choose a grade, the corresponding traded material is selected automatically.

  8. Enter the Start and End dates and times of the demand. This is the time during which the demand is available at the entered price and with any demand constraints.

    Demand dates are not restricted to existing period boundaries. Where demands cross period boundaries, the amounts are pro-rated across the different periods (Optimization across and within Periods).

  9. If you want to alter the pro-rata behavior of the demand, clear the check box in the Pro Rata column. This column is only visible if you select All from the View menu in the Grid group of the Home ribbon tab.

    If the pro-rata behavior is not enabled, the optimizer is free to alter the allocation of the demand to periods, subject to other constraints.

  10. Enter the Price of the material and choose the unit of measure.

  11. Optionally, enter any Minimum, Maximum or Fixed constraints on the amount of material, and choose the associated unit of measure.

  12. Optionally, enter a Description for the demand.

    More settings are available in columns not visible by default. See Customize the Grid below for how to manage columns.

    • If you want the demand to belong to a group, choose it from the Group column. This column is visible in the All view, not in the Default one.

    • Add the Reference Density and Reference Density UoM columns to the Pricing band to specify a reference density.

      The reference density is used to convert between weight and volume basis. When a material is priced in weight terms and a reference density is used, the weight-based price is converted to a volume basis using the reference density. The sale then occurs in a volume basis. Only the price is converted using the reference density: any weight/volume conversions necessary for flow constraints use the actual assay density of the feedstock.

      When a price set is in use, the reference density as defined in the price set is used. When the price set is overridden or entered manually, the reference density as defined in the grid is used.

      Example: Imagine a sale of 10 kt of regular gasoline with a density of 0.75. If the price of the material is 500 $/tonne then the sale value is 5 M$ (10 * 500/1000). However, if the sale has a reference density of 0.7, the effective price becomes 350 $/m3 (500 * 0.7). The sale also occurs in volume terms, so the sales volume is 13,333.33 m3 (10/0.75 * 1000). Thus the sale value is only 4.67 M$ (13.33 * 350/1000).

    • Add the Threshold column to the MIP band to specify a threshold.

      Thresholds allow semi-continuous amounts to be declared for certain items.

      Thresholds can be activated when these are set with zero or fixed amounts. When an item has a threshold applied, the amount must then be either zero or at least the minimum amount. For example, you could define a threshold on the supply of the crude Agbami of 500 kbbl. The valid solution would be either zero or 500 kbbl or more of the crude. That is, it would be impossible to purchase 254 kbbl of the crude, but 503 kbbl would be feasible.

      Where a minimum or fixed value is active, this setting allows for either zero or the minimum/fixed value to be used.

    After you optimize the case, you can see the Solution value for each demand, and the and the Marginal value for any constraints that were applied.

    Tip: The grid supports sorting and grouping of items as explained in Advanced grids.

    Edit linked demands and demand groups

    When the Import options are active, demands are automatically created based on the plant-level sales. Edits in the planning environment are reflected in the Network environment, and vice versa.

    This also applies to linked sale groups, which appear in the Demand Groups tab.

    Other tasks

    The following are additional tasks you can carry out from the tabs of the Demands page. Some of the ribbon groups described in the following sections are not available from all tabs.

    Lock solutions

    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.

    The Behaviour ribbon group, with the Lock Solution and Unlock Solution buttons

    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

    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 (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:

    The Deltas ribbon group, with the Show and Restore buttons

    • 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.

        Portion of table with one cell having a light blue triangle in the top right corner, and another cell having a dark blue triangle

    • 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.

    Customize the grid

    Embedded Image (65% Scaling) (LIVE)

    Customize the grid from the Grid group of the Home ribbon tab:

    • Click Find to show or hide a text field at the top of the grid to filter the grid contents. Type in the text field to show only the rows with text matching what you have typed. The matching text is highlighted in the grid. See Filters for more details.

    • Click Columns to open a small dialog windows where you can drag column headers to remove columns from the grid. You can then drag the headers back to the grid to restore the columns. See Add and Remove Columns in Manage Columns for more details.

    • Choose a View from the list, or click the cogwheel icon to remove a view or save any changes. See Views for more details.

    Show per-period information

    Embedded Image (65% Scaling) (LIVE)

    Click the Periods button in the Periods group of the Home ribbon tab to expands each row of the grid to show per-period optimization results.

    TitleResults for “How to create a CRG?”Also Available in