GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-01-16T16:04:55Z,
for the dataset file:///shared/irigos.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-01-15
Feed End Date:
2026-04-15

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: 104
  • Shapes: 347
  • Stops: 1785
  • Trips: 6557

Specification Compliance report

7237 notices reported (0 errors, 7237 warnings, 0 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 389

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 389 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.
"195R0002" 50862 8.926 511 50861 8.926 510 0.7657901347658616
"070041" 6540 0.787 35 6539 0.787 34 0.6838550871570108
"070041" 6950 7.104 445 6949 7.104 444 0.402519577186509
"A0117" 63339 7.216 214 63338 7.216 213 0.5024957226425847
"070042" 36242 5.716 244 36241 5.716 243 0.11119510161714974
"070042" 36919 20.317 921 36918 20.317 920 0.11119510161714974
"070042" 37069 22.163 1071 37068 22.163 1070 0.9021454446142835
"070040" 5948 5.716 244 5947 5.716 243 0.11119510161714974
"41R0007" 58360 3.734 169 58359 3.734 168 0.3419572818714045
"41R0007" 58664 12.546 473 58663 12.546 472 0.7659829246139447
"181R0001" 103198 12.062 682 103197 12.062 681 0.7473338844615296
"A0111" 41454 7.216 214 41453 7.216 213 0.5024957226425847
"41R0002" 97000 11.8 305 96999 11.8 304 0.7659829246139447
"155A0002" 132064 3.817 182 132063 3.817 181 0.0752363503418087
"355A0012" 189818 16.735 545 189817 16.735 544 0.34197658272818593
"355A0012" 189838 16.882 565 189837 16.882 564 0.2517612544174052
"32A0008" 55868 15.996 549 55867 15.996 548 0.46429816467970986
"32A0009" 82475 14.488 453 82474 14.488 452 0.46429816467970986
"070050" 34088 5.716 244 34087 5.716 243 0.11119510161714974
"070050" 34869 21.545 1025 34868 21.545 1024 0.11119510161714974
"070050" 35019 23.391 1175 35018 23.391 1174 0.9021454446142835
"030038" 77104 4.265 270 77103 4.265 269 0.13420280896638423
"030040" 76725 2.465 158 76724 2.465 157 0.13420280896638423
"32A0011" 56532 15.165 533 56531 15.165 532 0.46429816467970986
"133R0001" 49243 2.583 80 49242 2.583 79 0.6852641345091682
"133R0001" 49455 8.778 292 49454 8.778 291 0.18681688389172924
"133R0001" 49464 8.831 301 49463 8.831 300 0.5610193688388045
"122A0001" 65993 0.068 6 65992 0.068 5 0.31654164307271304
"122A0001" 65999 0.401 12 65998 0.401 11 0.3335853034368008
"122A0001" 66266 6.706 279 66265 6.706 278 0.46429816467970986
"150A0032" 68655 2.668 126 68654 2.668 125 0.37632951677948834
"150A0032" 68802 5.915 273 68801 5.915 272 0.46954099566081053
"34A0006" 85662 0.233 16 85661 0.233 15 0.5602851968175391
"A0019" 33095 7.216 214 33094 7.216 213 0.5024957226425847
"120050" 15669 4.691 255 15668 4.691 254 0.5998955011792375
"120050" 15775 6.808 361 15774 6.808 360 0.13417020423405132
"120050" 15834 7.593 420 15833 7.593 419 0.37367938597949363
"36R0006" 206228 0.969 48 206227 0.969 47 0.32054861127200435
"36R0006" 206233 1.005 53 206232 1.005 52 0.32054786568016425
"36R0006" 206357 3.207 177 206356 3.207 176 0.34194868643532345
"131R0001" 114756 2.583 80 114755 2.583 79 0.6852641345091682
"131R0001" 115318 18.352 642 115317 18.352 641 0.9335842048084959
"120049" 40085 0.0 1 40084 0.0 0 0.4025146626793772
"120049" 40141 1.859 57 40140 1.859 56 0.37367938597949363
"B0059" 45776 5.454 162 45775 5.454 161 0.5024957226425847
"354R0002" 73242 0.762 66 73241 0.762 65 0.3419162926075231
"354R0002" 73243 0.762 67 73242 0.762 66 0.5758638249890285
"24A0024" 165649 19.389 677 165648 19.389 676 0.07516983453121931
"34A0018" 182478 0.233 17 182477 0.233 16 0.5602851968175391
"33R0017" 181192 2.742 221 181191 2.742 220 0.4489902069142775
equal_shape_distance_same_coordinates WARNING 5642

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 5642 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`.
"070041" 6528 0.494 23 6527 0.494 22
"070041" 6541 0.787 36 6540 0.787 35
"070041" 6559 1.032 54 6558 1.032 53
"070041" 6572 1.292 67 6571 1.292 66
"070041" 6612 1.618 107 6611 1.618 106
"070041" 6623 1.822 118 6622 1.822 117
"070041" 6683 3.162 178 6682 3.162 177
"070041" 6702 3.461 197 6701 3.461 196
"070041" 6712 3.632 207 6711 3.632 206
"070041" 6719 3.902 214 6718 3.902 213
"070041" 6737 4.166 232 6736 4.166 231
"070041" 6749 4.508 244 6748 4.508 243
"070041" 6766 4.856 261 6765 4.856 260
"070041" 6809 5.301 304 6808 5.301 303
"070041" 6833 5.652 328 6832 5.652 327
"070041" 6862 5.988 357 6861 5.988 356
"070041" 6877 6.288 372 6876 6.288 371
"070041" 6891 6.428 386 6890 6.428 385
"070041" 6936 6.86 431 6935 6.86 430
"070041" 6951 7.104 446 6950 7.104 445
"070041" 6973 7.384 468 6972 7.384 467
"070041" 6995 7.764 490 6994 7.764 489
"070041" 7000 7.894 495 6999 7.894 494
"070041" 7031 8.3 526 7030 8.3 525
"070041" 7035 8.498 530 7034 8.498 529
"070041" 7080 9.698 575 7079 9.698 574
"070041" 7097 10.031 592 7096 10.031 591
"070041" 7114 10.344 609 7113 10.344 608
"070041" 7130 10.717 625 7129 10.717 624
"070041" 7149 11.098 644 7148 11.098 643
"070041" 7156 11.313 651 7155 11.313 650
"070041" 7192 11.674 687 7191 11.674 686
"070041" 7207 11.992 702 7206 11.992 701
"070041" 7238 12.338 733 7237 12.338 732
"070041" 7256 12.628 751 7255 12.628 750
"070041" 7297 13.032 792 7296 13.032 791
"070041" 7317 13.297 812 7316 13.297 811
"070041" 7336 13.757 831 7335 13.757 830
"070041" 7353 14.12 848 7352 14.12 847
"070041" 7358 14.361 853 7357 14.361 852
"070041" 7372 14.784 867 7371 14.784 866
"070041" 7380 15.032 875 7379 15.032 874
"070041" 7390 15.452 885 7389 15.452 884
"070041" 7395 15.658 890 7394 15.658 889
"070041" 7410 15.968 905 7409 15.968 904
"070041" 7424 16.36 919 7423 16.36 918
"070041" 7433 16.542 928 7432 16.542 927
"070041" 7440 16.709 935 7439 16.709 934
"070041" 7453 17.15 948 7452 17.15 947
"070041" 7470 17.418 965 7469 17.418 964
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 1200

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 1200 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" "18-juin" 485
"stops.txt" "stop_name" "18-juin" 486
"stops.txt" "stop_name" "08-mai" 687
"stops.txt" "stop_name" "08-mai" 688
"trips.txt" "trip_headsign" "IRIGO NUIT" 2
"trips.txt" "trip_headsign" "IRIGO NUIT" 3
"trips.txt" "trip_headsign" "IRIGO NUIT" 4
"trips.txt" "trip_headsign" "IRIGO NUIT" 5
"trips.txt" "trip_headsign" "IRIGO NUIT" 6
"trips.txt" "trip_headsign" "IRIGO NUIT" 7
"trips.txt" "trip_headsign" "IRIGO NUIT" 8
"trips.txt" "trip_headsign" "IRIGO NUIT" 9
"trips.txt" "trip_headsign" "IRIGO NUIT" 11
"trips.txt" "trip_headsign" "IRIGO NUIT" 12
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 105
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 112
"trips.txt" "trip_headsign" "SAINT SERGE" 172
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 198
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 199
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 201
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 205
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 206
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 209
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 211
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 219
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 220
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 221
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 222
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 238
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 239
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 244
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 246
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 248
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 253
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 254
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 257
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 259
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 260
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 261
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 263
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 264
"trips.txt" "trip_headsign" "AVRILLE ARDENNE" 266
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 267
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 271
"trips.txt" "trip_headsign" "ANGERS ROSERAIE" 277
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 278
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 280
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 281
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 287
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 289
non_ascii_or_non_printable_char WARNING 3

non_ascii_or_non_printable_char

Non ascii or non printable char in ID field.

A value of a field with type ID contains non ASCII or non printable characters. This is not recommended.

You can see more about this notice here.

filename (?) Name of the faulty file. csvRowNumber (?) Row number of the faulty record. columnName (?) Name of the column where the error occurred. fieldValue (?) Faulty value.
"stops.txt" 1786 "stop_id" "Domaine du Val -reporté-"
"stop_times.txt" 220520 "stop_id" "Domaine du Val -reporté-"
"stop_times.txt" 220536 "stop_id" "Domaine du Val -reporté-"
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`.
"115" 105 "115" "115 St Aubin la Salle"