GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 5.0.1 at 2024-06-07T15:39:54Z,
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:
Haguenau
Publisher URL:
https://www.ritmo.fr/
Feed Language:
French
Feed Start Date:
2021-09-01
Feed End Date:
2021-12-31

Files included


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

Counts


  • Agencies: 1
  • Blocks: 1
  • Routes: 17
  • Shapes: 0
  • Stops: 434
  • Trips: 505

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


Feed InformationRoute ColorsHeadsignsWheelchair AccessibilityLocation Types

Specification Compliance report

12628 notices reported (242 errors, 12386 warnings, 0 infos)

Notice Code Severity Total
decreasing_or_equal_stop_time_distance ERROR 211

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 211 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`.
"8909" "HAGMONT2" 10771 936.0 4 10770 936.0 3
"8907" "HAGMONT2" 10721 936.0 4 10720 936.0 3
"8908" "HAGMONT2" 10746 936.0 4 10745 936.0 3
"8920" "HAGMONT2" 11046 936.0 4 11045 936.0 3
"7710" "HAGSNCF2" 8292 7729.0 22 8291 7729.0 21
"7709" "SWEMAIR2" 8263 9551.0 29 8262 9551.0 28
"7708" "SWEMAIR2" 8227 9551.0 29 8226 9551.0 28
"8918" "HAGMONT2" 10996 936.0 4 10995 936.0 3
"8919" "HAGMONT2" 11021 936.0 4 11020 936.0 3
"7701" "HAGSNCF2" 7978 7729.0 22 7977 7729.0 21
"8912" "HAGMONT2" 10846 936.0 4 10845 936.0 3
"7700" "HAGSNCF2" 7944 7729.0 22 7943 7729.0 21
"8913" "HAGMONT2" 10871 936.0 4 10870 936.0 3
"7703" "HAGSNCF2" 8046 7729.0 22 8045 7729.0 21
"8910" "HAGMONT2" 10796 936.0 4 10795 936.0 3
"7702" "HAGSNCF2" 8012 7729.0 22 8011 7729.0 21
"8911" "HAGMONT2" 10821 936.0 4 10820 936.0 3
"7705" "HAGSNCF2" 8114 7729.0 22 8113 7729.0 21
"8916" "HAGMONT2" 10946 936.0 4 10945 936.0 3
"7704" "HAGSNCF2" 8080 7729.0 22 8079 7729.0 21
"8917" "HAGMONT2" 10971 936.0 4 10970 936.0 3
"7707" "SWEMAIR2" 8191 9551.0 29 8190 9551.0 28
"8914" "HAGMONT2" 10896 936.0 4 10895 936.0 3
"7706" "SWEMAIR2" 8155 9551.0 29 8154 9551.0 28
"8915" "HAGMONT2" 10921 936.0 4 10920 936.0 3
"7721" "HAGSNCF2" 8672 7729.0 22 8671 7729.0 21
"7720" "HAGSNCF2" 8638 7729.0 22 8637 7729.0 21
"7719" "HAGSNCF2" 8604 7729.0 22 8603 7729.0 21
"7712" "HAGSNCF2" 8360 7729.0 22 8359 7729.0 21
"7711" "HAGSNCF2" 8326 7729.0 22 8325 7729.0 21
"7714" "SWEMAIR2" 8435 9551.0 29 8434 9551.0 28
"7713" "HAGSNCF2" 8394 7729.0 22 8393 7729.0 21
"7716" "SWEMAIR2" 8507 9551.0 29 8506 9551.0 28
"7715" "SWEMAIR2" 8471 9551.0 29 8470 9551.0 28
"7718" "HAGSNCF2" 8570 7729.0 22 8569 7729.0 21
"7717" "HAGSNCF2" 8536 7729.0 22 8535 7729.0 21
"7730" "SWEMAIR2" 8991 9551.0 29 8990 9551.0 28
"7732" "SWEMAIR2" 9063 9551.0 29 9062 9551.0 28
"7731" "SWEMAIR2" 9027 9551.0 29 9026 9551.0 28
"7723" "HAGSNCF2" 8740 7729.0 22 8739 7729.0 21
"7722" "HAGSNCF2" 8706 7729.0 22 8705 7729.0 21
"7725" "HAGSNCF2" 8808 7729.0 22 8807 7729.0 21
"7724" "HAGSNCF2" 8774 7729.0 22 8773 7729.0 21
"7727" "SWEMAIR2" 8883 9551.0 29 8882 9551.0 28
"7726" "HAGSNCF2" 8842 7729.0 22 8841 7729.0 21
"7729" "SWEMAIR2" 8955 9551.0 29 8954 9551.0 28
"7728" "SWEMAIR2" 8919 9551.0 29 8918 9551.0 28
"7741" "SWEMAIR2" 9387 9551.0 29 9386 9551.0 28
"7740" "SWEMAIR2" 9351 9551.0 29 9350 9551.0 28
"7743" "SWEMAIR2" 9459 9551.0 29 9458 9551.0 28
duplicate_key ERROR 2

duplicate_key

Duplicated entity.

The values of the given key and rows are duplicates.

You can see more about this notice here.

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.
"routes.txt" 6 5 "route_id" "LIGNE2"
"routes.txt" 8 7 "route_id" "LIGNE3"
stop_without_location ERROR 29

stop_without_location

stop_lat and/or stop_lon is missing for stop with location_type equal to0, 1, or 2

stop_lat and/or stop_lon are required for locations that are stops (location_type=0), stations (location_type=1) or entrances/exits (location_type=2).

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. locationType (?) The faulty record's `stops.location_type`. stopId (?) The faulty record's id.
2 "STATION" "BEMGIRA"
6 "STOP" "BERCOMM2"
10 "STATION" "BERNCENT"
14 "STATION" "BRUGARE"
15 "STOP" "BRUGARE1"
22 "STATION" "BRUINDU"
25 "STATION" "BRULOIS"
31 "STATION" "BRUSCIE"
34 "STATION" "BRUSOCR"
41 "STATION" "GRARD419"
122 "STATION" "HAGFRIC"
123 "STOP" "HAGFRIC1"
124 "STOP" "HAGFRIC2"
311 "STATION" "HOCVILL"
312 "STATION" "HUTBRUM"
334 "STATION" "MOREGLI"
337 "STATION" "MORMON"
340 "STATION" "NIECLEO"
348 "STATION" "NIEPONT"
350 "STATION" "PFAGARE"
354 "STATION" "PFAMAIRI"
357 "STATION" "RINCENTR"
423 "STATION" "UBECENT"
425 "STATION" "UBECITE"
428 "STOP" "WAHGAUL2"
431 "STATION" "WALBITSC"
432 "STATION" "WALECOL"
433 "STOP" "WALECOL1"
434 "STATION" "WALMONU"
duplicate_route_name WARNING 2

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`.
5 "LIGNE2" 6 "LIGNE2" "LIGNE2" "Les Pins-Caires > Taubenhof" 3 "01"
7 "LIGNE3" 8 "LIGNE3" "LIGNE3" "Che Parcage > Gare de Marientha" 3 "01"
expired_calendar WARNING 15

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.
10 "PS 2020 - 2021 PRODUCTION SCOLAI_002_LMWJVS"
8 "PS 2020 - 2021 PRODUCTION SCOLAI_002_S"
6 "PS 2020 - 2021 PRODUCTION SCOLAI_002_LMWJV"
14 "Ligne 12/13 septembre PVS_002_LMWJV"
7 "Ligne 12/13 2021 septembre_001_LMWJV"
2 "PS 2020 - 2021 PRODUCTION SCOLAI_002_W"
16 "PVAC 2020 - 2021 PRODUCTION VAC_002_LMWJVS"
4 "PS 2020 - 2021 PRODUCTION SCOLAI_002_V"
11 "PVAC 2020 - 2021 PRODUCTION VAC_002_LMWJ"
9 "PS 2020 - 2021 PRODUCTION SCOLAI_002_WS"
15 "PVAC 2020 - 2021 PRODUCTION VAC_002_S"
3 "PS 2020 - 2021 PRODUCTION SCOLAI_002_LMWJ"
12 "PVAC 2020 - 2021 PRODUCTION VAC_002_V"
13 "PVAC 2020 - 2021 PRODUCTION VAC_002_LMWJV"
5 "PS 2020 - 2021 PRODUCTION SCOLAI_002_LMJV"
fast_travel_between_consecutive_stops WARNING 160

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.

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

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.
437 "9216" "LIG12" 82044.49814186753 5469.633209457836 11247 16 "BRUSOCR1" "Rue Socrate" "08:07:00" 11248 17 "BRUGARE1" "Gare de Brumath" "08:10:00"
451 "9230" "LIG12" 82044.49814186753 5469.633209457836 11496 16 "BRUSOCR1" "Rue Socrate" "08:07:00" 11497 17 "BRUGARE1" "Gare de Brumath" "08:10:00"
460 "9314" "LIGN10" 164322.8893693854 5477.429645646181 11615 8 "HAGCITE1" "Cité Scolaire" "07:35:00" 11616 9 "HAGFRIC1" "Chemin des Friches" "07:36:00"
460 "9314" "LIGN10" 54789.31925459015 5478.931925459015 11616 9 "HAGFRIC1" "Chemin des Friches" "07:36:00" 11617 10 "HAGNEUF1" "Haguenau Gare Moulin Neuf" "07:41:00"
395 "8758" "LIGNEF" 469.99690379906525 15.666563459968842 10312 2 "HAGREAL1" "Real Schloessel" "13:12:00" 10313 3 "HAGWALD1" "Waldteufel" "13:13:00"
395 "8758" "LIGNEF" 447.0465694279719 14.90155231426573 10313 3 "HAGWALD1" "Waldteufel" "13:13:00" 10314 4 "HAGKOBI1" "Kobian" "13:14:00"
428 "9207" "LIG12" 109622.10790396143 5481.105395198071 11072 5 "UBECITE2" "Uberach Cité" "06:36:00" 11073 6 "WALECOL1" "La Walck Ecoles" "06:38:00"
442 "9221" "LIG12" 109622.10790396143 5481.105395198071 11321 5 "UBECITE2" "Uberach Cité" "06:36:00" 11322 6 "WALECOL1" "La Walck Ecoles" "06:38:00"
428 "9207" "LIG12" 109616.64088495384 5480.832044247692 11073 6 "WALECOL1" "La Walck Ecoles" "06:38:00" 11074 7 "WALBITS2" "La Walck Rue de Bitschhoffen" "06:40:00"
442 "9221" "LIG12" 109616.64088495384 5480.832044247692 11322 6 "WALECOL1" "La Walck Ecoles" "06:38:00" 11323 7 "WALBITS2" "La Walck Rue de Bitschhoffen" "06:40:00"
432 "9211" "LIG12" 82044.62339898935 5469.641559932623 11149 1 "BRUGARE1" "Gare de Brumath" "18:03:00" 11150 2 "BRUSOCR2" "Rue Socrate" "18:06:00"
446 "9225" "LIG12" 82044.62339898935 5469.641559932623 11398 1 "BRUGARE1" "Gare de Brumath" "18:03:00" 11399 2 "BRUSOCR2" "Rue Socrate" "18:06:00"
432 "9211" "LIG12" 109622.10790396143 5481.105395198071 11168 20 "UBECITE2" "Uberach Cité" "18:33:00" 11169 21 "WALECOL1" "La Walck Ecoles" "18:35:00"
446 "9225" "LIG12" 109622.10790396143 5481.105395198071 11417 20 "UBECITE2" "Uberach Cité" "18:33:00" 11418 21 "WALECOL1" "La Walck Ecoles" "18:35:00"
432 "9211" "LIG12" 109616.64088495384 5480.832044247692 11169 21 "WALECOL1" "La Walck Ecoles" "18:35:00" 11170 22 "WALBITS2" "La Walck Rue de Bitschhoffen" "18:37:00"
446 "9225" "LIG12" 109616.64088495384 5480.832044247692 11418 21 "WALECOL1" "La Walck Ecoles" "18:35:00" 11419 22 "WALBITS2" "La Walck Rue de Bitschhoffen" "18:37:00"
464 "9319" "LIGN10" 164322.8893693854 5477.429645646181 11659 9 "HAGCITE1" "Cité Scolaire" "13:36:00" 11660 10 "HAGFRIC1" "Chemin des Friches" "13:37:00"
491 "9350" "LIGN10" 164322.8893693854 5477.429645646181 11954 9 "HAGCITE1" "Cité Scolaire" "13:36:00" 11955 10 "HAGFRIC1" "Chemin des Friches" "13:37:00"
464 "9319" "LIGN10" 54789.31925459015 5478.931925459015 11660 10 "HAGFRIC1" "Chemin des Friches" "13:37:00" 11661 11 "HAGNEUF1" "Haguenau Gare Moulin Neuf" "13:42:00"
491 "9350" "LIGN10" 54789.31925459015 5478.931925459015 11955 10 "HAGFRIC1" "Chemin des Friches" "13:37:00" 11956 11 "HAGNEUF1" "Haguenau Gare Moulin Neuf" "13:42:00"
394 "8757" "LIGNEF" 313.33126919937683 15.666563459968842 10299 12 "HAGREAL1" "Real Schloessel" "07:33:00" 10300 13 "HAGWALD1" "Waldteufel" "07:35:00"
394 "8757" "LIGNEF" 447.0465694279719 14.90155231426573 10300 13 "HAGWALD1" "Waldteufel" "07:35:00" 10301 14 "HAGKOBI1" "Kobian" "07:36:00"
484 "9339" "LIGN10" 65746.55153792728 5478.879294827273 11873 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "12:27:00" 11874 2 "HAGFRIC2" "Chemin des Friches" "12:31:00"
484 "9339" "LIGN10" 109548.57174913358 5477.4285874566785 11874 2 "HAGFRIC2" "Chemin des Friches" "12:31:00" 11875 3 "HAGCITE2" "Cité Scolaire" "12:33:00"
486 "9341" "LIGN10" 164322.8893693854 5477.429645646181 11898 4 "HAGCITE1" "Cité Scolaire" "07:35:00" 11899 5 "HAGFRIC1" "Chemin des Friches" "07:36:00"
486 "9341" "LIGN10" 54789.31925459015 5478.931925459015 11899 5 "HAGFRIC1" "Chemin des Friches" "07:36:00" 11900 6 "HAGNEUF1" "Haguenau Gare Moulin Neuf" "07:41:00"
429 "9208" "LIG12" 82044.62339898935 5469.641559932623 11077 1 "BRUGARE1" "Gare de Brumath" "07:08:00" 11078 2 "BRUSOCR2" "Rue Socrate" "07:11:00"
443 "9222" "LIG12" 82044.62339898935 5469.641559932623 11326 1 "BRUGARE1" "Gare de Brumath" "07:08:00" 11327 2 "BRUSOCR2" "Rue Socrate" "07:11:00"
429 "9208" "LIG12" 109622.10790396143 5481.105395198071 11096 20 "UBECITE2" "Uberach Cité" "07:38:00" 11097 21 "WALECOL1" "La Walck Ecoles" "07:40:00"
443 "9222" "LIG12" 109622.10790396143 5481.105395198071 11345 20 "UBECITE2" "Uberach Cité" "07:38:00" 11346 21 "WALECOL1" "La Walck Ecoles" "07:40:00"
429 "9208" "LIG12" 109616.64088495384 5480.832044247692 11097 21 "WALECOL1" "La Walck Ecoles" "07:40:00" 11098 22 "WALBITS2" "La Walck Rue de Bitschhoffen" "07:42:00"
443 "9222" "LIG12" 109616.64088495384 5480.832044247692 11346 21 "WALECOL1" "La Walck Ecoles" "07:40:00" 11347 22 "WALBITS2" "La Walck Rue de Bitschhoffen" "07:42:00"
461 "9316" "LIGN10" 164322.8893693854 5477.429645646181 11626 9 "HAGCITE1" "Cité Scolaire" "08:02:00" 11627 10 "HAGFRIC1" "Chemin des Friches" "08:03:00"
488 "9347" "LIGN10" 164322.8893693854 5477.429645646181 11921 9 "HAGCITE1" "Cité Scolaire" "08:02:00" 11922 10 "HAGFRIC1" "Chemin des Friches" "08:03:00"
461 "9316" "LIGN10" 54789.31925459015 5478.931925459015 11627 10 "HAGFRIC1" "Chemin des Friches" "08:03:00" 11628 11 "HAGNEUF1" "Haguenau Gare Moulin Neuf" "08:08:00"
488 "9347" "LIGN10" 54789.31925459015 5478.931925459015 11922 10 "HAGFRIC1" "Chemin des Friches" "08:03:00" 11923 11 "HAGNEUF1" "Haguenau Gare Moulin Neuf" "08:08:00"
483 "9338" "LIGN10" 65746.55153792728 5478.879294827273 11862 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "16:47:00" 11863 2 "HAGFRIC2" "Chemin des Friches" "16:51:00"
473 "9328" "LIGN10" 65746.55153792728 5478.879294827273 11750 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "16:47:00" 11751 2 "HAGFRIC2" "Chemin des Friches" "16:51:00"
474 "9329" "LIGN10" 65746.55153792728 5478.879294827273 11761 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "16:47:00" 11762 2 "HAGFRIC2" "Chemin des Friches" "16:51:00"
500 "9360" "LIGN10" 65746.55153792728 5478.879294827273 12045 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "16:47:00" 12046 2 "HAGFRIC2" "Chemin des Friches" "16:51:00"
483 "9338" "LIGN10" 109548.57174913358 5477.4285874566785 11863 2 "HAGFRIC2" "Chemin des Friches" "16:51:00" 11864 3 "HAGCITE2" "Cité Scolaire" "16:53:00"
473 "9328" "LIGN10" 109548.57174913358 5477.4285874566785 11751 2 "HAGFRIC2" "Chemin des Friches" "16:51:00" 11752 3 "HAGCITE2" "Cité Scolaire" "16:53:00"
474 "9329" "LIGN10" 109548.57174913358 5477.4285874566785 11762 2 "HAGFRIC2" "Chemin des Friches" "16:51:00" 11763 3 "HAGCITE2" "Cité Scolaire" "16:53:00"
500 "9360" "LIGN10" 109548.57174913358 5477.4285874566785 12046 2 "HAGFRIC2" "Chemin des Friches" "16:51:00" 12047 3 "HAGCITE2" "Cité Scolaire" "16:53:00"
476 "9331" "LIGN10" 65746.55153792728 5478.879294827273 11783 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "17:47:00" 11784 2 "HAGFRIC2" "Chemin des Friches" "17:51:00"
477 "9332" "LIGN10" 65746.55153792728 5478.879294827273 11794 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "17:47:00" 11795 2 "HAGFRIC2" "Chemin des Friches" "17:51:00"
502 "9363" "LIGN10" 65746.55153792728 5478.879294827273 12067 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "17:47:00" 12068 2 "HAGFRIC2" "Chemin des Friches" "17:51:00"
476 "9331" "LIGN10" 109548.57174913358 5477.4285874566785 11784 2 "HAGFRIC2" "Chemin des Friches" "17:51:00" 11785 3 "HAGCITE2" "Cité Scolaire" "17:53:00"
477 "9332" "LIGN10" 109548.57174913358 5477.4285874566785 11795 2 "HAGFRIC2" "Chemin des Friches" "17:51:00" 11796 3 "HAGCITE2" "Cité Scolaire" "17:53:00"
502 "9363" "LIGN10" 109548.57174913358 5477.4285874566785 12068 2 "HAGFRIC2" "Chemin des Friches" "17:51:00" 12069 3 "HAGCITE2" "Cité Scolaire" "17:53:00"
fast_travel_between_far_stops WARNING 81

