Inspiration

Merged my background in automotive mechatronics and programming to solve a DRT blind spot: scheduling maintenance by flat mileage instead of actual physical route stress.

What it does

Calculates a WearScore for individual buses and RouteStress for routes, then recommends daily fleet swaps to balance mechanical degradation and reduce costs.

How we built it

A Python/Pandas data pipeline processes GTFS, PRESTO, and maintenance datasets into a normalized SQLite database, which is then displayed via a native SwiftUI iOS app.

Challenges we ran into

Wrangling mismatched municipal datasets—specifically joining string-floats ("8616.0") to integers ("8616") without returning nulls, and mathematically mapping individual PRESTO stop taps to full routes.

Accomplishments that we're proud of

Successfully synthesized over 100,000 rows of disparate transit and maintenance data into a unified, actionable fleet metric within a 24-hour window.

What we learned

The immense value of rigorous data cleaning, and the power of using data proxies (like passenger tap counts and stop frequency) to calculate physical hardware wear.

What's next for Lifecycle Cost-Balanced Bus Operations

Evolving into a predictive parts forecasting tool for the DRT maintenance department and integrating live GTFS-RT feeds for real-time adjustments based on weather and traffic.

Built With

Share this project:

Updates