Devlog: QDel delivery simulation lab
QDel began as a set of unfinished Python components. I connected them into a discrete-event quick-commerce simulation and built a public dashboard so delivery-system designers can change operating assumptions and watch the results.
What shipped
- A shared Python and SimPy engine powers both the local command-line runner and the dashboard’s browser worker.
- Customer demand arrives stochastically. Orders move through a packing queue, then compete for a rider.
- FIFO and shortest-trip-first dispatch make it possible to compare how order policy affects throughput and service levels.
- Riders stay assigned for the outward trip, customer handoff, and return to the store. The dashboard animates rider positions on a Manhattan-distance city grid.
- Scenario controls tune demand, customers, riders, packers, speed, simulation length, service target, and random seed.
- Results include completed deliveries, average and P95 delivery time, SLA attainment, active overdue orders, queue size, and resource utilization.
- An order ledger can be filtered and exported as CSV. A saved baseline supports side-by-side scenario comparisons.
- A responsive dashboard, CLI, build script, reproducible seed handling, input checks, and model notes complete the first release.
Model boundaries
This release represents one centrally located store, one square street grid, fixed rider speed, no batching, and one outstanding order per customer. Delivery averages and SLA percentages use completed orders; overdue open orders appear separately. The model is a repeatable strategy sandbox, not a calibrated operational forecast.
Validation and release
The simulation passed six automated checks covering reproducibility, order lifecycle, resource capacity, dispatch priority, and validation. Browser checks covered playback, filters, CSV export, baseline comparison, and mobile layout. The first public version is available at qdel-simulation-lab.elatedgoby2048.chatgpt.site.