navettes-bourg-saint-maurice — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-04-09T14:28:06Z,
for the dataset file:///shared/navettes-bourg-saint-maurice_ab21f1b4.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 Email:
N/A
Feed Language:
N/A

Files included


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

Counts


  • Agencies: 1
  • Blocks: 13
  • Routes: 7
  • Shapes: 23
  • Stops: 104
  • Trips: 728

Specification Compliance report

844 notices reported (254 errors, 590 warnings, 0 infos)

Notice Code Severity Total
block_trips_with_overlapping_stop_times ERROR 13

block_trips_with_overlapping_stop_times

Trips with the same block id have overlapping stop times.

You can see more about this notice here.

csvRowNumberA (?) The row number from `trips.txt` of the first faulty trip. tripIdA (?) The id of first faulty trip. serviceIdA (?) The service id of the first faulty trip. csvRowNumberB (?) The row number from `trips.txt` of the second faulty trip. tripIdB (?) The id of the other faulty trip. serviceIdB (?) The service id of the other faulty trip. blockId (?) The `trips.block_id` of the overlapping trip. intersection (?) The overlapping period.
157 "3204" "2_8_10_11_12_13_16" 15 "3203" "2_8_10_11_12_13_16" "3030" "20260111"
157 "3204" "2_8_10_11_12_13_16" 159 "3206" "2_8_10_11_12_13_16" "3030" "20260111"
12 "3219" "2_8_10_11_12_13_16" 48 "3218" "2_8_10_11_12_13_16" "3030" "20260111"
12 "3219" "2_8_10_11_12_13_16" 55 "3220" "2_8_10_11_12_13_16" "3030" "20260111"
12 "3219" "2_8_10_11_12_13_16" 20 "3217" "2_8_10_11_12_13_16" "3030" "20260111"
55 "3220" "2_8_10_11_12_13_16" 20 "3217" "2_8_10_11_12_13_16" "3030" "20260111"
22 "3223" "2_8_10_11_12_13_16" 39 "3233" "13" "3030" "20260117"
165 "3226" "2_8_10_11_12_13_16" 182 "3234" "13" "3030" "20260117"
23 "3227" "2_8_10_11_12_13_16" 40 "3237" "13" "3030" "20260117"
166 "3228" "2_8_10_11_12_13_16" 183 "3236" "13" "3030" "20260117"
24 "3229" "2_8_10_11_12_13_16" 41 "3239" "13" "3030" "20260117"
167 "3230" "2_8_10_11_12_13_16" 184 "3238" "13" "3030" "20260117"
334 "2299" "2_13_16" 382 "2303" "8_10_11_12_13_16" "2004" "20260116"
decreasing_or_equal_stop_time_distance ERROR 74

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 74 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`.
"2210" "73054032" 432 8372.0 9 1268 8462.0 8
"2206" "73054032" 542 8372.0 9 1279 8462.0 8
"2204" "73054032" 422 8372.0 9 1267 8462.0 8
"2202" "73054032" 302 8372.0 9 1255 8462.0 8
"2208" "73054032" 312 8372.0 9 1256 8462.0 8
"2220" "73054032" 662 8372.0 9 1291 8462.0 8
"2218" "73054032" 442 8372.0 9 1269 8462.0 8
"2216" "73054032" 322 8372.0 9 1257 8462.0 8
"2214" "73054032" 552 8372.0 9 1280 8462.0 8
"2212" "73054032" 652 8372.0 9 1290 8462.0 8
"2232" "73054032" 682 8372.0 9 1293 8462.0 8
"2230" "73054032" 572 8372.0 9 1282 8462.0 8
"2228" "73054032" 452 8372.0 9 1270 8462.0 8
"2226" "73054032" 672 8372.0 9 1292 8462.0 8
"2224" "73054032" 332 8372.0 9 1258 8462.0 8
"2222" "73054032" 562 8372.0 9 1281 8462.0 8
"3210" "73054060" 1469 0.0 1 254 0.0 1
"3210" "73054052" 1471 800.0 3 256 897.0 3
"2242" "73054032" 692 8372.0 9 1294 8462.0 8
"2240" "73054032" 582 8372.0 9 1283 8462.0 8
"3208" "73054060" 1344 0.0 1 275 0.0 1
"3208" "73054052" 1346 800.0 3 277 897.0 3
"2238" "73054032" 292 8372.0 9 1254 8462.0 8
"2236" "73054032" 462 8372.0 9 1271 8462.0 8
"3204" "73054060" 1464 0.0 1 1333 0.0 1
"3204" "190" 1465 154.0 2 1334 2375.0 2
"3204" "73054052" 1466 800.0 3 1335 3499.0 3
"2234" "73054032" 342 8372.0 9 1259 8462.0 8
"2254" "73054032" 482 8372.0 9 1273 8462.0 8
"3220" "73054060" 1364 0.0 1 278 0.0 1
"3220" "73054052" 1366 800.0 3 280 897.0 3
"2252" "73054032" 362 8372.0 9 1261 8462.0 8
"2250" "73054032" 702 8372.0 9 1295 8462.0 8
"3219" "73054110" 77 0.0 1 32 0.0 1
"3219" "73054561" 78 613.0 2 33 754.0 2
"3219" "73054051" 79 782.0 3 34 886.0 3
"3218" "73054060" 1474 0.0 1 257 0.0 1
"3218" "73054052" 1476 800.0 3 259 897.0 3
"2248" "73054032" 592 8372.0 9 1284 8462.0 8
"3215" "73054110" 191 0.0 1 8 0.0 1
"3215" "73054561" 192 613.0 2 9 754.0 2
"3215" "73054051" 193 782.0 3 10 886.0 3
"2246" "73054032" 472 8372.0 9 1272 8462.0 8
"2244" "73054032" 352 8372.0 9 1260 8462.0 8
"3232" "73054060" 1479 0.0 1 260 0.0 1
"3232" "73054052" 1481 800.0 3 262 897.0 3
"2264" "73054032" 722 8372.0 9 1297 8462.0 8
"3231" "73054110" 203 0.0 1 14 0.0 1
"3231" "73054561" 204 613.0 2 15 754.0 2
"3231" "73054051" 205 782.0 3 16 886.0 3
duplicate_key ERROR 126

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 126 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" 32 77 "trip_id,stop_sequence" "3219,1"
"stop_times.txt" 33 78 "trip_id,stop_sequence" "3219,2"
"stop_times.txt" 34 79 "trip_id,stop_sequence" "3219,3"
"stop_times.txt" 8 191 "trip_id,stop_sequence" "3215,1"
"stop_times.txt" 9 192 "trip_id,stop_sequence" "3215,2"
"stop_times.txt" 10 193 "trip_id,stop_sequence" "3215,3"
"stop_times.txt" 11 197 "trip_id,stop_sequence" "3225,1"
"stop_times.txt" 12 198 "trip_id,stop_sequence" "3225,2"
"stop_times.txt" 13 199 "trip_id,stop_sequence" "3225,3"
"stop_times.txt" 14 203 "trip_id,stop_sequence" "3231,1"
"stop_times.txt" 15 204 "trip_id,stop_sequence" "3231,2"
"stop_times.txt" 16 205 "trip_id,stop_sequence" "3231,3"
"stop_times.txt" 291 1254 "trip_id,stop_sequence" "2238,8"
"stop_times.txt" 301 1255 "trip_id,stop_sequence" "2202,8"
"stop_times.txt" 311 1256 "trip_id,stop_sequence" "2208,8"
"stop_times.txt" 321 1257 "trip_id,stop_sequence" "2216,8"
"stop_times.txt" 331 1258 "trip_id,stop_sequence" "2224,8"
"stop_times.txt" 341 1259 "trip_id,stop_sequence" "2234,8"
"stop_times.txt" 351 1260 "trip_id,stop_sequence" "2244,8"
"stop_times.txt" 361 1261 "trip_id,stop_sequence" "2252,8"
"stop_times.txt" 371 1262 "trip_id,stop_sequence" "2260,8"
"stop_times.txt" 381 1263 "trip_id,stop_sequence" "2266,8"
"stop_times.txt" 391 1264 "trip_id,stop_sequence" "2272,8"
"stop_times.txt" 401 1265 "trip_id,stop_sequence" "2284,8"
"stop_times.txt" 411 1266 "trip_id,stop_sequence" "2290,8"
"stop_times.txt" 421 1267 "trip_id,stop_sequence" "2204,8"
"stop_times.txt" 431 1268 "trip_id,stop_sequence" "2210,8"
"stop_times.txt" 441 1269 "trip_id,stop_sequence" "2218,8"
"stop_times.txt" 451 1270 "trip_id,stop_sequence" "2228,8"
"stop_times.txt" 461 1271 "trip_id,stop_sequence" "2236,8"
"stop_times.txt" 471 1272 "trip_id,stop_sequence" "2246,8"
"stop_times.txt" 481 1273 "trip_id,stop_sequence" "2254,8"
"stop_times.txt" 491 1274 "trip_id,stop_sequence" "2262,8"
"stop_times.txt" 501 1275 "trip_id,stop_sequence" "2268,8"
"stop_times.txt" 511 1276 "trip_id,stop_sequence" "2278,8"
"stop_times.txt" 521 1277 "trip_id,stop_sequence" "2288,8"
"stop_times.txt" 531 1278 "trip_id,stop_sequence" "2294,8"
"stop_times.txt" 541 1279 "trip_id,stop_sequence" "2206,8"
"stop_times.txt" 551 1280 "trip_id,stop_sequence" "2214,8"
"stop_times.txt" 561 1281 "trip_id,stop_sequence" "2222,8"
"stop_times.txt" 571 1282 "trip_id,stop_sequence" "2230,8"
"stop_times.txt" 581 1283 "trip_id,stop_sequence" "2240,8"
"stop_times.txt" 591 1284 "trip_id,stop_sequence" "2248,8"
"stop_times.txt" 601 1285 "trip_id,stop_sequence" "2256,8"
"stop_times.txt" 611 1286 "trip_id,stop_sequence" "2270,8"
"stop_times.txt" 621 1287 "trip_id,stop_sequence" "2276,8"
"stop_times.txt" 631 1288 "trip_id,stop_sequence" "2282,8"
"stop_times.txt" 641 1289 "trip_id,stop_sequence" "2292,8"
"stop_times.txt" 651 1290 "trip_id,stop_sequence" "2212,8"
"stop_times.txt" 661 1291 "trip_id,stop_sequence" "2220,8"
stop_time_with_arrival_before_previous_departure_time ERROR 32

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.
1328 1327 "2304" "00:03:00" "23:59:00"
1311 1310 "2302" "00:05:00" "23:55:00"
255 1469 "3210" "10:00:30" "10:55:00"
256 1470 "3210" "10:10:00" "10:56:00"
1344 275 "3208" "09:30:00" "10:00:00"
1345 276 "3208" "09:31:00" "10:00:30"
1346 277 "3208" "09:32:00" "10:10:00"
1334 1464 "3204" "08:35:00" "09:10:00"
1335 1465 "3204" "08:40:00" "09:11:00"
279 1364 "3220" "13:30:30" "15:40:00"
280 1365 "3220" "13:40:00" "15:41:00"
33 77 "3219" "13:29:30" "16:05:00"
34 78 "3219" "13:30:00" "16:08:00"
1474 257 "3218" "13:00:00" "13:30:00"
1475 258 "3218" "13:01:00" "13:30:30"
1476 259 "3218" "13:02:00" "13:40:00"
191 8 "3215" "12:30:00" "13:25:00"
192 9 "3215" "12:33:00" "13:29:30"
193 10 "3215" "12:34:00" "13:30:00"
1479 260 "3232" "16:40:00" "19:00:00"
1480 261 "3232" "16:41:00" "19:00:30"
1481 262 "3232" "16:42:00" "19:10:00"
203 14 "3231" "16:30:00" "18:55:00"
204 15 "3231" "16:33:00" "18:59:30"
205 16 "3231" "16:34:00" "19:00:00"
197 11 "3225" "15:00:00" "17:40:00"
198 12 "3225" "15:03:00" "17:44:30"
199 13 "3225" "15:04:00" "17:45:00"
1322 771 "2298" "23:10:00" "23:53:00"
773 772 "2298" "00:05:00" "23:55:00"
3206 2662 "2299" "22:30:00" "23:15:00"
4154 4153 "1304" "00:05:00" "23:59:00"
trip_distance_exceeds_shape_distance ERROR 9

trip_distance_exceeds_shape_distance

The distance between the last shape point and last stop point is greater than or equal to the 11.1m threshold.

You can see more about this notice here.

tripId (?) The faulty record's trip id. shapeId (?) The faulty record's shape id. maxTripDistanceTraveled (?) The faulty record's trip max distance traveled. maxShapeDistanceTraveled (?) The faulty record's shape max distance traveled. geoDistanceToShape (?) The distance in meters between the shape and the stop.
"3215" "515" 2042.0 886.0 3173.1852483991233
"3225" "515" 2042.0 886.0 3173.1852483991233
"3231" "515" 2042.0 886.0 3173.1852483991233
"3219" "515" 2042.0 886.0 3173.1852483991233
"3210" "522" 1652.0 897.0 2644.4784191548347
"3218" "522" 1652.0 897.0 2644.4784191548347
"3232" "522" 1652.0 897.0 2644.4784191548347
"3208" "522" 1652.0 897.0 2644.4784191548347
"3220" "522" 1652.0 897.0 2644.4784191548347
expired_calendar WARNING 8

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.
2 "2_8_10_11_12_13_16"
3 "2_8_10_11_12_16"
4 "2_13_16"
5 "2_5_13_16"
6 "5"
7 "8_10_11_12_13_16"
8 "13"
9 "13_16"
fast_travel_between_consecutive_stops WARNING 26

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.
157 "3204" "3" 170.82552372856202 2.8470920621427003 1464 1 "73054060" "Le Chantel" "09:10:00" 1334 2 "73054031" "UCPA" "08:35:00"
157 "3204" "3" 155.5020447246324 2.5917007454105403 1465 2 "190" "Les Cristaux" "09:11:00" 1335 3 "73054240" "CLUB MED Panorama" "08:40:00"
4 "3215" "3" 158.66870514929008 2.6444784191548347 8 1 "73054010" "ARC 1600 Funiculaire" "13:25:00" 191 1 "73054110" "Gare routière - Le Charvet" "12:30:00"
4 "3215" "3" 189.01861649590768 3.1503102749317944 9 2 "192" "courbaton haut" "13:29:30" 192 2 "73054561" "Les Balcons du Chantel" "12:33:00"
4 "3215" "3" 182.91339611065143 3.0485566018441905 10 3 "193" "courbaton bas" "13:30:00" 193 3 "73054051" "Roselend" "12:34:00"
48 "3218" "3" 190.3911149039474 3.173185248399123 257 1 "193" "courbaton bas" "13:30:00" 1474 1 "73054060" "Le Chantel" "13:00:00"
48 "3218" "3" 194.1667803150444 3.23611300525074 258 2 "192" "courbaton haut" "13:30:30" 1475 2 "190" "Les Cristaux" "13:01:00"
48 "3218" "3" 154.0335277927741 2.5672254632129015 259 3 "73054010" "ARC 1600 Funiculaire" "13:40:00" 1476 3 "73054052" "Roselend" "13:02:00"
55 "3220" "3" 197.0822893403036 3.284704822338393 1364 1 "73054060" "Le Chantel" "15:40:00" 279 2 "192" "courbaton haut" "13:30:30"
55 "3220" "3" 158.8698815069767 2.647831358449612 1365 2 "190" "Les Cristaux" "15:41:00" 280 3 "73054010" "ARC 1600 Funiculaire" "13:40:00"
6 "3231" "3" 158.66870514929008 2.6444784191548347 14 1 "73054010" "ARC 1600 Funiculaire" "18:55:00" 203 1 "73054110" "Gare routière - Le Charvet" "16:30:00"
6 "3231" "3" 189.01861649590768 3.1503102749317944 15 2 "192" "courbaton haut" "18:59:30" 204 2 "73054561" "Les Balcons du Chantel" "16:33:00"
6 "3231" "3" 182.91339611065143 3.0485566018441905 16 3 "193" "courbaton bas" "19:00:00" 205 3 "73054051" "Roselend" "16:34:00"
49 "3232" "3" 190.3911149039474 3.173185248399123 260 1 "193" "courbaton bas" "19:00:00" 1479 1 "73054060" "Le Chantel" "16:40:00"
49 "3232" "3" 194.1667803150444 3.23611300525074 261 2 "192" "courbaton haut" "19:00:30" 1480 2 "190" "Les Cristaux" "16:41:00"
49 "3232" "3" 154.0335277927741 2.5672254632129015 262 3 "73054010" "ARC 1600 Funiculaire" "19:10:00" 1481 3 "73054052" "Roselend" "16:42:00"
5 "3225" "3" 158.66870514929008 2.6444784191548347 11 1 "73054010" "ARC 1600 Funiculaire" "17:40:00" 197 1 "73054110" "Gare routière - Le Charvet" "15:00:00"
5 "3225" "3" 189.01861649590768 3.1503102749317944 12 2 "192" "courbaton haut" "17:44:30" 198 2 "73054561" "Les Balcons du Chantel" "15:03:00"
5 "3225" "3" 182.91339611065143 3.0485566018441905 13 3 "193" "courbaton bas" "17:45:00" 199 3 "73054051" "Roselend" "15:04:00"
54 "3208" "3" 190.3911149039474 3.173185248399123 275 1 "193" "courbaton bas" "10:00:00" 1344 1 "73054060" "Le Chantel" "09:30:00"
54 "3208" "3" 194.1667803150444 3.23611300525074 276 2 "192" "courbaton haut" "10:00:30" 1345 2 "190" "Les Cristaux" "09:31:00"
54 "3208" "3" 154.0335277927741 2.5672254632129015 277 3 "73054010" "ARC 1600 Funiculaire" "10:10:00" 1346 3 "73054052" "Roselend" "09:32:00"
12 "3219" "3" 194.3755760106852 3.2395929335114197 77 1 "73054110" "Gare routière - Le Charvet" "16:05:00" 33 2 "192" "courbaton haut" "13:29:30"
12 "3219" "3" 182.08898151405617 3.034816358567603 78 2 "73054561" "Les Balcons du Chantel" "16:08:00" 34 3 "193" "courbaton bas" "13:30:00"
47 "3210" "3" 197.0822893403036 3.284704822338393 1469 1 "73054060" "Le Chantel" "10:55:00" 255 2 "192" "courbaton haut" "10:00:30"
47 "3210" "3" 158.8698815069767 2.647831358449612 1470 2 "190" "Les Cristaux" "10:56:00" 256 3 "73054010" "ARC 1600 Funiculaire" "10:10:00"
fast_travel_between_far_stops WARNING 9

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.

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.
157 "3204" "3" 215.37811775198801 10.7689058875994 1464 1 "73054060" "Le Chantel" "09:10:00" 1466 3 "73054052" "Roselend" "09:12:00"
4 "3215" "3" 907.0652752805905 15.117754588009841 8 1 "73054010" "ARC 1600 Funiculaire" "13:25:00" 193 3 "73054051" "Roselend" "12:34:00"
48 "3218" "3" 234.7174929850329 11.735874649251645 1474 1 "73054060" "Le Chantel" "13:00:00" 1476 3 "73054052" "Roselend" "13:02:00"
55 "3220" "3" 234.7174929850329 11.735874649251645 1364 1 "73054060" "Le Chantel" "15:40:00" 1366 3 "73054052" "Roselend" "15:42:00"
6 "3231" "3" 907.0652752805905 15.117754588009841 14 1 "73054010" "ARC 1600 Funiculaire" "18:55:00" 205 3 "73054051" "Roselend" "16:34:00"
49 "3232" "3" 234.7174929850329 11.735874649251645 1479 1 "73054060" "Le Chantel" "16:40:00" 1481 3 "73054052" "Roselend" "16:42:00"
5 "3225" "3" 907.0652752805905 15.117754588009841 11 1 "73054010" "ARC 1600 Funiculaire" "17:40:00" 199 3 "73054051" "Roselend" "15:04:00"
54 "3208" "3" 234.7174929850329 11.735874649251645 1344 1 "73054060" "Le Chantel" "09:30:00" 1346 3 "73054052" "Roselend" "09:32:00"
47 "3210" "3" 234.7174929850329 11.735874649251645 1469 1 "73054060" "Le Chantel" "10:55:00" 1471 3 "73054052" "Roselend" "10:57:00"
leading_or_trailing_whitespaces WARNING 198

leading_or_trailing_whitespaces

The value in CSV file has leading or trailing whitespaces.

This notice is emitted for values protected with double quotes since whitespaces for non-protected values are trimmed automatically by CSV parser.

The validator strips whitespaces from protected values. We do not see any use case when such a whitespace may be needed. On the other hand, some real-world feeds use trailing whitespaces for some values and omit them for the others. This is causing the largest problem when a primary key and a foreign key differ just by a whitespace: it is clear that they are intended to be the same, that is why we always strip whitespaces.

You can see more about this notice here.

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

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) Faulty record's field name. fieldValue (?) Faulty value.
"stop_times.txt" 4305 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4306 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4307 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4308 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4309 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4310 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4311 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4312 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4313 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4314 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4315 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4316 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4317 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4318 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4319 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4320 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4321 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4322 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4323 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4324 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4325 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4326 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4327 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4328 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4329 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4330 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4331 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4332 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4333 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4334 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4335 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4336 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4337 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4338 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4339 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4340 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4341 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4342 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4343 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4344 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4345 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4346 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4347 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4348 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4349 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4350 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4351 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4352 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4353 "stop_headsign" "Funiculaire - Les Epines "
"stop_times.txt" 4354 "stop_headsign" "Funiculaire - Les Epines "
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 316

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 316 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" "2 - ARC 2000" 2
"stops.txt" "stop_name" "rochefleur" 42
"stops.txt" "stop_name" "rochefleur" 64
"stops.txt" "stop_name" "les cristaux" 99
"stops.txt" "stop_name" "courbaton haut" 100
"stops.txt" "stop_name" "courbaton bas" 101
"stops.txt" "stop_name" "salle taillefer" 102
"trips.txt" "trip_headsign" "courbaton bas" 2
"trips.txt" "trip_headsign" "courbaton bas" 3
"trips.txt" "trip_headsign" "courbaton bas" 4
"trips.txt" "trip_headsign" "courbaton bas" 5
"trips.txt" "trip_headsign" "courbaton bas" 6
"trips.txt" "trip_headsign" "courbaton bas" 7
"trips.txt" "trip_headsign" "courbaton bas" 8
"trips.txt" "trip_headsign" "courbaton bas" 9
"trips.txt" "trip_headsign" "courbaton bas" 10
"trips.txt" "trip_headsign" "courbaton bas" 11
"trips.txt" "trip_headsign" "courbaton bas" 12
"trips.txt" "trip_headsign" "courbaton bas" 13
"trips.txt" "trip_headsign" "courbaton bas" 14
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 57
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 58
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 59
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 60
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 61
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 62
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 63
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 64
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 65
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 66
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 67
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 68
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 69
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 70
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 71
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 72
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 73
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 74
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 75
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 76
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 77
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 78
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 79
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 80
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 81
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 82
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 83
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 84
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 85
"trips.txt" "trip_headsign" "ARC 1600 - FUNICULAIRE" 86
route_long_name_contains_short_name WARNING 6

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`.
"2" 2 "2" "2 - ARC 2000"
"3" 3 "3" "3"
"4" 4 "4" "4"
"A" 5 "A" "A"
"B" 6 "B" "B"
"C" 8 "C" "C"
stop_too_far_from_shape WARNING 18

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.
288 "273" "2239" 3140 "73054240" "CLUB MED Panorama" [45.5989,6.79998] 248.16769053456568
57 "275" "2238" 1254 "73054240" "CLUB MED Panorama" [45.59888,6.80012] 242.57309932704973
47 "522" "3210" 1469 "73054060" "Le Chantel" [45.59853806,6.795628609999999] 2693.1506573896827
47 "522" "3210" 1470 "190" "Les Cristaux" [45.59853806,6.795628609999999] 2647.8313584495277
47 "522" "3210" 1471 "73054052" "Roselend" [45.59853806,6.795628609999999] 2567.225463212172
47 "522" "3210" 1472 "73054562" "Les Balcons du Chantel" [45.59853806,6.795628609999999] 2551.6430549985753
47 "522" "3210" 1473 "73054110" "Gare routière - Le Charvet" [45.59853806,6.795628609999999] 2644.4784191543217
157 "523" "3204" 1464 "73054060" "Le Chantel" [45.59664,6.800889999999999] 2635.9505236762852
157 "523" "3204" 1465 "190" "Les Cristaux" [45.59664,6.800889999999999] 2570.187217253929
157 "523" "3204" 1466 "73054052" "Roselend" [45.59664,6.800889999999999] 2519.150797339883
157 "523" "3204" 1467 "73054562" "Les Balcons du Chantel" [45.59664,6.800889999999999] 2532.84177082079
157 "523" "3204" 1468 "73054110" "Gare routière - Le Charvet" [45.59853806,6.795628609999999] 2644.4784191543217
4 "515" "3215" 191 "73054110" "Gare routière - Le Charvet" [45.59853806,6.795628609999999] 2644.4784191543217
4 "515" "3215" 192 "73054561" "Les Balcons du Chantel" [45.59853806,6.795628609999999] 2555.5717292808067
4 "515" "3215" 193 "73054051" "Roselend" [45.59853806,6.795628609999999] 2568.494989488333
4 "515" "3215" 194 "191" "les cristaux" [45.59853806,6.795628609999999] 2649.5411467681056
4 "515" "3215" 195 "73054660" "Eden Arc" [45.59853806,6.795628609999999] 2815.567513397017
4 "515" "3215" 196 "73054060" "Le Chantel" [45.59853806,6.795628609999999] 2693.1506573896827
stop_without_stop_time WARNING 6

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.
42 "73054531" "rochefleur"
53 "73054212" "Cinéma"
64 "73054532" "rochefleur"
97 "73285130" "Garage Martin"
102 "73054140" "salle taillefer"
103 "73054330" "Bourg-Saint-Maurice"
stops_match_shape_out_of_order WARNING 1

stops_match_shape_out_of_order

Two stop entries are different than their arrival-departure order defined by shapes.txt.

This could indicate a problem with the location of the stops, the path of the shape, or the sequence of the stops for their trip.

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. stopTimeCsvRowNumber1 (?) The row number of the first faulty record from `stop_times.txt`. stopId1 (?) The id of the first stop that is referred to. stopName1 (?) The name of the first stop that is referred to. match1 (?) Latitude and longitude pair of the first matching location. stopTimeCsvRowNumber2 (?) The row number of the second faulty record from `stop_times.txt`. stopId2 (?) The id of the second stop that is referred to. stopName2 (?) The name of the second stop that is referred to. match2 (?) Latitude and longitude pair of the second matching location.
57 "275" "2238" 292 "73054032" "UCPA" [45.59956,6.800500000000001] 1254 "73054240" "CLUB MED Panorama" [45.599783043678066,6.8006379334625775]
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.
"20260409" "20260111" "20260328"