GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 5.0.1 at 2024-06-08T18:56:34Z,
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 Language:
N/A

Files included


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

Counts


  • Agencies: 0
  • Blocks: 1
  • Routes: 12
  • Shapes: 0
  • Stops: 495
  • Trips: 2699

GTFS Features included (?) GTFS features provide a standardized vocabulary to define and describe features that are officially adopted in GTFS.


Route ColorsWheelchair AccessibilityBikes AllowanceLocation Types

Specification Compliance report

473 notices reported (253 errors, 220 warnings, 0 infos)

Notice Code Severity Total
duplicate_key ERROR 224

duplicate_key

Duplicated entity.

The values of the given key and rows are duplicates.

You can see more about this notice here.

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

filename (?) The name of the faulty file oldCsvRowNumber (?) The row of the first occurrence. newCsvRowNumber (?) The row of the other occurrence. fieldName1 (?) Composite key's first field name. fieldValue1 (?) Composite key's first value.
"stop_times.txt" 37342 37341 "trip_id,stop_sequence" "32869-1203,0"
"stop_times.txt" 37344 37343 "trip_id,stop_sequence" "32869-1203,1"
"stop_times.txt" 37346 37345 "trip_id,stop_sequence" "32869-1203,2"
"stop_times.txt" 37348 37347 "trip_id,stop_sequence" "32869-1203,3"
"stop_times.txt" 37350 37349 "trip_id,stop_sequence" "32869-1203,5"
"stop_times.txt" 37353 37352 "trip_id,stop_sequence" "32869-1203,6"
"stop_times.txt" 37355 37354 "trip_id,stop_sequence" "32869-1203,7"
"stop_times.txt" 37357 37356 "trip_id,stop_sequence" "32869-1203,8"
"stop_times.txt" 37359 37358 "trip_id,stop_sequence" "32869-1203,9"
"stop_times.txt" 37361 37360 "trip_id,stop_sequence" "32869-1203,10"
"stop_times.txt" 37363 37362 "trip_id,stop_sequence" "32869-1203,11"
"stop_times.txt" 37365 37364 "trip_id,stop_sequence" "32869-1203,12"
"stop_times.txt" 37367 37366 "trip_id,stop_sequence" "32869-1203,13"
"stop_times.txt" 37369 37368 "trip_id,stop_sequence" "32869-1203,14"
"stop_times.txt" 37371 37370 "trip_id,stop_sequence" "32869-1203,15"
"stop_times.txt" 37373 37372 "trip_id,stop_sequence" "32869-1203,16"
"stop_times.txt" 37375 37374 "trip_id,stop_sequence" "32869-1203,17"
"stop_times.txt" 37377 37376 "trip_id,stop_sequence" "32869-1203,18"
"stop_times.txt" 37379 37378 "trip_id,stop_sequence" "32869-1203,19"
"stop_times.txt" 37381 37380 "trip_id,stop_sequence" "32869-1203,20"
"stop_times.txt" 37383 37382 "trip_id,stop_sequence" "32869-1203,21"
"stop_times.txt" 37386 37385 "trip_id,stop_sequence" "32869-1203,23"
"stop_times.txt" 37388 37387 "trip_id,stop_sequence" "32869-1203,24"
"stop_times.txt" 37390 37389 "trip_id,stop_sequence" "32869-1203,25"
"stop_times.txt" 37392 37391 "trip_id,stop_sequence" "32869-1203,26"
"stop_times.txt" 37394 37393 "trip_id,stop_sequence" "32869-1203,27"
"stop_times.txt" 37396 37395 "trip_id,stop_sequence" "32869-1203,28"
"stop_times.txt" 37398 37397 "trip_id,stop_sequence" "32869-1203,29"
"stop_times.txt" 37400 37399 "trip_id,stop_sequence" "32869-1203,30"
"stop_times.txt" 37402 37401 "trip_id,stop_sequence" "32869-1203,31"
"stop_times.txt" 37404 37403 "trip_id,stop_sequence" "32869-1203,32"
"stop_times.txt" 37406 37405 "trip_id,stop_sequence" "32869-1206,0"
"stop_times.txt" 37408 37407 "trip_id,stop_sequence" "32869-1206,1"
"stop_times.txt" 37410 37409 "trip_id,stop_sequence" "32869-1206,2"
"stop_times.txt" 37412 37411 "trip_id,stop_sequence" "32869-1206,3"
"stop_times.txt" 37414 37413 "trip_id,stop_sequence" "32869-1206,5"
"stop_times.txt" 37417 37416 "trip_id,stop_sequence" "32869-1206,6"
"stop_times.txt" 37419 37418 "trip_id,stop_sequence" "32869-1206,7"
"stop_times.txt" 37421 37420 "trip_id,stop_sequence" "32869-1206,8"
"stop_times.txt" 37423 37422 "trip_id,stop_sequence" "32869-1206,9"
"stop_times.txt" 37425 37424 "trip_id,stop_sequence" "32869-1206,10"
"stop_times.txt" 37427 37426 "trip_id,stop_sequence" "32869-1206,11"
"stop_times.txt" 37429 37428 "trip_id,stop_sequence" "32869-1206,12"
"stop_times.txt" 37431 37430 "trip_id,stop_sequence" "32869-1206,13"
"stop_times.txt" 37433 37432 "trip_id,stop_sequence" "32869-1206,14"
"stop_times.txt" 37435 37434 "trip_id,stop_sequence" "32869-1206,15"
"stop_times.txt" 37437 37436 "trip_id,stop_sequence" "32869-1206,16"
"stop_times.txt" 37439 37438 "trip_id,stop_sequence" "32869-1206,17"
"stop_times.txt" 37441 37440 "trip_id,stop_sequence" "32869-1206,18"
"stop_times.txt" 37443 37442 "trip_id,stop_sequence" "32869-1206,19"
missing_required_field ERROR 1

