How the 80/20 rule implemented using python can optimize your layout, reduce space utilization and improve the picking productivity
An Italian economist named Vilfredo Pareto developed 1906 a mathematical formula to describe the distribution of wealth in Italy. He discovered that 80% of the wealth belonged to 20% of the population.
A few decades later this rule has been generalized to many other applications including Supply Chain and Logistics Management.
This principle called the “Pareto Principle”, “the 80–20 rule” or “The Law of Trivial Many and Critical Few” can be translated for Logistics Practitioners
- 80% of your company revenue is made from 20% of your reference
- 80% of your volume is picked in 20% of your picking locations
- 80% of your replenishment volume will be performed on 20% of your picking locations
In this article, we will explore how to apply this Pareto Principle using a real operational example
- 1 month of picking orders
- 144,339 order lines
- 59,372 orders
- 4,864 active references
I. Data Processing using Pandas
Import Libraries and Dataset
Calculate Volume Prepared per SKU (BOX)
To plot the Pareto graph we need to
- Sum the number of boxes picked per SKU
- Sort your data frame by descending order on BOX quantity
- Calculate the cumulative sum of BOX
- Calculate the cumulative number of SKU
In line 5 you can see that 0.1% of your SKU are representing 12.7% (20,987 Boxes).
II. Visualization of the Pareto Principle
1. A first visualization
Using your processed data frame let us now plot (%BOX) = f(%SKU) to show the Pareto principle
2. Add Markers for 80/20
Marker 1: x = 20% of SKU (blue)
Marker 2: y = 80% of Boxes (red)
We can see that the threshold of 80% volume is already reached before having 20% of SKU (sku_80 = 12.55%).
Try yourself to see how much %BOX represent 10% of the SKU picked?
Use these Results for Storage Optimization
How can we use these insights to increase your picking productivity and reduce space usage?
III. Grouping High Rotation SKU in Dedicated Picking Zones
This Heatmap above is a 2D representation of the Pareto Principle that is linking each SKU with its picking location.
Reduce the average distance during picking by grouping very high rotations in a specific zone that is closed to the docks.
For more information, have a look at my previous article: Improve Warehouse Productivity using Spatial Clustering with Python Scipy
Edit: You can find a Youtube version of this article with animations in the link below.
IV. Densify Picking Locations for Very Low rotations
What is a replenishment task?
Level 1 is the Picking Location located on the ground level; this is where the Warehouse Picker will take boxes to prepare orders.
When the quantity level in your picking location is below a certain threshold your WMS will trigger a Replenishment Task: taking a pallet from the storage level (level 3) and putting it in the picking location (level 1).
How Pareto Principle is impacting your picking location layout?
The Full Pallet Location type is taking a floor pallet location per SKU.
However, we can increase the density of locations by using
- Half Pallet Locations: 2 SKU per floor pallet location
- Shelves Locations: 9/2 SKU per floor pallet location
Surface Optimizations vs. Number of Replenishment Moves
A major issue with half pallets and shelves is the limited capacity of storage vs. full pallets. For the same quantity picked per month, you have 2 times more replenishment with a half pallet and even more with shelves.
Using the Pareto principle and SKU rotations analysis will help us to find the best compromise by choosing picking location type using the rules below
- Full Pallet/Half Pallet Locations: only for high-runners (Top 20%)
- Shelves Locations: for the 80% low runners making only 20% of your volume
These thresholds have to be adapted to the specificities of your warehousing operations
- Workforce hourly costs (Euros/Hour) and your productivities for Picking (Lines/Hour) and Replenishment (Moves/Hour)
- Warehouse rental costs (Euros/Sqm/Month)
- Dimensions of your boxes(Width (mm) x Height (mm) x Length (mm)) that will drive your different picking locations' storage capacity
The target is to find the best compromise between high replenishment productivity (Full Pallets) and reduce ground surface occupation (Shelves).
Quick Example based on the layout above
Alley width: 3.05 (m)
Dx: 0.1 (m) Distance between two pallets
Dy: 0.15 (m)
Ground surface occupied(including alley)
Full Pallet = (0,8 + 0,1) x (1,2 + 0,15 + 3,05/2) = 2,5875 (m2)
Half Pallet = 2,5875 / 2 = 1,29375 (m2)
Shelves = 2 x 2,5875/9 = 0,575 (m2)
Warehouse Rental Cost (Jiaxing, China)
C_rent = 26,66 (Rmb/Sqm/Month) = 3,45 (Euros/Sqm/Month)
Forklift Driver Hourly Cost
C_driv = 29 (Rmb/Hour) = 3,76 (Euros/Hour)Replenishment Productivities
Full Pallet: 15 (Moves/Hour)
Half Pallet: 13 (Moves/Hour)
Shelve : 3,2 (Moves/Hour)Picking Location Capacity
Full Pallet: 30 (Boxes)
Half Pallet: 15 (Boxes)
Shelve : 4 (Boxes)
Example 1: Very High Rotation
Full Pallet Location is the cheapest solution
Example 2: High Rotation
Half Pallet Location is the cheapest solution
Example 3: Low Rotation
Shelf Location is the cheapest solution
We presented here a simple methodology on how to visualize and apply the Pareto Principle on your Warehouse Picking Order Profile to estimate the potential of optimization.
In the second reference link, you can find a series of articles applying the concepts presented above to improve picking productivity by reducing pickers' walking distance.
 Samir Saci, Improve Warehouse Productivity using Spatial Clustering with Python Scipy