Demand Analysis inputs
The primary input to Demand Analysis is customer demand. However, there are a number of other parameters and modeling considerations that affect the results of Demand Analysis.
The inputs to Demand Analysis include:
- Demand – Demand for products at customers. Note that the customer demand used by Demand Analysis is that which falls within the model horizon. Demand can be provided through:
- Customer Demand table
- Customer Orders tableYou cannot use input pipes to populate the Customer Demand or Customer Orders table when using Demand Analysis.
You select the source for demand on the Demand Analysis tab of Inventory Optimization options.
- Optional User Defined Customer Forecast Profile – You can use data in this table in addition to the data in the Customer Demand or Customer Orders table in order to override the calculated statistics and demand classification for customers. Alternatively, you can use this table as the source demand data instead of the Customer Demand or Customer Orders table data.
- Optional User Defined Site Forecast Profile – You can use data in this table in order to override the calculated statistics and demand classification for the sites in the model.If the Sites or Products referenced in User Defined Forecast Profile tables are excluded (Status = Exclude in the Sites or Products tables), Demand Analysis will generate an error. Refer to User Defined Customer Forecast Profile for additional information.
- Products – The products referenced in the Customer Demand and Customer Orders tables must have values populated for Price, Weight, and Volume. When you create new Product records, these field values default to 0, 1 and 1, respectively which can be used if you do not need updated values.
If you want Demand Analysis to consider product age, use the Start Date and End Date fields in the Products table to determine the product age.
- Solver options – These options include:
- Aggregation Level – For a description of these options, see Demand Analysis options.
- Propagation Method and Outlier handling – For a description of these options, see Run Demand Analysis with and If Outliers are Detected.
- Demand Classification – Uses a set of parameters during demand classification. There are default values for these parameters, but you can adjust them as required. These settings affect how demand is classified and how Safety Stock Optimization determines the appropriate approach for safety stock calculation. Refer to Determining the inventory policy for additional information.
- Inventory Policies – If you select the "Include site propagation" run option when running Demand Analysis, inventory policies are required for those sites. Inventory policies are not mandatory for Demand Analysis of customers only.
- Advanced Options:
- Safety Stock Optimization Solution Method – You can select the solution method that Safety Stock Optimization will use, depending on the complexity of your model. In most cases, Coupa recommends that you use the "Automatic" setting, enabling the solver to select the appropriate method.
- Demand Propagation Batching Options – You can control the batching of orders based on the Replenishment Frequency (Transportation Policies) or Minimum Order Quantity (Site and Customer Sourcing Policies).
- Piecewise Node – The safety stock curve is an input to the linear programming optimization. The piecewise approximation is used to capture characteristics of the safety stock curve. The number of nodes defines the limits to which potential solutions are excluded from analysis.
- Sourcing Policies – The Sourcing Policies determine the demand propagation through the network.
- Single Period vs. Multi-Period modeling – Demand profiles are generated per site-product-period combination.
- Lead Time Inputs – The lead time within the model is defined using:
- Replenishment Frequency on the Transportation Policies table
- Production Frequency on the Production Policies table
- Minimum Order Quantity – If you do not specify a Minimum Order Quantity in the Site Sourcing Policies table, Demand Analysis uses a default of 1 for demand propagation. If Minimum Order Quantity or Replenishment Frequency or both are not specified, Safety Stock Optimization uses Type 1 service to set the safety stock since the batch size is not known.
Aggregation level
The aggregation level determines the “bucket size” in which demand is aggregated for demand analysis. The aggregation level takes into account the Days in Work Week (7-day or 5-day) and any non-work days that have been defined. Non-work days allow you to specify holidays for example. Weekend days and non-work days allow Demand Analysis to calculate the demand profile without considering a known zero demand on days off.
There are three aggregation levels available:
- Day – Demand Analysis looks at the demand series with weekend days and non-work days taken out. It then aggregates demand data to daily demand. The first bucket starts on the first day in the model horizon that is not a non-work day.
- Week – The week is Sunday through Saturday and uses the calendar to determine the start date of the week. Demand Analysis combines the demand from all days in a week that are not non-work days to create aggregated demand. When non-work days are defined, a week could have a different number of valid days. Demand Analysis calculates the average number of valid days per aggregation level to be used in Safety Stock Optimization.
- Month – The month is the first day through the last day of the month, based on the calendar. Demand Analysis combines the demand from all days in the month that are not non-work days to create aggregated demand. When non-work days are defined, a month could have a different number of valid days. Demand Analysis calculates the average number of valid days per aggregation level to be used in Safety Stock Optimization.
User defined forecast profile
- You can populate user defined forecast profile data as an input to the Demand Analysis process. This data is entered in the User Defined Customer Forecast Profile and User Defined Site Forecast Profile tables.
- You can use these tables in a variety of ways:
- Use the User Defined Customer Forecast Profile table along with the Customer Demand or Customer Orders table to override statistics.
- Use the User Defined Customer Forecast Profile table as the primary set of data without using the Customer Demand or Customer Orders table.
- Use the User Defined Site Forecast Profile as an override to the calculated statistics and demand class.
- One case that is not supported is if you provide User Defined Site Forecast Profile data for all customer-facing facilities, but want the calculated demand profile at other echelons. The User Defined Site Forecast Profile data is not propagated to the other echelons. The use case for the user defined site demand is to do overrides at a single echelon only and has no effect on upstream propagation.
- To illustrate the supported combinations of field inputs from the user defined forecast profile tables, the first table below groups the available fields into sets:
Set | Field |
0 | Site Name |
Product Name | |
Period Name | |
A | Non-zero Forecast Mean |
Non-zero Forecast Std Dev | |
Inter-Demand Interval Mean | |
B | Forecast Mean |
Forecast Error | |
C | Demand Class (for use with User Defined Site Forecast Profile only) |
When providing user defined forecast profile data, you must supply one of the valid combinations of field sets as shown in the following table:
Case | Valid user defined inputs |
1 | 0+A |
2 |
0+B (always assume normal) See Note 1 below for additional details. |
3 | 0+C (for use with User Defined Site Forecast Profile only) |
4 | 0+A+B |
5 | 0+A+C (for use with User Defined Site Forecast Profile only) |
6 | 0+A+B+C (for use with User Defined Site Forecast Profile only) |
User defined forecast profile notes
- When you define user defined forecast profile records, Demand Analysis uses the statistics you populate and these statistics drive the results. Coupa recommends that you consider the following:
If you choose to populate only the Forecast Mean and Forecast Error in the user defined forecast profile records, Demand Analysis assumes all demand is normal; that is, non-intermittent and smooth.
As an example, when your model has dependent products, such as those that are linked with a bill of material (BOM), you may not have all statistics for all products. Ideally, the number of statistics you provide in the user defined forecast profile records should remain consistent. If the profile for one product uses only 2 statistics (Forecast Mean and Forecast Error), this case will be applied to all products, even if the profiles of other products contain additional statistics. This has the effect of making all demand look normal (non-intermittent) as described in the bullet b above.
To allow full classification for all products, approximate the remaining statistics based on historical patterns, as described in bullet c above. Assume the following User Defined Customer Forecast Profile records where RM1 and RM2 have only 2 statistics populated:
Customer Name Product Name Period Name Non-zero Forecast Mean Non-zero Forecast Std Dev Inter-Demand Interval Mean Forecast Mean Forecast Error CZ1 RM1 Period_001 84.4 12.5 CZ1 RM2 Period_001 92.5 9.75 CZ1 RM3 Period_001 88.5 15 3 60 16 CZ1 FG1 Period_001 95 10 1.2 80 8.5 You can populate the missing statistics based on historical patterns. In the updated records below, this results in non-intermittent daily demand for RM1 and RM2:
Customer Name Product Name Period Name Non-zero Forecast Mean Non-zero Forecast Std Dev Inter-Demand Interval Mean Forecast Mean Forecast Error CZ1 RM1 Period_001 84.4 12.5 1 84.4 12.5 CZ1 RM2 Period_001 92.5 9.75 1 92.5 9.75 CZ1 RM3 Period_001 88.5 15 3 60 16 CZ1 FG1 Period_001 95 10 1.2 80 8.5 - Except for Case 3 (which applies to User Defined Site Forecast Profile only), when there is a valid record in the user defined forecast profile table, Demand Analysis uses the statistics from that user defined record. It does not calculate statistics from any other data sources.
- If user defined inputs do not match any of the supported cases, Demand Analysis uses a subset of inputs to match the closest case. Incomplete inputs are ignored and a warning is displayed.
- Case 3 only works when statistics are calculated from other sources and applies to User Defined Site Forecast Profile only.
- The fields in Set 0 must be populated for all user defined records.
- If any field in Set A is populated, all fields in Set A must be populated. When these fields are populated, there are enough inputs to perform demand classification.
- If any field in Set B is populated, all fields in Set B must be populated. There are two ways to use Set B:
- In combination with Set A: Demand Analysis uses the standard Demand Propagation approach.
- Without Set A: Demand Analysis assumes demand for this product at all upstream locations is smooth (demand is assumed to be normal), and it ignores a Demand Class override. This is similar to the demand propagation used in previous versions of Demand Analysis.
- For User Defined Forecast Profile records that are included, if the Sites or Products referenced in the profile records are excluded (Status = Exclude in the Sites or Products tables), Demand Analysis will generate an error.
Last modified: Wednesday May 15, 2024