GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-06-11T21:51:08Z,
for the dataset file:///shared/horizons-regional-council_8cfdd03e.zip. No country code was provided.

Use this report alongside our documentation.

A new version of the Canonical GTFS Schedule validator is available! Please update to get the latest/best validation results.

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. fare_attributes.txt
  5. fare_rules.txt
  6. feed_info.txt
  7. frequencies.txt
  8. routes.txt
  9. shapes.txt
  10. stop_times.txt
  11. stops.txt
  12. stops_init.txt
  13. transfers.txt
  14. trips.txt
  15. trips_init.txt
  16. version_control.txt

Counts


  • Agencies: 4
  • Blocks: 1596
  • Routes: 46
  • Shapes: 94
  • Stops: 922
  • Trips: 1596

Specification Compliance report

585 notices reported (0 errors, 581 warnings, 4 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 13

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.
"70704" 6491 2.431 61 6490 2.431 60 0.8524478652942619
"20224" 1604 1.465 62 1603 1.465 61 0.8525667321557245
"20223" 1163 1.617 39 1162 1.617 38 0.8526360013908959
"20223" 1168 1.623 44 1167 1.623 43 0.8526360013908959
"20223" 1242 3.359 118 1241 3.359 117 0.852568356139709
"20223" 1262 3.38 138 1261 3.38 137 0.8525668589132933
"20223" 1264 3.382 140 1263 3.382 139 0.8525667364943408
"20222" 1054 13.232 319 1053 13.232 318 0.8526408597506491
"20221" 473 5.786 153 472 5.786 152 0.8525733374670654
"21207" 10487 1.299 32 10486 1.299 31 0.8528416373888044
"20202" 9053 2.59 113 9052 2.59 112 0.8525085509384563
"70701" 3384 79.314 822 3383 79.314 821 0.8509615106723887
"20209" 7910 25.729 215 7909 25.729 214 0.4812568842260704
equal_shape_distance_same_coordinates WARNING 327

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 327 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`.
"30301" 8273 0.0 2 8272 0.0 1
"30301" 8274 0.0 3 8273 0.0 2
"30301" 8280 0.046 9 8279 0.046 8
"30301" 8310 0.987 40 8309 0.987 39
"30301" 8317 1.449 47 8316 1.449 46
"30301" 8322 1.761 52 8321 1.761 51
"30301" 8338 2.486 68 8337 2.486 67
"30301" 8348 3.34 78 8347 3.34 77
"30301" 8363 4.564 93 8362 4.564 92
"30301" 8380 5.615 110 8379 5.615 109
"30301" 8389 6.345 119 8388 6.345 118
"30301" 8400 7.259 130 8399 7.259 129
"30301" 8408 7.662 138 8407 7.662 137
"30301" 8420 8.435 150 8419 8.435 149
"30301" 8434 8.96 164 8433 8.96 163
"30301" 8437 9.195 167 8436 9.195 166
"30301" 8445 9.549 175 8444 9.549 174
"30301" 8449 9.936 179 8448 9.936 178
"30301" 8463 10.923 193 8462 10.923 192
"30301" 8474 11.538 204 8473 11.538 203
"30301" 8486 12.252 216 8485 12.252 215
"30301" 8504 12.827 234 8503 12.827 233
"30301" 8509 13.106 239 8508 13.106 238
"20223" 1128 0.196 4 1127 0.196 3
"20501" 11492 0.661 49 11491 0.661 48
"20501" 11512 0.987 69 11511 0.987 68
"20501" 11525 1.317 82 11524 1.317 81
"20501" 11553 2.377 110 11552 2.377 109
"20501" 11681 5.872 238 11680 5.872 237
"20226" 11954 0.0 2 11953 0.0 1
"20226" 11955 0.0 3 11954 0.0 2
"20226" 11964 0.538 12 11963 0.538 11
"20226" 11994 0.997 42 11993 0.997 41
"20226" 12046 3.768 94 12045 3.768 93
"20226" 12152 14.627 200 12151 14.627 199
"20226" 12346 27.979 394 12345 27.979 393
"20226" 12465 39.441 513 12464 39.441 512
"20226" 12638 51.679 686 12637 51.679 685
"20226" 12800 62.752 848 12799 62.752 847
"20226" 13055 73.162 1103 13054 73.162 1102
"20226" 13126 74.505 1174 13125 74.505 1173
"20226" 13140 74.766 1188 13139 74.766 1187
"20226" 13164 75.245 1212 13163 75.245 1211
"21204" 9578 0.0 2 9577 0.0 1
"21204" 9579 0.0 3 9578 0.0 2
"21204" 9588 0.721 12 9587 0.721 11
"21204" 9596 1.54 20 9595 1.54 19
"21204" 9603 2.158 27 9602 2.158 26
"21204" 9630 2.981 54 9629 2.981 53
"21204" 9642 3.658 66 9641 3.658 65
mixed_case_recommended_field WARNING 1

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.
"trips.txt" "trip_headsign" "MSBH to PNGHS" 1082
route_color_contrast WARNING 1

route_color_contrast

Insufficient route color contrast.

A route's color and route_text_color should be contrasting.

You can see more about this notice here.

routeId (?) The id of the faulty record. csvRowNumber (?) The row number of the faulty record. routeColor (?) The faulty record's HTML route color. routeTextColor (?) The faulty record's HTML route text color.
"201" 43 "#F6ADCD" "#FFFFFF"
same_name_and_description_for_route WARNING 5

same_name_and_description_for_route

Same name and description for route.

The GTFS spec defines routes.txt route_desc as:

Description of a route that provides useful, quality information. Do not simply duplicate the name of the route.

See the GTFS and GTFS Best Practices links below for more examples of how to populate the route_short_name, route_long_name, and route_desc fields.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. routeId (?) The id of the faulty record. routeDesc (?) The `routes.routes_desc` of the faulty record. specifiedField (?) Either `route_short_name` or `route_long_name`.
43 "201" "Castlecliff to Whanganui East" "route_long_name"
44 "202" "Gonville to Aramoho" "route_long_name"
45 "203" "Trafalgar Square to Springvale" "route_long_name"
46 "204" "Putiki to St Johns Hill" "route_long_name"
47 "205" "Trafalgar Square to Whanganui East" "route_long_name"
stop_without_stop_time WARNING 203

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.

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

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty stop. stopName (?) The name of the faulty stop.
53 "32000155" "32 Dalwood Gr"
54 "32000156" "Opposite Arvida Olive Tree - Dalwood Gr"
289 "32000530" "360 Botanical Rd"
296 "32000543" "Airport Terminal - Stop 1"
300 "32002001" "Trafalgar Square - Bay 1"
301 "32002002" "Trafalgar Square - Bay 2"
305 "32020563" "15 Watt St"
306 "32020564" "161 Wicksteed St"
307 "32020565" "199 Wicksteed St"
310 "32020568" "167 Glasgow St"
312 "32020570" "233 London Rd"
325 "32020587" "19a Polson St"
326 "32020588" "31 Polson St"
327 "32020589" "53 Polson St"
328 "32020590" "75 Polson St"
329 "32020591" "74 Manuka St"
330 "32020592" "50 Manuka St"
331 "32020593" "91 Cornfoot St"
332 "32020594" "103 Cornfoot St"
333 "32020595" "121a Cornfoot St"
334 "32020596" "161 Cornfoot St"
335 "32020597" "189 Cornfoot St"
338 "32020601" "106 Karaka St"
340 "32020603" "80 Karaka St"
350 "32020614" "492 Heads Rd"
351 "32020615" "448 Heads Rd"
352 "32020616" "476 Heads Rd"
353 "32020617" "13 Raupo St"
354 "32020618" "37 Raupo St"
357 "32020623" "24 Akatea St"
358 "32020624" "12 Akatea St"
370 "32020636" "23 Rata St"
373 "32020639" "218 Guyton St"
374 "32020640" "15 Heads Rd"
377 "32020643" "20 Rata St"
381 "32020647" "22 Kings Ave"
388 "32020654" "81 Harper St"
391 "32020657" "Cr Raupo St/Hinau St"
392 "32020658" "441 Heads Rd"
393 "32020659" "481 Heads Rd"
394 "32020660" "485 Heads Rd"
395 "32020661" "505 Heads Rd"
402 "32020668" "14 Manuka St"
406 "32020672" "79 Karaka St"
407 "32020673" "89 Karaka St"
408 "32020674" "103 Karaka St"
409 "32020675" "115 Karaka St - Outer Terminal"
410 "32020677" "250 Cornfoot St"
411 "32020678" "190 Cornfoot St"
412 "32020679" "152 Cornfoot St"
unused_shape WARNING 31

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.
"20220" 2
"20221" 321
"20222" 736
"20223" 1125
"20224" 1543
"20209" 7696
"20201" 8522
"21202" 8721
"20202" 8941
"20203" 9201
"20204" 9465
"21204" 9577
"20205" 9698
"21205" 9839
"20206" 9978
"21206" 10145
"20207" 10306
"21207" 10456
"20208" 10590
"21201" 10761
"21203" 11090
"20501" 11444
"21208" 11717
"20210" 15025
"21210" 15591
"22207" 17581
"30311" 17950
"30313" 18198
"31311" 18648
"31313" 18847
"20503" 26942
unknown_column INFO 1

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.
"stop_times.txt" "Headsign" 10
unknown_file INFO 3

unknown_file

A file is unknown.

You can see more about this notice here.

filename (?) The name of the unknown file.
"stops_init.txt"
"trips_init.txt"
"version_control.txt"