Problem Statement:
Nyaradzo Funeral Assurance needed to efficiently allocate 40 funeral buses
across six Zimbabwean cities to serve 400,000 policyholders, 10% of whom had bus
coverage. With monthly claim rates varying (0.1%–10%), the challenge was to minimize
costs while ensuring reliable service—especially since external bus hires cost nearly double
internal operations ($100 vs. $50 base rate + $1.5/km).
Approach & Model Link to heading
I built a linear programming optimization model in Python to:
- Simulate demand based on:
- Geographic policyholder distribution (Harare (45%), Bulawayo (30%), Gweru (5%), Mutare (10%), Victoria Falls (5%), Masvingo (5%))
- There are 40 buses available, which are spread out as [15, 8, 5, 5, 2, 5] with respect to the cities.
- Claim rate sensitivity (tested 0.1%–10%)
- 20% of the clients are willing to reschedule their burial dates should there be a clash.
- Optimize allocation using
scipy.optimize.linprog
, minimizing costs while meeting demand constraints. - Analyze trade-offs between cost and service level across scenarios.
Key Insights & Business Impact Link to heading
- Cost Savings: Identified optimal allocations (e.g., [0, 40, 0, 0, 0, 0] for 1% claim rates) that could save ~$370K annually versus ad-hoc distribution.
- Service Resilience: Maintained >95% service levels up to 0.5% claim rates, dropping to ~80% at 1%—highlighting the need for flexible rescheduling incentives.
- Geographic Strategy: Recommended pooling buses between proximate cities (e.g., Gweru-Bulawayo) during peak demand.
Why It Matters Link to heading
This project demonstrates how operations research can transform logistical challenges into data-driven strategies. By quantifying trade-offs between cost and service quality, Nyaradzo could make informed decisions about resource allocation, partnerships, and policy adjustments.
Tools Used: Python (NumPy, SciPy), Linear Programming, Simulation