This project evaluates and ranks suppliers based on multiple operational performance criteria. The goal is to demonstrate a simple, data-driven approach to supplier selection using Python.
The analysis considers four key performance indicators:
- Lead time
- Delay rate
- Defect rate
- Unit price
A weighted scoring model is used to compute an overall supplier score and produce a ranking.
The dataset includes 10 suppliers with the following variables:
| Variable | Description |
|---|---|
| supplier | Supplier name |
| lead_time_days | Average delivery lead time |
| delay_rate | Percentage of delayed orders |
| defect_rate | Percentage of defective units |
| unit_price | Price per unit |
The dataset is synthetically generated to simulate a realistic procurement scenario.
All criteria are cost-type metrics (lower values indicate better performance).
Min–max normalization is applied so that all scores fall between 0 and 1.
Normalized score:
(max value − actual value) / (max value − min value)
| Criterion | Weight |
|---|---|
| Lead time | 30% |
| Delay rate | 25% |
| Defect rate | 25% |
| Unit price | 20% |
The weighting reflects a slightly higher emphasis on delivery performance compared to cost.
The final supplier score is calculated as a weighted sum:
Supplier Score = (Lead time score × 0.30) + (Delay score × 0.25) + (Defect score × 0.25) + (Price score × 0.20)
Suppliers are then ranked based on this final score.
The model identified Supplier_2 as the top-performing supplier, showing the best overall balance between:
- Delivery speed
- Reliability
- Quality
- Cost
This demonstrates how multi-criteria scoring can support structured and data-driven supplier selection.
supplier_analysis.py→ main analysis scriptdata/→ input datasetoutputs/→ results and charts
- Python
- pandas
- numpy
- matplotlib
- Excel
-
Install dependencies: pip install -r requirements.txt
-
Run the analysis: python supplier_analysis.py
Outputs will be saved in: outputs/
Parnia Riazat