DRP - Forecast Method FAQ

Question: What are the different forecast methods used by DRP and what are the forecast method parameters?

Answer: The software supports multiple forecast methods to handle the requirements of different types of products, which may have different patterns of demand history. The current methods and parameters are listed below. New standard (and custom) forecast methods may be developed to handle the requirements of specific situations.

Note The parameter names must be entered exactly as listed for the calculations to work properly. These same parameter names can be used for different forecast methods.

The following forecast method parameters are used for every forecast method:

Parameter

Type

Default Value

Description

Available to Promise

Character

Standard

This determines the logic to be used for the available to promise calculation. For more information, see DRP - Available to Promise FAQ.

  • Standard - The standard Available to Promise window is displayed.

  • Option 1 - Certain companies want to protect availability for forecasted sales in the future (based on the Available To Promise Days parameter).

Available To Promise Days

Integer

0

This is the available to promise days. This is used in conjunction with the Available to Promise parameter. For more information, see DRP - Available to Promise FAQ.

Exclude Promotional Sales

Logical

No

Select one of the following options:

Forecast Direct Ship

Logical

No

Select one of the following options:

  • Yes - Displays and enables the Direct Ship check box in Product DRP Management, so that actual and forecasted direct/drop ship sales are displayed by forecast group.

  • No - Does not display or enable the Direct Ship check box in Product DRP Management.

Forecast Frozen Periods

Integer

0

Select one of the following values for the number of forecast frozen periods (periods for which automatic reforecasting is not changed):

  • 0 - No frozen periods are used.

  • 1 - The current time bucket is frozen.

  • 2 (or more) - The specified number of time buckets are frozen, including the current time bucket.

Note Forecasts can still be manually changed for forecast frozen periods.

Forecast Hold

Character

Standard

This determines the logic used for putting sales orders on forecast hold. For more information, see DRP - Forecast Hold FAQ. Select one of the following values:

  • Standard - Forecast hold is not enabled.

  • Customer Forecast - When an order is entered or updated, each line is evaluated to determine whether the customer forecast by forecast group has been exceeded.

  • Actual Forecast - When an order is entered or updated, each line is evaluated to determine whether the actual forecast by forecast group has been exceeded.

Forecast Hold % Overage

Integer

0

Enter the percentage overage that you will tolerate. If a order line is for a percentage that is greater than this percentage, the order is placed on forecast hold.

Forecast Hold Shipment Quantity

Character

Standard

Select one of the following to determine allocation for orders on forecast hold:

  • Forecast Allocation - Allocate up to the remaining forecast amount. The forecast amount is based on the Forecast Hold parameter.

  • No Allocation - Do not allocate any quantity to order lines on forecast hold.

  • Standard - Fully allocate order lines even if an order is on forecast hold.

Forecast Logic

Character

Standard

Select one of the following to configure how the Actual Forecast row is calculated in Product DRP Management:

  • Standard - The Actual Forecast is set equal to the manual override forecast if it is available. If it is not available, the Actual Forecast is set to the Customer Forecast if it is available. If the Customer Forecast is not available, the Actual Forecast is set to the System Forecast.

  • Customer - The Actual Forecast is set to the Customer Forecast, even if it is zero or blank. The All Other forecast group uses the system forecast because it does not have a customer forecast.

  • System - The Actual Forecast is set to the System Forecast, even if it is zero or blank.

  • Highest - The Actual Forecast is set to either the Customer Forecast or the System Forecast, whichever is a higher value.

  • Lowest - The Actual Forecast is set to either the Customer Forecast or the System Forecast, whichever is a lower value.

Forecast View

Character

Standard

This determines how the Manage Product Forecasts tab in Product DRP Management is displayed. Select one of the following options:

  • Standard - Standard format

  • Customer Forecast - Customer Forecast format.

Note This can be overridden for specific users in User Extended Options.

History Data

Character

Default

This determines whether point of sale amounts are used for sales history data. Select one of the following options:

  • Default - Calculate forecasts using shipment data for sales history.

  • POS - Calculate forecasts using point of sale data for sales history.

Promotional Forecast Logic

Character

Include

