saskatoon-transit — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-06-19T16:17:23Z,
for the dataset file:///shared/saskatoon-transit_720e6800.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. routes.txt
  4. shapes.txt
  5. stop_times.txt
  6. stops.txt
  7. trips.txt

Counts


  • Agencies: 0
  • Blocks: 170
  • Routes: 0
  • Shapes: 195
  • Stops: 1375
  • Trips: 4000

Specification Compliance report

54400 notices reported (48755 errors, 1103 warnings, 4542 infos)

Notice Code Severity Total
decreasing_or_equal_stop_time_distance ERROR 3190

decreasing_or_equal_stop_time_distance

Decreasing or equal shape_dist_traveled in stop_times.txt.

When sorted by stop_times.stop_sequence, two consecutive entries in stop_times.txt should have increasing distance, based on the field shape_dist_traveled. If the values are equal, this is considered as an error.

You can see more about this notice here.

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

tripId (?) The id of the faulty trip. stopId (?) The id of the faulty stop. csvRowNumber (?) The row number from `stop_times.txt`. shapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the faulty record. stopSequence (?) The faulty record's `stop_times.stop_sequence`. prevCsvRowNumber (?) The row number from `stop_times.txt` of the previous stop time. prevShapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the previous stop time. prevStopSequence (?) The previous record's `stop_times.stop_sequence`.
"1519913" "3278" 1448 0.0 3 1445 0.0 2
"1519913" "3275" 1451 0.0 4 1448 0.0 3
"1519913" "4000" 1454 0.0 5 1451 0.0 4
"1519913" "3345" 1457 0.0 6 1454 0.0 5
"1519913" "3357" 1459 0.0 7 1457 0.0 6
"1519913" "3333" 1461 0.0 8 1459 0.0 7
"1519913" "4053" 1463 0.0 9 1461 0.0 8
"1519913" "4050" 1203 0.0 10 1463 0.0 9
"1519913" "4046" 1206 0.0 11 1203 0.0 10
"1519913" "5824" 1207 0.0 12 1206 0.0 11
"1519913" "5339" 1209 0.0 13 1207 0.0 12
"1519913" "3179" 1211 0.0 14 1209 0.0 13
"1519913" "3182" 1215 0.0 15 1211 0.0 14
"1519913" "4302" 1219 0.0 16 1215 0.0 15
"1519913" "3356" 1224 0.0 17 1219 0.0 16
"1519913" "4301" 1229 0.0 18 1224 0.0 17
"1519913" "6020" 1234 0.0 19 1229 0.0 18
"1519913" "3621" 1239 0.0 20 1234 0.0 19
"1519913" "3630" 1244 0.0 21 1239 0.0 20
"1519913" "3627" 1249 0.0 22 1244 0.0 21
"1519913" "3029" 1254 0.0 23 1249 0.0 22
"1519913" "4484" 1259 0.0 24 1254 0.0 23
"1519912" "3278" 1343 0.0 3 1313 0.0 2
"1519912" "3275" 1347 0.0 4 1343 0.0 3
"1519912" "4000" 1351 0.0 5 1347 0.0 4
"1519912" "3345" 1355 0.0 6 1351 0.0 5
"1519912" "3357" 1359 0.0 7 1355 0.0 6
"1519912" "3333" 1363 0.0 8 1359 0.0 7
"1519912" "4053" 1367 0.0 9 1363 0.0 8
"1519912" "4050" 1371 0.0 10 1367 0.0 9
"1519912" "4046" 1375 0.0 11 1371 0.0 10
"1519912" "5824" 1379 0.0 12 1375 0.0 11
"1519912" "5339" 1383 0.0 13 1379 0.0 12
"1519912" "3179" 1387 0.0 14 1383 0.0 13
"1519912" "3182" 1391 0.0 15 1387 0.0 14
"1519912" "4302" 1395 0.0 16 1391 0.0 15
"1519912" "3356" 1399 0.0 17 1395 0.0 16
"1519912" "4301" 1403 0.0 18 1399 0.0 17
"1519912" "6020" 1407 0.0 19 1403 0.0 18
"1519912" "3621" 1411 0.0 20 1407 0.0 19
"1519912" "3630" 1415 0.0 21 1411 0.0 20
"1519912" "3627" 1419 0.0 22 1415 0.0 21
"1519912" "3029" 1423 0.0 23 1419 0.0 22
"1519912" "4484" 1438 0.0 24 1423 0.0 23
"1519911" "3278" 1427 0.0 3 1426 0.0 2
"1519911" "3275" 1428 0.0 4 1427 0.0 3
"1519911" "4000" 1429 0.0 5 1428 0.0 4
"1519911" "3345" 1430 0.0 6 1429 0.0 5
"1519911" "3357" 1431 0.0 7 1430 0.0 6
"1519911" "3333" 1223 0.0 8 1431 0.0 7
equal_shape_distance_diff_coordinates ERROR 26

