The GTFS specification currently lacks a way for software systems to abbreviate data without causing confusion. The
recognition_level attribute in stops.txt resolves that problem.
I have developed a GTFS reader that is now in use at
www.rideschedules.com. On the whole the specification allows the public convenient access to schedule information. The single important shortfall that remains unavailable to me and feed publishers is a way to determine which stops may be omitted for brevity without frustrating the public with a list of unfamiliar stops. The alternative of not truncating data is a long list of stops, long download times, and a mobile device gone unresponsive due to a large data volume.
Currently, I have limited stops to 35 and overage is removed evenly along the route at the necessary increments while keeping stations, if specified, and the first and last stop. Though I think this is the best possible compromise, the risk of a repulsive user experience remains unacceptably high. Users will immediately look for familiar stops to judge nearby arrival and departure times. Instead, they will see a list without the popular stops associated with the route and will have to locate their stop from a list not recognized by the public. The problem is not uncommon in metropolitan areas that frequenlty have routes with 50 to 150 stops.
The
recognition_level attribute allows software systems to abbreviate data without causing confusion. The
recognition_level identifies the familiarity of a stop along the route. I propose the values:
0 - Minor stop along the route.
1 - Major stop familar to the general public.
2 - Major or minor stop that appears on published schedules.
The values makes it possible for software systems to accurately discern the familiarity of stops with the added benefit to software developers and GTFS publishers of making it possible to reproduce printed schedules from the data (albeit not under the requirements of the specification since this would be an optional attribute).
Of course, I am open to alternatives but I am not seeing anything better.