GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-04-23T19:54:42Z,
for the dataset file:///shared/irigos_69a6edc5.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-04-22
Feed End Date:
2026-07-21

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: 351
  • Stops: 1814
  • Trips: 6960

Specification Compliance report

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

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 394

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 394 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" 50673 8.926 511 50672 8.926 510 0.7657901347658616
"070044" 34785 5.716 244 34784 5.716 243 0.11119510161714974
"070044" 35566 21.545 1025 35565 21.545 1024 0.11119510161714974
"070044" 35716 23.391 1175 35715 23.391 1174 0.9021454446142835
"070041" 6558 0.787 35 6557 0.787 34 0.6838550871570108
"070041" 6968 7.104 445 6967 7.104 444 0.402519577186509
"A0117" 63177 7.216 214 63176 7.216 213 0.5024957226425847
"070040" 5966 5.716 244 5965 5.716 243 0.11119510161714974
"41R0007" 58187 3.734 169 58186 3.734 168 0.3419572818714045
"41R0007" 58491 12.546 473 58490 12.546 472 0.7659829246139447
"181R0001" 101115 12.062 682 101114 12.062 681 0.7473338844615296
"A0111" 41265 7.216 214 41264 7.216 213 0.5024957226425847
"070047" 16259 5.63 269 16258 5.63 268 0.373966352679177
"41R0002" 94912 11.8 305 94911 11.8 304 0.7659829246139447
"155A0002" 126939 3.817 182 126938 3.817 181 0.0752363503418087
"355A0012" 184919 16.735 545 184918 16.735 544 0.34197658272818593
"355A0012" 184939 16.882 565 184938 16.882 564 0.2517612544174052
"32ADév0011" 203690 17.685 617 203689 17.685 616 0.46429816467970986
"070046" 27822 5.716 244 27821 5.716 243 0.11119510161714974
"070046" 28499 20.317 921 28498 20.317 920 0.11119510161714974
"070046" 28649 22.163 1071 28648 22.163 1070 0.9021454446142835
"32A0008" 55691 15.996 549 55690 15.996 548 0.46429816467970986
"32A0009" 80255 14.488 453 80254 14.488 452 0.46429816467970986
"149R0005" 123351 12.536 527 123350 12.536 526 0.6009504008010627
"030038" 74884 4.265 270 74883 4.265 269 0.13420280896638423
"030040" 74505 2.465 158 74504 2.465 157 0.13420280896638423
"32A0011" 56355 15.165 533 56354 15.165 532 0.46429816467970986
"35ADév0004" 207885 11.396 590 207884 11.396 589 0.3166948599978135
"35ADév0004" 207899 11.436 604 207898 11.436 603 0.9348705261466387
"133R0001" 49054 2.583 80 49053 2.583 79 0.6852641345091682
"133R0001" 49266 8.778 292 49265 8.778 291 0.18681688389172924
"133R0001" 49275 8.831 301 49274 8.831 300 0.5610193688388045
"122A0001" 65831 0.068 6 65830 0.068 5 0.31654164307271304
"122A0001" 65837 0.401 12 65836 0.401 11 0.3335853034368008
"122A0001" 65859 1.073 34 65858 1.073 33 0.622540243864726
"122A0001" 66125 6.721 300 66124 6.721 299 0.46429816467970986
"204A0002" 52323 12.464 410 52322 12.464 409 0.46943434632388426
"150A0032" 67856 2.668 126 67855 2.668 125 0.37632951677948834
"150A0032" 68003 5.915 273 68002 5.915 272 0.46954099566081053
"34A0006" 83484 0.233 16 83483 0.233 15 0.5602851968175391
"34A0006" 84172 15.788 704 84171 15.788 703 0.31668947417622634
"A0019" 33250 7.216 214 33249 7.216 213 0.5024957226425847
"120050" 14652 4.691 255 14651 4.691 254 0.5998955011792375
"120050" 14758 6.808 361 14757 6.808 360 0.13417020423405132
"120050" 14817 7.593 420 14816 7.593 419 0.37367938597949363
"36R0006" 198019 0.969 48 198018 0.969 47 0.32054861127200435
"36R0006" 198024 1.005 53 198023 1.005 52 0.32054786568016425
"36R0006" 198148 3.207 177 198147 3.207 176 0.34194868643532345
"131R0001" 112032 2.583 80 112031 2.583 79 0.6852641345091682
"131R0001" 112594 18.352 642 112593 18.352 641 0.9335842048084959
equal_shape_distance_same_coordinates WARNING 5694

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 5694 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" 34568 0.602 27 34567 0.602 26
"070044" 34582 1.077 41 34581 1.077 40
"070044" 34595 1.399 54 34594 1.399 53
"070044" 34621 1.776 80 34620 1.776 79
"070044" 34632 2.112 91 34631 2.112 90
"070044" 34641 2.401 100 34640 2.401 99
"070044" 34649 2.622 108 34648 2.622 107
"070044" 34656 2.916 115 34655 2.916 114
"070044" 34667 3.4 126 34666 3.4 125
"070044" 34676 3.78 135 34675 3.78 134
"070044" 34696 3.979 155 34695 3.979 154
"070044" 34704 4.239 163 34703 4.239 162
"070044" 34715 4.646 174 34714 4.646 173
"070044" 34770 5.425 229 34769 5.425 228
"070044" 34784 5.716 243 34783 5.716 242
"070044" 34801 5.964 260 34800 5.964 259
"070044" 34813 6.369 272 34812 6.369 271
"070044" 34823 6.747 282 34822 6.747 281
"070044" 34838 6.967 297 34837 6.967 296
"070044" 34846 7.338 305 34845 7.338 304
"070044" 34853 7.628 312 34852 7.628 311
"070044" 34857 7.869 316 34856 7.869 315
"070044" 34878 8.249 337 34877 8.249 336
"070044" 34884 8.426 343 34883 8.426 342
"070044" 34890 8.7 349 34889 8.7 348
"070044" 34904 8.925 363 34903 8.925 362
"070044" 34916 9.126 375 34915 9.126 374
"070044" 34926 9.371 385 34925 9.371 384
"070044" 34938 9.703 397 34937 9.703 396
"070044" 34955 9.992 414 34954 9.992 413
"070044" 34966 10.207 425 34965 10.207 424
"070044" 34983 10.634 442 34982 10.634 441
"070044" 34995 10.926 454 34994 10.926 453
"070044" 35004 11.122 463 35003 11.122 462
"070044" 35016 11.48 475 35015 11.48 474
"070044" 35029 11.775 488 35028 11.775 487
"070044" 35034 11.983 493 35033 11.983 492
"070044" 35044 12.406 503 35043 12.406 502
"070044" 35052 12.65 511 35051 12.65 510
"070044" 35078 13.182 537 35077 13.182 536
"070044" 35085 13.528 544 35084 13.528 543
"070044" 35101 13.897 560 35100 13.897 559
"070044" 35115 14.22 574 35114 14.22 573
"070044" 35139 14.557 598 35138 14.557 597
"070044" 35162 14.906 621 35161 14.906 620
"070044" 35181 15.227 640 35180 15.227 639
"070044" 35199 15.513 658 35198 15.513 657
"070044" 35212 15.793 671 35211 15.793 670
"070044" 35250 16.206 709 35249 16.206 708
"070044" 35259 16.407 718 35258 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 1377

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 1377 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" "IRIGO NUIT" 2
"trips.txt" "trip_headsign" "IRIGO NUIT" 5
"trips.txt" "trip_headsign" "STE GEMMES - BOUCHEMAINE" 6
"trips.txt" "trip_headsign" "IRIGO NUIT" 7
"trips.txt" "trip_headsign" "IRIGO NUIT" 8
"trips.txt" "trip_headsign" "ST JEAN DE LINIÈRES" 13
"trips.txt" "trip_headsign" "STE GEMMES - BOUCHEMAINE" 16
"trips.txt" "trip_headsign" "IRIGO NUIT" 17
"trips.txt" "trip_headsign" "IRIGO NUIT" 20
"trips.txt" "trip_headsign" "IRIGO NUIT" 21
"trips.txt" "trip_headsign" "IRIGO NUIT" 22
"trips.txt" "trip_headsign" "IRIGO NUIT" 23
"trips.txt" "trip_headsign" "IRIGO NUIT" 24
"trips.txt" "trip_headsign" "ANGERS GARES" 49
"trips.txt" "trip_headsign" "ANGERS GARES" 53
"trips.txt" "trip_headsign" "ANGERS GARES" 66
"trips.txt" "trip_headsign" "TRELAZE GARE" 86
"trips.txt" "trip_headsign" "TRELAZE GARE" 89
"trips.txt" "trip_headsign" "TRELAZE GARE" 90
"trips.txt" "trip_headsign" "VILLEVÊQUE - SOUCELLES" 112
"trips.txt" "trip_headsign" "LE PLESSIS GRAMMOIRE" 119
"trips.txt" "trip_headsign" "VILLEVÊQUE - SOUCELLES" 121
"trips.txt" "trip_headsign" "VILLEVÊQUE - SOUCELLES" 122
"trips.txt" "trip_headsign" "LA MEMBROLLE - PRUILLÉ" 127
"trips.txt" "trip_headsign" "LE PLESSIS GRAMMOIRE" 134
"trips.txt" "trip_headsign" "ST JEAN DE LINIÈRES" 146
"trips.txt" "trip_headsign" "ST BARTHÉLEMY" 154
"trips.txt" "trip_headsign" "LE PLESSIS GRAMMOIRE PELLOUAILLES" 156
"trips.txt" "trip_headsign" "ST BARTHÉLEMY" 159
"trips.txt" "trip_headsign" "STE GEMMES" 161
"trips.txt" "trip_headsign" "ST JEAN DE LINIÈRES" 170
"trips.txt" "trip_headsign" "STE GEMMES" 173
"trips.txt" "trip_headsign" "STE GEMMES SUR LOIRE" 177
"trips.txt" "trip_headsign" "ST JEAN DE LINIÈRES" 179
"trips.txt" "trip_headsign" "LE PLESSIS MACÉ" 187
"trips.txt" "trip_headsign" "FOCH-MAISON BLEUE" 286
"trips.txt" "trip_headsign" "LE PLESSIS GRAMMOIRE PELLOUAILLES" 298
"trips.txt" "trip_headsign" "LE PLESSIS GRAMMOIRE" 421
"trips.txt" "trip_headsign" "SAINT SERGE" 478
"trips.txt" "trip_headsign" "COLLÈGE JEAN ZAY" 519
"trips.txt" "trip_headsign" "ANDARD CLOTEAU" 535
"trips.txt" "trip_headsign" "LA MEIGNANNE" 627
"trips.txt" "trip_headsign" "LA MEIGNANNE" 646
"trips.txt" "trip_headsign" "LE PLESSIS GRAMMOIRE" 676
"trips.txt" "trip_headsign" "SAINT SERGE" 690
"trips.txt" "trip_headsign" "LE PLESSIS GRAMMOIRE" 721
"trips.txt" "trip_headsign" "LA MEIGNANNE" 738
"trips.txt" "trip_headsign" "BELLE BEILLE CAMPUS" 740
"trips.txt" "trip_headsign" "MONTREUIL-JUIGNÉ" 762
"trips.txt" "trip_headsign" "PLESSIS GRAMMOIRE - SARRIGNÉ" 763
non_ascii_or_non_printable_char WARNING 8231

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.

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

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" 1698 "stop_id" "Domaine du Val -reporté-"
"trips.txt" 6688 "shape_id" "32ADév009"
"trips.txt" 6689 "shape_id" "32RDév0015"
"trips.txt" 6690 "shape_id" "32ADév009"
"trips.txt" 6691 "shape_id" "32RDév0015"
"trips.txt" 6692 "shape_id" "32RDév0015"
"trips.txt" 6693 "shape_id" "32ADév009"
"trips.txt" 6695 "shape_id" "32RDév0015"
"trips.txt" 6696 "shape_id" "32ADév009"
"trips.txt" 6697 "shape_id" "32RDév0016"
"trips.txt" 6698 "shape_id" "32ADév009"
"trips.txt" 6699 "shape_id" "32RDév0016"
"trips.txt" 6700 "shape_id" "32ADév008"
"trips.txt" 6701 "shape_id" "32RDév0016"
"trips.txt" 6702 "shape_id" "32ADév008"
"trips.txt" 6703 "shape_id" "32RDév0017"
"trips.txt" 6705 "shape_id" "32ADév008"
"trips.txt" 6706 "shape_id" "32RDév0016"
"trips.txt" 6707 "shape_id" "32ADév008"
"trips.txt" 6708 "shape_id" "32RDév0016"
"trips.txt" 6710 "shape_id" "32RDév0016"
"trips.txt" 6711 "shape_id" "32RDév0016"
"trips.txt" 6739 "shape_id" "32ADév0011"
"trips.txt" 6750 "shape_id" "35ADév0004"
"trips.txt" 6751 "shape_id" "35RDév0016"
"trips.txt" 6752 "shape_id" "35RDév0016"
"trips.txt" 6753 "shape_id" "35ADév0004"
"trips.txt" 6754 "shape_id" "35RDév0016"
"trips.txt" 6755 "shape_id" "35RDév0016"
"trips.txt" 6756 "shape_id" "35ADév0004"
"trips.txt" 6757 "shape_id" "35RDév0016"
"trips.txt" 6758 "shape_id" "35RDév0016"
"trips.txt" 6759 "shape_id" "35ADév0004"
"trips.txt" 6760 "shape_id" "35RDév0016"
"trips.txt" 6761 "shape_id" "35RDév0016"
"trips.txt" 6762 "shape_id" "35ADév0004"
"trips.txt" 6763 "shape_id" "35RDév0016"
"trips.txt" 6764 "shape_id" "35ADév0004"
"trips.txt" 6765 "shape_id" "35RDév0016"
"trips.txt" 6766 "shape_id" "35ADév0004"
"trips.txt" 6767 "shape_id" "35ADév0004"
"trips.txt" 6769 "shape_id" "35ADév0004"
"trips.txt" 6770 "shape_id" "35RDév0016"
"trips.txt" 6771 "shape_id" "35ADév0004"
"trips.txt" 6772 "shape_id" "35RDév0016"
"trips.txt" 6775 "shape_id" "35ADév0004"
"trips.txt" 6776 "shape_id" "35RDév0016"
"trips.txt" 6778 "shape_id" "35ADév0004"
"trips.txt" 6779 "shape_id" "35RDév0016"
"trips.txt" 6780 "shape_id" "35ADév0004"
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"
stop_too_far_from_shape WARNING 9

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.
6828 "B0025" "6659870" 9576 "2MOLIE" "Molière" [47.476212,-0.550724] 438.5448349954893
6828 "B0025" "6659870" 9864 "2DOUT" "Doutre-Maine" [47.476212,-0.550724] 787.409708755159
6828 "B0025" "6659870" 10152 "2QUAI" "Le Quai" [47.476212,-0.550724] 1272.1771554722786
6828 "B0025" "6659870" 10440 "2FARC" "Farcy" [47.476212,-0.550724] 2027.3587208170056
6828 "B0025" "6659870" 10728 "2ELYS" "Élysée" [47.476212,-0.550724] 2632.344269291116
6828 "B0025" "6659870" 11016 "2PATT" "Patton" [47.476212,-0.550724] 3172.3768216220515
6828 "B0025" "6659870" 11304 "2BARR" "La Barre" [47.476212,-0.550724] 3634.881157803712
6828 "B0025" "6659870" 11592 "2BEAU" "Beaussier" [47.476212,-0.550724] 3640.7478958251236
6828 "B0025" "6659870" 11880 "1BBCA" "Belle-Beille Campus" [47.476212,-0.550724] 3965.426398288636