equal_shape_distance_diff_coordinates

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 the 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 different coordinates indicate an error.

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.
"97514" 25022 0.0649 10 25018 0.0649 9 1.129949690699537
"97510" 24509 0.1396 3 24508 0.1396 2 139.98977480779232
"97500" 23577 0.1396 3 23574 0.1396 2 139.98977480779232
"97529" 27835 0.0649 10 27829 0.0649 9 1.129949690699537
"97401" 11808 0.0032 3 11729 0.0032 2 2.936586481619359
"97400" 11143 0.0032 3 11140 0.0032 2 2.936586481619359
"97436" 17582 0.0649 10 17580 0.0649 9 1.129949690699537
"97552" 30538 0.0305 3 30537 0.0305 2 30.00662936075643
"97550" 30617 0.0499 3 30611 0.0499 2 50.62283637118067
"97549" 30698 0.0499 3 30693 0.0499 2 50.62283637118067
"97479" 20128 0.047 3 20127 0.047 2 46.92438237711729
"97478" 20295 0.047 3 20289 0.047 2 46.92438237711729
"97497" 22820 0.1396 3 22819 0.1396 2 139.98977480779232
"97493" 22575 0.024 3 22574 0.024 2 24.46444477246213
"97481" 20515 0.0177 3 20514 0.0177 2 17.88086292847421
"97480" 20352 0.0032 3 20347 0.0032 2 2.936586481619359
"97383" 6892 2.7686 95 6885 2.7686 94 1.1302585849141356
"97383" 6906 2.7786 97 6899 2.7786 96 1.1807146659776948
"97383" 7130 3.3196 127 7129 3.3196 126 1.1302586764487663
"97383" 7132 3.3296 129 7131 3.3296 128 1.1302586777087495
"97382" 6742 0.0326 3 6738 0.0326 2 32.68255831646826
"97382" 6491 0.2914 98 6490 0.2914 97 1.9799773383846713
"97382" 7187 2.9559 244 7186 2.9559 243 1.1302586777087495
"97382" 7189 2.9659 246 7188 2.9659 245 1.1302586764487663
"97382" 6922 3.5069 276 6915 3.5069 275 1.1807146659776948
"97382" 6936 3.5169 278 6929 3.5169 277 1.1302585849141356
foreign_key_violation ERROR 45223

foreign_key_violation

Wrong foreign key.

A foreign key references the primary key of another file. A foreign key violation means that the foreign key referenced from a given row (the child file) cannot be found in the corresponding file (the parent file). The Foreign keys are defined in the specification under "Type" for each file.

You can see more about this notice here.

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

childFilename (?) The name of the file from which reference is made. childFieldName (?) The name of the field that makes reference. parentFilename (?) The name of the file that is referred to. parentFieldName (?) The name of the field that is referred to. fieldValue (?) The faulty record's value. csvRowNumber (?) The row of the faulty record.
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523134" 83902
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523134" 83903
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523134" 83904
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523134" 83905
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83906
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523134" 83907
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523134" 83908
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523134" 83909
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83910
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523134" 83911
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83912
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523134" 83913
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83914
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523134" 83915
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83916
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523135" 83917
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523140" 83918
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523138" 83920
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83922
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523135" 83924
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523140" 83925
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523138" 83927
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523137" 83929
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83930
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83931
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83932
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83933
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83934
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83935
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83936
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83937
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83938
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83939
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83940
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83941
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83942
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83943
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83944
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83945
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83946
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83947
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83948
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83949
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83950
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83951
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83952
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83953
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83954
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523136" 83955
"stop_times.txt" "trip_id" "trips.txt" "trip_id" "1523137" 83956
invalid_color ERROR 54

