GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-06-20T04:36:01Z,
for the dataset file:///shared/bay-metropolitan-transit_9f2de058.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Bay Metro Transit
Publisher URL:
https://www.baymetro.com
Feed Email:
planning@baymetro.com
Feed Language:
English
Feed Start Date:
2024-02-26
Feed End Date:
2027-02-27

Files included


  1. agency.txt
  2. calendar.txt
  3. calendar_dates.txt
  4. fare_attributes.txt
  5. fare_rules.txt
  6. feed_info.txt
  7. routes.txt
  8. shapes.txt
  9. stop_times.txt
  10. stops.txt
  11. transfers.txt
  12. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 10
  • Shapes: 15
  • Stops: 86
  • Trips: 245

Specification Compliance report

20 notices reported (0 errors, 11 warnings, 9 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 9

equal_shape_distance_diff_coordinates_distance_below_threshold

Two consecutive points have equal shape_dist_traveled and different lat/lon coordinates in shapes.txt and the distance between the two points is greater than 0 but less than 1.11m.

When sorted by shape.shape_pt_sequence, the values for shape_dist_traveled must increase along a shape. Two consecutive points with equal values for shape_dist_traveled and small difference of coordinates (greater than 0 but less than 1.11 m distance) result in a warning.

You can see more about this notice here.

shapeId (?) The id of the faulty shape. csvRowNumber (?) The row number from `shapes.txt`. shapeDistTraveled (?) The faulty record's `shape_dist_traveled` value. shapePtSequence (?) The faulty record's `shapes.shape_pt_sequence`. prevCsvRowNumber (?) The row number from `shapes.txt` of the previous shape point. prevShapeDistTraveled (?) The previous shape point's `shape_dist_traveled` value. prevShapePtSequence (?) The previous record's `shapes.shape_pt_sequence`. actualDistanceBetweenShapePoints (?) Actual distance traveled along the shape from the first shape point to the previous shape point.
"Route 4 Weekday IB" 1982 23.205 236 1981 23.205 235 0.8063875674553573
"Route 4 Weekday IB" 2015 24.221 269 2014 24.221 268 0.8064635976510215
"Route 8" 4091 2.48 84 4090 2.48 83 0.3407561800666229
"Route 4 Weekday OB" 1429 15.139 198 1428 15.139 197 0.8059921955742563
"Route 4 Weekday OB" 1488 20.129 257 1487 20.129 256 0.8063875674553573
"Route 4 Weekday OB" 1521 21.145 290 1520 21.145 289 0.8064635976510215
"Route 3" 1165 14.548 234 1164 14.548 233 0.11119510090982554
"Route 2" 207 11.069 206 206 11.069 205 0.8053319604778918
"Route 1 Weekday OB" 5920 39.23 645 5919 39.23 644 0.801845040830968
equal_shape_distance_same_coordinates WARNING 2

equal_shape_distance_same_coordinates

Two consecutive points have equal shape_dist_traveled and the same lat/lon coordinates in shapes.txt.

When sorted by shape.shape_pt_sequence, the values for shape_dist_traveled must increase along a shape. Two consecutive points with equal values for shape_dist_traveled and the same coordinates indicate a duplicative shape point.

You can see more about this notice here.

shapeId (?) The id of the faulty shape. csvRowNumber (?) The row number from `shapes.txt`. shapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the faulty record. shapePtSequence (?) The faulty record's `shapes.shape_pt_sequence`. prevCsvRowNumber (?) The row number from `shapes.txt` of the previous shape point. prevShapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the previous shape point. prevShapePtSequence (?) The previous record's `shapes.shape_pt_sequence`.
"Route 2" 44 1.751 43 43 1.751 42
"Route 1 Weekday OB" 5443 5.719 168 5442 5.719 167
trip_headsign_matches_intermediate_stop INFO 9

trip_headsign_matches_intermediate_stop

Trip headsign matches the name of an intermediate stop, not the last stop.

The trip_headsign matches the stop_name of a stop that is not the last stop of the trip. This may confuse passengers boarding after that stop, since the headsign suggests the vehicle is heading to a stop it has already passed.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record in `trips.txt`. tripId (?) The id of the trip with the problematic headsign. tripHeadsign (?) The headsign value that matches an intermediate stop name. stopId1 (?) The id of the intermediate stop whose name matches the headsign. stopSequence (?) The stop_sequence value of the intermediate stop that matches the headsign. stopId2 (?) The id of the actual last stop of the trip.
25 "Route 1 Saturday_T01" "Meijer Wilder" "10016" 6 "00001"
26 "Route 1 Saturday_T02" "Meijer Wilder" "10016" 6 "00001"
27 "Route 1 Saturday_T03" "Meijer Wilder" "10016" 6 "00001"
28 "Route 1 Saturday_T04" "Meijer Wilder" "10016" 6 "00001"
29 "Route 1 Saturday_T05" "Meijer Wilder" "10016" 6 "00001"
30 "Route 1 Saturday_T06" "Meijer Wilder" "10016" 6 "00001"
31 "Route 1 Saturday_T07" "Meijer Wilder" "10016" 6 "00001"
32 "Route 1 Saturday_T08" "Meijer Wilder" "10016" 6 "00001"
33 "Route 1 Saturday_T09" "Meijer Wilder" "10016" 6 "00001"