End-to-end supplier quality and cost-of-poor-quality (COPQ) analytics for an automotive parts operation. Ingests incoming-inspection lot data, ranks suppliers on a composite quality + delivery score, surfaces the categories driving defects, and quantifies the dollars walking out the door in scrap, rework, and returns.
Built to mirror the weekly reporting I produced as Operations & Parts Analyst: the kind of dashboard a plant manager actually uses to decide which vendors to sit down with on Monday morning.
A 10-supplier panel with mixed performance hides a hard truth: a small number of suppliers and part categories generate most of the cost of poor quality. This project quantifies that — turning 4,800 inspection records into a one-page scorecard and a defensible action list.
Sample run on the included synthetic dataset (24 months, Jan 2024 → Dec 2025):
| Metric | Value |
|---|---|
| Inspection lots analyzed | 4,800 |
| Total supplier spend | ~$680M (synthetic) |
| Total Cost of Poor Quality (COPQ) | $85.05M |
| Share of COPQ from scrap alone | 64.3% |
| Worst supplier (composite index) | Granite Gasket Group — 51,920 PPM, 76.4% on-time |
| Best supplier (composite index) | Ironclad Fasteners — 7,445 PPM, 97.9% on-time |
| Worst category by defect PPM | Sensors (30,133 PPM) |
Green / amber / red bands make the action list obvious. The two reds get a corrective-action review or a sourcing alternative; the ambers get a performance plan.
Trend lines surface things a single-period snapshot misses — like Coastal Filtration improving after a corrective action in month 14, or Granite Gasket deteriorating mid-year before recovering.
Classic 80/20: the red cumulative line crosses 80% well before the 10th supplier. That's the focus list for the quality manager.
How lots are being dispositioned month-over-month — rising scrap or return share is an early warning before COPQ shows up in the P&L.
- Python 3.10+
- pandas / numpy — data shaping and aggregation
- matplotlib — publication-style charts
- Standard library only beyond that — no heavyweight dependencies
src/
├── generate_data.py # builds a realistic 24-month synthetic dataset
└── analyze.py # scorecards, trends, COPQ, charts
data/
└── incoming_inspections.csv (generated)
reports/
├── supplier_scorecard.csv
├── monthly_defect_trend.csv
├── category_summary.csv
├── copq_summary.csv
└── charts/
├── supplier_scorecard.png
├── defect_trend.png
├── copq_pareto.png
└── disposition_mix.png
git clone https://github.com/Gavand1969/supplier-quality-analytics.git
cd supplier-quality-analytics
pip install -r requirements.txt
python src/generate_data.py # writes data/incoming_inspections.csv
python src/analyze.py # writes reports/ and reports/charts/The analysis is deterministic (seeded RNG) — re-runs produce the same numbers so reports are reproducible.
Composite scorecard index. Two metrics, normalized 0–1 and weighted:
score = 0.60 × (1 − defect_rate_ppm / max_ppm)
+ 0.40 × on_time_rate_normalized
The 60/40 split reflects that quality failures cost more than delivery failures in an automotive aftermarket setting — scrap or a safety recall dwarfs a late shipment.
Cost of Poor Quality. Tied to disposition, not raw defect count:
| Disposition | COPQ Charge |
|---|---|
| Accept | 0% of lot value |
| Use-as-is | 2% (admin / quality review) |
| Return | 5% (freight + handling) |
| Rework | 10% (labor) |
| Scrap | 100% (total loss) |
Synthetic data. All suppliers, part numbers, and dollar figures are fictional. Defect-rate distributions, severity rollups, and disposition percentages follow plausible ranges documented in AIAG / ASQ literature so the analytics behavior is realistic.
Practical skills relevant to Supply Chain Analyst, Operations Analyst, Quality Engineer, and Continuous Improvement roles:
- Translating raw transactional data into operator-ready scorecards
- COPQ accounting and Pareto-driven prioritization (LEAN / Six Sigma toolkit)
- Defect-rate trending and severity-weighted dispositioning
- Building reproducible, version-controlled analytics — not one-off Excel files
- Communicating numbers visually: every chart is one slide on a Monday morning ops review
MIT — see LICENSE.