invalid_color

A field contains an invalid color value.

A color must be encoded as a six-digit hexadecimal number. The leading "#" is not included.

Example: FFFFFF for white, 000000 for black or 0039A6 for the A,C,E lines in NYC MTA.

You can see more about this notice here.

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

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) Faulty record's field name. fieldValue (?) Faulty value.
"routes.txt" 2 "route_text_color" "0"
"routes.txt" 3 "route_text_color" "0"
"routes.txt" 4 "route_text_color" "0"
"routes.txt" 5 "route_text_color" "0"
"routes.txt" 6 "route_text_color" "0"
"routes.txt" 7 "route_text_color" "0"
"routes.txt" 8 "route_text_color" "0"
"routes.txt" 9 "route_text_color" "0"
"routes.txt" 10 "route_text_color" "0"
"routes.txt" 11 "route_text_color" "0"
"routes.txt" 12 "route_text_color" "0"
"routes.txt" 13 "route_text_color" "0"
"routes.txt" 14 "route_text_color" "0"
"routes.txt" 15 "route_text_color" "0"
"routes.txt" 16 "route_text_color" "0"
"routes.txt" 17 "route_text_color" "0"
"routes.txt" 18 "route_text_color" "0"
"routes.txt" 19 "route_text_color" "0"
"routes.txt" 20 "route_text_color" "0"
"routes.txt" 21 "route_text_color" "0"
"routes.txt" 22 "route_text_color" "0"
"routes.txt" 23 "route_text_color" "0"
"routes.txt" 24 "route_text_color" "0"
"routes.txt" 25 "route_text_color" "0"
"routes.txt" 26 "route_text_color" "0"
"routes.txt" 27 "route_text_color" "0"
"routes.txt" 28 "route_text_color" "0"
"routes.txt" 29 "route_text_color" "0"
"routes.txt" 30 "route_text_color" "0"
"routes.txt" 31 "route_text_color" "0"
"routes.txt" 32 "route_text_color" "0"
"routes.txt" 33 "route_text_color" "0"
"routes.txt" 34 "route_text_color" "0"
"routes.txt" 35 "route_text_color" "0"
"routes.txt" 36 "route_text_color" "0"
"routes.txt" 37 "route_text_color" "0"
"routes.txt" 38 "route_text_color" "0"
"routes.txt" 39 "route_text_color" "0"
"routes.txt" 40 "route_text_color" "0"
"routes.txt" 41 "route_text_color" "0"
"routes.txt" 42 "route_text_color" "0"
"routes.txt" 43 "route_text_color" "0"
"routes.txt" 44 "route_text_color" "0"
"routes.txt" 45 "route_text_color" "0"
"routes.txt" 46 "route_text_color" "0"
"routes.txt" 47 "route_text_color" "0"
"routes.txt" 48 "route_text_color" "0"
"routes.txt" 49 "route_text_color" "0"
"routes.txt" 50 "route_text_color" "0"
"routes.txt" 51 "route_text_color" "0"
missing_trip_edge ERROR 124

missing_trip_edge

Missing trip edge arrival_time or departure_time.

First and last stop of a trip must define both arrival_time and departure_time fields. Per stop_times.txt, "If there are not separate times for arrival and departure at a stop, enter the same value for arrival_time and departure_time."

You can see more about this notice here.

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

