Module: Suggestion of orders

Executive summary

The present module Suggestion of orders is a common module for suggestion of orders from suppliers, orders from the central warehouse to branches and orders from production.

This is one of the most important modules in STOCK: it provides the final output of the system – purchase orders.

To create a purchase order, STOCK needs inputs from nearly all modules in the system.

The most important inputs are:

  • Stock on hand
  • Orders in transit
  • Customer orders
  • Sales forecast
  • Forecasting promotional sales
  • Safety stock and base stock
  • Order quantity
  • Ordering period
  • Possible ordering and delivery days

Math outputs of the module are then available to the user via the GUI in modules specialized in particular types of orders. Concretely, these are the modules:

  • Module: Suggestion of orders to suppliers
  • Module: Suggestion of orders between warehouses
  • Module: Suggestion of orders into production

The resulting orders can be used outside of GUI – by means of automated export into customer systems, where they are accessible to users.

The computed orders may subsequently be edited in various ways, aggregated and modified using the modules in the section Extension modules for supply management.

Functional description

On the bases of all input data, we project stock into the future – and this is how orders work, in a nutshell. If we get below the level either of safety, or baseline (each is used for other types of products), we create an order. The size of the order is based on other inputs, such as ordering periods, ordering days, etc.

Since the STOCK system daily recomputes everything, you must choose to which point during a day stock on hand should be registered.

The default setting of an order takes as stock on hand the supply at the beginning of the day. So: if we suggest an order with a delivery date x, we expect that actual usable supply provided by this order is available only on the day x + 1 (since we do not know when exactly the order was received during the day). The setting can be changed, if a customer agrees with the implementation team.

The basic principle of orders computation

Before any orders are set, we present stock progress without any suggestions:

image0

That way, we realize that if we don’t order anything, at about June 17, 2016 we get into a stockout. Thus, the system creates an order. Ordering period is set to 7 days, hence the order should cover a 7-day period. After the order has been created, the chart changes into this:

image1

The order was created – and the stockout has moved 7 days into the future. We proceed in this manner until orders are set for the entire period.

The result, then, looks like this:

image2

How to decide when to order and how much to order?

The charts from the previous section show that the stock on hand level is above the safety stock level. This is the basic setting of STOCK.

There are two fundamental problems that the module Suggestion of orders must solve: WHEN to order and HOW MUCH to order.

When to order

You can choose from these three settings:

  1. We order according to the forecast and safety stock. We order so that at the time of receipt of the order, the stock must be at (or above) the level of safety stock.
  2. We order according to the base stock. We order just before the base stock goes under the required level.
  3. We order according to the combination of the forecast + safety stock and the base stock. We order according to that parameter that goes under the required level first.

Setting 1 is suitable for customers with the vast majority of fast moving consumer goods; in such cases, the base stock is rarely used, since it is computed at the level of month and for supply management, daily forecasts and safety stock are crucial. This setting, however, can work with precise stratification of daily sales (on Fridays, sales are higher) and with promotions. The disadvantage of this setting is a relative difficulty (for the user) to determine why the order was for the given quantity: to know that, it is necessary to sum up daily sales into the future and to compare stock on hand and safety stock in, say, 15 days.

Setting 2 is particularly suitable for stable management of goods of a slower moving type, with stability and “simplicity” as the keywords. Most commonly, it is used for supplying the branches from the central warehouse. There are two basic advantages of this setting:

  • It is always clear at what stock level the system generates an order – when the stock on hand gets below the base stock level
  • Supplies even several times a day are possible (even when STOCK computes the results just once per day): if we export the base stock we computed to the customer, the customer can effortlessly calculate whether s/he should order or not.

The biggest drawback of the setting 2 is that the base stock cannot handle promotions and neither it can handle variable distribution sales in days.

Setting 3 is a combination of the two preceding ones and it used as a default setting for most projects; it combines the advantages of both.

How much to order

The quantity to be ordered can be decided in three different ways – and it can be adjusted through the Settings:

  1. We order for a period: we set exactly the length of time (period), after which we order again. This setting gets evaluated according to daily forecasts.
  2. We order to max base stock: we order the difference between the current stock on hand at the time of ordering and max base stock.
  3. We order the larger of these two quantities.

Advantages and disadvantages are virtually identical to the previous setting (where we discussed when to order):

Setting 1: suitable for FMCG, we can accept different values of ​​daily forecasts during the week.

Setting 2: suitable for sporadic products, it gives exact information how much we should order. After the levels have been exported to the customer information system, the system can compute ordering quantities without STOCK.

Setting 3: this setting combines the benefits of both approaches.

