gtfs-tadao — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-08-08T08:51:48Z,
for the dataset file:///shared/gtfs-tadao_7808c4af.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
TADAO
Publisher URL:
http://www.tadao.fr
Feed Email:
N/A
Feed Language:
French
Feed Start Date:
2026-07-16
Feed End Date:
2026-08-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. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 58
  • Shapes: 162
  • Stops: 2506
  • Trips: 2765

Specification Compliance report

102822 notices reported (0 errors, 100080 warnings, 2742 infos)

Notice Code Severity Total
equal_shape_distance_same_coordinates WARNING 100000

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 100000 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`.
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48040 0.01 2 48039 0.01 1
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48042 0.024 4 48041 0.024 3
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48044 0.038 6 48043 0.038 5
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48046 0.049 8 48045 0.049 7
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48048 0.053 10 48047 0.053 9
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48050 0.066 12 48049 0.066 11
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48052 0.08 14 48051 0.08 13
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48054 0.089 16 48053 0.089 15
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48056 0.096 18 48055 0.096 17
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48058 0.108 20 48057 0.108 19
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48060 0.123 22 48059 0.123 21
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48062 0.138 24 48061 0.138 23
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48064 0.151 26 48063 0.151 25
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48066 0.159 28 48065 0.159 27
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48068 0.164 30 48067 0.164 29
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48070 0.172 32 48069 0.172 31
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48072 0.189 34 48071 0.189 33
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48074 0.199 36 48073 0.199 35
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48076 0.204 38 48075 0.204 37
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48078 0.21 40 48077 0.21 39
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48080 0.214 42 48079 0.214 41
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48082 0.222 44 48081 0.222 43
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48084 0.226 46 48083 0.226 45
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48086 0.234 48 48085 0.234 47
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48088 0.241 50 48087 0.241 49
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48090 0.247 52 48089 0.247 51
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48092 0.261 54 48091 0.261 53
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48094 0.265 56 48093 0.265 55
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48096 0.279 58 48095 0.279 57
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48098 0.286 60 48097 0.286 59
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48100 0.29 62 48099 0.29 61
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48102 0.304 64 48101 0.304 63
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48104 0.314 66 48103 0.314 65
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48106 0.326 68 48105 0.326 67
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48108 0.336 70 48107 0.336 69
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48110 0.348 72 48109 0.348 71
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48112 0.351 74 48111 0.351 73
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48114 0.355 76 48113 0.355 75
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48116 0.365 78 48115 0.365 77
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48118 0.374 80 48117 0.374 79
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48120 0.377 82 48119 0.377 81
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48122 0.386 84 48121 0.386 83
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48124 0.393 86 48123 0.393 85
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48126 0.409 88 48125 0.409 87
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48128 0.414 90 48127 0.414 89
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48130 0.419 92 48129 0.419 91
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48132 0.424 94 48131 0.424 93
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48134 0.432 96 48133 0.432 95
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48136 0.438 98 48135 0.438 97
"iti_2b17a316-5f1e-4f32-a05c-57a1" 48138 0.446 100 48137 0.446 99
fast_travel_between_consecutive_stops WARNING 19

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.

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.
333 "11937058" "76" 542.719886715796 0.15075552408772108 35104 8 "ANZ2LIBE" "Liberté" "19:22:00" 35111 9 "ANZ14VEN" "4 Vents" "19:22:01"
1050 "11937851" "11" 630.7456747172616 0.175207131865906 21055 40 "GRE1TONK" "Tonkin" "07:10:00" 21064 41 "GRE1BAPF" "Guadeloupe" "07:10:01"
320 "11937047" "76" 542.719886715796 0.15075552408772108 35109 8 "ANZ2LIBE" "Liberté" "12:52:00" 35116 9 "ANZ14VEN" "4 Vents" "12:52:01"
1057 "11937858" "11" 630.7456747172616 0.175207131865906 21052 40 "GRE1TONK" "Tonkin" "16:57:00" 21061 41 "GRE1BAPF" "Guadeloupe" "16:57:01"
331 "11937056" "76" 542.719886715796 0.15075552408772108 35105 8 "ANZ2LIBE" "Liberté" "18:22:00" 35112 9 "ANZ14VEN" "4 Vents" "18:22:01"
329 "11937054" "76" 542.719886715796 0.15075552408772108 35106 8 "ANZ2LIBE" "Liberté" "17:22:00" 35113 9 "ANZ14VEN" "4 Vents" "17:22:01"
1051 "11937852" "11" 630.7456747172616 0.175207131865906 21054 40 "GRE1TONK" "Tonkin" "12:56:00" 21063 41 "GRE1BAPF" "Guadeloupe" "12:56:01"
1052 "11937853" "11" 630.7456747172616 0.175207131865906 21053 40 "GRE1TONK" "Tonkin" "19:52:00" 21062 41 "GRE1BAPF" "Guadeloupe" "19:52:01"
1067 "11937868" "10" 1140.2586953571008 0.31673852648808354 19860 33 "BEU1JBAI" "Bailleul" "07:15:00" 19872 34 "BEU2GORR" "Gorre" "07:15:01"
1058 "11937859" "11" 630.7456747172616 0.175207131865906 21051 40 "GRE1TONK" "Tonkin" "14:54:00" 21060 41 "GRE1BAPF" "Guadeloupe" "14:54:01"
1056 "11937857" "11" 630.7456747172616 0.175207131865906 21150 41 "GRE1TONK" "Tonkin" "18:03:00" 21152 42 "GRE1BAPF" "Guadeloupe" "18:03:01"
324 "11937051" "76" 542.719886715796 0.15075552408772108 35107 8 "ANZ2LIBE" "Liberté" "16:17:00" 35114 9 "ANZ14VEN" "4 Vents" "16:17:01"
1063 "11937864" "11" 630.7456747172616 0.175207131865906 21050 40 "GRE1TONK" "Tonkin" "10:54:00" 21059 41 "GRE1BAPF" "Guadeloupe" "10:54:01"
322 "11937049" "76" 542.719886715796 0.15075552408772108 35108 8 "ANZ2LIBE" "Liberté" "13:52:00" 35115 9 "ANZ14VEN" "4 Vents" "13:52:01"
1047 "11937848" "11" 630.7456747172616 0.175207131865906 21058 40 "GRE1TONK" "Tonkin" "21:21:00" 21067 41 "GRE1BAPF" "Guadeloupe" "21:21:01"
1049 "11937850" "11" 630.7456747172616 0.175207131865906 21056 40 "GRE1TONK" "Tonkin" "08:58:00" 21065 41 "GRE1BAPF" "Guadeloupe" "08:58:01"
1048 "11937849" "11" 630.7456747172616 0.175207131865906 21057 40 "GRE1TONK" "Tonkin" "09:58:00" 21066 41 "GRE1BAPF" "Guadeloupe" "09:58:01"
1053 "11937854" "11" 630.7456747172616 0.175207131865906 21151 41 "GRE1TONK" "Tonkin" "18:59:00" 21153 42 "GRE1BAPF" "Guadeloupe" "18:59:01"
313 "11937044" "76" 542.719886715796 0.15075552408772108 35110 8 "ANZ2LIBE" "Liberté" "11:17:00" 35117 9 "ANZ14VEN" "4 Vents" "11:17:01"
feed_expiration_date30_days WARNING 1

feed_expiration_date30_days

Dataset should cover at least the next 30 days of service.

At any time, the GTFS dataset should cover at least the next 30 days of service, and ideally for as long as the operator is confident that the schedule will continue to be operated.

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 "20260808" "20260831" "20260907"
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_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.
"feed_info.txt" 2 "feed_version"
mixed_case_recommended_field WARNING 57

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 57 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.
"stops.txt" "stop_name" "8 mai 1945" 1342
"stops.txt" "stop_name" "8 mai 1945" 1344
"stops.txt" "stop_name" "11novembre" 1433
"stops.txt" "stop_name" "11 novembre" 1435
"stops.txt" "stop_name" "4 septembre" 1486
"stops.txt" "stop_name" "Œillets" 1540
"stops.txt" "stop_name" "4 septembre" 1563
"stops.txt" "stop_name" "Œillets" 1605
"stops.txt" "stop_name" "10 mars 1906" 1943
"stops.txt" "stop_name" "10 mars 1906" 2058
"stops.txt" "stop_name" "10 mars 1906" 2069
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 69
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 70
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 71
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 72
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 73
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 74
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1088
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1090
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1092
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1094
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1096
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1098
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1100
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1102
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1104
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1106
"trips.txt" "trip_headsign" "ANNEZIN - ZI" 1108
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1715
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1716
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1722
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1723
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1724
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1725
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1726
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1727
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1728
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1729
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1733
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1734
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1735
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1738
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1739
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1740
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1741
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1743
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1745
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1747
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1749
"trips.txt" "trip_headsign" "COURCELLES-LES-LENS - ZA" 1752
route_long_name_contains_short_name WARNING 1

route_long_name_contains_short_name

Long name should not contain short name for a single route.

In routes.txt, route_long_name should not contain the value for route_short_name, because when both are provided, they are often combined by transit applications. Note that only one of the two fields is required. If there is no short name used for a route, use route_long_name only.

Good examples:

route_short_name/route_long_name Dataset
"N"/"Judah" Muni San Fransisco
"6"/"ML King Jr Blvd" Trimet Portland Streetcar
"55"/"Boulevard Saint Laurent" STM Montreal
"1"/"Rangiora/Cashmere" Metro Christchurch

Bad examples:

route_short_name/route_long_name
"604"/"604"
"14"/"Route 14"
"2"/"Route 2: Bellows Falls In-Town"

You can see more about this notice here.

routeId (?) The id of the faulty record. csvRowNumber (?) The row number of the faulty record. routeShortName (?) The faulty record's `route_short_name`. routeLongName (?) The faulty record's `route_long_name`.
"180" 56 "180" "180 Express"
unsorted_stop_times INFO 2742

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 2742 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.
"11938413" 9041 12425
"11937565" 65508 66236
"11938414" 9040 12424
"11937564" 65509 66237
"11938415" 9039 12423
"11937563" 65510 66238
"11938416" 9038 12422
"11937562" 65511 66239
"11938417" 9037 12421
"11937561" 65512 66240
"11938418" 9036 12420
"11937560" 65513 66241
"11938419" 9035 12419
"11970149" 48851 50254
"11970145" 48853 50256
"11937569" 66257 66985
"11938410" 9044 12428
"11970146" 48852 50255
"11937568" 66258 66986
"11938411" 9043 12427
"11970147" 50320 51808
"11937567" 66259 66987
"11938412" 9042 12426
"11970148" 50319 51807
"11937566" 65507 66235
"11970152" 50317 51805
"11970153" 50316 51804
"11970154" 48849 50252
"11970155" 48848 50251
"11970150" 50318 51806
"11970151" 48850 50253
"11937576" 66250 66978
"11937575" 66251 66979
"11937574" 66252 66980
"11937573" 66253 66981
"11937572" 66254 66982
"11937571" 66255 66983
"11937570" 66256 66984
"11970156" 50315 51803
"11937579" 21640 22173
"11970157" 50314 51802
"11970158" 48847 50250
"11937578" 66248 66976
"11970159" 50313 51801
"11937577" 66249 66977
"11970163" 48846 50249
"11970164" 48845 50248
"11970165" 48844 50247
"11970166" 48843 50246
"11970160" 50312 51800