Validation and metric labeling
Each reading is parsed, sanity-checked (sentinel values like "1138 hr" get filtered), and tagged with the publisher's stated metric type: current snapshot, rolling average, median time-to-departure, and so on. A five-minute "average wait" is not directly comparable to a 30-minute "median time to departure" and we make that explicit in the UI.