missing_required_field

A required field is missing.

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

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_url"
point_near_origin ERROR 2

point_near_origin

A point is too close to origin (0, 0).

You can see more about this notice here.

filename (?) The name of the affected GTFS file. csvRowNumber (?) The row of the faulty row. entityId (?) The id of the faulty entity. latFieldName (?) The name of the field that uses latitude value. latFieldValue (?) The latitude of the faulty row. lonFieldName (?) The name of the field that uses longitude value. lonFieldValue (?) The longitude of the faulty row
"stops.txt" 442 "455" "stop_lat" 0.0 "stop_lon" 0.0
"stops.txt" 444 "459" "stop_lat" 0.0 "stop_lon" 0.0
start_and_end_range_out_of_order ERROR 20

start_and_end_range_out_of_order

Two date or time fields are out of order.

Date or time fields have been found out of order in calendar.txt, feed_info.txt and stop_times.txt.

You can see more about this notice here.

filename (?) The name of the faulty file. csvRowNumber (?) The row number of the faulty record. entityId (?) The faulty service id. startFieldName (?) The start value's field name. startValue (?) The start value. endFieldName (?) The end value's field name. endValue (?) The end value.
"calendar.txt" 3 "1196" "start_date" "20170207" "end_date" "20150207"
"calendar.txt" 4 "1197" "start_date" "20170207" "end_date" "20150411"
"calendar.txt" 5 "1198" "start_date" "20170207" "end_date" "20150704"
"calendar.txt" 6 "1199" "start_date" "20170207" "end_date" "20151017"
"calendar.txt" 7 "1200" "start_date" "20170207" "end_date" "20151219"
"calendar.txt" 8 "1201" "start_date" "20170202" "end_date" "20151231"
"calendar.txt" 11 "1204" "start_date" "20170207" "end_date" "20150831"
"calendar.txt" 14 "1207" "start_date" "20170202" "end_date" "20151231"
"calendar.txt" 15 "1208" "start_date" "20170208" "end_date" "20170204"
"calendar.txt" 17 "1210" "start_date" "20170208" "end_date" "20160504"
"calendar.txt" 28 "1221" "start_date" "20170208" "end_date" "20170102"
"calendar.txt" 37 "1230" "start_date" "20180315" "end_date" "20161231"
"calendar.txt" 38 "1231" "start_date" "20170207" "end_date" "20161223"
"calendar.txt" 40 "1233" "start_date" "20180315" "end_date" "20151231"
"stop_times.txt" 25536 "arrival_time" "16:49:00" "departure_time" "16:48:00"
"stop_times.txt" 25546 "arrival_time" "16:49:00" "departure_time" "16:48:00"
"stop_times.txt" 25556 "arrival_time" "16:49:00" "departure_time" "16:48:00"
"stop_times.txt" 25566 "arrival_time" "16:49:00" "departure_time" "16:48:00"
"stop_times.txt" 25576 "arrival_time" "16:49:00" "departure_time" "16:48:00"
"stop_times.txt" 25586 "arrival_time" "16:49:00" "departure_time" "16:48:00"
stop_time_with_arrival_before_previous_departure_time ERROR 6

