GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.0.0 at 2025-05-17T20:47:38Z,
for the dataset file:///tmp/1_in.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
N/A
Publisher URL:
N/A
Feed Email:
N/A
Feed Language:
N/A

Files included


  1. agency.txt
  2. calendar.txt
  3. calendar_dates.txt
  4. routes.txt
  5. shapes.txt
  6. stop_times.txt
  7. stops.txt
  8. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 10
  • Shapes: 38
  • Stops: 511
  • Trips: 281

Specification Compliance report

107 notices reported (0 errors, 107 warnings, 0 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 2

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.
"125_4" 1182 2.91 32 1181 2.91 31 1.0003986217230207
"125_1" 559 144.61 460 558 144.61 459 1.0003986217230207
equal_shape_distance_same_coordinates WARNING 74

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.

Only the first 50 of 74 affected records are displayed below.

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`.
"34_2" 3847 21.43 34 3846 21.43 33
"34_1" 3780 10.59 23 3779 10.59 22
"50_8" 5717 23.22 57 5716 23.22 56
"50_8" 5732 33.17 72 5731 33.17 71
"50_8" 5734 33.63 74 5733 33.63 73
"50_8" 5756 40.08 96 5755 40.08 95
"50_8" 5757 40.08 97 5756 40.08 96
"35_3" 4400 36.11 176 4399 36.11 175
"50_2" 5058 0.04 3 5057 0.04 2
"50_2" 5073 10.0 18 5072 10.0 17
"50_2" 5075 10.45 20 5074 10.45 19
"50_2" 5097 16.91 42 5096 16.91 41
"50_2" 5098 16.91 43 5097 16.91 42
"125_5" 1681 12.66 35 1680 12.66 34
"125_5" 1710 23.84 64 1709 23.84 63
"125_5" 1738 47.83 92 1737 47.83 91
"125_5" 1739 47.83 93 1738 47.83 92
"125_5" 1740 47.83 94 1739 47.83 93
"125_5" 1741 47.83 95 1740 47.83 94
"125_5" 1743 47.97 97 1742 47.97 96
"125_5" 1745 48.19 99 1744 48.19 98
"125_5" 1747 48.29 101 1746 48.29 100
"125_5" 1750 48.64 104 1749 48.64 103
"125_5" 1751 48.64 105 1750 48.64 104
"125_5" 1752 48.64 106 1751 48.64 105
"125_3" 907 12.66 35 906 12.66 34
"125_3" 936 23.84 64 935 23.84 63
"125_3" 964 47.83 92 963 47.83 91
"125_3" 965 47.83 93 964 47.83 92
"125_3" 966 47.83 94 965 47.83 93
"125_3" 967 47.83 95 966 47.83 94
"125_3" 969 47.97 97 968 47.97 96
"125_3" 971 48.19 99 970 48.19 98
"125_3" 973 48.29 101 972 48.29 100
"125_3" 976 48.64 104 975 48.64 103
"125_3" 977 48.64 105 976 48.64 104
"125_3" 978 48.64 106 977 48.64 105
"125_4" 1308 41.0 158 1307 41.0 157
"125_4" 1529 97.12 379 1528 97.12 378
"125_4" 1530 97.12 380 1529 97.12 379
"125_4" 1531 97.12 381 1530 97.12 380
"125_4" 1532 97.12 382 1531 97.12 381
"125_4" 1534 97.26 384 1533 97.26 383
"125_4" 1536 97.48 386 1535 97.48 385
"125_4" 1548 100.09 398 1547 100.09 397
"125_4" 1550 100.23 400 1549 100.23 399
"125_4" 1551 100.23 401 1550 100.23 400
"125_4" 1552 100.23 402 1551 100.23 401
"125_4" 1553 100.23 403 1552 100.23 402
"4_2" 4889 15.78 85 4888 15.78 84
"125_1" 134 12.66 35 133 12.66 34
"125_1" 163 23.84 64 162 23.84 63
"125_1" 191 47.83 92 190 47.83 91
"125_1" 192 47.83 93 191 47.83 92
"125_1" 193 47.83 94 192 47.83 93
"125_1" 194 47.83 95 193 47.83 94
"125_1" 196 47.97 97 195 47.97 96
"125_1" 198 48.19 99 197 48.19 98
"125_1" 200 48.29 101 199 48.29 100
"125_1" 203 48.64 104 202 48.64 103
"125_1" 204 48.64 105 203 48.64 104
"125_1" 205 48.64 106 204 48.64 105
"125_1" 434 106.52 335 433 106.52 334
"125_2" 755 45.72 166 754 45.72 165
"125_2" 756 45.72 167 755 45.72 166
"125_2" 757 45.72 168 756 45.72 167
"125_2" 758 45.72 169 757 45.72 168
"125_2" 760 45.86 171 759 45.86 170
"125_2" 762 46.09 173 761 46.09 172
"125_2" 774 48.7 185 773 48.7 184
"125_2" 776 48.84 187 775 48.84 186
"125_2" 777 48.84 188 776 48.84 187
"125_2" 778 48.84 189 777 48.84 188
"125_2" 779 48.84 190 778 48.84 189
expired_calendar WARNING 7

expired_calendar

Dataset should not contain date ranges for services that have already expired.

This warning takes into account the calendar_dates.txt file as well as the calendar.txt file.

You can see more about this notice here.

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
2 "010203"
3 "0102030405"
4 "0405"
5 "06"
6 "07"
7 "01020304"
8 "05"
fast_travel_between_consecutive_stops WARNING 2

fast_travel_between_consecutive_stops

A transit vehicle moves too fast between two consecutive stops.

The speed threshold depends on route type:

Route type Description Threshold, km/h
0 Light rail 100
1 Subway 150
2 Rail 500
3 Bus 150
4 Ferry 80
5 Cable tram 30
6 Aerial lift 50
7 Funicular 50
11 Trolleybus 150
12 Monorail 150
- Unknown 200

You can see more about this notice here.

tripCsvRowNumber (?) The row number of the problematic trip. tripId (?) `trip_id` of the problematic trip. routeId (?) `route_id` of the problematic trip. speedKph (?) Travel speed (km/h). distanceKm (?) Distance between stops (km). csvRowNumber1 (?) The row number of the first stop time. stopSequence1 (?) `stop_sequence` of the first stop. stopId1 (?) `stop_id` of the first stop. stopName1 (?) `stop_name` of the first stop. departureTime1 (?) `departure_time` of the first stop. csvRowNumber2 (?) The row number of the second stop time. stopSequence2 (?) `stop_sequence` of the second stop. stopId2 (?) `stop_id` of the second stop. stopName2 (?) `stop_name` of the second stop. arrivalTime2 (?) `arrival_time` of the second stop.
251 "50_1_6" "50" 177.40989278085348 1.478415773173779 12181 23 "SGM39C" "boul. l'Ange-Gardien nord / avenue Adhémar-Raynault" "08:15:30" 12182 24 "SGM40C" "boul. l'Ange-Gardien nord / face au 2185" "08:16:00"
267 "50_1_9" "50" 177.40989278085348 1.478415773173779 12527 23 "SGM39C" "boul. l'Ange-Gardien nord / avenue Adhémar-Raynault" "08:15:30" 12528 24 "SGM40C" "boul. l'Ange-Gardien nord / face au 2185" "08:16:00"
missing_recommended_file WARNING 1

missing_recommended_file

A recommended file is missing.

You can see more about this notice here.

filename (?) The name of the faulty file.
"feed_info.txt"
mixed_case_recommended_field WARNING 20

mixed_case_recommended_field

This field has customer-facing text and should use Mixed Case (should contain upper and lower case letters).

This field contains customer-facing text and should use Mixed Case (upper and lower case letters) to ensure good readability when displayed to riders. Avoid the use of abbreviations throughout the feed (e.g. St. for Street) unless a location is called by its abbreviated name (e.g. “JFK Airport”). Abbreviations may be problematic for accessibility by screen reader software and voice user interfaces.

Good examples:
Field Text Dataset
"Schwerin, Hauptbahnhof" Verkehrsverbund Berlin-Brandenburg
"Red Hook/Atlantic Basin" NYC Ferry
"Campo Grande Norte" Carris
Bad examples:
Field Text
"GALLERIA MALL"
"3427 GG 17"
"21 Clark Rd Est"

You can see more about this notice here.

filename (?) Name of the faulty file. fieldName (?) Name of the faulty field. fieldValue (?) Faulty value. csvRowNumber (?) The row number of the faulty record.
"stops.txt" "stop_name" "12e avenue / face au 920" 86
"stops.txt" "stop_name" "route 335 / face au 284" 109
"stops.txt" "stop_name" "route 343 / 17e avenue" 307
"stops.txt" "stop_name" "route 343 / route 348" 309
"stops.txt" "stop_name" "route 343 / route 348" 320
"stops.txt" "stop_name" "route 343 / 17e avenue" 322
"stops.txt" "stop_name" "route 138 / face au 820" 334
"stops.txt" "stop_name" "route 138 / face au 825" 364
"stops.txt" "stop_name" "route 125 / route 341" 370
"stops.txt" "stop_name" "route 125 / rang des continuations" 375
"stops.txt" "stop_name" "route 125 / route 339" 378
"stops.txt" "stop_name" "route 125 / route 339" 396
"stops.txt" "stop_name" "route 125 / rang des continuations" 398
"stops.txt" "stop_name" "route 125 / route 341" 412
"stops.txt" "stop_name" "route 131 / 2e rang de la chaloupe" 444
"stops.txt" "stop_name" "route 131 / 2e rang de la chaloupe" 445
"stops.txt" "stop_name" "8e rue / 4e avenue" 470
"stops.txt" "stop_name" "8e rue / 2e avenue" 471
"stops.txt" "stop_name" "8e rue / 4e avenue" 500
"stops.txt" "stop_name" "8e rue / 2e avenue" 501
trip_coverage_not_active_for_next7_days WARNING 1

trip_coverage_not_active_for_next7_days

Trips data should be valid for at least the next seven days.

This notice is triggered if the date range where a significant number of trips are running ends in less than 7 days.

You can see more about this notice here.

currentDate (?) Current date (YYYYMMDD format). serviceWindowStartDate (?) The start date of the majority service window. serviceWindowEndDate (?) The end date of the majority service window.
"20250517" "20180101" "20200904"