GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-07-21T07:09:49Z,
for the dataset file:///shared/irigo-angers_fb62352c.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
IRIGO
Publisher URL:
https://www.irigo.fr/
Feed Email:
N/A
Feed Language:
French
Feed Start Date:
2026-07-21
Feed End Date:
2026-10-19

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: 39
  • Shapes: 146
  • Stops: 1462
  • Trips: 2898

Specification Compliance report

7508 notices reported (0 errors, 4553 warnings, 2955 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 145

equal_shape_distance_diff_coordinates_distance_below_threshold

Two consecutive points have equal shape_dist_traveled and different lat/lon coordinates in shapes.txt and the distance between the two points is greater than 0 but less than 1.11m.

When sorted by shape.shape_pt_sequence, the values for shape_dist_traveled must increase along a shape. Two consecutive points with equal values for shape_dist_traveled and small difference of coordinates (greater than 0 but less than 1.11 m distance) result in a warning.

You can see more about this notice here.

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

shapeId (?) The id of the faulty shape. csvRowNumber (?) The row number from `shapes.txt`. shapeDistTraveled (?) The faulty record's `shape_dist_traveled` value. shapePtSequence (?) The faulty record's `shapes.shape_pt_sequence`. prevCsvRowNumber (?) The row number from `shapes.txt` of the previous shape point. prevShapeDistTraveled (?) The previous shape point's `shape_dist_traveled` value. prevShapePtSequence (?) The previous record's `shapes.shape_pt_sequence`. actualDistanceBetweenShapePoints (?) Actual distance traveled along the shape from the first shape point to the previous shape point.
"070044" 29791 5.716 244 29790 5.716 243 0.11119510161714974
"070044" 30572 21.545 1025 30571 21.545 1024 0.11119510161714974
"070044" 30722 23.391 1175 30721 23.391 1174 0.9021454446142835
"070041" 3549 0.787 35 3548 0.787 34 0.6838550871570108
"070041" 3959 7.104 445 3958 7.104 444 0.402519577186509
"050037" 56089 3.439 175 56088 3.439 174 0.43682758073410066
"31A0003" 60609 12.318 366 60608 12.318 365 0.46429816467970986
"090050" 25688 8.874 387 25687 8.874 386 0.3205887659577149
"090050" 25691 8.88 390 25690 8.88 389 0.22551557423782462
"090050" 25960 14.343 659 25959 14.343 658 0.2347635646241954
"302R0001" 47382 16.507 714 47381 16.507 713 0.1503901955281503
"41R0001" 89135 2.773 106 89134 2.773 105 0.11119510090982554
"41R0001" 89372 12.369 343 89371 12.369 342 0.23478295622739573
"39R0006" 44779 16.921 739 44778 16.921 738 0.13428994552289664
"070046" 24196 5.716 244 24195 5.716 243 0.11119510161714974
"070046" 24873 20.317 921 24872 20.317 920 0.11119510161714974
"070046" 25023 22.163 1071 25022 22.163 1070 0.9021454446142835
"250048" 59833 0.422 30 59832 0.422 29 0.5028269594864592
"250048" 60194 9.845 391 60193 9.845 390 0.0750917518959592
"250048" 60232 10.788 429 60231 10.788 428 0.3335853034368008
"250048" 60240 11.121 437 60239 11.121 436 0.31654164307271304
"250047" 59374 0.068 6 59373 0.068 5 0.31654164307271304
"250047" 59380 0.401 12 59379 0.401 11 0.3335853034368008
"250047" 59431 1.373 63 59430 1.373 62 0.15018416220621236
"250047" 59672 6.725 304 59671 6.725 303 0.46429816467970986
"40R0006" 47704 0.833 52 47703 0.833 51 0.15034569534096065
"40R0006" 47851 4.51 199 47850 4.51 198 0.30077094357684714
"40R0006" 48013 7.155 361 48012 7.155 360 0.2347615508052689
"090042" 8991 2.425 120 8990 2.425 119 0.11119510232447394
"090042" 9232 8.784 361 9231 8.784 360 0.22551557423782462
"090042" 9428 13.179 557 9427 13.179 556 0.57595802643794
"030038" 57179 4.265 270 57178 4.265 269 0.13420280896638423
"030038" 57468 11.829 559 57467 11.829 558 0.11119510090982554
"090040" 58111 6.996 276 58110 6.996 275 0.3205887659577149
"090040" 58114 7.002 279 58113 7.002 278 0.22551557423782462
"090040" 58383 12.465 548 58382 12.465 547 0.2347635646241954
"42R0003" 64827 0.833 52 64826 0.833 51 0.15034569534096065
"42R0003" 64932 3.82 157 64931 3.82 156 0.9022615653684556
"42R0003" 64992 4.916 217 64991 4.916 216 0.30077094357684714
"42R0004" 44833 0.833 52 44832 0.833 51 0.15034569534096065
"42R0004" 44938 3.82 157 44937 3.82 156 0.9022615653684556
"42R0004" 44998 4.916 217 44997 4.916 216 0.30077094357684714
"42R0004" 45586 23.147 805 45585 23.147 804 0.3419680047622404
"31AD0004" 74647 2.343 64 74646 2.343 63 0.3419162926075231
"31AD0004" 75209 18.939 626 75208 18.939 625 0.46429816467970986
"210050" 37436 13.296 622 37435 13.296 621 0.15013962218969967
"120050" 11540 4.691 255 11539 4.691 254 0.5998955011792375
"120050" 11646 6.808 361 11645 6.808 360 0.13417020423405132
"120050" 11705 7.593 420 11704 7.593 419 0.37367938597949363
"34A0008" 62250 3.483 172 62249 3.483 171 0.44880558348035676
equal_shape_distance_same_coordinates WARNING 3744

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 3744 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`.
"070044" 29574 0.602 27 29573 0.602 26
"070044" 29588 1.077 41 29587 1.077 40
"070044" 29601 1.399 54 29600 1.399 53
"070044" 29627 1.776 80 29626 1.776 79
"070044" 29638 2.112 91 29637 2.112 90
"070044" 29647 2.401 100 29646 2.401 99
"070044" 29655 2.622 108 29654 2.622 107
"070044" 29662 2.916 115 29661 2.916 114
"070044" 29673 3.4 126 29672 3.4 125
"070044" 29682 3.78 135 29681 3.78 134
"070044" 29702 3.979 155 29701 3.979 154
"070044" 29710 4.239 163 29709 4.239 162
"070044" 29721 4.646 174 29720 4.646 173
"070044" 29776 5.425 229 29775 5.425 228
"070044" 29790 5.716 243 29789 5.716 242
"070044" 29807 5.964 260 29806 5.964 259
"070044" 29819 6.369 272 29818 6.369 271
"070044" 29829 6.747 282 29828 6.747 281
"070044" 29844 6.967 297 29843 6.967 296
"070044" 29852 7.338 305 29851 7.338 304
"070044" 29859 7.628 312 29858 7.628 311
"070044" 29863 7.869 316 29862 7.869 315
"070044" 29884 8.249 337 29883 8.249 336
"070044" 29890 8.426 343 29889 8.426 342
"070044" 29896 8.7 349 29895 8.7 348
"070044" 29910 8.925 363 29909 8.925 362
"070044" 29922 9.126 375 29921 9.126 374
"070044" 29932 9.371 385 29931 9.371 384
"070044" 29944 9.703 397 29943 9.703 396
"070044" 29961 9.992 414 29960 9.992 413
"070044" 29972 10.207 425 29971 10.207 424
"070044" 29989 10.634 442 29988 10.634 441
"070044" 30001 10.926 454 30000 10.926 453
"070044" 30010 11.122 463 30009 11.122 462
"070044" 30022 11.48 475 30021 11.48 474
"070044" 30035 11.775 488 30034 11.775 487
"070044" 30040 11.983 493 30039 11.983 492
"070044" 30050 12.406 503 30049 12.406 502
"070044" 30058 12.65 511 30057 12.65 510
"070044" 30084 13.182 537 30083 13.182 536
"070044" 30091 13.528 544 30090 13.528 543
"070044" 30107 13.897 560 30106 13.897 559
"070044" 30121 14.22 574 30120 14.22 573
"070044" 30145 14.557 598 30144 14.557 597
"070044" 30168 14.906 621 30167 14.906 620
"070044" 30187 15.227 640 30186 15.227 639
"070044" 30205 15.513 658 30204 15.513 657
"070044" 30218 15.793 671 30217 15.793 670
"070044" 30256 16.206 709 30255 16.206 708
"070044" 30265 16.407 718 30264 16.407 717
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 662

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 662 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.
"trips.txt" "trip_headsign" "SAINT SERGE" 1270
"trips.txt" "trip_headsign" "SAINT SERGE" 1284
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1351
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1352
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1353
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1354
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1358
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1359
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 1360
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1362
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1364
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1366
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1369
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1373
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1376
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1380
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1386
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1388
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1389
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1390
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1391
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1395
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1399
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1400
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1412
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1413
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1417
"trips.txt" "trip_headsign" "SAINT SERGE" 1418
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1421
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1422
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1423
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 1425
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1426
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1429
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1431
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1436
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1438
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1444
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1445
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1446
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1448
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1450
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 1451
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 1453
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1454
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1456
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1457
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1460
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 1461
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 1462
feed_valid_beyond_total_service_window INFO 1

feed_valid_beyond_total_service_window

The feed is valid 14 days beyond its total service window.

You can see more about this notice here.

feedStartDate (?) The feed start date from feed_info.txt. feedEndDate (?) The feed end date from feed_info.txt. serviceWindowStartDate (?) The earliest active service date across all services. serviceWindowEndDate (?) The latest active service date across all services.
"2026-07-21" "2026-10-19" "2026-07-06" "2026-08-31"
service_window_outside_feed_period INFO 56

service_window_outside_feed_period

A service window is not covered by the feed's validity period.

You can see more about this notice here.

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

serviceId (?) The service_id whose active window extends outside the feed validity period. serviceWindowStartDate (?) The first active date of the service window. serviceWindowEndDate (?) The last active date of the service window. daysBeforeFeedStart (?) Number of days the service window extends before feed_start_date (0 if none). daysAfterFeedEnd (?) Number of days the service window extends after feed_end_date (0 if none).
"2026T-ETEPRTMO-Lun-Sam-00-B" "2026-07-20" "2026-07-23" 1 0
"2026T-ETEPRTMO-Lun-Sam-00-A" "2026-07-20" "2026-07-23" 1 0
"SUB2526-SUB-ETE-Semaine-88-301" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-ETE-Semaine-88-302" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-ETE-Semaine-88-39" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-ETE-Semaine-88-38" "2026-07-06" "2026-08-31" 15 0
"2026T-ETE_07-Lun-Sam-00-07" "2026-07-20" "2026-08-29" 1 0
"SUB2526-SUB-ETE-Semaine-88-37" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-ETE-Semaine-88-36" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-ETE-Semaine-88-35" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-ETE-Semaine-88-34" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-ETE-Semaine-88-33" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-ETE-Semaine-88-32" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-ETE-Semaine-88-31" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-ETE-Semaine-88-30" "2026-07-06" "2026-08-31" 15 0
"SUB2526-SUB-SAT-Samedi-09-24" "2026-07-11" "2026-08-29" 10 0
"AFF26T-ETE_22-Semaine-00-22" "2026-07-20" "2026-08-28" 1 0
"2026T-ETE_02-Lun-Sam-00-02" "2026-07-20" "2026-08-29" 1 0
"AFF26T-ETE_12-Semaine-00-12" "2026-07-20" "2026-08-28" 1 0
"2026T-Tbu_nlMO-Semaine-00-Tbus" "2026-07-20" "2026-07-23" 1 0
"2026T-ETE_01-Lun-Sam-00-01" "2026-07-20" "2026-08-29" 1 0
"2026T-ETE_10-Lun-Sam-00-10" "2026-07-20" "2026-08-29" 1 0
"2026T-ETE_06-Lun-Sam-00-06" "2026-07-20" "2026-08-29" 1 0
"2026T-ETE_08-Lun-Sam-00-1111100-08" "2026-07-20" "2026-08-28" 1 0
"SUB2526-SUB-ETE-Semaine-88-24" "2026-07-06" "2026-08-31" 15 0
"2026T-ETE_09-Lun-Sam-00-09" "2026-07-20" "2026-08-29" 1 0
"2026T-ETE_10-Lun-Sam-00-1111100-10" "2026-07-20" "2026-08-28" 1 0
"2026T-ETE_20-Lun-Sam-00-20" "2026-07-20" "2026-08-29" 1 0
"2026T-ETE_09-Lun-Sam-00-1111100-09" "2026-07-20" "2026-08-28" 1 0
"2026T-ETE_05-Lun-Sam-00-05" "2026-07-20" "2026-08-29" 1 0
"SUB2526-SUB-SAT-Samedi-09-35" "2026-07-11" "2026-08-29" 10 0
"SUB2526-SUB-SAT-Samedi-09-36" "2026-07-11" "2026-08-29" 10 0
"SUB2526-SUB-SAT-Samedi-09-33" "2026-07-11" "2026-08-29" 10 0
"SUB2526-SUB-SAT-Samedi-09-34" "2026-07-11" "2026-08-29" 10 0
"SUB2526-SUB-SAT-Samedi-09-31" "2026-07-11" "2026-08-29" 10 0
"2026T-ETEPRTMO-Lun-Sam-00-C" "2026-07-20" "2026-07-23" 1 0
"SUB2526-SUB-SAT-Samedi-09-32" "2026-07-11" "2026-08-29" 10 0
"AFF26T-ETE_21-Semaine-00-21" "2026-07-20" "2026-08-28" 1 0
"SUB2526-SUB-SAT-Samedi-09-30" "2026-07-11" "2026-08-29" 10 0
"AFF26T-ETE_25-Semaine-00-25" "2026-07-20" "2026-08-28" 1 0
"SUB2526-SUB-SAT-Samedi-09-39" "2026-07-11" "2026-08-29" 10 0
"SUB2526-SUB-SAT-Samedi-09-37" "2026-07-11" "2026-08-29" 10 0
"SUB2526-SUB-SAT-Samedi-09-38" "2026-07-11" "2026-08-29" 10 0
"2026T-ETE_04-Lun-Sam-00-04" "2026-07-20" "2026-08-29" 1 0
"2026T-ETE_07-Lun-Sam-00-1111100-07" "2026-07-20" "2026-08-28" 1 0
"SUB2526-SUB-SAT-Samedi-09-42" "2026-07-11" "2026-08-29" 10 0
"SUB2526-SUB-SAT-Samedi-09-40" "2026-07-11" "2026-08-29" 10 0
"SUB2526-SUB-SAT-Samedi-09-41" "2026-07-11" "2026-08-29" 10 0
"2026T-ETE_08-Lun-Sam-00-08" "2026-07-20" "2026-08-29" 1 0
"SUB2526-SUB-ETE-Semaine-88-42" "2026-07-06" "2026-08-31" 15 0
unsorted_stop_times INFO 2898

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 2898 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.
"6629349" 33687 33719
"6630338" 40416 40480
"6630337" 71406 71470
"6630336" 48682 48746
"6630335" 954 1018
"6630339" 10225 10289
"6630330" 50941 51005
"6630334" 68505 68569
"6630333" 17129 17193
"3184TX" 83210 83232
"6630332" 41406 41470
"6630331" 36071 36135
"6638299" 3113 3121
"6638298" 52806 52823
"6638297" 84975 84983
"6638296" 27854 27872
"6638295" 87470 87478
"6638294" 3316 3334
"6638293" 18974 18982
"6638292" 425 442
"6638291" 58742 58766
"6638290" 29556 29564
"6630349" 34251 34315
"6632528" 57404 57469
"6630348" 8149 8188
"6629359" 61822 61855
"6632529" 86638 86703
"6630347" 60569 60633
"6630346" 13297 13361
"6632524" 50044 50110
"6632525" 57137 57203
"6632526" 31513 31579
"3650" 86393 86406
"3651" 22563 22576
"6632527" 50664 50729
"6630341" 81288 81352
"6632521" 2100 2166
"6630340" 15209 15273
"6632522" 19010 19076
"6632523" 25339 25405
"6630345" 23962 24026
"6630344" 85853 85917
"6630343" 86933 86997
"6630342" 47819 47883
"6629350" 53564 53596
"6629352" 8682 8715
"6629351" 41553 41585
"6629354" 21228 21260
"6629353" 3550 3583
"6629356" 27155 27188