This determines whether the Promotional Forecast row quantities are included in the Actual Forecast row and the remaining forecast in Product DRP Management. Select one of the following options:

  • Include - Include any quantity in the Promotional Forecast row in the Actual Forecast row and the remaining forecast.

  • Exclude - Exclude any quantity in the Promotional Forecast row from the Actual Forecast row and the remaining forecast.

Remainder Forecast

Character

Total

This determines how the Remaining Sales Forecast row is calculated on the DRP Schedule Management tab in Product DRP Management. Select one of the following:

  • Total - All forecast groups consolidated

  • Forecast Group - Forecast groups individually evaluated

For an example of using both options, see below.

Time Bucket

Character

Month

This determines the time period columns used for calculations and for display in Product DRP Management. Month, Week, and Day are valid options.

Note If you change this to Month or Week, rebuild customer forecasts in Forecast Create.

Time Horizon Forward

Integer

6

This indicates how many time buckets into the future to forecast.

Example The following table displays the calculation difference based on the Forecast Group option selected.

Forecast Group

Customer Forecast (April)

Sales (April-to-date)

Total Option

Forecast Group Option

Wal-Mart  

1,000  

1,100  

 

-  

Target  

500  

300  

 

200  

K-Mart  

200  

100  

 

100  

All Others  

100  

150  

 

-  

Totals

1,800

1,650

150

300

Forecast Methods

Forecast Method / Program Name

Parameter

Type

Default Value

Description

Average
(methfcave.p)

This method is used for products expected to have a relatively steady sales pattern where there may be some slight seasonality, but no radical seasonality. It uses a pure moving average based on the prior sales history time bucket of calendar days, weeks, or months.

 

Time Horizon Past

Integer

6

This indicates how many time buckets into the past to use to calculate the average.

Example Monthly Time Bucket, 6 months Time Horizon Forward, and 6 months Time Horizon Past:

Month

Sales

Forecast

Jan 2020

100

 

Feb 2020

90

 

Mar 2020

110

 

Apr 2020

120

 

May 2020

130

 

Jun 2020

125

 

Jul 2020

 

113

Aug 2020

 

115

Sep 2020

 

119

Oct 2020

 

120

Nov 2020

 

120

Dec 2020

 

119

Forecast Method / Program Name

Parameter

Type

Default Value

Description

Average-RAD Season
(methfcavrs.p)

This method is used for products with radical seasonality (for example, snow shovels). It uses the prior year as a starting point, then calculates the average moving forward (instead of moving backwards) and a percentage +/- change to calculate forecast.

 

Time Horizon Past

Integer

2

This indicates how many time buckets to go forward from the previous year’s starting point to use to calculate the average.

 

RAD Seas-% chg last year

Decimal

3%

 

Example Monthly Time Bucket, 3 months Time Horizon Forward, 2 months Time Horizon past, 3% increase from last year:

Month

Actual Sales

Forecast

Sep 2020

300

 

Oct 2020

400

 

Nov 2020

400

 

Dec 2020

100

 

Jan 2021

10

 

Feb 2021

10

 

Mar 2021

 

 

Apr 2021

 

 

May 2021

 

 

Jun 2021

 

 

Jul 2021

 

 

Aug 2021

 

 

Sep 2021

 

361

Oct 2021

 

412

Nov 2021

 

258

Dec 2021

 

57

Forecast Method / Program Name

Parameter

Type

Default Value

Description

Custom
(methfccustom.p)

This method is used if you have created a program that contains custom forecast logic.

 

Custom Forecast Logic

Character

 

This is the file name of the .p that contains your custom forecast logic.

Note Your custom program must begin with the following:

{custom-forecast-tmp.i}

DEFINE INPUT PARAMETER iProductKey AS CHAR NO-UNDO.

DEFINE INPUT PARAMETER iLocationKey AS CHAR NO-UNDO.

DEFINE INPUT-OUTPUT PARAMETER TABLE FOR tmp-forecast.

The tmp-forecast table includes the following fields:

Field

Type

Description

iNum

Integer

This is the time bucket.

dFrom

Date

This is the date from in one time bucket; this is the forecast date.

dTo

Date

This is the date to in one time bucket; this is the forecast date.

dSales

Decimal

This is the sales quantity for the date range.

dOrders

Decimal

 

