Reorder proposal refinement

The reorder forecast is often driving the proposal of the reorder quantity but there are many other elements that influence the final suggestion of reorder proposed to the customer.

The main elements influencing the reorder proposal are safety stock, final quantities to be left at the end of the planning horizon, sell-out target (in case of in-season reorder) and boxes.
In this page, it is explained how these factors contributes to defining the reorder suggestion shown to the customer. 




Safety stock


The safety stock is defined as a coefficient to increase the considered demand, in order to cover potential lost sales if the forecast is lower than sales. Therefore the safety stock acts as a buffer on top of the demand forecast. 


This parameter can be parametrized during the scenario parametrization phase and applies to all the products in the same way during both lead time and coverage period. The parameter is only available when configuring a reorder for permanent products. The reason why this parameter is not available when launching an in-season scenario is that a similar effect can be obtained by configuring accordingly the sell-out target (when decreasing the sell-out target, additional quantities are bought). 


 

Applying a safety stock of 10% means that the demand taken into account during lead time, to calculate the stock projection, and during the coverage period, to calculate the final quantities suggested to reorder, is increased by 10%. When this parameter is configured, it is possible to see it in the scenario result page as well as in the RO file. 



Sell out target


This parameter is only available when launching a reorder for  In-season products.


In the permanent products case, the recommendation aims to cover for the lost sales (that depend on our forecast) and the minimum displays of all stores.


In the in-season case, the reorder recommendation is calculated so at the end of the season we reach a configurable sell-out target, for example 90% in River Island’s case. Meaning, at the end of the coverage period the customer will have sold 90% of all the stock they have both bought and reordered. This sell-out target is configured when launching the scenario in the Nextail app.


Given that we have a pre-set sell-out target, we can calculate the new reorder recommendation quantity based on it, and deduct a formula for it based on the known total stock bought and the expected sales (see reorder recommendation calculation in-season for more information).




Boxes


Boxes are a constraint coming from the suppliers. Usually, orders can only be done in multiples of the quantity that fits in each box in which the product will be shipped by the supplier. If this is the case, we can take it into account in the reorder solution. Each sku can have a different box size.


Boxes are applied automatically when a scenario is launched. The difference in quantities due to this constraint can be seen between the columns "required quantity" and "reorder quantity".



When editing quantities, in case of not fulfilling the boxes constraints, the user get an alert.




Stock projection


Once we have calculated our forecast and have ready the optimization calculations, it is time for the stock projection. In this step we simulate the sales process during the lead time and coverage period, using the forecast as sales data to consume stock from both stores and warehouse each day, obtaining a projection of how our stock levels would have evolved daily if no reorder was placed. The logic about to be explained is the same for both in-season and permanent product use cases.


Before performing the actual stock projection, the minimum stock of each store is calculated. For each store-sku in the selling perimeter, this quantity is the maximum from:


  • The demand forecasted for a number of days equal to the average replenishment planning horizon, after the end of the coverage period (default 14 days)
  • The minimum display of that sku at the store
  • The reorder_min_stock_per_sku_store property

The stock projection follows this process:


  1. Initialize the store stock levels at the minimum stock (calculated as described in the final quantities paragraph). if they’re below that level, by taking stock from the warehouse (if there is not enough stock, all stores that need stock as they are below the level are replenished in the same proportion)
  2. For each day in the period from the reorder date to the coverage date, calculate the store and warehouse stock levels:

         a.   Receiving pending orders due on the date in warehouse and using that stock to reinitialize the store stock levels if they’ve fallen below the minimum stock level
            


         b.  Opening and closing stores, according to the schedule:

           -  New opening stores have a ‘mirror store’ that is already open. This new stores both stock and forecasted demand will be exactly the same as their twinned mirror store.

           -  Closing stores don’t return their stock to the warehouse, but from that moment on they won’t be replenished anymore.


         c.   Simulate the sales for the date, following this hierarchy (as seen in the graph):

             -  If a store’s stock is above the minimum level, sales subtract from the store’s stock, else

            -  If there is stock in the warehouse, sales subtract from the warehouse stock, else

            -  If there is still stock in the store, sales subtract from the store’s stock (as if they were selling without replenishment), else

             -  If any of the above applies, sales are counted as lost sales



