gtfs-ota — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-06-05T15:14:44Z,
for the dataset file:///shared/gtfs-ota_36a0b3aa.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:
Otago Regional Council
Feed Email:
N/A
Feed Language:
English
Feed Start Date:
2026-04-20
Feed End Date:
2027-12-31

Files included


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

Counts


  • Agencies: 2
  • Blocks: 2577
  • Routes: 80
  • Shapes: 80
  • Stops: 908
  • Trips: 2577

Specification Compliance report

669 notices reported (0 errors, 666 warnings, 3 infos)

Notice Code Severity Total
duplicate_route_name WARNING 3

duplicate_route_name

Two distinct routes have either the same route_short_name, the same route_long_name, or the same combination of route_short_name and route_long_name.

All routes of the same route_type with the same agency_id should have unique combinations of route_short_name and route_long_name.

Note that there may be valid cases where routes have the same short and long name, e.g., if they serve different areas. However, different directions must be modeled as the same route.

Example of bad data:

route_id route_short_name route_long_name
route1 U1 Southern
route2 U1 Southern

You can see more about this notice here.

csvRowNumber1 (?) The row number of the first occurrence. routeId1 (?) The id of the the first occurrence. csvRowNumber2 (?) The row number of the other occurrence. routeId2 (?) The id of the the other occurrence. routeShortName (?) Common `routes.route_short_name`. routeLongName (?) Common `routes.route_long_name`. routeTypeValue (?) Common `routes.route_type`. agencyId (?) Common `routes.agency_id`.
18 "OTA00-19A" 20 "OTA00-19C" "19" "Waverley to Belleknowes" 3 "ORC"
19 "OTA00-19B" 21 "OTA00-19D" "19" "Belleknowes to Waverley" 3 "ORC"
67 "OTA01-1B" 68 "OTA01-1D" "1" "Remarkables Shops to Sunshine Bay" 3 "QTN"
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 32

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.
"D_44_A" 14060 7874.0 202 14059 7874.0 201 0.5613428981351822
"D_44_B" 14219 1194.0 61 14218 1194.0 60 0.4514723820913795
"D_44_B" 14381 8654.0 223 14380 8654.0 222 0.333585304144125
"D_18_F" 10306 34265.0 952 10305 34265.0 951 0.4468863044204381
"D_39_B" 13472 8001.0 153 13471 8001.0 152 0.07737936247073215
"D_14_B" 4541 12977.0 280 4540 12977.0 279 0.40277824103348897
"D_14_B" 4650 15043.0 389 4649 15043.0 388 0.9103627381379215
"D_18_D" 8666 32276.0 918 8665 32276.0 917 0.4468709269035788
"D_37_A" 12517 3616.0 55 12516 3616.0 54 0.34245112705913594
"D_18_B" 6173 1189.0 69 6172 1189.0 68 0.7741273531553015
"D_39_A" 13218 2452.0 162 13217 2452.0 161 0.3095200123649166
"D_55_A" 16369 1009.0 7 16368 1009.0 6 0.23546816591446612
"D_78_B" 20053 6327.0 255 20052 6327.0 254 0.7822024900103829
"D_70_C" 18668 20202.0 368 18667 20202.0 367 0.4463749164391364
"D_70_D" 18699 1004.0 25 18698 1004.0 24 0.4463246488341752
"D_70_A" 17740 10783.0 246 17739 10783.0 245 0.7737958527013838
"D_70_B" 18026 1006.0 50 18025 1006.0 49 0.13547267683728648
"D_70_B" 18271 14987.0 295 18270 14987.0 294 0.23544611019977268
"D_5_E" 15707 6021.0 144 15706 6021.0 143 0.23548048615264455
"D_1_C" 2327 20145.0 348 2326 20145.0 347 0.5559755059637761
"D_1_D" 2609 7898.0 193 2608 7898.0 192 0.40358933103006633
"D_5_C" 14971 2039.0 89 14970 2039.0 88 0.19057651840808668
"D_5_D" 15522 9676.0 280 15521 9676.0 279 0.5771171507917522
"D_5_B" 14711 1019.0 50 14710 1019.0 49 0.40653639397986946
"D_15_B" 5332 1211.0 39 5331 1211.0 38 0.4065029967312203
"D_15_A" 5171 8024.0 99 5170 8024.0 98 0.22239020252697528
"D_19_B" 10806 11303.0 224 10805 11303.0 223 0.19060816520300472
"D_33_A" 11989 1089.0 61 11988 1089.0 60 0.6577485488813405
"D_33_B" 12192 1041.0 48 12191 1041.0 47 0.2323382413354459
"D_50_B" 15997 1004.0 53 15996 1004.0 52 0.45524274743738924
"D_50_B" 16157 11999.0 213 16156 11999.0 212 0.4063889355322132
"D_50_C" 16218 1085.0 54 16217 1085.0 53 0.5771053797374261
equal_shape_distance_same_coordinates WARNING 4

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`.
"D_95_A" 20418 935.0 24 20417 935.0 23
"Q_4_A" 23713 12049.0 88 23712 12049.0 87
"Q_4_C" 24207 15099.0 125 24206 15099.0 124
"D_77_A" 19318 19007.0 240 19317 19007.0 239
missing_bike_allowance WARNING 28

missing_bike_allowance

Ferry trips should include bike allowance information.

All ferry trips should have a valid value in the bikes_allowed field in trips.txt.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. routeId (?) The faulty record's route id. tripId (?) The faulty record's trip id.
336 "OTA01-6A" "806084500"
338 "OTA01-6A" "806094500"
340 "OTA01-6A" "806104500"
342 "OTA01-6A" "806114500"
344 "OTA01-6A" "806124500"
346 "OTA01-6A" "806134500"
348 "OTA01-6A" "806144500"
350 "OTA01-6A" "806154500"
352 "OTA01-6A" "806164500"
354 "OTA01-6A" "806174500"
356 "OTA01-6A" "806184500"
358 "OTA01-6A" "806194500"
360 "OTA01-6A" "806204500"
362 "OTA01-6A" "806214500"
335 "OTA01-6B" "806081500"
337 "OTA01-6B" "806091500"
339 "OTA01-6B" "806101500"
341 "OTA01-6B" "806111500"
343 "OTA01-6B" "806121500"
345 "OTA01-6B" "806131500"
347 "OTA01-6B" "806141500"
349 "OTA01-6B" "806151500"
351 "OTA01-6B" "806161500"
353 "OTA01-6B" "806171500"
355 "OTA01-6B" "806181500"
357 "OTA01-6B" "806191500"
359 "OTA01-6B" "806201500"
361 "OTA01-6B" "806211500"
missing_feed_contact_email_and_url WARNING 1

missing_feed_contact_email_and_url

Best Practices for feed_info.txt suggest providing at least one of feed_contact_email and feed_contact_url.

You can see more about this notice here.

csvRowNumber (?) The row number of the validated record.
2
mixed_case_recommended_field WARNING 2

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" "SH88, opposite 253" 555
"stops.txt" "stop_name" "SH88, opposite 309" 556
stop_too_far_from_shape WARNING 1

stop_too_far_from_shape

Stop too far from trip shape.

Per GTFS Best Practices, route alignments (in shapes.txt) should be within 100 meters of stop locations which a trip serves. This potentially indicates a problem with the location of the stop or the path of the shape.

You can see more about this notice here.

tripCsvRowNumber (?) The row number of the faulty record from `trips.txt`. shapeId (?) The id of the shape that is referred to. tripId (?) The id of the trip that is referred to. stopTimeCsvRowNumber (?) The row number of the faulty record from `stop_times.txt`. stopId (?) The id of the stop that is referred to. stopName (?) The name of the stop that is referred to. match (?) Latitude and longitude pair of the location. geoDistanceToShape (?) Distance from stop to shape.
2490 "D_77_B" "977106448" 82989 "59000624" "Burns St, 47" [-45.89610622803104,170.4914229545649] 238.18409771973603
stop_too_far_from_shape_using_user_distance WARNING 594

stop_too_far_from_shape_using_user_distance

Stop time too far from shape.

A stop time entry that is a large distance away from the location of the shape in shapes.txt as defined by shape_dist_traveled values.

You can see more about this notice here.

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

tripCsvRowNumber (?) The row number of the faulty record from `trips.txt`. shapeId (?) The id of the shape that is referred to. tripId (?) The id of the trip that is referred to. stopTimeCsvRowNumber (?) The row number of the faulty record from `stop_times.txt`. stopId (?) The id of the stop that is referred to. stopName (?) The name of the stop that is referred to. match (?) Latitude and longitude pair of the location. geoDistanceToShape (?) Distance from stop to shape.
1701 "D_44_B" "944106258" 57725 "59005020" "York Place, 31" [-45.87123272889018,170.50335690383915] 100.8407749322353
1701 "D_44_B" "944106258" 57730 "59000779" "Princes St, 575" [-45.88377312503827,170.4982850002567] 100.09197742329499
1701 "D_44_B" "944106258" 57731 "59000776" "Princes St, The Oval" [-45.885781136551095,170.49715341045425] 102.64468219336263
1701 "D_44_B" "944106258" 57732 "59000772" "Princes St, Jean McLean Pavillion" [-45.88960500001091,170.4958500001125] 117.7665019064677
1701 "D_44_B" "944106258" 57733 "59000474" "King Edward St, 20" [-45.89169250003508,170.49699249985517] 118.13212736902868
1701 "D_44_B" "944106258" 57734 "59000484" "King Edward St, 134" [-45.89447800019379,170.4993519990607] 121.71318248521314
1701 "D_44_B" "944106258" 57735 "59000475" "King Edward St, 250" [-45.896646791462494,170.50119007641172] 122.78944152413234
1701 "D_44_B" "944106258" 57736 "59000477" "King Edward St, 300" [-45.89780041735701,170.50216823299468] 133.73533848885057
1701 "D_44_B" "944106258" 57737 "59000478" "King Edward St, 340" [-45.898543688680356,170.5027984762151] 130.59535505557272
1701 "D_44_B" "944106258" 57738 "59000480" "King Edward St, 386" [-45.89954686192562,170.50348304052548] 116.83207054453595
1701 "D_44_B" "944106258" 57739 "59000071" "Bay View Rd, 71" [-45.900318588623485,170.50165994187418] 126.86994416258355
1701 "D_44_B" "944106258" 57740 "59000072" "Bay View Rd, 87" [-45.901023466483295,170.4999620620191] 124.97498174823731
1701 "D_44_B" "944106258" 57741 "59000066" "Bay View Rd, 111" [-45.90197774875235,170.49764791935078] 126.68967239066527
1701 "D_44_B" "944106258" 57742 "59005015" "Moreau St, cnr Bellona St" [-45.90483865724957,170.4994361511031] 128.33047381149632
1701 "D_44_B" "944106258" 57743 "59005017" "Moreau St, cnr Douglas St" [-45.907291649010034,170.5014954859919] 123.91922512713195
1641 "D_40_B" "940115151" 55441 "59000450" "Hillside Rd, 557" [-45.89830379942771,170.4902239851723] 255.4985264133258
1641 "D_40_B" "940115151" 55442 "59000245" "Easther Cres, 7" [-45.89766592625328,170.48763777834102] 322.04498750666534
1641 "D_40_B" "940115151" 55443 "59000244" "Easther Cres, 33" [-45.898485454678465,170.48564484870167] 286.2895169456679
1641 "D_40_B" "940115151" 55444 "59000572" "Middleton Rd, 11" [-45.9001,170.48322] 282.52652285010106
1641 "D_40_B" "940115151" 55445 "59000575" "Middleton Rd, 47" [-45.901368470866835,170.48405199929715] 288.9464028072603
1641 "D_40_B" "940115151" 55446 "59000583" "Middleton Rd, 61" [-45.90247189760875,170.48419597472363] 324.5624980502536
1641 "D_40_B" "940115151" 55447 "59000571" "Middleton Rd, 101" [-45.90435420004556,170.48248692521267] 337.82288058425047
1641 "D_40_B" "940115151" 55448 "59000573" "Middleton Rd, 141" [-45.90575073117178,170.4798521003255] 318.65890562475914
1641 "D_40_B" "940115151" 55449 "59000574" "Middleton Rd, 175" [-45.9067268000292,170.47769220009891] 335.90256957366415
1641 "D_40_B" "940115151" 55450 "59000570" "Middleton Rd, 235" [-45.908640319317094,170.4746301322426] 317.29286363551097
1641 "D_40_B" "940115151" 55451 "59000585" "Middleton Rd, 285" [-45.909622000026324,170.46940071431965] 339.1542399571603
1641 "D_40_B" "940115151" 55452 "59000577" "Middleton Rd, 240" [-45.910137231008974,170.46594530781124] 336.12558434799956
1641 "D_40_B" "940115151" 55453 "59000196" "Corstorphine Rd, 136" [-45.90870081524665,170.47015949549268] 279.6433117514019
1641 "D_40_B" "940115151" 55454 "59001127" "Riselaw Rd, 148" [-45.906384969925064,170.4706033109272] 281.2302985742803
1641 "D_40_B" "940115151" 55455 "59001125" "Riselaw Rd, 84" [-45.903248564407676,170.47054217024103] 316.7781190258464
1641 "D_40_B" "940115151" 55456 "59000808" "Riselaw Rd, 30" [-45.900323432900755,170.46926027214548] 314.56733192660437
1641 "D_40_B" "940115151" 55457 "59000530" "Main South Rd, 142" [-45.90154266668486,170.44389533332543] 304.2423597579708
1641 "D_40_B" "940115151" 55458 "59000523" "Main South Rd, 158" [-45.90196658672659,170.44160278253653] 321.829319719212
1641 "D_40_B" "940115151" 55459 "59000526" "Main South Rd, 168" [-45.90176884368722,170.43991768350858] 325.38928532025045
1641 "D_40_B" "940115151" 55460 "59000522" "Main South Rd, 188" [-45.90195330826051,170.43755777026553] 323.90444264429414
1641 "D_40_B" "940115151" 55461 "59000537" "Main South Rd, 208" [-45.90207625030527,170.4337199997951] 309.76424574483985
1641 "D_40_B" "940115151" 55462 "59000533" "Green Island Super Stop (Outbound)" [-45.90172288046603,170.43031056755373] 327.92097453476333
2220 "D_63_B" "963106358" 74120 "59005043" "Union St (W)" [-45.8693802710288,170.5275770290071] 754.3913492867159
2220 "D_63_B" "963106358" 74121 "59000011" "Albany St, Clubs & Societies" [-45.86730333353911,170.52045142833845] 593.5015511172371
2220 "D_63_B" "963106358" 74122 "59001195" "Hospital South" [-45.86726400000844,170.51244799999048] 427.46540639773406
2220 "D_63_B" "963106358" 74123 "59005005" "Bus Hub Stop F" [-45.8685991666667,170.51153083333182] 576.5956675889174
2220 "D_63_B" "963106358" 74124 "59000769" "Princes St, 151" [-45.87167376011401,170.50665172531208] 659.0439492580505
2220 "D_63_B" "963106358" 74125 "59000793" "Rattray St, 145" [-45.87301423611841,170.5058967738981] 612.2295443213355
2220 "D_63_B" "963106358" 74126 "59000388" "High St, 249" [-45.87563736000975,170.50274525007072] 602.6537484501471
2220 "D_63_B" "963106358" 74127 "59000390" "High St, 327" [-45.87731845016265,170.50182975961974] 633.0672275057815
2220 "D_63_B" "963106358" 74128 "59000392" "High St, 403" [-45.8784389100167,170.49973245925082] 752.190360157915
2220 "D_63_B" "963106358" 74129 "59000385" "High St, opposite High St School" [-45.879228899373615,170.49712452400473] 739.6357392062039
2220 "D_63_B" "963106358" 74130 "59000251" "Eglinton Rd, cnr High St" [-45.87994702003467,170.49475360943077] 749.1273981598068
2220 "D_63_B" "963106358" 74131 "59000248" "Eglinton Rd, 154" [-45.88038229891805,170.49333369575834] 723.7124787111397
2220 "D_63_B" "963106358" 74132 "59000513" "Mornington Terminus, Mailer St" [-45.88096500001089,170.4914400000135] 678.2946949053934
unused_shape WARNING 1

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.
"D_14_C" 4657
unknown_column INFO 3

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.
"trips.txt" "rits_id" 8
"routes.txt" "rits_id" 8
"stop_times.txt" "rits_id" 10