dDeSeaSales

Decimal

 

dDeSeaMovAvg

Decimal

 

dDEA

Decimal

 

dMAD

Decimal

 

dForecast

Decimal

This is the forecast value that you must update.

Example If you wanted to assign a forecast value of 10, you would include the following in your program:

      FOR EACH tmp-forecast WHERE

               EXCLUSIVE-LOCK:

         ASSIGN tmp-forecast.dforecast = 10.

      END.

dSeasonIndex

Decimal

 

lNoSales

Logical

 

lNoOrders

Logical

 

lUpdateForecast

Logical

 

The tmp-forecast table includes the following indexes:

   INDEX iNumIdx IS PRIMARY iNum

   INDEX dToDate

         dTo

   INDEX dFromDate

         dFrom.

Forecast Method / Program Name

Parameter

Type

Default Value

Description

ExpSmooth
(Methfcexph.p)

This exponential smoothing method weighs the most current sales history heavier than the least current sales history.

Images\warning.gif This forecast method should not be used for radically seasonal products because it will result in invalid forecasts.

 

Alpha

Decimal

0.3

This is a smoothing factor that controls the weight of sales history. If you increase the value of the Alpha parameter, you increase the affect of the current month's sales history on the calculated forecast. For more information on how this parameter affects forecast calculations, see the example below.

 

Time Horizon Forward

Integer

1

This indicates how many time buckets into the future to forecast.

 

Time Horizon Past

Integer

12

This indicates how many time buckets into the past to use for the calculations.

Example Non-seasonal product. Monthly Time Bucket, 1 month Time Horizon Forward, 12 months Time Horizon past, 0.3 alpha factor for a non-seasonal product.

The basic formula to calculate each month’s new exponential average for a non-seasonal product is:

New Average = [Prior Month’s Average x (1.0 - Alpha factor)] + [Current Month’s Actual Sales x Alpha Factor]

Using the below table for April:

