Running cost to serve analysis
You can run Cost To Serve Analysis once Network Optimization has been run successfully on the scenario or scenarios you want to examine.

- For each scenario you want to run with Cost to Serve Analysis, first run Network Optimization from the Launch Pad.
- On the Launch Pad, select Network Optimization as the Technology and Cost To Serve Analysis as the Problem Type.
- Select the Scenario(s) to run, then click Run.
- If complex loops are detected in the network, the Solve Summary node in the Launch Pad indicates how many loops were detected. Click Examine to review the loops in the Cost To Serve Network Loops table. For additional information, see Loops in the network.
- Open the Cost To Serve Details output table. For each Customer-Product-Period combination, you see a unique Path ID. For each Start Location Name-End Location Name combination, there is a unique Lane ID.
- Click View Costs to display each Path ID as a single record, with individual lanes and associated costs populated. For example, the first lane may be the leg from the Manufacturer to the Warehouse. In this case all column names appended with "1" apply to this lane.
The Cost To Serve fly out view is based on a model database object called “OptimizationOutputNetworkPathsDynamicView”. You can target this object directly in Tableau to provide additional analysis on the cost to serve output.
For some large models, the OptimizationOutputNetworkPathsDynamicView is too large to import successfully into the model. If you encounter this issue, you can check the Bypass Cost To Serve Dynamic View option on the Advanced Settings tab in Network Optimization Run Options. When this option is selected, the output table for the dynamic view is not generated.
Cost To Serve Analysis populates output tables (Cost To Serve Details, Cost To Serve Product Details, Cost To Serve Network Loops). It also creates a view based on the data in the scenario that is run. The columns in this view will vary based on the number of echelons in the solution. Depending on the size of the network in the solution, creating this view can take some time to complete.
Filtering cost to serve output
There are a number of parameters that you can add to the Config_NO table to control cost to serve output. These enable you to focus on specific paths and make analysis more efficient. The parameters are:
Parameter | Type | Description | Example |
---|---|---|---|
CTSFilter_Products | String | Enter product names or product groups names, separated by commas. | P2,P3,ProdGroup1 |
CTSFilter_Sites | String | Enter site names or site groups names, separated by commas. | DC1,CustGroup1 |
CTSFilter_TopFlowPathPercentage | Decimal between 0 - 1 | The solver ranks all the paths by their quantity, and prints the top (1-x) paths with largest path flow. For example, if CTSFilter_TopFlowPathPercentage is set as 0.8, the top 20% of paths are printed. The quantity is the Total Quantity in the Cost To Serve Details table. In a multi-lane path, it is the Total Quantity for the last lane in the path. | 0.8 |
CTSFilter_BottomFlowPathPercentage | Decimal between 0 - 1 | The solver ranks all the paths by their quantity, and prints the bottom x paths with largest path flow. For example, if CTSFilter_BottomFlowPathPercentage is set as 0.9, the smallest 90% of paths are printed. The quantity is the Total Quantity in the Cost To Serve Details table. In a multi-lane path, it is the Total Quantity for the last lane in the path. | 0.9 |
CTSFilter_TopCostPathPercentage | Decimal between 0 - 1 | Print paths with cost greater than CTSFilter_TopCostPathPercentage. | 0.95 |
CTSFilter_BottomCostPathPercentage | Decimal between 0 - 1 | Print paths with cost less than CTSFilter_BottomCostPathPercentage. | 0.05 |
CTSFilter_TopProdsByCostPercentage | Decimal between 0 - 1 | The final products are ranked by the cost related to them, then the percentage entered for this parameter is used to select the top x products. Cost To Serve Analysis is run on this smaller set of products, resulting in fewer paths in the output. | 0.8 |
CTSFilter_TopProdsByProfitPercentage | Decimal between 0 - 1 | The final products are ranked by the profit related to them, then the percentage entered for this parameter is used to select the top x products. Cost To Serve Analysis is run on this smaller set of products, resulting in fewer paths in the output. | 0.75 |
MergeMultiMode | Integer (0=Off, 1=On) | When set to 1, merge multi-mode lanes. When set to 0, do not merge multi-mode lanes. | 1 |
NetworkCriticality | Integer (0=Off, 1=On) | When set to 1, turn on network criticality analysis. When set to 0, turn off network criticality analysis. | 1 |
PrintPathsReport | Integer (0=Off, 1=On) | When set to 1, print OutputPathsReport.txt. When set to 0, do not print OutputPathsReport.txt. | 0 |
You can use groups to limit which customers or products are included in the output generated for Cost To Serve Analysis. This is useful if you are interested in focusing on specific output.

- Define a group for each set of customers or products you want to use to limit cost to serve output. For example, create a group called "PrimaryCustomers" that includes the subset of customers you want reported.
- In the Config_NO table, enter a record for each filter type you plan to use with Cost To Serve Analysis. The values in the table will be as follows:
- ParameterName: Enter either CTSFilter_Sites when specifying a customer group or CTSFilter_Products when specifying a product group
- ParameterValue: Enter the name of the associated product, product group, site, site group (such as Primary Customers).
- Status: Set the value to Include if you want the filter to be applied to cost to serve output. Set the value to Exclude if the filter does not apply.
- Using the Launch Pad, run Cost To Serve Analysis on your selected scenario(s).
- When complete, review the output to see the limited results. For example, if you limited the customers using a group, there are records for only the group members in the Cost To Serve Details output table.

- In the Config_NO table, enter a record for each percentage filter you plan to use with Cost To Serve Analysis. The values in the table will be as follows:
- ParameterName: Enter the percentage filter name, such as CTSFilter_MinCostPercentage. The filter will be a minimum or maximum for either cost or flow.
- ParameterValue: Enter the minimum or maximum value, such as 0.9.
- Status: Set the value to Include if you want the filter to be applied to cost to serve output. Set the value to Exclude if the filter does not apply.
- Using the Launch Pad, run Cost To Serve Analysis on your selected scenario(s).
- When complete, review the output to see the limited results. For example, if you limited the customers using a group, there are records for only the group members in the Cost To Serve Details output table.
Last modified: Wednesday May 15, 2024