Courier AI
Inspiration
Delivery couriers make rapid decisions all day: accept an order, skip it, take a break, reroute after rain, or avoid an unsafe destination. Most delivery platforms optimize for assigning orders, but the courier still needs to understand whether a specific order is safe, feasible, and worth accepting.
We wanted to build an assistant that looks beyond the immediate payout. Courier AI considers the courier’s current workload, vehicle, time remaining in the shift, route feasibility, safety constraints, and the expected value of the destination zone.
Our goal was to answer a simple but important question:
Is this order actually a good decision for the courier right now?
What it does
Courier AI is a decision-support simulator for last-mile delivery couriers in Monterrey, Mexico.
For every incoming order, the system returns either ACCEPT or SKIP, along with:
- A human-readable reason.
- The binding safety constraint when one applies.
- Estimated economics.
- Decision latency.
- A complete audit record that can be replayed later.
The system supports three vehicle profiles:
- Moto
- Car
- Bike
Each vehicle changes travel estimates, operating costs, weight limits, and volume limits.
How we built it
We built the backend with Python, FastAPI, Pydantic, and Uvicorn. The frontend uses React, TypeScript, and Vite.
The system consumes a deterministic order stream generated from a seed. This means the same seed reproduces the same delivery shift, making Smart and the baseline comparable under identical conditions.
The decision pipeline is:
Order + courier state
↓
Route and ETA estimation
↓
Hard safety constraints
↓
Economics and opportunity cost
↓
Future destination value
↓
ACCEPT or SKIP
↓
Decision log, explanation, and replay
Built With
- elevenlabs-text-to-speech
- fastapi
- geopandas
- google-gemini-api
- leaflet.js
- networkx
- numpy
- openstreetmap
- osmnx
- pandas
- pydantic
- pyproj
- pytest
- python
- react
- rest-apis
- scikit-learn
- scipy
- shapely
- typescript
- uvicorn
- vite
- vitest
- websockets

Log in or sign up for Devpost to join the conversation.