Goal
A railway operator was having issues with last-minute cancellations that lead to numerous trains being under-utilised.
The goal was to minimize unused capacity in trains (spoilage) and allocate freed capacity dynamically to the right customer type to maximize revenues.
Approach
Ingested more than 150 tables directly from ERP system and worked closely with SMEs to understand them and link them together. Implemented a change data capture logic to preserve historical data previously being overwritten and lost.
Created an algorithm that used historical data to compute the right amount of overbooking to maximise service usage while minimising impact in customer satisfaction.
A second algorithm helped allocate the freed capacity to the right type of customers in a way that maximised profitability while ensuring the long term agreements with key customers were protected.
Interventions
- Algorithm-driven recommendation for overbooking, pricing and booking type allocation optimiser used by the commercial teams in specific routes
- Robust data pipeline processing, cleaning and testing ~150 raw tables from the ERP enabling other use cases
- Change data capture system to preserve historical data