stop_time_with_arrival_before_previous_departure_time

Backwards time travel between stops in stop_times.txt

For a given trip_id, the arrival_time of (n+1)-th stoptime in sequence must not precede the departure_time of n-th stoptime in sequence in stop_times.txt.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. prevCsvRowNumber (?) The row of the previous stop time. tripId (?) The trip_id associated to the faulty record. arrivalTime (?) Arrival time at the faulty record. departureTime (?) Departure time at the previous stop time.
25578 25580 "32468-1228" "16:52:00" "16:55:00"
25568 25570 "32468-1227" "16:52:00" "16:55:00"
25588 25590 "32468-1229" "16:52:00" "16:55:00"
25538 25540 "32468-1224" "16:52:00" "16:55:00"
25558 25560 "32468-1226" "16:52:00" "16:55:00"
25548 25550 "32468-1225" "16:52:00" "16:55:00"
expired_calendar WARNING 27

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.
27 "1220"
24 "1217"
23 "1216"
20 "1213"
19 "1212"
18 "1211"
6 "1199"
26 "1219"
25 "1218"
5 "1198"
38 "1231"
4 "1197"
3 "1196"
2 "1195"
13 "1206"
35 "1228"
12 "1205"
34 "1227"
11 "1204"
33 "1226"
10 "1203"
32 "1225"
9 "1202"
31 "1224"
7 "1200"
16 "1209"
36 "1229"
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 150

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.

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

