rubis-fra — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-06-19T19:34:23Z,
for the dataset file:///shared/rubis-fra_c570b444.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

5823 notices reported (13 errors, 5774 warnings, 36 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" 100 102 "trip_id" "61151"
"trips.txt" 784 785 "trip_id" "61314"
"trips.txt" 784 786 "trip_id" "61314"
"trips.txt" 1176 1178 "trip_id" "72499"
"trips.txt" 1179 1180 "trip_id" "72500"
"trips.txt" 795 1253 "trip_id" "61315"
"trips.txt" 796 1255 "trip_id" "61318"
"trips.txt" 1254 1256 "trip_id" "61316"
"trips.txt" 795 1257 "trip_id" "61315"
"trips.txt" 796 1258 "trip_id" "61318"
"trips.txt" 796 1260 "trip_id" "61318"
"trips.txt" 1259 1261 "trip_id" "61317"
"trips.txt" 1384 1386 "trip_id" "67828"
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" 27534 1450.98 30 27535 1450.98 29
"105-775" 27619 19863.6 108 27618 19863.6 107
"105-775" 27628 21283.1 115 27627 21283.1 114
"105-775" 27611 22537.5 122 27610 22537.5 121
"105-775" 27607 23353.6 129 27606 23353.6 128
"105-775" 27660 24854.2 155 27659 24854.2 154
"105-775" 27666 27001.6 161 27665 27001.6 160
"105-775" 27672 28418.7 167 27671 28418.7 166
"105-773" 27152 562.143 11 27151 562.143 10
"105-773" 27143 1979.89 20 27142 1979.89 19
"105-773" 27134 4127.84 29 27133 4127.84 28
"105-773" 27079 5633.79 55 27078 5633.79 54
"105-773" 27083 6453.39 63 27082 6453.39 62
"105-773" 27100 7717.91 70 27099 7717.91 69
"105-773" 27092 9137.08 77 27091 9137.08 76
"105-773" 27023 27688.6 140 27022 27688.6 139
"RJMFR-665" 15611 5766.84 53 15610 5766.84 52
"105-774" 27304 1450.98 30 27305 1450.98 29
"105-774" 27378 12743.1 103 27379 12743.1 102
"105-774" 27398 19395.3 145 27397 19395.3 144
"105-774" 27451 21548.8 166 27450 21548.8 165
"105-774" 27461 22968.3 173 27460 22968.3 172
"105-774" 27440 24222.7 180 27439 24222.7 179
"105-774" 27434 25038.8 187 27433 25038.8 186
"105-774" 27488 26539.4 213 27487 26539.4 212
"105-774" 27494 28686.8 219 27493 28686.8 218
"105-774" 27500 30103.9 225 27499 30103.9 224
"303-1022" 68659 2762.1 4 68658 2762.1 3
"303-1022" 68624 3380.67 20 68623 3380.67 19
"303-1022" 68595 3582.43 28 68594 3582.43 27
"303-1022" 68589 4327.18 33 68588 4327.18 32
"303-1022" 68540 4782.89 44 68539 4782.89 43
"303-1022" 68614 6544.64 72 68613 6544.64 71
"303-1022" 68608 8133.26 105 68607 8133.26 104
"303-1022" 68555 8635.82 110 68554 8635.82 109
"303-1022" 68651 10702.5 122 68650 10702.5 121
"303-1022" 68692 11902.7 138 68691 11902.7 137
"303-1022" 68737 13018.9 161 68736 13018.9 160
"303-1022" 68714 14537.6 179 68713 14537.6 178
"303-1022" 68640 15730.3 199 68639 15730.3 198
"303-1022" 68680 16521.8 218 68679 16521.8 217
"303-1022" 68726 17322.2 225 68725 17322.2 224
"HLP-HLP_DEP_BBCB" 69499 825.857 9 69498 825.857 8
"280-747" 66776 3307.08 15 66775 3307.08 14
"280-748" 66829 3895.56 19 66828 3895.56 18
"160-988" 53348 328.493 10 53347 328.493 9
"160-988" 53337 533.493 16 53336 533.493 15
"160-988" 53342 1556.53 34 53341 1556.53 33
"160-988" 53387 8169.5 81 53386 8169.5 80
"160-988" 53413 9239.03 91 53412 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" 28
"routes.txt" "route_long_name" "RJN NAVETTE CFA" 31
"routes.txt" "route_long_name" "RJN NAVETTE EREA" 32
"routes.txt" "route_long_name" "RJN NAVETTE MFR" 33
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - LES COMBES-BRE-LES COMBES" 756
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - BOUQUERIEUX-BRE-BOUQUERIEU" 982
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - CHAMONAL-BRE-CHAMONAL" 986
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - ETREZ-BRE-ETREZ" 990
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - FERME VILLAGE D'EN HAUT-BRE-FERME VILL" 992
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - GUIGNEBOIS-BRE-GUIGNEBOIS" 994
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - LES POIRIERS-BRE-LES POIRIE" 1003
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - LE ROUGET-BRE-LE ROUGET" 1007
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - SPIRE-BRESSE-VALLONS - SPI" 1008
"stops.txt" "stop_name" "etrez-BRESSE-VALLONS - VIEILLE RONGE-BRE-VIEILLE RO" 1010
"trips.txt" "trip_headsign" "SAINT-NIZIER-LE-BOUCHOUX - PETIT NANCIAT" 2
"trips.txt" "trip_headsign" "SAINT-NIZIER-LE-BOUCHOUX - PETIT NANCIAT" 4
"trips.txt" "trip_headsign" "SAINT-NIZIER-LE-BOUCHOUX - JASSANS" 8
"trips.txt" "trip_headsign" "SAINT-NIZIER-LE-BOUCHOUX - JASSANS" 10
"trips.txt" "trip_headsign" "LESCHEROUX - ECOLE PRIMAIRE" 11
"trips.txt" "trip_headsign" "LESCHEROUX - ECOLE PRIMAIRE" 13
"trips.txt" "trip_headsign" "LESCHEROUX - LES CHARMES" 14
"trips.txt" "trip_headsign" "LESCHEROUX - LES CHARMES" 16
"trips.txt" "trip_headsign" "SAINT-TRIVIER-DE-COURTES - ECOLE PRIMAIRE" 17
"trips.txt" "trip_headsign" "MANTENAY-MONTLIN - ECOLE PRIMAIRE" 19
"trips.txt" "trip_headsign" "SAINT-TRIVIER-DE-COURTES - ECOLE PRIMAIRE" 20
"trips.txt" "trip_headsign" "CURCIAT-DONGALON - ECOLE PRIMAIRE" 21
"trips.txt" "trip_headsign" "SAINT-NIZIER-LE-BOUCHOUX - GRAND NANCIAT" 22
"trips.txt" "trip_headsign" "CORMOZ - ECOLE PRIMAIRE" 23
"trips.txt" "trip_headsign" "CORMOZ - BASCULE 2" 24
"trips.txt" "trip_headsign" "SAINT-NIZIER-LE-BOUCHOUX - ECOLE PRIMAIRE" 25
"trips.txt" "trip_headsign" "LESCHEROUX - ECOLE PRIMAIRE" 27
"trips.txt" "trip_headsign" "LESCHEROUX - ECOLE PRIMAIRE" 29
"trips.txt" "trip_headsign" "SAINT-JEAN-SUR-REYSSOUZE - ECOLE PRIMAIRE" 30
"trips.txt" "trip_headsign" "VICTOIRE GARE" 61
"trips.txt" "trip_headsign" "CENTRE PENITENTIAIRE" 72
"trips.txt" "trip_headsign" "VIRIAT CARONNIERS" 73
"trips.txt" "trip_headsign" "VIRIAT CARONNIERS" 74
"trips.txt" "trip_headsign" "BOURG LYCEES" 75
"trips.txt" "trip_headsign" "BOURG LYCEES" 76
"trips.txt" "trip_headsign" "VIRIAT CARONNIERS" 77
"trips.txt" "trip_headsign" "VIRIAT CARONNIERS" 78
"trips.txt" "trip_headsign" "CENTRE PENITENTIAIRE" 79
"trips.txt" "trip_headsign" "VICTOIRE GARE" 90
"trips.txt" "trip_headsign" "VICTOIRE GARE" 91
"trips.txt" "trip_headsign" "VICTOIRE GARE" 92
"trips.txt" "trip_headsign" "CENTRE PENITENTIAIRE" 93
"trips.txt" "trip_headsign" "CENTRE PENITENTIAIRE" 94
"trips.txt" "trip_headsign" "CENTRE PENITENTIAIRE" 95
"trips.txt" "trip_headsign" "CENTRE PENITENTIAIRE" 96
"trips.txt" "trip_headsign" "CENTRE PENITENTIAIRE" 97
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`.
"5" 9 "5" "5"
"4" 38 "4" "4"
"7" 39 "7" "7"
"3" 40 "3" "3"
"6" 41 "6" "6"
"2" 42 "2" "2"
"1" 43 "1" "1"
"115" 45 "115" "115 - Verjon <> Bourg-en-Bresse"
"10" 46 "10" "10"
"11" 57 "11" "11"
"12" 65 "12" "12"
service_has_no_active_day_of_the_week WARNING 21

service_has_no_active_day_of_the_week

A service is not valid for any day of the week.

You can see more about this notice here.

csvRowNumber (?) The row number in calendar.txt where the error occurs. serviceId (?) The service_id field value.
2 "1"
3 "2"
4 "3"
5 "4"
6 "5"
7 "6"
8 "7"
9 "8"
10 "9"
11 "10"
12 "11"
13 "12"
14 "13"
15 "14"
16 "15"
17 "16"
18 "17"
19 "18"
20 "19"
21 "20"
22 "21"
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.
63 "1684555" "Domsure-DOMSURE - LES COURS-DOS-LES COURS"
65 "1684557" "Domsure-DOMSURE - ECOLE PRIMAIRE-DOS-ECOLE PRIM"
69 "1684561" "Domsure-DOMSURE - GROSSET-DOS-GROSSET"
73 "1684565" "Domsure-DOMSURE - LOTISSEMENT-DOS-LOTISSEMEN"
76 "1684568" "Domsure-DOMSURE - MIROTON-DOS-MIROTON"
107 "1684599" "Bourg-en-Bresse-Edouard Herriot-Edouard Herriot"
108 "1684600" "Bourg-en-Bresse-Edouard Herriot-Edouard Herriot"
425 "1684937" "Saint-Didier-d'Aussiat-SAINT-DIDIER-D'AUSSIAT - BeLOUZE-SDI-BeLOUZE"
432 "1684944" "Saint-Didier-d'Aussiat-SAINT-DIDIER-D'AUSSIAT - COLLONGES-SDI-COLLONGES"
687 "1684329" "Bourg-en-Bresse-BOURG-EN-BRESSE - ALIMENTEC-BOURG-EN-BRESSE - AL"
742 "1684660" "Jayat-Jayat - Cezilles-Jayat - Cezilles"
820 "1684691" "Bourg-en-Bresse-Bourg-en-Bresse Revermont-Lyc Voisin"
821 "1684692" "Bourg-en-Bresse-Bourg-en-Bresse Revermont-Lycee G. Voisin"
833 "1684704" "Lescheroux-LESCHEROUX - VILLAGE-LES-VILLAGE"
1125 "1685216" "Saint-Didier-d'Aussiat-Saint-Didier-d'Aussiat - Terres Blanches-SDIt - TERRES BLANCH"
1126 "1685218" "Domsure-DOMSURE - LOTISSEMENT 2-DOMSURE - LOTISSEMEN"
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_DEP_BGAR1" 327
"HLP-HLP_DEP_BLYC2" 355
"HLP-HLP_DEP_BMEC1" 399
"HLP-HLP_DEP_BPRE1" 507
"HLP-HLP_DEP_BPRI1" 1129
"HLP-HLP_DEP_BREV1" 2539
"HLP-HLP_DEP_BTEP1" 2569
"HLP-HLP_DEP_BTER1" 2990
"HLP-HLP_DEP_BVCS1" 3497
"HLP-HLP_DEP_BVPE1" 3499
"HLP-HLP_DEP_CADA1" 3979
"HLP-HLP_DEP_CAMB2" 4268
"HLP-HLP_DEP_CAMI3" 4270
"HLP-HLP_DEP_CAMI5" 4304
"HLP-HLP_DEP_CCJA4" 4449
"HLP-HLP_DEP_CDMA1" 4505
"HLP-HLP_DEP_CEBR1" 5132
"HLP-HLP_DEP_CEDG1" 5134
"HLP-HLP_DEP_CEEC1" 5136
"HLP-HLP_DEP_CEMA2" 5138
"HLP-HLP_DEP_CEME1" 5140
"HLP-HLP_DEP_CFCH1" 5218
"HLP-HLP_DEP_CFPA1" 5220
"HLP-HLP_DEP_CNAN1" 5222
"HLP-HLP_DEP_CNEC1" 5224
"HLP-HLP_DEP_CNLE1" 5226
"HLP-HLP_DEP_CNPL1" 5228
"HLP-HLP_DEP_CNST1" 5230
"HLP-HLP_DEP_COBS1" 5232
"HLP-HLP_DEP_COCO1" 5234
"HLP-HLP_DEP_COEC1" 5236
"HLP-HLP_DEP_COSA1" 5238
"HLP-HLP_DEP_CREC1" 5240
"HLP-HLP_DEP_CVCU1" 5242
"HLP-HLP_DEP_DCOU1" 5244
"HLP-HLP_DEP_DCRU1" 5246
"HLP-HLP_DEP_DECO1" 5248
"HLP-HLP_DEP_DLOG1" 5501
"HLP-HLP_DEP_DMAS1" 5503
"HLP-HLP_DEP_DRMA1" 5505
"HLP-HLP_DEP_DRTU1" 5507
"HLP-HLP_DEP_DRUB2" 5509
"HLP-HLP_DEP_DRVI1" 5511
"HLP-HLP_DEP_DVIN1" 5513
"HLP-HLP_DEP_EVE01" 5515
"HLP-HLP_DEP_EVE02" 5517
"HLP-HLP_DEP_FDOM1" 5519
"HLP-HLP_DEP_FECO1" 5521
"HLP-HLP_DEP_FMAL1" 5523
"HLP-HLP_DEP_FMIL1" 5525
big_gap_in_service INFO 36

big_gap_in_service

A service has a gap of more than 13 days between active service dates.

You can see more about this notice here.

serviceId (?) The service_id that has the gap. gapStartDate (?) The first day of the gap. gapEndDate (?) The last day of the gap. gapDurationDays (?) The number of days in the gap.
"1" "2026-07-03" "2026-09-01" 59
"1" "2026-10-16" "2026-11-03" 17
"2" "2026-06-29" "2026-09-07" 69
"2" "2026-10-12" "2026-11-02" 20
"3" "2026-07-03" "2026-09-01" 59
"3" "2026-10-16" "2026-11-02" 16
"4" "2026-07-02" "2026-09-01" 60
"4" "2026-10-15" "2026-11-02" 17
"5" "2026-07-03" "2026-09-01" 59
"5" "2026-10-16" "2026-11-02" 16
"6" "2026-07-03" "2026-09-01" 59
"6" "2026-10-16" "2026-11-01" 15
"7" "2026-07-01" "2026-09-02" 62
"7" "2026-10-14" "2026-11-04" 20
"8" "2026-06-28" "2026-09-06" 69
"8" "2026-10-11" "2026-11-01" 20
"9" "2026-07-03" "2026-09-04" 62
"9" "2026-10-16" "2026-11-06" 20
"12" "2026-10-30" "2026-12-21" 51
"13" "2026-10-30" "2026-12-21" 51
"14" "2026-07-02" "2026-09-01" 60
"14" "2026-10-15" "2026-11-03" 18
"15" "2026-07-03" "2026-09-01" 59
"15" "2026-10-16" "2026-11-03" 17
"16" "2026-06-29" "2026-09-07" 69
"16" "2026-10-12" "2026-11-02" 20
"17" "2026-07-03" "2026-09-01" 59
"17" "2026-10-16" "2026-11-02" 16
"18" "2026-07-03" "2026-09-01" 59
"18" "2026-10-16" "2026-11-02" 16
"19" "2026-07-03" "2026-09-01" 59
"19" "2026-10-16" "2026-11-01" 15
"20" "2026-07-01" "2026-09-02" 62
"20" "2026-10-14" "2026-11-04" 20
"21" "2026-07-03" "2026-09-04" 62
"21" "2026-10-16" "2026-11-06" 20