Lead times and ordering period can be set using the module: SIDI, or via administration of GUI in STOCK, which is described in detail in the module: Administration of suppliers and Administration of delivery properties of warehouses.

Backorder of stock after stockout

It just could happen that – even though we ordered right away – a stockout appears. During the stockout, other sales might be forecasted and thus we get deeper and deeper into the red. You can see the situation clearly in the following figure: the stock dropped to -24 pieces.

image3

In this case, we have to estimate, how many from the -24 pieces will get sold. That means, how many customers – between July, 6th (today) and July 18th, 2016 – will probably order a product, despite the zero stock – and how many of them decide not to buy the product. STOCK’s standard setting is that 80% of customers decide to buy the product. This setting is set globally once for each STOCK implementation.

For the algorithm, then: to get the orders to 0, the algorithm must order 80% of 24 units in the negative (20 pieces). Furthermore, it must continue so that the goods suffice for the next ordering period.

If there are customer orders scheduled for the period July 6th, 2016 (today) till July 18th, 2016, notice that these customer orders CANNOT be decreased by the percentage probability of purchase: they must always be counted as 100%.

Acceptance of a minimum set and quantity

Orders operate in default setting with the term “minimal quantity” or “minimal set”. These data may be set for one individual product, warehouse and supplier using SIDI or using a module Supplier administration and Warehouse delivery options administration.

The minimum order quantity is the minimum number of basic units of measurement that can be ordered.

The minimum order set is a multiple of the basic unit of measurement, that can be ordered.

If the minimum order quantity is 100 pieces, and the minimum order set is 20 pieces, then it is possible to order 100, 120, 140, 160, … pieces.

STOCK never rounds the ordering quantities downwards in a standard ordering module. Even if the packaging contains 100 pieces and it is just 1 piece that needs to be ordered, 100 pieces are ordered. This behavior may – under certain, precisely defined circumstances – be changed using some of the extension modules below. The reason behind this decision is the STOCK observes a required service level – and it would not be possible with rounding down.

The work with minimal quantities and minimum ordering sets can be modified using the extension of this module: Advanced minimum quantities and sets.

If you want to work with minimum order quantities across multiple products (or for a supplier), use the module MOQ suppliers and warehouse. It is possible to set a limit in pieces, or quantitative units.

Furthermore, basic ordering quantities can be influenced mainly by additional modules:

  • Expiration
  • Economic rounding to a package
  • Smart Card Distribution
  • Extraction of quantitative and volume units using GUI
  • Extraction of quantitative and volume units using SIDI
  • They may be influenced by other modules

Acceptance of ordering and delivery days

Ordering and delivery are important for orders: it is an input for creating purchase orders, for establishing, when it is possible to receive these purchase orders to a warehouse – and increase thus the stock on hand.

There are two basic types of ordering and delivery days:

  • Ordering day + lead time: It is mainly used for orders to suppliers with relatively strict ordering days (e.g., Wednesday only) and their lead time is variable, so that items arrive in at about 20 days. It is particularly suitable for longer lead times. Lead time is always set in calendar days, not working days. If a delivery day falls on a holiday (the module: Holidays) or on a non-working day (remember that you can set the working week in STOCK to Mon-Fri, Mon-Sat, Mon-Sun), the delivery is automatically moved to the next working day.
  • Fixed combinations Ordering day –> Delivery day: It is used for orders from the central warehouse to branches in particular: there are fixed delivery days (when goods get to the warehouse). As an ordering day, we take the last possible date when it is still possible to create an order such that it is going to be delivered exactly on the required delivery day. If we deal with a fixed calendar, the delivery date applies even if the given delivery day happens to be a holiday or non-working day. If a user wants to change the setting, they have to set a time-limited exceptions in the settings.

Ordering and delivering days can be imported using input database (SIDI) or set up using user interface of STOCK. This is described in the chapter for: Administration of suppliers and Administration of delivery properties of warehouses.

In these modules, it is possible to specify standard ordering and delivery days and also exceptions valid during holidays.

Ordering in the company’s distribution model

If the ordering is not only from a single warehouse, but there are also distribution to and from other warehouses (see the module: Distribution among warehouses) or if there are manufacturing orders within a company (see the module: Production), so-called multilevel orders are created.

We explain this at an example of a company, which has a central warehouse C and branches B1, B2, B3. The branch B3 also has two additional dispensing points D1 and D2 in various locations. The central warehouse orders from a supplier S and it delivers at all the three branches B1 to B3. The branch B3 delivers to the dispensing points D1 and D2. All the sites – dispensing points, branches and the central warehouse also sell to customers.