csvRowNumber (?) The row of the faulty record. stopSequence (?) `stops.stop_sequence` of the faulty record. tripId (?) The `trips.trip_id` of the faulty record. specifiedField (?) Name of the missing field.
23755 35 "1522068" "arrival_time"
23755 35 "1522068" "departure_time"
23794 43 "1522068" "arrival_time"
23794 43 "1522068" "departure_time"
34696 18 "1523405" "arrival_time"
34696 18 "1523405" "departure_time"
34702 19 "1523405" "arrival_time"
34702 19 "1523405" "departure_time"
95552 21 "1525045" "arrival_time"
95552 21 "1525045" "departure_time"
95556 25 "1525045" "arrival_time"
95556 25 "1525045" "departure_time"
84448 1 "1523146" "arrival_time"
84448 1 "1523146" "departure_time"
84600 36 "1523146" "arrival_time"
84600 36 "1523146" "departure_time"
53936 1 "1525788" "arrival_time"
53936 1 "1525788" "departure_time"
53951 16 "1525788" "arrival_time"
53951 16 "1525788" "departure_time"
92349 1 "1524383" "arrival_time"
92349 1 "1524383" "departure_time"
92004 6 "1524383" "arrival_time"
92004 6 "1524383" "departure_time"
31146 1 "1523093" "arrival_time"
31146 1 "1523093" "departure_time"
30929 36 "1523093" "arrival_time"
30929 36 "1523093" "departure_time"
91655 15 "1524356" "arrival_time"
91655 15 "1524356" "departure_time"
91700 27 "1524356" "arrival_time"
91700 27 "1524356" "departure_time"
39119 1 "1523966" "arrival_time"
39119 1 "1523966" "departure_time"
39330 27 "1523966" "arrival_time"
39330 27 "1523966" "departure_time"
40940 1 "1524211" "arrival_time"
40940 1 "1524211" "departure_time"
40946 7 "1524211" "arrival_time"
40946 7 "1524211" "departure_time"
27883 31 "1522531" "arrival_time"
27883 31 "1522531" "departure_time"
27934 34 "1522531" "arrival_time"
27934 34 "1522531" "departure_time"
89752 11 "1523826" "arrival_time"
89752 11 "1523826" "departure_time"
89752 11 "1523826" "arrival_time"
89752 11 "1523826" "departure_time"
50927 1 "1525461" "arrival_time"
50927 1 "1525461" "departure_time"
stop_time_timepoint_without_times ERROR 138

stop_time_timepoint_without_times

arrival_time or departure_time not specified for timepoint.

