Aerial night view of a city where cyan taxi light trails merge into one shared route

Taxi Route Optimization

Logistics
Logistics1 year

Taxi Route Optimization

Taxi operators lose efficiency to empty seats and detours. This solution, built from the ground up, calculates the most efficient routes from real-time road conditions, passenger locations and trip costs, and - critically - combines trips so that one car can pick up several passengers along an optimised path. It also handles services for individuals with disabilities and other operator-specific rules that improve service quality and budget. The platform was delivered on AWS with a Blazor front end and automated tests by a six-person team - team lead, two senior and two middle developers, and a PM - over one year, using an agile process and meeting every expected outcome. The route planner's trip combination effectively increased the number of available cars for the operator fourfold.

LogisticsRoutingOptimizationMobility

Key Challenges

Client: Taxi operator

Duration: 1 year

Team: 6 - team lead, 2 senior + 2 middle developers, PM

Infrastructure: AWS Cloud

The project faced several key challenges:

  • Real-time inputs: Traffic, passenger positions and costs change continuously; routes had to be recomputed fast enough to matter.
  • Combining trips fairly: Sharing a car between passengers must respect pick-up windows, accessibility needs and cost rules simultaneously.
  • Built from zero: No legacy to reuse - infrastructure, requirements and the development plan were all established by the team.

Results

  • Real-time route optimisation
  • Multi-passenger trip combination
  • Accessibility-aware dispatching
  • 4× more available cars

4×

increase in available cars through combined trips.

1 year

from infrastructure provisioning to delivered solution.

Real-time

traffic and passenger data driving every route.

Related case studies

Want to Build Something Similar?

Tell us about your project - we will propose an approach, a timeline and a first estimate.

An unhandled error has occurred. Reload 🗙