Dan Petrescu
Taxi platform
MobilityAI

Taxi platform

AI dispatch and fare engine for a taxi platform used by 1M+ users.

Lead architect

Read the full case study
Taxi platform website homepage
Taxi platform — live site

The problem

A taxi platform running a legacy version needed a fare engine that a Romanian regulator would accept, plus dispatch that didn't depend on a human on a phone all night. Fares computed from GPS drift; drivers and passengers argued about the difference.

What we built

A GPS taximeter fare algorithm validated against four reference rides, staying inside a 0.45 lei error band. Call masking and proxy numbers on Amazon Connect in Frankfurt so drivers and riders never see each other's number. A billing and subscription layer specified end to end — SmartBill invoicing, suspension logic for unpaid accounts, and a 344-hour estimate broken down per module. AI dispatch agents sit on top and assign rides instead of an operator.

Decisions that mattered

Validate against reference rides, not simulations

Simulated GPS traces made the algorithm look perfect. We drove four real reference routes and tuned against those instead — slower, but it is the evidence a regulator actually reads.

Amazon Connect over a telco SIP stack

Running our own SIP gave more control and a lot more to operate. Connect in Frankfurt kept the call data in the EU and got masking live in days, at the cost of vendor lock-in we accepted.

Split billing into two releases

The 344-hour billing estimate was accurate and too big to ship at once. Invoicing first, subscriptions and suspension second, so the fleet started collecting before the whole thing was done.

Numbers

1M+

users

≤0.45 lei

fare deviation vs regulation

4

reference rides validated

Stack

PHP/LaravelAWSAmazon ConnectSmartBill

Got a product that needs to go further?

Fixed-price scope in the first call. No discovery phase invoice.