For public transit route relations like route=train
, ref=*
is intended to be a route number or identifier. For example, RE 8 is a Regional Express service in Berlin and Brandenburg, Germany. Any train that follows this stopping pattern in either direction will be signed as RE 8, regardless of what time of day it shows up.
However, for some train operators in the United States, we’ve been using schedule numbers instead of route identifiers in ref=*
. Certain passenger train operators like Amtrak assign names instead of numbers to routes, but give each scheduled service of the day its own unique number. For example, Amtrak Cascades is a named Amtrak route, which has the following daily trip numbers: 500, 503, 504, 505, 507, 508, 516, 517, 518, 519. Even numbers are northbound trips, and odd ones are southbound. Trips 500 and 508 have the same stopping pattern, so they’re mapped as one relation with ref=500;508
. Two return trips also share a stopping pattern, ref=503;505
. All other Amtrak Cascades trips have unique stopping patterns and are mapped as individual relations.
Since these trains have schedule numbers but not route numbers, mappers have been putting the schedule numbers in ref=*
, leading to confusion in quality assurance tools (after all, 5;6
does look more number-y than California Zephyr
). This is a departure from international norms, as the only foreign train network that follows this tagging scheme is Canada’s Via Rail, and they were likely following our lead on that one. It’s also given us some quite absurd and unmaintainable tags like ref=405;409;417;451;463;465;467;473;475;479;497;4403;4405;4407;4415;6401;6403;6411;6455
for the southbound Hartford Line.
While schedule numbers are valuable information, they probably don’t belong in ref=*
since they aren’t route identifiers. If a route has a name, then the ref=*
should be the name, or an abbreviation of it (as commonly referred to by locals, or defined by train operators). I’ve gotten messages from other mappers (cc @Mundilfari) who concur with this opinion and would like to have ref=*
values match routes rather than trips.
So I’m proposing to move ref=*
to trip_ref=*
, and assign a new ref=*
that matches the name of the route or an abbreviation thereof, for the following train routes and operators:
- Amtrak
- Sounder (Sound Transit)
- Caltrain
- Altamont Corridor Express
- Metrolink (Southern California)
- South Shore Line (Northern Indiana)
- Virginia Railway Express
- MARC
Thoughts?