GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-05-04T18:02:12Z,
for the dataset file:///shared/rubis-fra_e7bccb95.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: 0
  • Routes: 120
  • Shapes: 659
  • Stops: 1214
  • Trips: 2047

Specification Compliance report

5766 notices reported (13 errors, 5753 warnings, 0 infos)

Notice Code Severity Total
duplicate_key ERROR 13

duplicate_key

Duplicated entity.

The values of the given key and rows are duplicates.

You can see more about this notice here.

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.
"trips.txt" 306 307 "trip_id" "61314"
"trips.txt" 306 308 "trip_id" "61314"
"trips.txt" 317 319 "trip_id" "61315"
"trips.txt" 318 321 "trip_id" "61318"
"trips.txt" 320 322 "trip_id" "61316"
"trips.txt" 317 323 "trip_id" "61315"
"trips.txt" 318 324 "trip_id" "61318"
"trips.txt" 318 326 "trip_id" "61318"
"trips.txt" 325 327 "trip_id" "61317"
"trips.txt" 424 426 "trip_id" "72499"
"trips.txt" 427 428 "trip_id" "72500"
"trips.txt" 609 611 "trip_id" "67828"
"trips.txt" 1494 1601 "trip_id" "61151"
equal_shape_distance_same_coordinates WARNING 4214

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 4214 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`.
"105-775" 29826 1450.98 30 29827 1450.98 29
"105-775" 29911 19863.6 108 29910 19863.6 107
"105-775" 29920 21283.1 115 29919 21283.1 114
"105-775" 29903 22537.5 122 29902 22537.5 121
"105-775" 29899 23353.6 129 29898 23353.6 128
"105-775" 29952 24854.2 155 29951 24854.2 154
"105-775" 29958 27001.6 161 29957 27001.6 160
"105-775" 29964 28418.7 167 29963 28418.7 166
"105-773" 29460 562.143 11 29459 562.143 10
"105-773" 29451 1979.89 20 29450 1979.89 19
"105-773" 29442 4127.84 29 29441 4127.84 28
"105-773" 29063 5633.79 55 29062 5633.79 54
"105-773" 29067 6453.39 63 29066 6453.39 62
"105-773" 29408 7717.91 70 29407 7717.91 69
"105-773" 29076 9137.08 77 29075 9137.08 76
"105-773" 29007 27688.6 140 29006 27688.6 139
"RJMFR-665" 911 5766.84 53 910 5766.84 52
"105-774" 29498 1450.98 30 29499 1450.98 29
"105-774" 29670 12743.1 103 29671 12743.1 102
"105-774" 29690 19395.3 145 29689 19395.3 144
"105-774" 29743 21548.8 166 29742 21548.8 165
"105-774" 29753 22968.3 173 29752 22968.3 172
"105-774" 29732 24222.7 180 29731 24222.7 179
"105-774" 29726 25038.8 187 29725 25038.8 186
"105-774" 29780 26539.4 213 29779 26539.4 212
"105-774" 29786 28686.8 219 29785 28686.8 218
"105-774" 29792 30103.9 225 29791 30103.9 224
"303-1022" 12037 2762.1 4 12036 2762.1 3
"303-1022" 12002 3380.67 20 12001 3380.67 19
"303-1022" 11973 3582.43 28 11972 3582.43 27
"303-1022" 11967 4327.18 33 11966 4327.18 32
"303-1022" 11884 4782.89 44 11883 4782.89 43
"303-1022" 11992 6544.64 72 11991 6544.64 71
"303-1022" 11986 8133.26 105 11985 8133.26 104
"303-1022" 11899 8635.82 110 11898 8635.82 109
"303-1022" 12029 10702.5 122 12028 10702.5 121
"303-1022" 12070 11902.7 138 12069 11902.7 137
"303-1022" 12115 13018.9 161 12114 13018.9 160
"303-1022" 12092 14537.6 179 12091 14537.6 178
"303-1022" 12018 15730.3 199 12017 15730.3 198
"303-1022" 12058 16521.8 218 12057 16521.8 217
"303-1022" 12104 17322.2 225 12103 17322.2 224
"HLP-HLP_DEP_BBCB" 28439 825.857 9 28438 825.857 8
"280-747" 9305 3307.08 15 9304 3307.08 14
"280-748" 9337 3895.56 19 9336 3895.56 18
"160-988" 65453 328.493 10 65452 328.493 9
"160-988" 65386 533.493 16 65385 533.493 15
"160-988" 65391 1556.53 34 65390 1556.53 33
"160-988" 65492 8169.5 81 65491 8169.5 80
"160-988" 65518 9239.03 91 65517 9239.03 90
missing_recommended_field WARNING 120

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.

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

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) The name of the missing field.
"routes.txt" 2 "agency_id"
"routes.txt" 3 "agency_id"
"routes.txt" 4 "agency_id"
"routes.txt" 5 "agency_id"
"routes.txt" 6 "agency_id"
"routes.txt" 7 "agency_id"
"routes.txt" 8 "agency_id"
"routes.txt" 9 "agency_id"
"routes.txt" 10 "agency_id"
"routes.txt" 11 "agency_id"
"routes.txt" 12 "agency_id"
"routes.txt" 13 "agency_id"
"routes.txt" 14 "agency_id"
"routes.txt" 15 "agency_id"
"routes.txt" 16 "agency_id"
"routes.txt" 17 "agency_id"
"routes.txt" 18 "agency_id"
"routes.txt" 19 "agency_id"
"routes.txt" 20 "agency_id"
"routes.txt" 21 "agency_id"
"routes.txt" 22 "agency_id"
"routes.txt" 23 "agency_id"
"routes.txt" 24 "agency_id"
"routes.txt" 25 "agency_id"
"routes.txt" 26 "agency_id"
"routes.txt" 27 "agency_id"
"routes.txt" 28 "agency_id"
"routes.txt" 29 "agency_id"
"routes.txt" 30 "agency_id"
"routes.txt" 31 "agency_id"
"routes.txt" 32 "agency_id"
"routes.txt" 33 "agency_id"
"routes.txt" 34 "agency_id"
"routes.txt" 35 "agency_id"
"routes.txt" 36 "agency_id"
"routes.txt" 37 "agency_id"
"routes.txt" 38 "agency_id"
"routes.txt" 39 "agency_id"
"routes.txt" 40 "agency_id"
"routes.txt" 41 "agency_id"
"routes.txt" 42 "agency_id"
"routes.txt" 43 "agency_id"
"routes.txt" 44 "agency_id"
"routes.txt" 45 "agency_id"
"routes.txt" 46 "agency_id"
"routes.txt" 47 "agency_id"
"routes.txt" 48 "agency_id"
"routes.txt" 49 "agency_id"
"routes.txt" 50 "agency_id"
"routes.txt" 51 "agency_id"
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 1039

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 1039 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" "RJN NAVETTE JASSERON" 112
"routes.txt" "route_long_name" "RJN NAVETTE CFA" 115
"routes.txt" "route_long_name" "RJN NAVETTE EREA" 116
"routes.txt" "route_long_name" "RJN NAVETTE MFR" 117
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - GUIGNEBOIS-BRE-GUIGNEBOIS" 498
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - LES POIRIERS-BRE-LES POIRIE" 507
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - LE ROUGET-BRE-LE ROUGET" 511
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - SPIRE-BRESSE-VALLONS - SPI" 512
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - VIEILLE RONGE-BRE-VIEILLE RO" 514
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - LES COMBES-BRE-LES COMBES" 871
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - BOUQUERIEUX-BRE-BOUQUERIEU" 1205
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - CHAMONAL-BRE-CHAMONAL" 1209
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - ETREZ-BRE-ETREZ" 1213
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - FERME VILLAGE D'EN HAUT-BRE-FERME VILL" 1215
"trips.txt" "trip_headsign" "CAP EMERAUDE" 22
"trips.txt" "trip_headsign" "CAP EMERAUDE" 23
"trips.txt" "trip_headsign" "CAP EMERAUDE" 24
"trips.txt" "trip_headsign" "CAP EMERAUDE" 25
"trips.txt" "trip_headsign" "CAP EMERAUDE" 26
"trips.txt" "trip_headsign" "CAP EMERAUDE" 27
"trips.txt" "trip_headsign" "CAP EMERAUDE" 28
"trips.txt" "trip_headsign" "CAP EMERAUDE" 29
"trips.txt" "trip_headsign" "CAP EMERAUDE" 30
"trips.txt" "trip_headsign" "CAP EMERAUDE" 31
"trips.txt" "trip_headsign" "CAP EMERAUDE" 32
"trips.txt" "trip_headsign" "CAP EMERAUDE" 33
"trips.txt" "trip_headsign" "CAP EMERAUDE" 34
"trips.txt" "trip_headsign" "CAP EMERAUDE" 35
"trips.txt" "trip_headsign" "CAP EMERAUDE" 36
"trips.txt" "trip_headsign" "CAP EMERAUDE" 37
"trips.txt" "trip_headsign" "CAP EMERAUDE" 38
"trips.txt" "trip_headsign" "CAP EMERAUDE" 39
"trips.txt" "trip_headsign" "CAP EMERAUDE" 40
"trips.txt" "trip_headsign" "CAP EMERAUDE" 41
"trips.txt" "trip_headsign" "CAP EMERAUDE" 42
"trips.txt" "trip_headsign" "CAP EMERAUDE" 43
"trips.txt" "trip_headsign" "CAP EMERAUDE" 44
"trips.txt" "trip_headsign" "CAP EMERAUDE" 45
"trips.txt" "trip_headsign" "CAP EMERAUDE" 46
"trips.txt" "trip_headsign" "CAP EMERAUDE" 47
"trips.txt" "trip_headsign" "CAP EMERAUDE" 48
"trips.txt" "trip_headsign" "CAP EMERAUDE" 49
"trips.txt" "trip_headsign" "CAP EMERAUDE" 50
"trips.txt" "trip_headsign" "CAP EMERAUDE" 51
"trips.txt" "trip_headsign" "CAP EMERAUDE" 52
"trips.txt" "trip_headsign" "CAP EMERAUDE" 53
"trips.txt" "trip_headsign" "CAP EMERAUDE" 54
"trips.txt" "trip_headsign" "CAP EMERAUDE" 55
"trips.txt" "trip_headsign" "CAP EMERAUDE" 56
"trips.txt" "trip_headsign" "CAP EMERAUDE" 57
route_long_name_contains_short_name WARNING 11

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`.
"4" 2 "4" "4"
"7" 3 "7" "7"
"3" 4 "3" "3"
"6" 5 "6" "6"
"2" 6 "2" "2"
"1" 7 "1" "1"
"115" 9 "115" "115 - Verjon <> Bourg-en-Bresse"
"10" 10 "10" "10"
"11" 21 "11" "11"
"12" 29 "12" "12"
"5" 93 "5" "5"
stop_without_stop_time WARNING 16

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.
116 "1684691" "Bourg-en-Bresse-Bourg-en-Bresse Revermont-Lyc Voisin"
117 "1684692" "Bourg-en-Bresse-Bourg-en-Bresse Revermont-Lycee G. Voisin"
129 "1684704" "Lescheroux-LESCHEROUX - VILLAGE-LES-VILLAGE"
612 "1684937" "Saint-Didier-d'Aussiat-SAINT-DIDIER-D'AUSSIAT - BeLOUZE-SDI-BeLOUZE"
619 "1684944" "Saint-Didier-d'Aussiat-SAINT-DIDIER-D'AUSSIAT - COLLONGES-SDI-COLLONGES"
681 "1685216" "Saint-Didier-d'Aussiat-Saint-Didier-d'Aussiat - Terres Blanches-SDIt - TERRES BLANCH"
682 "1685218" "Domsure-DOMSURE - LOTISSEMENT 2-DOMSURE - LOTISSEMEN"
724 "1684555" "Domsure-DOMSURE - LES COURS-DOS-LES COURS"
726 "1684557" "Domsure-DOMSURE - ECOLE PRIMAIRE-DOS-ECOLE PRIM"
730 "1684561" "Domsure-DOMSURE - GROSSET-DOS-GROSSET"
734 "1684565" "Domsure-DOMSURE - LOTISSEMENT-DOS-LOTISSEMEN"
737 "1684568" "Domsure-DOMSURE - MIROTON-DOS-MIROTON"
776 "1684660" "Jayat-Jayat - Cezilles-Jayat - Cezilles"
863 "1684329" "Bourg-en-Bresse-BOURG-EN-BRESSE - ALIMENTEC-BOURG-EN-BRESSE - AL"
929 "1684599" "Bourg-en-Bresse-Edouard Herriot-Edouard Herriot"
930 "1684600" "Bourg-en-Bresse-Edouard Herriot-Edouard Herriot"
unused_shape WARNING 352