April Exponential Average = [33.0 x ([1.0 - .3]) + [42 x .3]

April Exponential Average = 23.1 + 12.6

April Exponential Average = 35.7

Note The Forecast is the Exponential Average derived for the previous month.

Month

Actual Sales

Exponential Average

Forecast

Jan

34  

30.0

29.0

Feb

37  

32.1

30.0

Mar

35  

33.0

32.1

Apr

42  

35.7

33.0

May

36  

35.8

35.7

Jun

38  

36.4

35.8

Example Seasonal product. Monthly Time Bucket, 1 month Time Horizon Forward, 12 months Time Horizon past, 0.3 alpha factor for a mildly seasonal product.

The advanced formula to calculate each month’s new exponential average and forecast for a mildly seasonal product is slightly different:

New Average = [Prior Month’s Average x (1.0 - Alpha factor)] + [(Current Month’s Actual Sales / Seasonal Index) x Alpha Factor]

Using the below table for April:

April Exponential Average = [157.5 x ([1.0 - .3]) + [(103/.8) x .3]

April Exponential Average = 110.3 + 38.6

April Exponential Average = 148.9

Note The Forecast is the Exponential Average derived for the previous month x the Seasonal Index for the current month.

April Forecast = 157.5 (March Exponential Average) x 0.80 (April Seasonal Index)

April Forecast = 148.9

Month

Actual Sales

Seasonal Index

Exponential Average

Forecast

Jan

200  

1.10  

153.3

155.2

Feb

85  

1.00  

132.8

153.3

Mar

172  

0.80  

157.5

106.2

Apr

103  

0.80  

148.9

126.0

May

113  

0.90  

141.9

134.0

Jun

98  

0.80  

136.1

113.5

Jul

102  

0.80  

133.5

108.8

Aug

162  

1.00  

142.0

133.5

Sep

180  

1.20  

144.4

170.4

Oct

150  

1.30  

135.7

187.8

Nov

170  

1.30  

134.2

176.4

Dec

158  

1.10  

137.1

147.7

Forecast Method / Program Name

Parameter

Type

Default Value

Description

MildSeasonalAvg
(methfcmsea.p)

This forecast method uses a seasonal index along with a moving average. The moving average first is de-seasonalized (either period by period, or by a group of periods), then re-seasonalized for the forecast periods. This moving average detects whether there is stronger or slower demand for each season.

Images\warning.gif This forecast method should not be used for radically seasonal products because it will result in inappropriate forecasts.

 

Group by Deseasonalization

Logical

No

Select one of the following options:

  • Yes - Deseasonalize with the grouping of periods entered for the Periods to Deseasonalize parameter.

  • No - Deseasonalize each period by itself.

 

Periods to Deseasonalize

Integer

4

This is the number of periods to group together if you enter Yes for the Group by Deseasonalization parameter.

 

Time Horizon Past

Integer

12

This indicates how many time buckets into the past to use for the calculations.

Example Product A has the following seasonality:

The following table is an example of forecasting the mild seasonal moving average of product A with every month deseasonalized.

Month

Seasonality

Net Sales

Deseasonalized Sales

Forecast

Four-Month Deseasonalized Moving Average

Jan 2020

1.5

1,800

1,200

 

 

Feb 2020

1.4

1,000

714

 

 

Mar 2020

1.1

1,600

1,455

 

 

Apr 2020

0.8

400

500

 

967

May 2020

0.5

500

1,000

 

917

Jun 2020

0.9

700

778

 

933

Jul 2020

1.4

1,600

1,143

 

855

Aug 2020

1.1

1,400

1,273

 

1,048

Sep 2020

1.3

1,100

846

 

1,010

Oct 2020

0.8

 

1,010

808

1,068

Nov 2020

0.4

 

1,068

427

1,049

Dec 2020

0.8

 

1,049

839

993

Jan 2021

1.5

 

993

1,490

1,030

Feb 2021

1.4

 

1,030

1,442

1,035

Mar 2021

1.1

 

1,035

1,139

1,027

Apr 2021

0.8

 

1,027

822

1,021

May 2021

0.5

 

1,021

511

1,028

Jun 2021

0.9

 

1,028

926

1,028

Jul 2021

1.4

 

1,028

1,439

1,026

Aug 2021

1.1

 

1,026

1,129

1,026

Sep 2021

1.3

 

1,026

1,334

1,027

In this case, net sales for January-September 2020 equals 10,100, and forecasted sales for January-September 2021 equals 10,230.

The following table is an example of forecasting the mild seasonal moving average of product A with every four-month group deseasonalized.

Month

Seasonality

Net Sales

Four-Month Average Deseasonalized Sales

Forecast

Jan 2020

1.5

1,800

 

 

Feb 2020

1.4

1,000

 

 

Mar 2020

1.1

1,600

 

 

Apr 2020

0.8

400

1,000

 

May 2020

0.5

500

921

 

Jun 2020

0.9

700

970

 

Jul 2020

1.4

1,600

889

 

Aug 2020

1.1

1,400

1,077

 

Sep 2020

1.3

1,100

1,021

 

Oct 2020

0.8

1,021

1,113

817

Nov 2020

0.4

1,113

1,287

445

Dec 2020

0.8

1,287

1,370

1,030

Jan 2021

1.5

1,370

1,369

2,055

Feb 2021

1.4

1,369

1,254

1,917

Mar 2021

1.1

1,254

1,100

1,379

Apr 2021

0.8

1,100

1,061

880

May 2021

0.5

 

 

 

Jun 2021

0.9

 

 

 

Jul 2021

1.4

 

 

 

Aug 2021

1.1

 

 

 

Sep 2021

1.3

 

 

 

In this case, net sales for January-September 2020 equals 10,100.

The following table compares the two deseasonalization methods:

Month

Forecast with Every Month Deseasonalized

Forecast with Every Four-Month Group Deseasonalized

Jan 2020

 

 

Feb 2020

 

 

Mar 2020

 

 

Apr 2020

967

1000

May 2020

917

921

Jun 2020

933

970  

Jul 2020

855

889  

Aug 2020

1048

1077  

Sep 2020

1010

1021  

Oct 2020

 

 

Nov 2020

 

 

Dec 2020

 

 

Jan 2021

 

 

Feb 2021

 

 

Mar 2021

 

 

Apr 2021

 

 

May 2021

 

 

Jun 2021

 

 

Forecast Method / Program Name

Parameter

Type

Default Value

Description

RAD Season
(methfcrad.p)

This method is used for products with radical seasonality (for example, snow shovels). It uses the prior year actual results and a percentage +/- change to calculate this year’s forecast.

Images\warning.gif Only use this forecast method for radically seasonal products.

 

RAD Seas-% chg last year

Decimal

-.10

This is the radical seasonality percentage change compared to the actual prior year's sales.

Example Monthly Time Bucket, 3 months Time Horizon Forward, and 3% increase from last year:

Month

Sales

Forecast

Jul 2020

300

 

Aug 2020

400

 

Sep 2020

400

 

Oct 2020

100

 

Nov 2020

10

 

Dec 2020

10

 

Jan 2021

0

 

Feb 2021

0

 

Mar 2021

0

 

Apr 2021

0

 

May 2021

0

 

Jun 2021

250

 

Jul 2021

 

309

Aug 2021

 

412

Sep 2021

 

412

Example Monthly Time Bucket, 6 months Time Horizon Forward, and -10% change from last year:

Month

Sales

Forecast

Jul 2020

300

 

Aug 2020

400

 

Sep 2020

400

 

Oct 2020

100

 

Nov 2020

10

 

Dec 2020

10

 

Jan 2021

0

 

Feb 2021

0

 

Mar 2021

0

 

Apr 2021

0

 

May 2021

0

 

Jun 2021

250

 

Jul- 2021

 

270

Aug 2021

 

360

Sep 2021

 

360

Oct 2021

 

90

Nov 2021

 

9

Dec 2021

 

9

Forecast Method / Program Name

Parameter

Type

Default Value

Description

Weighted Average
(methfcavwa.p)

This method is used for products for which future order demand and previous sales cannot be directly correlated. It uses a weighted moving average based on the prior sales history and/or prior order history across two separate time buckets of calendar days, weeks, or months.

 

Order History Date

Character

Order

This is the type of date used for order history (either Order or Required).

 

Time Horizon Order History 1

Integer

6

This is the first number of past time buckets (based on the value of the Time Bucket parameter) to use for order history.

 

Time Horizon Order History 2

Integer

2

This is the second number of past time buckets (based on the value of the Time Bucket parameter) to use for order history.

 

Time Horizon Order History Weight 1

Decimal

.25

This is the weight of the order history for the first range of history. The sum of the Time Horizon Order History Weight 1, Time Horizon Order History Weight 2, Time Horizon Sales History Weight 1, and Time Horizon Sales History Weight 2 parameters must equal 1.

 

Time Horizon Order History Weight 2

Decimal

.25

This is the weight of the order history for the second range of history. The sum of the Time Horizon Order History Weight 1, Time Horizon Order History Weight 2, Time Horizon Sales History Weight 1, and Time Horizon Sales History Weight 2 parameters must equal 1.

 

Time Horizon Past

Integer

6

This parameter is not used for this forecast method.

 

Time Horizon Sales History 1

Integer

6

This is the first number of past time buckets (based on the value of the Time Bucket parameter) to use for sales history.

 

Time Horizon Sales History 2

Integer

2

This is the second number of past time buckets (based on the value of the Time Bucket parameter) to use for order history.

 

Time Horizon Sales History Weight 1

Decimal

.25

This is the weight of the sales history for the first range of history. The sum of the Time Horizon Order History Weight 1, Time Horizon Order History Weight 2, Time Horizon Sales History Weight 1, and Time Horizon Sales History Weight 2 parameters must equal 1.

 

Time Horizon Sales History Weight 2

Decimal

.25

This is the weight of the sales history for the second range of history. The sum of the Time Horizon Order History Weight 1, Time Horizon Order History Weight 2, Time Horizon Sales History Weight 1, and Time Horizon Sales History Weight 2 parameters must equal 1.

Example The following table illustrates a typical forecast calculation:

Type

Time Bucket

Value

Weight

Weight Average

Order

6 months

330

.3

16.5

Order

2 months

130

.4

26.0

Sales

6 months

192

.1

3.2

Sales

2 months

76

.2

7.6

 

 

 

 

 

Total

 

 

1

53.3

Forecast Method / Program Name

Parameter

Type

Default Value

Description

Yr over Yr Seasonality
(methfcyoys.p)

This forecast method calculates a seasonal year to year rate of change (growth or decline), which is used for forecast calculations.

NOTE You must use monthly time buckets for this forecast method.

 

# of Months - Max Forecast

Integer

0

This is the number of months to go back from the current month to search for the highest adjusted net sales.

EXAMPLE If the current month is February 2020 and this is set to 12, the system will seek the highest sales from February 2019 to January 2020.

The forecast going forward cannot exceed this value. If 0 is entered, this logic is ignored.

 

# of Months - Change Factor

Integer

0

This is the number of months to go back from the current month. This is used for the change factor calculation.

EXAMPLE If this value is 4, and the current month is February 2020, then it will add the four months preceding (October 2019, November 2019, December 2019, and January 2020 = 150) and this will be the numerator, and then add the same four preceding months from a year ago (October 2018, November 2018, December 2018 and Jan 2019 = 100) and this will be the denominator. So, the change factor will be 1.5.

 

Change Factor Option

Character

Current Month

Select one of the following options:

  • Current Month - The system calculates the rate for the current month and uses the rate for all forecast months.

  • Rolling Month - The system calculates the rate for each forecast month.

 

Time Horizon Past

Integer

24

This indicates how many time buckets into the past to use for the calculations.

Example The following tables illustrate typical forecast calculations.

Example 1

Jan

Feb

Mar

Apr

May

Jun

Jul

Aug

Sep

Oct

Nov

Dec

2020 sales

100

182

160

182

137

182

182

 

 

 

 

 

2019 sales

150

200

175

200

150

200

200

200

250

300

400

500

2018 sales

 

250

225

200

175

225

150

250

300

350

450

475

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Step 1 - Calculate the growth or decline rate over the trailing 4 months compared to the trailing months 13 - 16)

 

91.2%

 

 

 

 

 

 

 

 

 

 

Step 2 - Multiply the result in step one by the same period (trailing month 13) prior year

 

182

           160

           182

           137

           182

           182

 

 

 

 

 

Step 3 - Limit the size of the answer to a maximum of any month achieved over the past 24 months (550)

 

182

160

182

137

182

182

 

 

 

 

 

Step 4 - Use the result of Step 1 and repeat the process for each of the remaining months to forecast

 

 

91.2%

91.2%

91.2%

91.2%

91.2%

 

 

 

 

 

Example 2

Jan

Feb

Mar

Apr

May

Jun

Jul

Aug

Sep

Oct

Nov

Dec

2020 sales

200

323

294

264

235

550

235

 

 

 

 

 

2019 sales

150

275

250

225

200

550

200

300

400

425

500

550

2018 sales

 

250

225

200

175

500

150

250

300

350

450

475

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Step 1 - Calculate the growth or decline rate over the trailing 4 months compared to the trailing months 13 - 16)

 