Any records with stop_times.timepoint set to 1 must define a value for stop_times.arrival_time and stop_times.departure_time fields.

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record. tripId (?) The faulty record's id. stopSequence (?) The faulty record's `stops.stop_sequence`. specifiedField (?) Either `departure_time` or `arrival_time`.
11655 "1521069" 32 "arrival_time"
11655 "1521069" 32 "departure_time"
11663 "1521069" 38 "arrival_time"
11663 "1521069" 38 "departure_time"
19867 "1521740" 1 "arrival_time"
19867 "1521740" 1 "departure_time"
19874 "1521740" 8 "arrival_time"
19874 "1521740" 8 "departure_time"
19879 "1521740" 13 "arrival_time"
19879 "1521740" 13 "departure_time"
19887 "1521740" 21 "arrival_time"
19887 "1521740" 21 "departure_time"
23794 "1522068" 43 "arrival_time"
23794 "1522068" 43 "departure_time"
27934 "1522531" 34 "arrival_time"
27934 "1522531" 34 "departure_time"
30909 "1523093" 16 "arrival_time"
30909 "1523093" 16 "departure_time"
30916 "1523093" 23 "arrival_time"
30916 "1523093" 23 "departure_time"
30923 "1523093" 30 "arrival_time"
30923 "1523093" 30 "departure_time"
30929 "1523093" 36 "arrival_time"
30929 "1523093" 36 "departure_time"
31146 "1523093" 1 "arrival_time"
31146 "1523093" 1 "departure_time"
31151 "1523093" 6 "arrival_time"
31151 "1523093" 6 "departure_time"
34702 "1523405" 19 "arrival_time"
34702 "1523405" 19 "departure_time"
39119 "1523966" 1 "arrival_time"
39119 "1523966" 1 "departure_time"
39299 "1523966" 16 "arrival_time"
39299 "1523966" 16 "departure_time"
39330 "1523966" 27 "arrival_time"
39330 "1523966" 27 "departure_time"
40709 "1524177" 26 "arrival_time"
40709 "1524177" 26 "departure_time"
40940 "1524211" 1 "arrival_time"
40940 "1524211" 1 "departure_time"
40946 "1524211" 7 "arrival_time"
40946 "1524211" 7 "departure_time"
45912 "1524822" 27 "arrival_time"
45912 "1524822" 27 "departure_time"
47050 "1524930" 1 "arrival_time"
47050 "1524930" 1 "departure_time"
48357 "1524991" 20 "arrival_time"
48357 "1524991" 20 "departure_time"
48362 "1524991" 25 "arrival_time"
48362 "1524991" 25 "departure_time"
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 678

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.

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

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.
"97514" 24998 0.0615 4 24994 0.0615 3 1.0977857252752088
"97514" 25006 0.0625 6 25002 0.0625 5 0.8726966047894945
"97514" 25014 0.0635 8 25010 0.0635 7 0.6671706075809258
"97514" 25030 0.0663 12 25026 0.0663 11 0.9915912603160509
"97514" 25033 0.0683 15 25032 0.0683 14 0.7330843065242868
"97514" 25036 0.0703 18 25035 0.0703 17 0.7584391602520717
"97514" 25038 0.0713 20 25037 0.0713 19 0.7590357742124298
"97514" 25040 0.0723 22 25039 0.0723 21 0.2948093959469982
"97514" 25042 0.0733 24 25041 0.0733 23 0.5724908947183628
"97514" 25152 0.0743 26 25043 0.0743 25 0.6243115370591309
"97514" 25154 0.0753 28 25153 0.0753 27 0.9899712294051323
"97514" 25156 0.0763 30 25155 0.0763 29 0.759035858423825
"97514" 25167 0.1027 41 25166 0.1027 40 0.13047458032881473
"97514" 25170 0.108 44 25169 0.108 43 0.06825882642301309
"97514" 25173 0.1122 47 25172 0.1122 46 1.0540618472275098
"97514" 25175 0.1404 49 25174 0.1404 48 0.7493990002524413
"97514" 25177 0.1481 51 25176 0.1481 50 0.17607252539822665
"97418" 15015 8.2301 214 15009 8.2301 213 0.4246419064274547
"97418" 15061 8.2323 216 15021 8.2323 215 0.7209465106682967
"97418" 15074 8.2374 219 15070 8.2374 218 0.17614238727847725
"97418" 15082 8.2396 221 15078 8.2396 220 0.5559755059637761
"97418" 15098 8.2461 225 15094 8.2461 224 0.13049820944217028
"97418" 15114 8.4571 229 15110 8.4571 228 1.0476162398487272
"97539" 29458 0.0468 4 29453 0.0468 3 0.8486899460183852
"97538" 29228 0.7025 21 29227 0.7025 20 0.43108146038333267
"97538" 29512 4.9363 128 29507 4.9363 127 0.8486899460183852
"97419" 15309 8.6562 221 15304 8.6562 220 0.4246419064274547
"97419" 15317 8.6584 223 15312 8.6584 222 0.7209465106682967
"97419" 15335 8.6635 226 15329 8.6635 225 0.17614238727847725
"97419" 15347 8.6657 228 15341 8.6657 227 0.5559755059637761
"97419" 15371 8.6722 232 15365 8.6722 231 0.13049820944217028
"97419" 15395 8.8832 236 15389 8.8832 235 1.0476162398487272
"97414" 14154 2.0978 49 14102 2.0978 48 1.0476162398487272
"97414" 14158 2.3088 53 14157 2.3088 52 0.13049820944217028
"97414" 14162 2.3153 57 14161 2.3153 56 0.5559755059637761
"97414" 14164 2.3175 59 14163 2.3175 58 0.17614238727847725
"97414" 14167 2.3226 62 14166 2.3226 61 0.7209465106682967
"97414" 14169 2.3248 64 14168 2.3248 63 0.4246419064274547
"97535" 28813 2.1486 43 28812 2.1486 42 0.8486899460183852
"97535" 29009 6.4946 154 29008 6.4946 153 0.1304756008279086
"97535" 29011 6.5086 156 29010 6.5086 155 0.5460861250012425
"97413" 13711 2.0978 49 13702 2.0978 48 1.0476162398487272
"97413" 13733 2.3088 53 13726 2.3088 52 0.13049820944217028
"97413" 13760 2.3153 57 13754 2.3153 56 0.5559755059637761
"97413" 13772 2.3175 59 13766 2.3175 58 0.17614238727847725
"97413" 13790 2.3226 62 13784 2.3226 61 0.7209465106682967
"97413" 13855 2.3248 64 13852 2.3248 63 0.4246419064274547
"97537" 28907 0.7025 21 29197 0.7025 20 0.43108146038333267
"97415" 14009 2.0978 49 14008 2.0978 48 1.0476162398487272
"97415" 14013 2.3088 53 14012 2.3088 52 0.13049820944217028
missing_recommended_field WARNING 1

