Cloning allows users to generate forecasts for new items and locations by copying, or cloning history, from other items and stores. Users can map items or stores that have similar business cases, clone the historical data, and begin generating forecasts. Cloning provides the ability to generate forecasts based on historical data and promotional calendar.
The Clone Syntax section contains the specifications and syntax for configuring the Forecast procedure.
The clone procedure can be set up to clone sales history, promotion history.
This appendix details these topics:
The following libraries must be registered in any domains that will use the clone solution extension:
RdfFunctions
The following notes provide information about CloneMeasure functionality.
Refer to the appropriate input parameters and output measures when using the CloneMeasure procedure.
The PROD and LOC hierarchies are required by the CloneMeasure expression. If CLND exists, it must be the innermost hierarchy.
Cloning supports up to three like items or three sister stores with contribution percentages for each of these items or stores.
An adjustment ratio can be defined to modify the level of the CloneMeasure history for the new product or location.
Like items are auto recommended after you run the new item recommendation script and it is reviewed/approved by using new item review and maintenance workbooks. Sister stores are manual selected by you when using new store workbooks.
The cloning (copying) of historical data is performed as part of the batch process using the CloneMeasure special expression.
The CloneMeasure special expression is generic enough that it can be used to copy not just history, but forecast parameters, Casual histories and more, using the CloneMeasure special expression.
The input parameters include a replicate mode(1 is clone), a substitute method measure, a source array, up to six map measures, six contribution measures, two Adjustment Ratio Measures, and a destination array.
The source and destination array must be at the same intersection, as validated by the special expression. The intersection will be where cloning is performed.
The map, contribution measures must be at the same intersections as the source and destination arrays.
The map arrays and contribution measures are optional; at least one of each is required. The number of contribution measures should be equal to the number of map measures.
Two additional optional start and end date measures can be passed, which specify the start end and end date indexes of the cloning process.
Similar restrictions for the intersection of the Start and End Date Index measures apply as mentioned with map measures above.
The index should be an index along a calendar dimension equal to the Calendar Dimension along Source and Destination array. For example, if the Source and Destination Arrays are at the item/store/week level intersection, then the Start and end date index measures should contain Index values of the Week dimension.
If these values are not passed, they will default to calendar hierarchy Start and End dates.
When running a CloneMeasure at a higher intersection, you need to create a mask measure. If you create a mask, do so at the same intersection as your SRC and DEST measures less the Calendar dimension if the SRC and DEST are at a higher intersection.
In some instances, it is preferable that the CloneMeasure expression is run separately for items and locations. Perform the following procedure to run the CloneMeasure expression separately for items and locations:
Run the CloneMeasure expression for items.
Update the CloneMeasure source measure with the results from the item cloning run.
For example, if the initial source measure for the cloning run was source_measure, and the item cloning adjustments are stored in the item_cloning_adjustments measure. Then the update could be achieved by an expression of the type:
source_measure = source_measure + item_cloning_adjustments
Run the CloneMeasure expression for locations with the same source_measure as source measure.
Aggregate the various demand components to build the forecast source.
Since up to three parent items and three parent stores can be specified, the number of mapping measures can consist of up to nine combinations of item/stores (# of parent items specified x # pf parent stores specified) and corresponding % contributions.
Example C-1 Calculating Real or Integer Values Using the Clone Expression
The following example illustrates how real or integer values are calculated using the clone expression.
Item1 | ||
---|---|---|
Item2 | Item3 | Item4 |
20% | 20% | 60% |
STR1 | ||
STR2 | STR3 | STR4 |
20% | 50% | 30% |
The Special Expression will calculate mappings and contributions as follows:
Item2/STR2 at 4%
Item2/STR3 at 10%
Item2/STR4 at 6%
Item3/STR2 at 4%
Item3/STR3 at 10%
Item3/Str4 at 6%
Item4/STR2 at 12%
Item4/STR3 at 30%
Item4/Str4 at 18%
Example C-2 Subset of Possible Values Provided
If only a subset of values is populated, then the clone expression performs its calculations as shown in this example.
Item1 | |
Item2 | Item3 |
20% | 80% |
STR1 | |
STR2 | STR3 |
50% | 50% |
The Special Expression will calculate mappings and contributions as follows:
Item2/STR2 at 10%
Item2/STR3 at 10%
Item3/STR2 at 40%
Item3/STR3 at 40%
Example C-3 Subset of Possible Values Provided with Adjustment Ratio
If only a subset of values is populated and an Adjustment Ratio is defined, then the clone expression performs its calculations as shown in this example.
Item1 | |
Item2 | Item3 |
20% | 80% |
Adjustment Ration = 1 | |
STR1 | |
STR2 | STR3 |
50% | 50% |
Adjustment Ration = 0.5 |
The Special Expression will calculate mappings and contributions as follows:
Item2/STR2 at 5% (=20% x 0.5x50%)
Item2/STR3 at 5%
Item3/STR2 at 20% (=80%x0.5x50%)
Item3/STR3 at 20%
The syntax for using the clone procedure is shown in the following examples. The input and output parameter tables explain the specific usage of the parameters names use in the procedure.
Example C-4 Generic Example for Cloning Real or Integer Measures:
DEST:DEST_MEASURE <-CloneMeasure(REPLMOD:1,SUBMETH:SUBMETHOD_MEASURE,SRC:SOURCE_MEASURE,
SKUMAP1: SKUMAPMEAS1, SKURATIO: SKUCONTRIBUTION1, SKUMAP2: SKUMAPMEAS2, SKURATIO2:SKUCONTRIBUTION2, SKUMAP3:SKUMAPMEAS3, SKURATIO3: SKUCONTRIBUTION3, SKUADJRATIO: SKUADJUSTMENTRATIOMEAS
STRMAP1:STRMAPMEAS1, STRRATIO1:STRCONTRIBUTION1, STRMAP2:STRMAPMEAS2, STRRATIO2:STRCONTRIBUTION2, STRMAP3:STRMAPMEAS3, STRRATIO3:STRCONTRIBUTION3, STRADJRATIO:STRADJUSTMENTRATIOMEAS [, STARTINDEX:STARTINDEX]
[, ENDINDEX:ENDINDEX]
Example C-5 Sample of Clone Function with Real or Integer Measures:
DEST:clnadj<- CloneMeasure
(REPLMOD:1,SUBMETH:fcpsubm,SRC:prebasesls,SKUMAP1:nitapplkitm1,SKURATIO1:nitappcnt1,SKUMAP2:nitapplkitm2,SKURATIO2:nitappcnt2,SKUMAP3:nitapplkitm3,SKURATIO3:nitappcnt3,SKUADJRATIO:nitappadj,STRMAP1:nstapplkstr1,STRRATIO1:nstappcnt1,STRMAP2:nstapplkstr2,STRRATIO2:nstappcnt2,STRMAP3:nstapplkstr3,STRRATIO3:nstappcnt3,STRADJRATIO:fcpadj)
This section describes the configuration parameters and rules for clones.
Table C-1 provides the input parameters for the clone procedure and special expressions.
Table C-1 Input Parameters for the Clone Procedure and Special Expressions
Parameter Name | Description |
---|---|
1 |
Replicate mode 1 - Clone |
SUBMETHOD_MEASURE |
Substitute method for new items or new stores. 9 - New Item Clone 10 - New Store Clone |
SOURCE_MEASURE |
The source measure used for cloning. The source array and destination array need to be at the same intersection, which will be validated by the special expression. This is the intersection in which cloning is performed. Data Type: Integer, Real Required: Yes |
SKUMAPMEAS1 |
The first SKU measure that is mapped to the new item/store. Data Type: String Required: Yes At least one map measure is required when using the clone function. SKUMAPMEAS1 needs to be populated with position ID of clone item. |
SKUCONTRIBUTION1 |
The percentage of data used when cloning historical data. Used to weigh or assign importance of item or store map. Data Type: Real Required: Yes—for Real or Integer cloning. Ignored for Boolean and String cloning. At least one contribution measure is required Real or Integer cloning. |
SKUMAPMEAS2 |
The second SKU measure that is mapped to the new item/store. Data Type: String Required: Yes— for Integer, Real, Boolean, or String cloning. Ignored for Date cloning. |
SKUCONTRIBUTION2 |
The percentage of data used when cloning historical data for SKUMAPMEAS2. Used to weigh or assign importance of item or store map. Data Type: Real Required: Yes Ignored for Boolean and String cloning. |
SKUMAPMEAS3 |
The third SKU measure that is mapped to the new item/store. Data Type: String Required: Yes— for Integer, Real, Boolean, or String cloning. Ignored for Date cloning. |
SKUCONTRIBUTION3 |
The percentage of data used when cloning historical data for SKUMAPMEAS3. Used to weigh or assign importance of item or store map. Data Type: Real Required: Yes Ignored for Boolean and String cloning. |
SKUADJUSTMENTRATIOMEAS |
A value greater than zero (0) used to adjust the level of history calculated at the item level. Data Type: Real Required: Yes |
STRMAPMEAS1 |
The first STR measure that is mapped to the new item/store. Data Type: String Required: Yes STRMAPMEAS1 needs to be populated with position ID of clone store. |
STRCONTRIBUTION1 |
The percentage of data used when cloning historical data for STRMAPMEAS1. Used to weigh or assign importance of item or store map. Data Type: Real Required: Yes — for Real or Integer cloning. Ignored for Boolean and String cloning. |
StrMapMeas2 |
The second STR measure that is mapped to the new item/store. Data Type: String Required: Yes— for Integer, Real, Boolean, or String cloning. Ignored for Date cloning. |
StrContribution2 |
The percentage of data used when cloning historical data for STRMAPMEAS2. Used to weigh or assign importance of item or store map. Data Type: Real Required: Yes Ignored for Boolean and String cloning. |
StrMapMeas3 |
The third STR measure that is mapped to the new item/store. Data Type: String Required: Yes— for Integer, Real, Boolean, or String cloning. Ignored for Date cloning. |
StrContribution3 |
The percentage of data used when cloning historical data for STRMAPMEAS3. Used to weigh or assign importance of item or store map. Data Type: Real Required: Yes Ignored for Boolean and String cloning. |
STRADJUSTMENTRATIOMEAS |
A value used to adjust the level of history calculated at the store level. Data Type: Real Required: Yes |
STARTINDEX |
The index value for the Week dimension to be used as the starting point to clone data. Data Type: Integer Required: No |
ENDINDEX |
The index value for the Week dimension to be used as the ending point to clone data. Data Type: Integer Required: No |
DEST_MEASURE |
An array containing the item or location data is being cloned. Data Type: Integer, Real Required: Yes Data type and Base Intersection of this measure need to be the same as that of the SOURCE_MEASURE. |
This section describes special expressions for clones.
The ClonePostProc special expression can be used to adjust the cloned sales history based on actual sales of new items. When a new item start selling, the actual sales and the clone sales can be used to calculate an adjustment ratio. The cloned sales is multiplied with the adjustment ratio so that the scale of cloned sales is close to actual sales.
Calculation
adjust cloned sales = pow(total actual sales from history start to t period forward /total cloned sales over t period backward from history start,1-alpha) * cloned sales
Example C-6 Clonepostproc Syntax
DEST:clnadj<-ClonePostProc(SALESHIST:pos, NPERSSLSTHRSHLD:clnslsprdXLXB,
MASKMEAS:clnAdjMask, NPERSCALCRAT:clnclcprdX
LXB, ADJRATIO:clnalphaXLXB)
Table C-2 Parameters for the ClonePostProc Special Expression
Parameter Name | Description |
---|---|
DEST |
host cloned sales at prod/loc/clnd before special expression run. After special expression run, it host the adjusted sales: Data Type: Real Required: Yes The Data Type and Base Intersection of this measure needs to be the same as SALESHIST. |
SALESHIST |
Sales measure contains actual sales. Based on prod/loc/calendar Data Type: Real Required: Yes |
NPERSSLSTHRSHLD |
Maximum number of periods having actual sales. Based on prod/loc, When the sales history period is more than this threshold. no adjust is made. Data Type: Integer, Real Required: Yes |
MASKMEAS |
A Boolean measure at prod/loc. It indicates which times eries is eligible for adjustment. Data Type: Boolean Required: Yes |
NPERSCALCRAT |
An integer measure indicate the number of period to used pre and after actual sales history start to calculate adjustment. Data Type: Integer, Real Required: Yes |
ADJRATIO |
The alpha number in the calculation formula. A real measure based on prod/loc. Data Type: Real Required: Yes Valid alpha is between 0-1. When alpha=0 or1, no adjustment is made. When alpha is close to 0, the adjusted sales is close to the cloned sales. When alpha is close to 1, the adjusted sales is close to the actual sales. It needs to be on the same intersection as NPERSCALCRAT and NPERSSLSTHRSHLD. |