117.5%

 

 

 

 

 

 

 

 

 

 

Step 2 - Multiply the result in step one by the same period (trailing month 13) prior year

 

323

           294

           264

           235

           646

           235

 

 

 

 

 

Step 3 - Limit the size of the answer to a maximum of any month achieved over the past 24 months (550)

 

323

294

264

235

550

235

 

 

 

 

 

Step 4 - Use the result of Step 1 and repeat the process for each of the remaining months to forecast

 

 

117.5%

117.5%

117.5%

117.5%

117.5%

 

 

 

 

 

Example 3

Jan

Feb

Mar

Apr

May

Jun

Jul

Aug

Sep

Oct

Nov

Dec

2020 sales

200

323

291

267

240

550

220

 

 

 

 

 

2019 sales

150

275

250

225

200

550

200

300

400

425

500

550

2018 sales

 

250

225

200

175

500

150

250

300

350

450

475

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Step 1 - Calculate the growth or decline rate over the trailing 4 months compared to the trailing months 13 - 16)

 

117.5%

116.5%

118.7%

120.2%

118.1%

110.1%

 

 

 

 

 

Step 2 - Multiply the result in step one by the same period (trailing month 13) prior year

 

323

291

267

240

650

220

 

 

 

 

 

Step 3 - Limit the size of the answer to a maximum of any month achieved over the past 24 months (550)

 

323

291

267

240

550

220