filename (?) Name of the faulty file. fieldName (?) Name of the faulty field. fieldValue (?) Faulty value. csvRowNumber (?) The row number of the faulty record.
"routes.txt" "route_long_name" "LIGNE NAVETTES" 13
"stops.txt" "stop_name" "1ER MAI" 2
"stops.txt" "stop_name" "AIGUEFONDE LA TIGNARIE" 6
"stops.txt" "stop_name" "AIGUEFONDE LA TIGNARIE" 7
"stops.txt" "stop_name" "ALBA LA SOURCE" 10
"stops.txt" "stop_name" "ALBA LA SOURCE" 11
"stops.txt" "stop_name" "ALBERT 1ER" 12
"stops.txt" "stop_name" "ALSACE LORRAINE" 13
"stops.txt" "stop_name" "AUSSILLON LANGUEDOC" 24
"stops.txt" "stop_name" "BORDE BASSE" 58
"stops.txt" "stop_name" "CASTRES GAMBETTA" 82
"stops.txt" "stop_name" "CASTRES GUYNEMER" 83
"stops.txt" "stop_name" "CASTRES GUYNEMER" 84
"stops.txt" "stop_name" "CASTRES LANGUEDOC" 85
"stops.txt" "stop_name" "CASTRES LANGUEDOC" 86
"stops.txt" "stop_name" "CHAMP DE LA VILLE" 93
"stops.txt" "stop_name" "CHEMIN DU CAUSSE" 101
"stops.txt" "stop_name" "CHEMIN DU CAUSSE" 102
"stops.txt" "stop_name" "COLLEGE JEAN-JAURES" 107
"stops.txt" "stop_name" "COLLEGE JEAN-JAURES" 108
"stops.txt" "stop_name" "DE COUX" 124
"stops.txt" "stop_name" "DE COUX" 125
"stops.txt" "stop_name" "DE GAULLE" 126
"stops.txt" "stop_name" "DE GAULLE" 127
"stops.txt" "stop_name" "DE LATTRE" 128
"stops.txt" "stop_name" "DE LATTRE" 129
"stops.txt" "stop_name" "ECOLES BISSEOUS" 136
"stops.txt" "stop_name" "ECOLES DE ROULANDOU" 137
"stops.txt" "stop_name" "ECOLES DE ROULANDOU" 138
"stops.txt" "stop_name" "GERARD PHILIPE" 170
"stops.txt" "stop_name" "JEANNE D'ARC" 186
"stops.txt" "stop_name" "LA CHEVALIERE" 193
"stops.txt" "stop_name" "LA FARGUE" 194
"stops.txt" "stop_name" "LA FINARIE" 195
"stops.txt" "stop_name" "LA FREGERE" 196
"stops.txt" "stop_name" "LA FREGERE" 197
"stops.txt" "stop_name" "LA LAUZE" 198
"stops.txt" "stop_name" "LA MAYLARIE" 199
"stops.txt" "stop_name" "LA MOLIERE" 200
"stops.txt" "stop_name" "LA NAURE" 201
"stops.txt" "stop_name" "LA NAURE" 202
"stops.txt" "stop_name" "LA POSTE" 203
"stops.txt" "stop_name" "LA POSTE" 204
"stops.txt" "stop_name" "LA PRADE" 205
"stops.txt" "stop_name" "LA PRADE" 206
"stops.txt" "stop_name" "LA RESSE" 207
"stops.txt" "stop_name" "LA RICHARDE" 208
"stops.txt" "stop_name" "LA ROUGEARIE" 209
"stops.txt" "stop_name" "LA ROUGEARIE" 210
"stops.txt" "stop_name" "LA SERP" 211
stop_without_stop_time WARNING 41

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.
6 "5" "AIGUEFONDE LA TIGNARIE"
7 "6" "AIGUEFONDE LA TIGNARIE"
10 "9" "ALBA LA SOURCE"
11 "10" "ALBA LA SOURCE"
16 "15" "APOLLO"
37 "36" "BEAUPUIS"
38 "37" "BEAUPUIS"
53 "52" "BLEUETS"
69 "69" "BRIGUIBOUL"
70 "70" "BRIGUIBOUL"
82 "82" "CASTRES GAMBETTA"
96 "98" "CHAPTAL"
108 "110" "COLLEGE JEAN-JAURES"
133 "135" "DURENQUE"
134 "136" "DURENQUE"
161 "163" "MAZAMET GARE Dep"
162 "164" "MAZAMET GARE Dep"
163 "165" "MAZAMET GARE Arr"
164 "166" "MAZAMET GARE Arr"
191 "193" "KERVENOAEL"
235 "238" "LE NOTRE"
238 "242" "LE SIALA arr"
241 "246" "LE VACANT"
243 "248" "LE VAL"
268 "273" "MAISON DES ASSOCIATIONS"
279 "286" "MAZAMET AUTAN"
284 "291" "MAZAMET MONTAUD"
310 "317" "MOUTONNET"
311 "318" "MOUTONNET"
313 "320" "NAYRAL"
337 "344" "PIOCH DE GAIX"
348 "356" "POUDRERIE"
349 "357" "POUDRERIE"
422 "435" "VERDUN"
441 "454" "CLEMENCEAU"
442 "455" "ENTREE ZONE DEMANDE"
444 "459" "SORTIE ZONE DEMANDE"
469 "489" "Arret Fred"
487 "511" "Arrêt ultime"
488 "512" "Arrêt 3"
489 "513" "Arrêt 4"
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.
"20240608" "20180315" "20191231"