Learn how the dashboards combine ridership history with live vehicle data.
Daily and hourly ridership aggregates are sourced from data.gov.my datasets and refreshed by the automated build workflow.
GTFS-realtime feeds are proxied through the Cloudflare Worker to provide live vehicle positions without exposing API keys.
Best/avoid windows are computed by comparing hourly baselines and recent-day ridership, then ranked to highlight lower-density periods.
Crowd reports submitted through the Submit Report page are stored locally in your browser for quick reference.