Ratings
Introduction
Ratings are used to rank facilities in so that the best possible facility for order fulfillment is determined. To do so, for each rating a penalty is applied to all the available facilities. The range of this penalty is 1-10 (where 1 means not important and 10 means very important) and can be defined individually per rating so that our customers can weigh each rating by themselves. Finally, the facility with the lowest penalty sum is determined. Ratings are applied facilities were filtered out by fences.
Please see here for the API documentation.
The following predefined ratings are available:
Geodistance
This rating is two-fold. Within Germany, this rating ranks the facilities nearest to the customer by determining the geographical distance using the coordinates of both zip codes. To do so, a lookup table is used that knows all distances for a given zip code to all other existing zip codes.
For now, this function is only available for German zip codes.
Outside of Germany, this rating ranks the facility nearest to the customer like the zip code based rating but enhances it by using geo-location information, e.g. bee-line. This fine-tunes the zip code based rating and covers situations where the distance of the center of two zip codes does not represent the reality. This can happen if the tenant has more than one facility within the same zip code or where a facility is located next to the border of a zip code.
Good to know
Using the Geo-location based routing will generate extra costs since it relies on Google Maps.
Amount of available stock
To determine a facility which can fulfill a customer's order best, the total amount of available items is calculated.
Example: if a customer orders article A with a quantity of 5, then we have 5 items. If a customer orders article A with a quantity of 5 and article B with the quantity of 3, then we have 8 items.
After calculating the sum of all available items, the facilities are ranked by this amount.
This does not necessarily mean that a facility can be found that is able to fulfill all the requested items by the customer. If this is required, please consider the stock availability fence instead!
Example:
customer orders article A(9), B(6), C(3). Sum of all items = 18
Facility 1 has A(4), B(5), C(1). Sum of all applicable items for the customers order = 10
Facility 2 has A(9), B(5), C(1). Sum of all applicable items for the customers order = 15
Facility 3 has A(6), B(0), C(20), D(10). Sum of all applicable items for the customers order = 9 (A(6) + C(3))
Ranking would be: Facility 2,1,3
This rating treats listings with no stock attribute defined at all the same way as listings that have a stock level of 0.
Usually, a facility also has ongoing offline sales (caused by offline customers who walk into the facility and buy certain articles). As a result, the system has to deal with the uncertainty that there will be stock which cannot be used for online orders. Furthermore we have to deal with the fact that the reported stock is not 100% correct for each given moment in time.
Therefore the system “splits” the stock of each article into offline and online stock and marks a certain stock level for offline sales. DOMS will not include any of this offline stock into its calculation.
Setting offline stock
The offline stock can be set manually on facility level by defining a relative quantity (in %). If the calculated offline stock is a decimal number, we will round off the figures. The offline stock setting is only available for facilities that have the service type “Ship-from-Store” because for Click & Collect no stock has to be reserved.
Whenever a task is routed to a facility the ordered amount of an article is recorded as “reserved stock”. Although the task is not completed yet, DOMS now considers this reserved stock when routing upcoming orders in the future, e.g. DOMS will not include any of this reserved stock into its calculation. This record sustains until the pick is actually done and the end of picking (completion of the task) is provided to DOMS by either our own in-Store Fulfillment solution or by any third party solution. In case of the latter, it should be ensured that the stock is then reduced by the picked amount as well as the reserved stock is reduced by the ordered amount.
Thereby we prevent that DOMS does not “use” online stock twice for two different orders.
Thus for each listing, we have three stock-related attributes:
For a routing decision, DOMS will calculate the amount of available items of a listing by applying the following formula:
available items = stock - reserved-stock - offline-stock
Items which are bundled so that they are not split within routing (see: Custom Service) are considered as one in this rating. Meaning that if one item is missing in such a bundle all items within this bundle are seen as missing and the rating would rate accordingly.
Maximizing turnover
This rating works the very same way as the above mentioned amount of available stock rating. However instead of calculating the amount of available eaches, calculates the total turnover which would be made per facility by multiplying the price of each listing with the amount of the available each of a listing. This is more or less the same as the available stock rating if a facility is able to fulfill all items the customer has ordered: the more items are available, the more turnover could be made.
The key difference however is when no facility is able to fulfill all items: in such a case it might be more desirable to choose a facility that is able to fulfill the more expensive items in contrast to a facility that only is able to fulfill cheaper items:
customers orders 1x smartphone and 5x pencil. This rating would choose facility 1 since this facility would generate a turnover of 299 Euro versus facility 2, which only generated 5x2Euro = 10 Euro turnover. The available stock rating however would choose facility 2, since it is able to fulfill 5/6 eaches the customers has ordered where as facility 1 only is able to fulfill 1/6 eaches.
Currently we do not consider different currencies in this rating.
Stock-balancing
Our DOMS is able to balance different stock levels in the fulfillment network. This can reduce storing costs, increase article availability and it reduces the need of sell-offs.
When routing an order with stock-balancing activated, the system sums up the amount of eaches the customer has ordered and compares them to the amount of eaches which are available for those items the customer has ordered per facility. The facility with the highest stock deviation gets the maximum penalty:
Deviation facility 1: (1+1)/(1+10) = 2/11 = 18%
Deviation facility 2: (1+1)/(5+5) = 2/10 = 20%
Workload-balancing
In terms of balancing, our DOMS is able to take workload into consideration. This helps to avoid choosing facilities which suffer from a high workload of their employees which in turn will most likely trigger a rerouting.
When routing an order with workload-balancing activated, the system will favor a facility with a lower workload (e.g. less tasks in state “open” which need to be fulfilled) than a facility which already has a high workload.
Matching business type
There are certain situations where an order might contain a list of preselected facilities which have different business type although the customer demanded for a certain business type:
customer creates a click & collect order, the system however supplies a click & collect store as well as a ship from store warehouse. Why? Because the ship from store warehouse can be used as a fallback to pick the items and send them over to the click & collect store in case the store cannot fulfill the order of the customer. Still, if both facilities are rated equally good, the system should route the order into the store to avoid shipping costs - and that's the purpose of this rating.
Prefer facilities which have the business type “store”
There might be situations where our user wants to distribute orders preferably to a store due to costs or operational reasons on site.
When routing an order with this rating activated facilities with the business type “store” are favored against facilities with a different business type.
Prefer facilities which have the business type “warehouse”
There might be situations where our user wants to distribute orders preferably to a warehouse due to costs or operational reasons on site.
When routing an order with this rating activated facilities with the business type “warehouse” are favored against facilities with a different business type.
Prefer stock with a high score
If you are using our stock capability you can rate the usage of different stock. A stock with a high quantity is used preferably over remaining stock with less items. The score can represent different attributes of the stock like Zone, Storage Location, best before Date or date of receipt.
Note: only if the rating is active the stock in the preferred zone is reserved when an order routing is performed. If it is inactive the stock reservation does not consider a scoring of stock.
Prefer facilities which allow lower shipping costs
When utilising your whole logistic network you have the chance to reduce your shipping costs especially if your network extends over several countries with different carriers, carrier-types and carrier service levels. If this is the case it might make sense to use our shipping cost rating. Here we compare possible shipping options if they are not predetermined by the consumer. When routing an order with this rating active we check which facility has an active carrier, which is able to deliver the order for the lowest costs. Facilities with lower costs gets a better score in our routing than a facility with higher costs. When comparing the delivery options we only compare carrier costs of a needed/requested category. E.g. if the order requires a express delivery, we only compare carrier costs for express delivery (otherwise the standard option would always prioritised due to lower costs). In case the orderline requires a specific carrierProductCategory (i.e. value carrier - information is provided via the deliveryPreferences.shipping.carrierProductCategory property ) only delivery costs of carrier products of this particular carrierProductCategory are taken into account.
Currently we do not consider different currencies in this rating.
Prefer facilities which enable faster shipping
Next to costs we have the possibility to store information about shipping/delivery times of the individual carriers. Again, we compare possible shipping options if they are not predetermined by the consumer. When routing an order with this rating active we check which facility has an active carrier, which is able to deliver the order the fastest. In order to determine this we check the possible pickup times of different carriers which can be reached and respect the delivery times, which might be carrier specific or even delivery area specific. When comparing the delivery options we only compare carrier costs of a needed/requested category. E.g. if the order requires a standard delivery, we only compare delivery speed from carriers and their products defines as standard delivery (otherwise express carrier would always prioritised due to their faster shipment - even if this category was not paid for). In case the orderline requires a specific carrierProductCategory (i.e. value carrier - information is provided via the deliveryPreferences.shipping.carrierProductCategory property ) only delivery time of carrier products of this particular carrierProductCategory are taken into account.
Next free capacity
We have the opportunity to store a free capacity to the fulfillment times within a facility. Using this rating facilities which have the next free capacity available are preferred over other facilities which has a later slot with open capacity. The Timeframe between order create and next free capacity slot is rated (next free capacity slot might be the present slot when order is created). A free capacity means capacity to fulfill an order since the people working in the facility are not busy serving customers.
What does “next free capacity slot” mean?
Example 1: Order comes in @ 14:30 and there is the following network information available:
Facility 1: Slot: 12:00-15:00 / max. capacity: 10 → p. hour 3,3 - @14:30 (cutoff time) free capacity is 1,65 → round down = 1 order capacity available for 14:30
Facility 2: 14:00-15:00 / cap.10 → p. hour 10 - @ 14:30 → 5 order capacity available for 14:30 -> Facility 1 and Facility 2 get the same penalty
Example 2: Order comes in @ 14:59
Facility 1: 12:00-15:00 cap: 10 → p. hour 3,3 -@14:59 → 0,055 → round down = 0 order capacity available for 14:59
Facility 2: 14-15 cap.10 → p. hour 10 - @ 14:59 → 0,167 → round down = 0 order capacity available for 14:59 -> Facility 1 and Facility 2 get the same penalty
-> looking on the next free slot
If an order gets rerouted (manually or event triggered) or is manually assigned elsewhere the reserved capacity of the “old” corresponding facilities is cancelled and the capacity can be used / planned again.
If capacities are changed - only new upcoming orders are affected by this change. We do not rearrange orders which were already routed due to the fact, that capacity information have been changed.
If a capacity information is a decimal number we round down the number.
Calculating the target time with capacities
When planning capacities this has also impact on the target time of a pick job if we plan the fulfillment of an order for an upcoming day which is unequal today. Why? It does not make sense to say for an order which comes in on Monday and the capacity on Wednesday is planned that the target time is still the CEP-Pickup-Time on Monday.
Nevertheless if the target time comes within the order (we call this “hard” target time) we just pass on the target time.
In order to do this we check for the next pickup-time of the selected carrier which is reachable when the order is picked within the planned fulfillment-slot. Only if the pickup-time can be reached including free capacity this pickup time is selected as the new target time
Example:
Order comes in on Monday 14:00
avg. fulfillment duration 30 min
Order should be fulfilled by DHL, DHL' pickup-time is daily 16:00
if we do not plan capacities (rating / fence is inactive) the TT would be Monday 16:00
if we do plan capacities and the slot is planned < Monday 15:30 the TT would be monday 16:00
if we do plan capacities and the slot is planned e.g., Wednesday 15:00 the TT would be Wednesday 16:00
we use the starting point of the future capacity slot
if starting point + avg. duration < pickup time (1) then pickup time (1) otherwise pickup time (2 (next TT))
if date now is within the slot, we use date now + avg. duration < pickup time (1) then pickup time
To make sure that our systems does not occupy capacities which lie too far in the future. We introduced a limit which defines how many days in the future capacities can be used and “booked”. This is the base for our capacity Fence.
This value includes always the capacity of a calendar day (and not days with fulfillment-times (opening-day))
This value can be set as a tenant wide default via the api and/or via the backoffice or for a specific facility (only via API) . If one changes the default only the facilities using the default value changes - facilities which have their own number saved, are not changed (even if this value is the same than the default).
Example:
e.g. today is Monday 14:00
the parameter is set to 3 Days
→ the capacity till Thursday (including Thursday) can be used for planning.
Last updated