Theyutes Logistics · Restaurants
Hot food. Cold rider strategy.
Stop dispatching the rider 15 minutes early. Predictive dispatch schedules the assignment so the rider arrives the moment the order is ready — not before, not after. Your kitchen runs on its own clock; we sync the bike to it.
What breaks today
Restaurants, in three honest lines.
45 min
Cold food kills the second sale.
One bad delivery and the buyer's switching back to Jumia Food. Most platforms book the rider at order-paid time and let them idle at the counter. We don't.
Queue overflow
Friday 7pm breaks every dispatcher.
When every Lagos restaurant is rushing the same carrier pool, bookings get rejected silently. Auto-failover walks the quote list until something accepts — your buyer never sees the rejection.
Batchable
Two orders, same kitchen, one bike.
When the rider already has an active leg from the same merchant, the second order auto-stacks onto their route and the base fare is waived. Stacked pickups go from 2 fares to 1.4.
What we built for restaurants
Four primitives. One API.
Predictive dispatch (just-in-time).
POST one endpoint with the order id + prep minutes. We stamp a readyAt window and our cron worker assigns the rider when their pickup ETA matches. Rider rolls up as the food hits the counter.
Sub-45-min carrier pool.
Quotes are filtered to carriers whose pickup ETA + transit fits inside your published delivery promise. Bicycles and motorcycles get priority on short routes; cars only on long ones.
Auto-failover on queue overflow.
If the winning carrier rejects (no riders available, queue full), we silently walk down the quote list. Your call returns the carrier that actually accepted — never an error.
Stacked pickup pricing.
Second shipment from the same merchant on the same rider waives the base fare automatically. Buyers pay less; your margin on the second order improves.
Sample call
The shortest path from your stack to a dispatched rider.
Request
bash
curl -X POST https://theyutes.com/api/v1/logistics/predictive-schedule \
-H 'Authorization: Bearer tyk_••••••••••••••••••••••••••••••••' \
-H 'Content-Type: application/json' \
-d '{
"orderId": "ord_friday_jollof_982",
"readyInMinutes": 18,
"paidAt": "2026-05-29T18:30:00Z"
}'Response · 200 OK
json
{
"data": {
"orderId": "ord_friday_jollof_982",
"scheduledReadyAt": "2026-05-29T18:48:00.000Z",
"predictiveStatus": "queued",
"nextCronTick": "<= 60s"
}
}Paid at 18:30. Prep is 18 minutes. The cron worker holds the rider until ~18:38 (assuming a 10-min carrier pickup ETA), then dispatches them to arrive at 18:48 — exactly when the kitchen finishes.
Pilot partners — coming soon
Restaurants partner
Launching Q3 2026
Restaurants partner
Other verticals
Same orchestrator. Different defaults.
Pharmacy
Cold-chain routing, signed delivery, and a ten-minute SLA on rescue prescriptions.
See pharmacy
Electronics
Insured, signed-for delivery for phones, laptops, and high-value parcels.
See electronics
Marketplaces
One quote endpoint that splits across every seller's pickup — buyer sees one ETA.
See marketplaces
ERPs
Webhook + audit-log surface that drops every shipment straight into your GL.
See erps
Questions
What restaurants integrators ask first.
What if my prep time varies by dish?
Pass readyInMinutes per order instead of relying on the merchant default. Pizzas at 22 minutes, salads at 6 — the scheduler will dispatch each rider independently so neither order sits.
What happens if no rider is available when the cron tick fires?
The shipment stays in predictiveStatus='queued' for the next tick (we run every minute). If we still can't find a carrier after 5 ticks past readyAt, we escalate to your webhook with shipment.dispatch_overdue so you can decide whether to extend the buyer's ETA or refund.
Do you handle multi-restaurant orders?
Yes — the marketplace flow at /logistics/verticals/marketplaces covers split-pickup orders where one buyer order contains items from N restaurants. Each pickup is its own shipment, but the buyer-facing ETA is the slowest leg.
Built for restaurants. Ready in five minutes.
Mint a key, run one sample call, ship your first parcel.