missing_recommended_field

A recommended field is missing.

The given field has no value in some input row, even though values are recommended.

You can see more about this notice here.

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) The name of the missing field.
"agency.txt" 2 "agency_id"
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 11

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" "3rd / 20th" 88
"stops.txt" "stop_name" "23rd / D" 102
"trips.txt" "trip_headsign" "NELSON RD" 2056
"trips.txt" "trip_headsign" "NELSON RD" 2300
"trips.txt" "trip_headsign" "NELSON RD" 2301
"trips.txt" "trip_headsign" "NELSON RD" 2302
"trips.txt" "trip_headsign" "NELSON RD" 2303
"trips.txt" "trip_headsign" "NELSON RD" 2304
"trips.txt" "trip_headsign" "NELSON RD" 2305
"trips.txt" "trip_headsign" "NELSON RD" 2306
"trips.txt" "trip_headsign" "NELSON RD" 2307
service_has_no_active_day_of_the_week WARNING 6

service_has_no_active_day_of_the_week

A service is not valid for any day of the week.

You can see more about this notice here.

csvRowNumber (?) The row number in calendar.txt where the error occurs. serviceId (?) The service_id field value.
5 "5"
6 "1201"
7 "12901"
8 "13001"
9 "12801"
10 "11903"
stop_without_stop_time WARNING 9

stop_without_stop_time

A stop in stops.txt is not referenced by any stop_times.stop_id.

Such stops are not used by any trip and normally do not provide user value. This notice may indicate a typo in stop_times.txt.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty stop. stopName (?) The name of the faulty stop.
8 "5527" "Feheregyhazi / Bolstad"
9 "5528" "Kalra Road / Forsey"
10 "5529" "Kalra Road / Whitehead"
11 "5581" "Kalra Road / Shevchenko"
12 "5776" "Feheregyhazi / Shevchenko"
13 "5981" "Feheregyhazi / Whitehead"
14 "5778" "Feheregyhazi / Forsey"
15 "5777" "Orban Way / Fedoruk"
16 "5962" "Ludlow / Heath"
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.
"20260619" "20260629" "20260828"
unusable_trip WARNING 196

unusable_trip

Trips must have more than one stop to be usable.

A trip must visit more than one stop in stop_times.txt to be usable by passengers for boarding and alighting.

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record. tripId (?) The faulty record's id.
2 "1520342"
73 "1519916"
88 "1520048"
95 "1520049"
96 "1520043"
180 "1519882"
181 "1519884"
182 "1519885"
205 "1520311"
212 "1520532"
213 "1520074"
237 "1520538"
241 "1520531"
256 "1520537"
265 "1520530"
292 "1520093"
295 "1520100"
369 "1520287"
377 "1520286"
402 "1520752"
403 "1520757"
438 "1520927"
467 "1520721"
498 "1520957"
503 "1520720"
508 "1520958"
580 "1521071"
609 "1520760"
635 "1521268"
642 "1521269"
649 "1521270"
708 "1521271"
719 "1521355"
725 "1521356"
731 "1521357"
737 "1521358"
744 "1521553"
815 "1521782"
847 "1521899"
920 "1521723"
962 "1522181"
965 "1522180"
1085 "1522209"
1114 "1521590"
1154 "1522203"
1166 "1521929"
1175 "1521724"
1224 "1523377"
1232 "1522561"
1267 "1523204"
unused_shape WARNING 8

unused_shape

Shape is not used in GTFS file trips.txt.

All records defined by GTFS shapes.txt should be used in trips.txt.

You can see more about this notice here.