Suggesting orders in this situation is as follows:

  1. Based on sales forecast, purchase orders from the dispensing locations D1 and D2 to the branch B3 are suggested.
  2. The branch B3 – based on sales forecast to its own customers and based on orders from the outlets D1 and D2 (these purchase orders are added to the sales forecast of B3) – suggests a purchase order to the central warehouse C.
  3. The branches B1 and B2 do not have their own dispensing points, so their sales forecasts are based exclusively on their own sales; these are turned into suggested purchase orders to C.
  4. The central warehouse – to its own sales forecast – adds the purchase orders from the branches B1, B2, and B3, and subsequently suggests a purchase order to the supplier. The central warehouse does not include the purchase orders from D1 and D2: these are already included in the purchase orders from B3

STOCK is not concerned with the level of stock on hand at a branch or the central warehouse: it is capable to order it from the supplier still on time. Each branch, on the other hand, orders exactly what it needs, it creates an order – and it is the superordinate warehouse that has to cover the order. This in turn means, that we suggest orders to branches even if the central warehouse stock on hand is at zero. Ideally, this should not happen, since it is the STOCK that manages the entire supply chain within the company. But still, for instance in a model situation: when a supplier stops supplying the central warehouse, one must know that goods are needed at the branches and, thus, that the goods must be provided either in another way (by an alternative supplier, buy the goods from someone else, direct delivery), or the product must be excluded from the product range.

Production works in a way very similar to the distribution among warehouses. The only difference is that the central warehouses is replaced by raw materials and the branches are now final products. Another difference is the fact that in the distribution among warehouses, it is always the same product, while in the production, a set of raw material changes (in a precise ratio and in accordance with the production BOM) into a different product.

Ordering custom-made products

Using the SIDI, the user can mark a particular product as custom-made. This in turns mean that a purchase order is generated only when there occurs a custom order (Module: Customers orders).

When a customer orders such a product, the following procedures are started:

  • If there is enough stock on hand (equal to or higher than the customer order), no purchase order is generated.
  • If there is available stock on hand, but in a level lower than the customer order, the difference is reordered (rounded to the minimum quantity and packaging).
  • If there is an order in transit (Module: Orders in transit) with delivery date sooner or equal to the date the customer order is scheduled to arrive, this order is added to the stock on hand.
  • If there is an order in transit that has a delivery date after the customer order and, moreover, there is a way to deliver the goods (e.g., from another supplier) before the customer order, the order in transit is ignored and the product is suggested to be ordered.

Explaining orders

The screen “Explaining orders” shows detailed steps by which the system ensures the optimal inventory level for each item.

The are four basic channels causing change in stocks (and they are monitored by the system):

  • An order from a client (pre-agreed purchase)
  • Release for production (the given item is raw material needed to produce the final product)
  • Release for distribution among warehouses (moving from the central warehouse to a branch)
  • Sales forecast (sales to end customers)

There is still a certain level of safety stock: the system maintains the level as insurance for unexpected purchases, a problem with a supplier, and so on (the safety stock is set up statistically so as to maintain the desired level of customer service).

Based on these data – and stock on hand in the current day – the system searches for stockouts: these, then, are resolved either by a purchase or by moving items to the given warehouse, i.e., an order is being created.

For each stockout, the inputs that caused the outage are carefully and in detail recorded. Two key values are monitored: Required quantity and Quantity actually required (quantity adjusted for sales lost due to stockout). The final quantity ordered is rounded to a package / MOQ and listed as Quantity actually ordered.

The required quantity arises from the quantity blocked to cover the requirements from the current stockout (if there was one) and the requirements from the date of delivery of the current order to the next possible delivery date.

To create orders, there are two levels of stock that need to be tracked: real stock and blocked stock.

  • The real stock (marked red in the chart) is derived from the stock on the day zero, so that for every day, an actual consumption is subtracted from the current stock level.
  • The blocked stock (on the chart in orange) is the actual stock + orders in transit + the currently suggested order. The value is used in min-max ordering by base stock.

An Example

The initial stock of an item is 10 pieces, constant consumption is a piece per day, lead time is 20 days, period is 20 days, a distribution of 5 pieces on the fifth day from today, a customer order of 5 pieces on the 17th day.

In this situation, there is going to be a stockout on the sixth day: therefore, distribution is not included in the blocked stock (there was enough goods to cover for it), but the customer order cannot be covered – hence, 5 pieces are blocked. Forecast is the rest of the required quantity: 14 pieces to cover for the stockout prior to the delivery date and 25 for the period after the delivery (to the next delivery day).

  • Required quantity: 44
  • Blocked customer orders: 5
  • Blocked production: 0
  • Blocked distribution: 0
  • Forecast: 39
  • Before the day of delivery: 14
  • After the day of delivery: 25 # 20 days period + 5 pieces of safety stock