fast_travel_between_far_stops

A transit vehicle moves too fast between two far stops.

Two stops are considered "far" if they are more than 10 km apart. This normally indicates a more serious problem than too fast travel between consecutive stops.

The speed threshold depends on route type and are the same as fast_travel_between_consecutive_stops.

You can see more about this notice here.

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

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.
437 "9216" "LIG12" 153.99108712137152 10.2660724747581 11233 2 "PFAGARE1" "Pfaffenhoffen ancienne gare" "07:46:00" 11235 4 "GRARD411" "Grassendorf RD 419" "07:49:00"
451 "9230" "LIG12" 153.99108712137152 10.2660724747581 11482 2 "PFAGARE1" "Pfaffenhoffen ancienne gare" "07:46:00" 11484 4 "GRARD411" "Grassendorf RD 419" "07:49:00"
460 "9314" "LIGN10" 164322.8893693854 5477.429645646181 11615 8 "HAGCITE1" "Cité Scolaire" "07:35:00" 11616 9 "HAGFRIC1" "Chemin des Friches" "07:36:00"
395 "8758" "LIGNEF" 469.99690379906525 15.666563459968842 10312 2 "HAGREAL1" "Real Schloessel" "13:12:00" 10313 3 "HAGWALD1" "Waldteufel" "13:13:00"
428 "9207" "LIG12" 109622.10790396143 5481.105395198071 11072 5 "UBECITE2" "Uberach Cité" "06:36:00" 11073 6 "WALECOL1" "La Walck Ecoles" "06:38:00"
442 "9221" "LIG12" 109622.10790396143 5481.105395198071 11321 5 "UBECITE2" "Uberach Cité" "06:36:00" 11322 6 "WALECOL1" "La Walck Ecoles" "06:38:00"
432 "9211" "LIG12" 82044.62339898935 5469.641559932623 11149 1 "BRUGARE1" "Gare de Brumath" "18:03:00" 11150 2 "BRUSOCR2" "Rue Socrate" "18:06:00"
446 "9225" "LIG12" 82044.62339898935 5469.641559932623 11398 1 "BRUGARE1" "Gare de Brumath" "18:03:00" 11399 2 "BRUSOCR2" "Rue Socrate" "18:06:00"
464 "9319" "LIGN10" 164322.8893693854 5477.429645646181 11659 9 "HAGCITE1" "Cité Scolaire" "13:36:00" 11660 10 "HAGFRIC1" "Chemin des Friches" "13:37:00"
491 "9350" "LIGN10" 164322.8893693854 5477.429645646181 11954 9 "HAGCITE1" "Cité Scolaire" "13:36:00" 11955 10 "HAGFRIC1" "Chemin des Friches" "13:37:00"
394 "8757" "LIGNEF" 313.33126919937683 15.666563459968842 10299 12 "HAGREAL1" "Real Schloessel" "07:33:00" 10300 13 "HAGWALD1" "Waldteufel" "07:35:00"
484 "9339" "LIGN10" 65746.55153792728 5478.879294827273 11873 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "12:27:00" 11874 2 "HAGFRIC2" "Chemin des Friches" "12:31:00"
486 "9341" "LIGN10" 164322.8893693854 5477.429645646181 11898 4 "HAGCITE1" "Cité Scolaire" "07:35:00" 11899 5 "HAGFRIC1" "Chemin des Friches" "07:36:00"
429 "9208" "LIG12" 82044.62339898935 5469.641559932623 11077 1 "BRUGARE1" "Gare de Brumath" "07:08:00" 11078 2 "BRUSOCR2" "Rue Socrate" "07:11:00"
443 "9222" "LIG12" 82044.62339898935 5469.641559932623 11326 1 "BRUGARE1" "Gare de Brumath" "07:08:00" 11327 2 "BRUSOCR2" "Rue Socrate" "07:11:00"
461 "9316" "LIGN10" 164322.8893693854 5477.429645646181 11626 9 "HAGCITE1" "Cité Scolaire" "08:02:00" 11627 10 "HAGFRIC1" "Chemin des Friches" "08:03:00"
488 "9347" "LIGN10" 164322.8893693854 5477.429645646181 11921 9 "HAGCITE1" "Cité Scolaire" "08:02:00" 11922 10 "HAGFRIC1" "Chemin des Friches" "08:03:00"
483 "9338" "LIGN10" 65746.55153792728 5478.879294827273 11862 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "16:47:00" 11863 2 "HAGFRIC2" "Chemin des Friches" "16:51:00"
473 "9328" "LIGN10" 65746.55153792728 5478.879294827273 11750 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "16:47:00" 11751 2 "HAGFRIC2" "Chemin des Friches" "16:51:00"
474 "9329" "LIGN10" 65746.55153792728 5478.879294827273 11761 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "16:47:00" 11762 2 "HAGFRIC2" "Chemin des Friches" "16:51:00"
500 "9360" "LIGN10" 65746.55153792728 5478.879294827273 12045 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "16:47:00" 12046 2 "HAGFRIC2" "Chemin des Friches" "16:51:00"
476 "9331" "LIGN10" 65746.55153792728 5478.879294827273 11783 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "17:47:00" 11784 2 "HAGFRIC2" "Chemin des Friches" "17:51:00"
477 "9332" "LIGN10" 65746.55153792728 5478.879294827273 11794 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "17:47:00" 11795 2 "HAGFRIC2" "Chemin des Friches" "17:51:00"
502 "9363" "LIGN10" 65746.55153792728 5478.879294827273 12067 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "17:47:00" 12068 2 "HAGFRIC2" "Chemin des Friches" "17:51:00"
485 "9340" "LIGN10" 164322.8893693854 5477.429645646181 11892 9 "HAGCITE1" "Cité Scolaire" "07:38:00" 11893 10 "HAGFRIC1" "Chemin des Friches" "07:39:00"
481 "9336" "LIGN10" 65746.55153792728 5478.879294827273 11839 2 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "16:50:00" 11840 3 "HAGFRIC2" "Chemin des Friches" "16:54:00"
472 "9327" "LIGN10" 65746.55153792728 5478.879294827273 11739 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "12:17:00" 11740 2 "HAGFRIC2" "Chemin des Friches" "12:21:00"
499 "9358" "LIGN10" 65746.55153792728 5478.879294827273 12034 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "12:17:00" 12035 2 "HAGFRIC2" "Chemin des Friches" "12:21:00"
466 "9321" "LIGN10" 164322.8893693854 5477.429645646181 11681 9 "HAGCITE1" "Cité Scolaire" "18:06:00" 11682 10 "HAGFRIC1" "Chemin des Friches" "18:07:00"
493 "9352" "LIGN10" 164322.8893693854 5477.429645646181 11976 9 "HAGCITE1" "Cité Scolaire" "18:06:00" 11977 10 "HAGFRIC1" "Chemin des Friches" "18:07:00"
470 "9325" "LIGN10" 65746.55153792728 5478.879294827273 11717 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "07:47:00" 11718 2 "HAGFRIC2" "Chemin des Friches" "07:51:00"
497 "9356" "LIGN10" 65746.55153792728 5478.879294827273 12012 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "07:47:00" 12013 2 "HAGFRIC2" "Chemin des Friches" "07:51:00"
430 "9209" "LIG12" 82044.62339898935 5469.641559932623 11101 1 "BRUGARE1" "Gare de Brumath" "08:12:00" 11102 2 "BRUSOCR2" "Rue Socrate" "08:15:00"
444 "9223" "LIG12" 82044.62339898935 5469.641559932623 11350 1 "BRUGARE1" "Gare de Brumath" "08:12:00" 11351 2 "BRUSOCR2" "Rue Socrate" "08:15:00"
468 "9323" "LIGN10" 164322.8893693854 5477.429645646181 11703 9 "HAGCITE1" "Cité Scolaire" "14:06:00" 11704 10 "HAGFRIC1" "Chemin des Friches" "14:07:00"
495 "9354" "LIGN10" 164322.8893693854 5477.429645646181 11998 9 "HAGCITE1" "Cité Scolaire" "14:06:00" 11999 10 "HAGFRIC1" "Chemin des Friches" "14:07:00"
439 "9218" "LIG12" 153.99108712137152 10.2660724747581 11267 2 "PFAGARE1" "Pfaffenhoffen ancienne gare" "13:10:00" 11269 4 "GRARD411" "Grassendorf RD 419" "13:13:00"
453 "9232" "LIG12" 153.99108712137152 10.2660724747581 11516 2 "PFAGARE1" "Pfaffenhoffen ancienne gare" "13:10:00" 11518 4 "GRARD411" "Grassendorf RD 419" "13:13:00"
433 "9212" "LIG12" 82044.62339898935 5469.641559932623 11173 1 "BRUGARE1" "Gare de Brumath" "19:08:00" 11174 2 "BRUSOCR2" "Rue Socrate" "19:11:00"
447 "9226" "LIG12" 82044.62339898935 5469.641559932623 11422 1 "BRUGARE1" "Gare de Brumath" "19:08:00" 11423 2 "BRUSOCR2" "Rue Socrate" "19:11:00"
440 "9219" "LIG12" 153.99108712137152 10.2660724747581 11284 2 "PFAGARE1" "Pfaffenhoffen ancienne gare" "17:03:00" 11286 4 "GRARD411" "Grassendorf RD 419" "17:06:00"
454 "9233" "LIG12" 153.99108712137152 10.2660724747581 11533 2 "PFAGARE1" "Pfaffenhoffen ancienne gare" "17:03:00" 11535 4 "GRARD411" "Grassendorf RD 419" "17:06:00"
480 "9335" "LIGN10" 65746.55153792728 5478.879294827273 11827 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "11:47:00" 11828 2 "HAGFRIC2" "Chemin des Friches" "11:51:00"
505 "9366" "LIGN10" 65746.55153792728 5478.879294827273 12100 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "11:47:00" 12101 2 "HAGFRIC2" "Chemin des Friches" "11:51:00"
459 "9313" "LIGN10" 164322.8893693854 5477.429645646181 11604 6 "HAGCITE1" "Cité Scolaire" "07:35:00" 11605 7 "HAGFRIC1" "Chemin des Friches" "07:36:00"
479 "9334" "LIGN10" 65746.55153792728 5478.879294827273 11816 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "18:47:00" 11817 2 "HAGFRIC2" "Chemin des Friches" "18:51:00"
504 "9365" "LIGN10" 65746.55153792728 5478.879294827273 12089 1 "HAGNEUF2" "Haguenau Gare Moulin Neuf" "18:47:00" 12090 2 "HAGFRIC2" "Chemin des Friches" "18:51:00"
463 "9318" "LIGN10" 164322.8893693854 5477.429645646181 11648 9 "HAGCITE1" "Cité Scolaire" "09:06:00" 11649 10 "HAGFRIC1" "Chemin des Friches" "09:07:00"
490 "9349" "LIGN10" 164322.8893693854 5477.429645646181 11943 9 "HAGCITE1" "Cité Scolaire" "09:06:00" 11944 10 "HAGFRIC1" "Chemin des Friches" "09:07:00"
465 "9320" "LIGN10" 164322.8893693854 5477.429645646181 11670 9 "HAGCITE1" "Cité Scolaire" "17:36:00" 11671 10 "HAGFRIC1" "Chemin des Friches" "17:37:00"
feed_expiration_date7_days WARNING 1