shapeId (?) The faulty record's id. csvRowNumber (?) The row number of the faulty record.
"97347" 1602
"97396" 9304
"97412" 13239
"97416" 14402
"97420" 15273
"97428" 16482
"97503" 24013
"97554" 30811
unused_trip WARNING 192

unused_trip

Trip is not be used in stop_times.txt

Trips should be referred to at least once in stop_times.txt.

You can see more about this notice here.

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

tripId (?) The faulty record's id. csvRowNumber (?) The row number of the faulty record.
"1520342" 2
"1519916" 73
"1520048" 88
"1520049" 95
"1520043" 96
"1519882" 180
"1519884" 181
"1519885" 182
"1520311" 205
"1520532" 212
"1520074" 213
"1520538" 237
"1520531" 241
"1520537" 256
"1520530" 265
"1520093" 292
"1520100" 295
"1520287" 369
"1520286" 377
"1520752" 402
"1520757" 403
"1520927" 438
"1520721" 467
"1520957" 498
"1520720" 503
"1520958" 508
"1521071" 580
"1520760" 609
"1521268" 635
"1521269" 642
"1521270" 649
"1521271" 708
"1521355" 719
"1521356" 725
"1521357" 731
"1521358" 737
"1521782" 815
"1521899" 847
"1521723" 920
"1522181" 962
"1522180" 965
"1522209" 1085
"1521590" 1114
"1522203" 1154
"1521929" 1166
"1521724" 1175
"1523377" 1224
"1522561" 1232
"1523204" 1267
"1523561" 1269
future_calendar INFO 1

future_calendar

All services in the feed start in the future; no service covers today's date.

You can see more about this notice here.

minServiceStartDate (?) The earliest service start date across all services in the feed. currentDate (?) Today's date at validation time.
"2026-06-29" "2026-06-19"
unknown_column INFO 7

unknown_column

A column name is unknown.

You can see more about this notice here.

filename (?) The name of the faulty file. fieldName (?) The name of the unknown column. index (?) The index of the faulty column.
"agency.txt" "ObjectId" 8
"calendar.txt" "ObjectId" 11
"routes.txt" "ObjectId" 10
"shapes.txt" "ObjectId" 6
"stops.txt" "ObjectId" 13
"stop_times.txt" "ObjectId" 11
"trips.txt" "ObjectId" 11
unsorted_stop_times INFO 4534

unsorted_stop_times

Stop times are not sorted by trip_id and stop_sequence.

'stop_times.txt' entries for a given trip are not sorted by stop_sequence, or are not contiguous in the file.

You can see more about this notice here.

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

tripId (?) The faulty record's trip_id. startCsvRowNumber (?) CSV row number of the first stop_times entry for this trip. endCsvRowNumber (?) CSV row number of the last stop_times entry for this trip.
"1522086" 24521 24843
"1525112" 48053 48182
"1522087" 24522 24850
"1522084" 24482 24639
"1525110" 48072 48180
"1522085" 24520 24721
"1522088" 24563 24828
"1522089" 24523 24837
"1525113" 48068 48079
"1522082" 24354 24469
"1522083" 24467 24517
"1522080" 24130 24399
"1522081" 24067 24408
"1526459" 60846 61025
"1522097" 24912 25160
"1525123" 48552 48605
"1526455" 60622 60666
"1522095" 24914 25113
"1522096" 25021 25082
"1526458" 60692 60840
"1522099" 24069 24316
"1526453" 60299 60458
"1526454" 60471 60618
"1522090" 24519 24851
"1522093" 24750 25128
"1522094" 24909 25150
"1522091" 24518 24845
"1522092" 24572 24749
"1522064" 23607 23885
"1522065" 23702 23898
"1522062" 23302 23639
"1522063" 23304 23602
"1522068" 23755 23794
"1523399" 34839 34930
"1522069" 23799 24036
"1522066" 23732 23910
"1523397" 34917 34997
"1522067" 23915 24045
"1523398" 34690 34834
"1522060" 23317 23652
"1522061" 23316 23648
"1525109" 48055 48221
"1525107" 48153 48169
"1522075" 24066 24428
"1522076" 24054 24446
"1522073" 23817 24050
"1522074" 24051 24356
"1522079" 24062 24293
"1522077" 24072 24117
"1522078" 24125 24210