In today’s dynamic business environment, optimising workforce planning is crucial to meet logistic operations' fluctuating demands.
Managers must minimize the number of temporary workers hired while ensuring employee retention and adhering to local regulations.
Can we use data analytics to support operations managing workforce planning?
A solution to this problem is Linear Programming with Python, which can help minimize costs while meeting all the constraints.
This article will explore the optimization of workforce planning using linear programming with Python and analyze the results.
Introduction
A significant challenge that Distribution Center (DC) managers face is the workload fluctuation during the week.
The example above shows the daily variation of critical indicators that drive a warehouse's workload (#Orders, #Lines, #SKU, …).
You can see a high variation from day to day that your teams need to absorb.
Can you size your workforce efficiently using analytics?
Considering that the average productivity of workers is stable, the only solution is to adapt your resources to meet the demands of each day.
Defining the Workforce Planning Problem
Planning of Workforce resources for Inbound Operations
You are working with the Inbound Manager of a Distribution Center operated by a Third Party Logistics Company (3PL) for a large retailer.
His team responsibilities include
- Unload Pallets from the Trucks
- Scan each pallet and record the received quantity in your Warehouse Management System (WMS)
- Put away these pallets in the Stock Area
The team’s global productivity is measured weekly (Pallets/Hour).
At the beginning of each month, transportation teams share a forecast of the number of pallets to be received daily for the next four weeks.
How can you use these forecasts to help the inbound manager estimate his future needs?
How to Size the Workforce using volumes and productivity
Based on these forecasts and your global productivity, you can estimate what resources would be needed each day
You will use 100% of temporary workers to build your team for more flexibility.
Constraint 1: The Supply must meet the demand
If you need 31 workers on Monday, you must secure at least 31 workers.
Constraint 2: Minimum working time by worker
To ensure employee retention, you must guarantee a minimum of 5 consecutive working days per week.
Workforce sourcing can be challenging, especially if e-commerce fulfilment centres surround your DC.
Therefore, you need to ensure minimum working time for your temporary workers to be an attractive employer.
Constraint 3: Maximum working time by week
Following the local regulations, each worker must rest for 2 days after 5 consecutive working days.
A worker from Shift 1 will start his week on Monday and get two days off on Friday.
Her colleague from Shift 6 will start the week on Saturday and get two days off on Thursday.
Objective: Minimize the number of workers hired
Following the productivity targets fixed by your manager, you must minimize the number of workers hired.
If you do not reach this target, your P&L can be impacted because this productivity has been used to calculate the price invoiced to your customer (retailer).
How can we reach this target with all these constraints?
Linear Programming Problem to find the optimal solution
We define a Linear Programming Problem by
- finding the optimal value of a linear function (objective function) of several variables (x[i])
- subject to the conditions that the variables are non-negative and satisfy a set of linear inequalities (called linear constraints).
Our problem fits perfectly!
Variables
x[i]: number of temporary workers hired for shift iConstraints
- For each day the total number of workers on-duty must be higher than the demand- Each worker needs to work a minimum of 5 consecutive days per week- Each worker needs to have 2 days off after 5 consecutive days of workObjective functions
The total number of temporary workers hired for all shifts i = 1 … 7 should be minimal
Solve your model and analyze the results
Results: Number of workers hired?
Total number of Staff = 53
Insights
0 workers hired for Thursday and Saturday shifts
Supply vs. Demand: what is the gap?
Do we have more workers than needed?
Insights
Friday: 1 extra worker
Saturday: 5 extra workers
Considering the constraints, this is the best that we can get.
Do you want to try yourself?
Workforce Optimization App
A prototype of this model has been deployed on a web app: LogiGreen App
This prototype, currently in development, is already available for test.
How to test it?
You can test the model without uploading data by just following the steps below
Step 1: Go to the supply chain optimization page
Step 2: Select 'Workforce Optimization' on the left side bar
You will arrive in the presentation page of the module where you can find a brief presentation of the model with the inputs parameters and the results provided.
Step 3: Go to the 'Analysis' tab and Launch the Analysis
You can select
- Number of consecutive working days of operators
You can visualize the results.
Do not hesitate to refresh if you face a problem.
Any question?
For any inquiries, please contact us at contact@logi-green.com
This blog post is based on articles originally published on Medium
- Optimize Workforce Planning with Python by Samir Saci