In accordance with the parameter setting ‘stockout-lost-amount-rate’, the forecast before the day of delivery is reduced by the quantity (for which it is assumed that) the customer is not going to go on with (because s/he will buy at a competitor, s/he cannot wait till the product is available again, etc.). In the example, we consider the parameter ‘stockout-lost-amount-rate’ as 50% (see parameter ‘replenishment-after-stockout’). The actually required quantity is then calculated.

  • Quantity actually required: 37
  • Customer orders: 5 pieces must be ordered – and must be delivered even in a case of a stockout: it is a customer order
  • Redistribuce: 0
  • Production: 0
  • Forecast: 27 (34-7) – 7 pieces is subtracted as quantity lost, i.e., half of the 14 “before the date of delivery”

GUI

At the tab “Explaining orders”, both the stock’s history and its original level (up to today) are displayed. This coincides with the future level, if nothing is ordered. Then, the resulting state with all orders into the future is displayed (according to the specified range).

Then, a list of all stockouts and details about their solution is added. The table summarizes data on delivery, promotions (if any) and required quantities (see the example above).

../../../_images/vysvetlenie-objednavok-tabulka.png

The chart illustrates the specified levels. Mouse over the individual time series to see the series details: name, quantity and date (both absolute and index: it is the offset, in days from today to the given day).

../../../_images/vysvetlenie-objednavok-graf.png ../../../_images/vysvetlenie-objednavok-popisok.png

Extensions

Advanced order sets

The present functionality is used for detailed stratification of ordered packaging. Typically, a product is ordered by a whole pallet, or, for example, so that 70% of a palette is full.

To set advanced order quantities and sets, you must use the SIDI.

The present extension allows – using various rules with various priorities – set precise rules for rounding off quantity to be ordered.

The following variants are possible (with an example):

  • Basic settings: it is used always whenever other rules are violated.
  • In our example, the basic rule does not round off.
  • For each range of quantity, one needs to identify for which packaging the quantity should be rounded up.
    • In our example, for the range from 20 to 60 pieces, we round up to cartons (each has 5 pieces).
    • From 61 pieces, we round up to whole layers of pallets (100 pieces).
  • For any packaging, it can be determined whether it gets filled to a specified percentage.
    • A palette fits 1000 pieces. If 70% of the palette is filled, we always order the whole palette – otherwise, other rules apply.

How exactly we are we going to round off is shown in the following table:

Setting limits for ordering new items via SIDI

Ordering new items can be done via inputs from the ERP system. Both a minimum quantity and order quantity can be set. If the stock on hand falls below the minimum quantity, the order quantity is ordered.

These limits are used as a minimum. If the STOCK system wants to order sooner – or greater amount – it will. It is but a safety mechanism until a sufficient stock history is available.

The functionality may be used only via settings in the module SIDI.

Setting limits for ordering mandatory products

This setting is used for maintaining strategic products at stores, despite the fact that it is not sold regularly, but it must be there for other (managerial) reasons (for instance, we deal with a key brand, or there is an agreement with a supplier, or it is a product that always must be available even at weaker retail chain stores).

The functionality may be used only via settings in the module via SIDI.

There are two quantities set in the functionality:

  1. minimum threshold of stock on hand
  2. order quantity if the minimum threshold is crossed

Suggesting orders work in a standard way with this functionality, based on the statistics described above. If, however, the stock on hand drops under the minimum threshold, the quantity described in paragraph 2 is backordered. It therefore might be seen as an “emergency brake” for ordering mandatory products.

Setting limits for ordering new items via SIDI

The present functionality is virtually identical to the previous extension. The only difference is that this functionality is active only if the product is labeled as a new item. This functionality, then, provides the user with a possibility to manage supply chain of new items at the time they were introduced to sale.

The functionalities (for ordering mandatory products and novelties) can be combined and for either of them, different values for minimum and order limits can be set.

Thus, a product manager – while setting the product – can set these limits for a period the product is a novelty – and after that period, s/he can automatically turn to manage the supplies through the functionality that sets limits on mandatory products.

Setting safety stock for a promotion before the outset of the promotion using SIDI

For certain kinds of goods (those without a short expiration), it may be advantageous to set safety stock already before the start of the promotion: logistics ‘gets time’ to prepare for the increased orders; that way, we also avoid the need to rely on a one-time high order.

Computation of safety stock is described in the module Safety stock and in the paragraph Safety stock for promotions.

The extension works with the safety stock computed in the module above.

Using SIDI we may set:

  • the percentage of the safety stock should get added to the standard safety stock prior the promotion,
  • how many days before the promotion should the regular safety stock increase by the given percentage.