This plot illustrates the methodology:




The lost sales that happened during the lead time are considered impossible to capture (simply the sale opportunity was missed). The lost sales during the coverage period are the ones we can account for with a reorder, and these will be used for the reorder recommendation.


At the end of the stock projection, we’ll have a table with the evolution of the stock at sku-store-date level, which we will use for the calculation of the final reorder quantity recommendation.


Special cases


Sometimes the selling perimeter changes during the lead time or the coverage period, and we need to take those changes into account for the reorder suggestion. Here are the main causes of changes and how the algorithm takes them into account:


  • Opening of new stores (no previous history): A mirror store has to be provided. The demand, selling perimeter and minimum stock are copied from this mirror store from the opening date to the end. The day it’s opened, the store is initialized to hold the minimum stock of all skus in it’s selling perimeter (as long as there’s stock in the warehouse).
  • Re-opening of existing stores: These stores will have their own demand, selling perimeter and minimum stock. However if the store has been closed for a long time, estimated demand may be low or even 0 (as there may not be many days with availability), a better fallback could be added in the future for those cases (we don’t have it yet). The demand from the long term forecast will be 0 until the reopening date (thanks to the future availability).
  • Closing stores: Demand for closing stores is already set to 0 for the day’s they’re closed by the forecast. Additionally, there will be no minimum stock considerations for these stores. One final thing to consider is that stock in those stores is kept “frozen” in those stores in the current version.

Layout changes: The layout changes are already impacted on the demand by the long term forecast and on the minimum displays. However, stock from products that leave the layout is not made available to other stores.


Reorder recommendation calculation


As for the stock projection the methodology was the same, in this calculation we distinguish between the two use cases:


Permanent products Reorder


In this use case, the final quantity that we recommend for each sku accounts for the sum of all the  minimum stock of all the stores in the scenario plus the expected demand that would be lost during the coverage period if no reorder happened, i.e the lost sales in the coverage period. These two quantities are calculated during the previous stock projection step.



In-season Reorder


In the in-season case, the reorder recommendation is calculated so at the end of the season we reach a configurable sell-out target, for example 90% in River Island’s case. Meaning, at the end of the coverage period the customer will have sold 90% of all the stock they have bought.

Given that we have a pre-set sell-out target, we can calculate the new reorder recommendation quantity  based on it, and deduct a formula for it based on the known total stock bought and the expected lost sales during the coverage period, quantities calculated during the stock projection step:


X being the final recommendation, sellout the sell-out target, S0 the initial total stock, Sf the final stock if no reorder happened, L the lost sales during the coverage period, and P the pending orders arriving during the scenario. If you want to read a full explanation on how we deduct this formula, please read the following sub-section.



Deduction of in-season sell-out based reorder recommendation formula:


We start with defining the variables we will use in the deduction.



We start the scenario with an initial total stock at the day of execution of S1, that is the sum of both stock in stores Ss and stock in warehouses Sw. Apart from this stock, there have been a total amount of past sales ps, and some additional bought stock still in transit, in the form of pending orders P. We want to place a reorder of a quantity X, and we want to calculate the ideal value for this quantity so we reach the desired sell-out target at the end of the scenario.

Note that we can then calculate the initial total stock S0 there was of a product as the sum of current stocks Ss, Sw and past sales ps.


Also, the total amount of stock bought will then be the sum of initial stock S0 plus pending orders P and additional reorder X.



On the other hand, after using our Long Term Forecast to produce a stock projection (see previous sections), we will have calculated a value for the lost sales during the coverage period L and the total remaining stock at the end of the scenario Sf without the reorder being placed.


Thus, we can calculate the expected sales with the reorder being placed as the difference in stock ΔS plus the total lost sales. ΔS is the difference between initial and final stock S0 - Sf plus pending orders P that arrived during the scenario.


Finally, we can then use the definition of sellout and the derived formulas of sales and stock bought to obtain a relation between all known variables (sellout is the sell-out target) and X:



Now we only have to clear the X variable as a function of the others from the above equation to obtain the desired formula for the final reorder recommendation quantity.

Intermediate step:

Final equation: