Spend constraints

Spend constraints provide a way for you to align the costs in your model to the financials of your business. You can identify budget constraints and combine various supply chain costs to adhere to those constraints. The outputs from spend constraints give you an efficient way to analyze the budget vs spend in your supply chain.

Use this feature to model spend constraints that are respected by Network Optimization. For example, you can provide a maximum budget of $25,000,000 for supply chain site operating cost spend. The solver must optimize the network design without exceeding this spend budget. Constraints can be defined at an individual element level or group level, enabling you to control exactly which elements are covered by the constraint, such as limiting transportation spend for selected modes. Applications of spend constraints include:

  • Creating a spend account to constrain a particular network cost. For example, you can set a budget for the fixed startup cost on new facilities for the model horizon.

  • Assigning various types of supply chain spend to a single account that acts as a high level bucket, such as "Facilities spend" and "Work Centers spend".

  • Defining expressions to require a minimum percentage of a spend account for a particular set of sites.

  • Combining multiple spend accounts and applying constraints to these new cost buckets for additional control over the network. For instance, you can set up a cost ratio to control the site startup spend for new East DCs vs new West DCs.

Spend constraints inputs and outputs

You control spend constraints using two input tables:

  • Spend Accounts - Use this table to apply a specific network cost to the spend account, define a maximum spend (if required) and the scope of records to which the account applies. For example, if you are defining a spend account for Fixed Site Operating Cost, you can identify the individual sites or group(s) of sites that are included in the constraint. If you define a Max Spend, this value acts as a hard constraint - when the model is solved, the max spend cannot be exceeded summing the network cost across the selected set of records. Costs are only defined over the relevant columns for a specific Network Cost. For example, Fixed Site Operating Cost is based on Site and Period. If you define a value for the Work Center column in the record, it will be ignored.

  • Spend Expressions - Use this table to define relationships between spend accounts. For example, you can identify two or more spend accounts and apply a maximum cost across those spend accounts. Or you can establish ratios, such as one spend account must represent 25% of the total spend across a number of accounts.

You can define constraint types in Spend Expressions using the Element column. These apply to both spend accounts and expressions:

  • Constraint - Min: Spend at least this amount or at least as much as another account/collection of accounts.

  • Constraint - Max: Spend at most this amount or at most as much as another account/collection of accounts.

  • Constraint - Fixed: Spend exactly this amount or exactly the same as another account/collection of accounts.

  • Constraint - Conditional Min: If something is spent, spend at least this amount. Conditional min cannot be applied to another account/collection of accounts. This would result in a non-linear optimization problem, which is not supported in general in the solver engine.

Utilization information for these accounts and expressions is provided in the Network Spend Account Summary and Network Spend Expression Summary output tables.

Currently supported use cases

  1. Create an account that is a collection of costs. For example:

    • the "East Coast Fixed" account includes the fixed operating costs for all sites on the east coast of the United States.

    • the "Bracket Producers Capital" account includes the fixed capital investment costs for all US manufacturers making all bracket products.

  2. Scaling of costs to reflect the relative value of the spend across accounts. For example:

    • the "US Spend" account is defined as "Bracket Producers Capital" + 2 * "East Coast Fixed". In this case, each dollar spent on the "East Coast Fixed" account is worth two dollars in the "US Spend" account. This could reflect overhead or other related costs.

  3. Combine spend accounts using spend expressions and include a constraining budget. For example:

    • the "Global Spend" expression = "Bracket Producers Capital" + "East Coast Fixed" <= $1B.

  4. Use spend expressions to balance spend accounts. For example, you could use spend expressions to balance accounts so the spend in the US is the same as in EMEA:

    • the "Balance Spend" expression is defined so the "US Spend" = "EMEA Spend"

The spend constraints are currently limited to work on "(ALL_Periods)" or a single period (i.e. Period_001). If you have filters or groups defined for periods, such as a group of the summer periods, spend constraints will treat this the same as "(ALL_Periods)". This limitation will be addressed in a future release.

Spend constraints examples

Example 1: Collection of costs

In this example, we apply a maximum spend for the startup cost for candidate distribution centers (identified in a dynamic filter called "Candidate_DCs). We define the Spend Account as follows:

Name Network Cost Max Spend Period Location
Candidate Startup Cost Fixed Site Startup Cost 30000000 (ALL_Periods) Candidate_DCs

The candidate DCs used in the solution is limited by the $30M max spend for the total of their Fixed Startup Cost values.

Example 2: Constraint applied to multiple spend accounts

In this example, we create a spend account with two different costs. We then use a spend expression to define a maximum that can be spent across the sum of these costs. We will use the Candidate_DCs filter to collect the Fixed Startup Cost values for candidate DCs, and the All_DCs filter to collect the Fixed Operating Costs across both existing and candidate DCs. The Spend Account is defined as follows:

Name Network Cost Max Spend Period

Location

DC Fixed Cost Fixed Site Operating Cost   (ALL_Periods) All_DCs
DC Fixed Cost Fixed Site Startup Cost   (ALL_Periods) Candidate_DCs

Note that there are two Network Cost values associated with a single account name. Also, we do not supply a Max Spend for the individual cost records. We then constrain the pair of costs using a Spend Expression made up of 2 records:

Name Element Value
Max DC Fixed Spend DC Fixed Cost 1.00
Max DC Fixed Spend Constraint - Max 37,000,000

Example 3: Constraint defining a ratio between accounts

In this example, we establish a ratio of site startup spend between two regions using a spend expression. Here are the two Spend Account records:

Name Network Cost Max Spend Period

Location

DC Startup East Fixed Site Startup Cost   (ALL_Periods) East_DCs
DC Startup West Fixed Site Startup Cost   (ALL_Periods) West_DCs

The Spend Expression records are defined as shown below.

Name Element Value
Equal Regional Startup Spend DC Startup East 1.00
Equal Regional Startup Spend DC Startup West -1.00
Equal Regional Startup Spend Constraint - Fixed 0

Last modified: Friday May 12, 2023

Is this useful?