unused_shape

Shape is not used in GTFS file trips.txt.

All records defined by GTFS shapes.txt should be used in trips.txt.

You can see more about this notice here.

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

shapeId (?) The faulty record's id. csvRowNumber (?) The row number of the faulty record.
"HLP-HLP_CVVI1_DEP" 738
"HLP-HLP_DCRU1_DEP" 753
"HLP-HLP_DEP_CDMA1" 816
"HLP-HLP_DECO1_DEP" 1896
"HLP-HLP_DEP_ACHA1" 1898
"HLP-HLP_DEP_ACHR1" 2461
"HLP-HLP_AECO1_DEP" 5311
"HLP-HLP_AINT1_AINT2" 5873
"HLP-HLP_AINT1_DEP" 5883
"HLP-HLP_AINT3_DEP" 6986
"HLP-HLP_AIOA1_DEP" 7035
"HLP-HLP_DEP_AECO1" 7064
"HLP-HLP_DEP_CEBR1" 7239
"HLP-HLP_DEP_CEDG1" 7241
"HLP-HLP_DEP_SDCO1" 7242
"HLP-HLP_DEP_SDEM1" 7271
"HLP-HLP_DEP_SDYM1" 7273
"HLP-HLP_DEP_SEBO1" 7275
"HLP-HLP_DEP_SECO1" 7277
"HLP-HLP_DEP_SEPL1" 7279
"HLP-HLP_DEP_SEPU1" 7281
"HLP-HLP_DEP_SEVI2" 7283
"HLP-HLP_DEP_SGAR2" 7285
"HLP-HLP_DEP_SMAR1" 7287
"HLP-HLP_DEP_SNCV1" 7289
"HLP-HLP_DEP_SNGN1" 7291
"HLP-HLP_DEP_SNJA1" 7293
"HLP-HLP_DEP_SNPN1" 7295
"HLP-HLP_DEP_SNPR1" 7297
"HLP-HLP_DEP_SRAG1" 7299
"HLP-HLP_DEP_SREC1" 7301
"HLP-HLP_DEP_SRME1" 7303
"HLP-HLP_DEP_SSEG1" 7305
"HLP-HLP_DEP_STCO1" 7307
"HLP-HLP_DEP_STEC1" 7309
"HLP-HLP_DEP_STUA1" 7311
"HLP-HLP_DEP_VCAR1" 7313
"HLP-HLP_DEP_AINT2" 7863
"HLP-HLP_DEP_AJAL1" 7913
"HLP-HLP_DEP_CEEC1" 7924
"HLP-HLP_DEP_CEMA2" 7926
"HLP-HLP_DEP_CEME1" 7928
"HLP-HLP_DEP_CFCH1" 7983
"HLP-HLP_DEP_CFPA1" 7985
"HLP-HLP_DEP_CNAN1" 7987
"HLP-HLP_DEP_CNEC1" 7989
"HLP-HLP_AJAL1_DEP" 9524
"HLP-HLP_DEP_ALAG2" 9655
"HLP-HLP_DEP_CNLE1" 9666
"HLP-HLP_DEP_CNPL1" 9668