The Setup
An airline customer. 24-hour crew transport against a live flight schedule. Pre-Mycelium: 3-4 manual dispatchers working rotating shifts to assign crew rides against a moving flight schedule.
What Was Deployed
- Autonomous dispatcher running the full workflow from crew-roster import to driver notification
- Crew-roster and rest-rule integration as hard constraints
- Exception re-optimization on flight slips, staffing changes, and delays
- White-labeled cross-platform crew app with real-time ride status
- Multi-carrier dispatch with unified tracking
The White-Label App in Production

Crew members see: date of ride, source address, map with pickup and drop-off markers, stops count, scheduled start time, live ETA to pickup, and ETA to final destination. The screen refreshes as new GPS positions arrive from the carrier feed.
Results
- ~25% ride cost reduction vs. manual baseline
- 3-4 dispatchers removed from the rota
- ~3,000 rides per month on fully automated dispatch
- In production since 2017, hands-off ever since
Why this kept running
Over a decade of operational edge cases is encoded in the constraint library that runs this deployment. Flight slips. Staffing changes. Rest-rule variants. Multi-carrier dispatch under live schedule pressure. Every shape that surfaced in production was modeled once and stayed modeled. The accumulated rule set is the operational truth of crew transport for this customer.
Replicating the deployment means re-encountering each edge case on a new vendor’s timeline. Flight-feed integration depth, the crew-roster sync, the rest-rule library, the multi-carrier roster. None of it transfers as configuration. It is accumulated work.
Why This Pattern Repeats Across Verticals
Crew transport is a constraint problem, not a routing toy. Bell times become flight times. Safe-route rules become hazmat corridors. Grocery delivery, student transport, and NEMT trip-pair routing all run on Mycelium’s autonomous dispatcher. Each vertical configures the rules; the engine compounds.