Problem
A delivery network promising a 120-minute window kept that promise on 48.8 percent of historical orders, and averages hide the tail: traffic alone swings delivery times by roughly 46 minutes from light to jammed conditions, while semi-urban zones run slowest at a mean near 239 minutes.
Setup
Pablo Zavala and Santiago Enríquez built the framework as a balanced two-person team for Carnegie Mellon's 94-867 Data to Action course, working from a synthetic Kaggle dataset of Amazon-style delivery records and splitting modeling, implementation, and writing evenly.
Method
Engineered spatial, temporal, and agent features feed gradient-boosted models for a central estimate and the 80th percentile of delivery time. From there, the triage MILP screens orders on the tail forecast, while the simulation notebook adds a conformal buffer targeting 90 percent coverage to set each order's service promise, trains a classifier for the probability of keeping that promise, and prices the resulting risk in the assignment MILP; weekly KS tests watch for temporal drift, and a day-by-day simulation replays assignments under agent shift capacities.
Result
On a 2,000-order sample, triage lifted on-time performance to 80.0 percent at 21.3 percent acceptance, static assignment with 300 agents balanced 84.9 percent on-time with 49.8 percent coverage, and the variability-aware simulation with 240 agents reached 94.8 percent on-time at 89.4 percent coverage, versus the 48.8 percent baseline.
Verification scope
Every rate comes from simulation on synthetic data, and the report documents how capacity miscalibration distorts utilization: one calibration pass reported 29 percent utilization at 100 percent coverage, a scaling mismatch rather than true slack.
Evidence
The public repository commits the three notebooks and the final report PDF; the README credits both authors and points to the Kaggle dataset, which stays external pending license review.