feed_expiration_date7_days

Dataset should be valid for at least the next 7 days.

The dataset expiration date defined in feed_info.txt is in seven days or less. At any time, the published GTFS dataset should be valid for at least the next 7 days.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. currentDate (?) Current date (YYYYMMDD format). feedEndDate (?) Feed end date (YYYYMMDD format). suggestedExpirationDate (?) Suggested expiration date (YYYYMMDD format).
2 "20240607" "20211231" "20240614"
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
missing_timepoint_value WARNING 12120

missing_timepoint_value

stop_times.timepoint value is missing for a record.

Even though the column timepoint is optional in stop_times.txt according to the specification, stop_times.timepoint should not be empty when provided.

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record. tripId (?) The faulty record's `stop_times.trip_id`. stopSequence (?) The faulty record's `stop_times.stop_sequence`.
2 "1220" 1
3 "1220" 2
4 "1220" 3
5 "1220" 4
6 "1220" 5
7 "1220" 6
8 "1220" 7
9 "1220" 8
10 "1220" 9
11 "1220" 10
12 "1220" 11
13 "1220" 12
14 "1220" 13
15 "1220" 14
16 "1220" 15
17 "1220" 16
18 "1220" 17
19 "1220" 18
20 "1220" 19
21 "1220" 20
22 "1220" 21
23 "1220" 22
24 "1220" 23
25 "1220" 24
26 "1220" 25
27 "1220" 26
28 "1221" 1
29 "1221" 2
30 "1221" 3
31 "1221" 4
32 "1221" 5
33 "1221" 6
34 "1221" 7
35 "1221" 8
36 "1221" 9
37 "1221" 10
38 "1221" 11
39 "1221" 12
40 "1221" 13
41 "1221" 14
42 "1221" 15
43 "1221" 16
44 "1221" 17
45 "1221" 18
46 "1221" 19
47 "1221" 20
48 "1221" 21
49 "1221" 22
50 "1221" 23
51 "1221" 24
mixed_case_recommended_field WARNING 3

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" "DE GAULE" 427
"stops.txt" "stop_name" "DE GAULE" 428
"stops.txt" "stop_name" "DE GAULE" 429
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.
"LIGNE4" 9 "#8000FF" "#000000"
same_name_and_description_for_route WARNING 1

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`.
18 "LIGNEI" "Harthouse - Haguenau Gare" "route_long_name"
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.
"20240607" "20210901" "20211217"