GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-01-24T01:34:37Z,
for the dataset file:///shared/tcat-navineo.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: 2
  • Blocks: 706
  • Routes: 61
  • Shapes: 441
  • Stops: 1738
  • Trips: 7746

Specification Compliance report

42501 notices reported (37851 errors, 4649 warnings, 1 infos)

Notice Code Severity Total
decreasing_or_equal_stop_time_distance ERROR 37851

decreasing_or_equal_stop_time_distance

Decreasing or equal shape_dist_traveled in stop_times.txt.

When sorted by stop_times.stop_sequence, two consecutive entries in stop_times.txt should have increasing distance, based on the field shape_dist_traveled. If the values are equal, this is considered as an error.

You can see more about this notice here.

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

tripId (?) The id of the faulty trip. stopId (?) The id of the faulty stop. csvRowNumber (?) The row number from `stop_times.txt`. shapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the faulty record. stopSequence (?) The faulty record's `stop_times.stop_sequence`. prevCsvRowNumber (?) The row number from `stop_times.txt` of the previous stop time. prevShapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the previous stop time. prevStopSequence (?) The previous record's `stop_times.stop_sequence`.
"1407085" "30133" 137967 0.0 2 137964 0.0 1
"1407085" "30026" 137965 0.0 3 137967 0.0 2
"1407085" "30250" 137974 0.0 4 137965 0.0 3
"1407085" "30136" 137968 0.0 5 137974 0.0 4
"1407085" "30202" 137970 0.0 6 137968 0.0 5
"1407085" "30207" 137971 0.0 7 137970 0.0 6
"1407085" "30249" 137973 0.0 8 137971 0.0 7
"1407085" "30151" 137969 0.0 9 137973 0.0 8
"1407085" "30040" 137966 0.0 10 137969 0.0 9
"1407085" "30246" 137972 0.0 11 137966 0.0 10
"1407085" "30277" 137975 0.0 12 137972 0.0 11
"1407084" "30133" 137955 0.0 2 137952 0.0 1
"1407084" "30026" 137953 0.0 3 137955 0.0 2
"1407084" "30250" 137962 0.0 4 137953 0.0 3
"1407084" "30136" 137956 0.0 5 137962 0.0 4
"1407084" "30202" 137958 0.0 6 137956 0.0 5
"1407084" "30207" 137959 0.0 7 137958 0.0 6
"1407084" "30249" 137961 0.0 8 137959 0.0 7
"1407084" "30151" 137957 0.0 9 137961 0.0 8
"1407084" "30040" 137954 0.0 10 137957 0.0 9
"1407084" "30246" 137960 0.0 11 137954 0.0 10
"1407084" "30277" 137963 0.0 12 137960 0.0 11
"1407083" "30133" 137943 0.0 2 137940 0.0 1
"1407083" "30026" 137941 0.0 3 137943 0.0 2
"1407083" "30250" 137950 0.0 4 137941 0.0 3
"1407083" "30136" 137944 0.0 5 137950 0.0 4
"1407083" "30202" 137946 0.0 6 137944 0.0 5
"1407083" "30207" 137947 0.0 7 137946 0.0 6
"1407083" "30249" 137949 0.0 8 137947 0.0 7
"1407083" "30151" 137945 0.0 9 137949 0.0 8
"1407083" "30040" 137942 0.0 10 137945 0.0 9
"1407083" "30246" 137948 0.0 11 137942 0.0 10
"1407083" "30277" 137951 0.0 12 137948 0.0 11
"1407082" "30133" 137931 0.0 2 137928 0.0 1
"1407082" "30026" 137929 0.0 3 137931 0.0 2
"1407082" "30250" 137938 0.0 4 137929 0.0 3
"1407082" "30136" 137932 0.0 5 137938 0.0 4
"1407082" "30202" 137934 0.0 6 137932 0.0 5
"1407082" "30207" 137935 0.0 7 137934 0.0 6
"1407082" "30249" 137937 0.0 8 137935 0.0 7
"1407082" "30151" 137933 0.0 9 137937 0.0 8
"1407082" "30040" 137930 0.0 10 137933 0.0 9
"1407082" "30246" 137936 0.0 11 137930 0.0 10
"1407082" "30277" 137939 0.0 12 137936 0.0 11
"1407089" "30133" 138020 0.0 2 138016 0.0 1
"1407089" "30178" 138023 0.0 3 138020 0.0 2
"1407089" "30208" 138025 0.0 4 138023 0.0 3
"1407089" "30147" 138021 0.0 5 138025 0.0 4
"1407089" "30204" 138024 0.0 6 138021 0.0 5
"1407089" "30100" 138018 0.0 7 138024 0.0 6
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 1213

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 1213 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.
"L1PRAB" 78622 417.0 15 78621 417.0 14 0.129485504053169
"L1PRAB" 78767 3062.0 160 78766 3062.0 159 0.16064480893419772
"L12PABA" 7868 357.0 42 7867 357.0 41 0.8757457110070064
"L12PABA" 7917 1442.0 91 7916 1442.0 90 0.03335853105100428
"L12PABA" 7931 1759.0 105 7930 1759.0 104 0.05559755010125067
"L12PABA" 8083 6631.0 257 8082 6631.0 256 0.13875303815793702
"L2PADA" 16311 266.0 34 16310 266.0 33 0.275205075129826
"L2PADA" 16548 6708.0 271 16547 6708.0 270 0.7461230780780487
"L2PADA" 16717 9641.0 440 16716 9641.0 439 0.08120056783963729
"L2PADA" 16759 10183.0 482 16758 10183.0 481 0.16026691374434926
"L2PADA" 16941 14448.0 664 16940 14448.0 663 0.007395161097235959
"L2PADA" 16946 14472.0 669 16945 14472.0 668 0.586519435315038
"L2PADA" 16950 14482.0 673 16949 14482.0 672 0.5916464701484332
"L2PADB" 26376 1240.0 83 26375 1240.0 82 0.08120056783963729
"L2PADB" 26418 1782.0 125 26417 1782.0 124 0.16026691374434926
"L2PADB" 26600 6047.0 307 26599 6047.0 306 0.007395161097235959
"L2PADB" 26605 6071.0 312 26604 6071.0 311 0.586519435315038
"L3HLP109336" 37021 1328.0 58 37020 1328.0 57 0.06712584635498024
"L3HLP109336" 37032 1396.0 69 37031 1396.0 68 0.2918150631688762
"L3HLP109336" 37063 1681.0 100 37062 1681.0 99 0.2325257266182316
"L1PRAA" 39900 1911.0 98 39899 1911.0 97 0.26029065774228666
"L1PRAA" 40002 4417.0 200 40001 4417.0 199 0.5007873291885562
"L1PRAA" 40194 7465.0 392 40193 7465.0 391 0.129485504053169
"L1PRAA" 40247 8405.0 445 40246 8405.0 444 0.3091993316140092
"L35PAAA" 61794 51.0 3 61793 51.0 2 0.08009428477154888
"L12PRCA" 7406 3709.0 116 7405 3709.0 115 0.7886532699937522
"L12PRCA" 7570 8607.0 280 7569 8607.0 279 0.05559755010125067
"L12PRCA" 7584 8924.0 294 7583 8924.0 293 0.03335853105100428
"L12PRCA" 7640 10075.0 350 7639 10075.0 349 0.06712584635498024
"L12PRCA" 7651 10143.0 361 7650 10143.0 360 0.2918150631688762
"L12PRCA" 7682 10428.0 392 7681 10428.0 391 0.2325257266182316
"L12PRCA" 7692 10500.0 402 7691 10500.0 401 0.5226169763274202
"LRSCOHLP109096" 397 840.0 33 396 840.0 32 0.1833654159366331
"LRSCOHLP109096" 431 1274.0 67 430 1274.0 66 0.08120056783963729
"L32HLP109458" 93391 167.0 19 93390 167.0 18 0.478376441210161
"L2PREA" 114397 0.0 1 114396 0.0 0 0.28211296686685605
"L2PREA" 114701 6766.0 305 114700 6766.0 304 0.3952836649320161
"L2PREA" 114755 7902.0 359 114754 7902.0 358 0.22349440733132875
"L2PREA" 114858 10448.0 462 114857 10448.0 461 0.2325257266182316
"L2PREA" 115058 13933.0 662 115057 13933.0 661 0.7461230780780487
"L2PREA" 115244 19000.0 848 115243 19000.0 847 0.8456065687605608
"L31HLP109282" 90866 4052.0 173 90865 4052.0 172 0.7461230780780487
"L31HLP109282" 91109 8799.0 416 91108 8799.0 415 0.03335853105100428
"L2HLP109297" 88413 330.0 34 88412 330.0 33 0.7457435576688257
"L2HLP109297" 88482 1545.0 103 88481 1545.0 102 0.03335853105100428
"L12PAAC" 19653 357.0 42 19652 357.0 41 0.8757457110070064
"L12PAAC" 19702 1442.0 91 19701 1442.0 90 0.03335853105100428
"L12PAAC" 19716 1759.0 105 19715 1759.0 104 0.05559755010125067
"L16HLP109368" 9011 1328.0 58 9010 1328.0 57 0.06712584635498024
"L16HLP109368" 9022 1396.0 69 9021 1396.0 68 0.2918150631688762
expired_calendar WARNING 4

expired_calendar

Dataset should not contain date ranges for services that have already expired.

This warning takes into account the calendar_dates.txt file as well as the calendar.txt file.

You can see more about this notice here.

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
2 "101"
3 "102"
4 "103"
5 "104"
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 3072

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 3072 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" "EUREKA CHARTREUX" 5
"routes.txt" "route_long_name" "COEUR DE TROYES" 6
"routes.txt" "route_long_name" "CHAPELLE ST LUC - CAMPUS HERRIOT" 7
"routes.txt" "route_long_name" "BREVIANDES - LA CHAPELLE PRES DE LYON" 8
"routes.txt" "route_long_name" "ST PARRES - TROYES PARC EXPO" 9
"routes.txt" "route_long_name" "ST PARRES BAIRES - TROYES PARC EXPO" 10
"routes.txt" "route_long_name" "ROSIERES CHARTREUX - TROYES 14 JUILLET" 11
"routes.txt" "route_long_name" "CRENEY PRES TROYES-RIVIERE DE COR" 12
"routes.txt" "route_long_name" "CHANTEREIGNE - ST PARRES ASCLEPIADE" 13
"routes.txt" "route_long_name" "ST JULIEN MOLINE - RDC C.ADMINISTRATIF" 14
"routes.txt" "route_long_name" "LA CHAPELLE PRES DE LYON - CHARTREUX" 15
"routes.txt" "route_long_name" "NAVETTE ETUDIANTE" 16
"routes.txt" "route_long_name" "CHANTEREIGNE - ST GERMAIN" 17
"routes.txt" "route_long_name" "ST JULIEN MOLINE - LES NOES/STE SAVINE" 18
"routes.txt" "route_long_name" "ST JULIEN GANNE - LA CHAPELLE BOISSELIER" 19
"routes.txt" "route_long_name" "ST PARRES - COLLÈGE EURÉKA" 20
"routes.txt" "route_long_name" "FOUCHY - COLLÈGES ST LUC" 21
"routes.txt" "route_long_name" "ST ANDRE - CAMPUS HERRIOT" 22
"routes.txt" "route_long_name" "ROSIERES - COLLÈGE CURIE" 23
"routes.txt" "route_long_name" "LA CHAPELLE - CHARTREUX" 24
"routes.txt" "route_long_name" "TORVILLIERS - COLLÈGE LANGEVIN" 25
"routes.txt" "route_long_name" "VERRIÈRES - LYCÉE TECHNIQUE" 26
"routes.txt" "route_long_name" "SAINT JULIEN - COLLÈGE BEURNONVILLE" 27
"routes.txt" "route_long_name" "VILLEPART - COLLÈGE CURIE" 28
"routes.txt" "route_long_name" "SAINT ANDRÉ - ÉCOLES MONTIER LA CELLE" 29
"routes.txt" "route_long_name" "LA CHAPELLE ST LUC - ST JULIEN MOLINE" 30
"routes.txt" "route_long_name" "ST JULIEN>BARBEREY" 31
"routes.txt" "route_long_name" "PONT STE MARIE EUREKA - GARE SNCF" 32
"routes.txt" "route_long_name" "GENDARMERIE - ECOLES ROSIÈRES" 33
"routes.txt" "route_long_name" "TROYES CENTRE > CRENEY-LAVAU" 34
"routes.txt" "route_long_name" "SÉNARDES - COLLÈGE EURÉKA" 35
"routes.txt" "route_long_name" "CHAPELLE ST LUC - CHARTREUX" 38
"routes.txt" "route_long_name" "LISIÈRE - ECOLES ST JULIEN" 39
"routes.txt" "route_long_name" "TROYES GARE - LAVAU PALIS" 40
"routes.txt" "route_long_name" "CHANTEREIGNE - ALAGIRAUDE" 41
"routes.txt" "route_long_name" "CHAPELLE ST LUC FOUCHY-SAINT GERMAIN" 42
"routes.txt" "route_long_name" "RIVIÈRE DE CORPS - COLLÈGE LANGEVIN" 43
"routes.txt" "route_long_name" "BUCHERES / ST LEGER - LA CHAPELLE ST LUC" 44
"routes.txt" "route_long_name" "TRAIN BUS LIGNE16 DIMANCHE" 45
"routes.txt" "route_long_name" "RESTAURANTS SCOLAIRES" 46
"routes.txt" "route_long_name" "TROYES CENTRE -CCIAL BARBEREY" 47
"routes.txt" "route_long_name" "PARC GD TROYES VERS TORVILLIERS-PRUGNY-VAUCHASSIS" 48
"routes.txt" "route_long_name" "RIVIERE DE C. VERS TORVILLIERS-PRUGNY-VAUCHASSIS" 49
"routes.txt" "route_long_name" "PARC GD TROYES - CTRE ADMIN. VERS MESSON" 50
"routes.txt" "route_long_name" "VERRIERES VERS BUCHERES" 51
"routes.txt" "route_long_name" "SAINT THIBAULT VERS BUCHERES" 52
"routes.txt" "route_long_name" "BUCHERES VERS MOUSSEY" 53
"routes.txt" "route_long_name" "CENTRE COMMERCIAL BARBEREY VERS AEROPORT" 54
"routes.txt" "route_long_name" "SAINT GERMAIN VERS LEPINE - LAINES AUX BOIS" 55
"routes.txt" "route_long_name" "ST GERMAIN VERS ST POUANGE" 56
route_long_name_contains_short_name WARNING 3

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`.
"PEGAZ" 2 "PEG" "PEG"
"NRel" 3 "Nrel" "Nrel"
"GASEO" 4 "Gaseo" "Gaseo"
stop_without_stop_time WARNING 91

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.

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

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty stop. stopName (?) The name of the faulty stop.
22 "30020" "BLOSSIERES"
66 "30064" "DE CHAMPAIGNE"
67 "30065" "DELPHIN"
68 "30066" "DESVIGNES"
108 "30106" "HUGUIER"
112 "30110" "JACOBINS"
114 "30112" "JOBERT"
119 "30117" "LANGEVIN"
148 "30146" "MAIRIE MONTGUEUX"
190 "30188" "PARC DE LA FONTAINE"
208 "30206" "PREFECTURE"
231 "30229" "ROUTE DU LAC"
262 "30260" "THEATRE DE CHAMP."
317 "0:Rga01" "RESTAURANT GANNE"
322 "0:CAM02" "CAMPUS HERRIOT"
332 "0:PRM02" "PRES MADAME"
341 "0:mAR02" "MARCHE"
347 "0:BAR02" "BARBUSSE"
351 "0:mAi02" "MAIRIE SAINT LYE"
371 "0:MAM02" "MAIRIE MOUSSEY"
394 "0:pred2" "PRES DE LYON"
405 "0:Rdxd1" "RESTAURANT DUTREIX"
430 "0:PRD02" "PRE DE L'ORME"
525 "0:HTC03" "HAUTE CHARME"
542 "0:MOId1" "MOINES"
543 "0:BEC01" "BLOSSIERES"
552 "0:SPECI01" "SPECIAL"
556 "0:HaM02" "HAMEAU"
559 "0:MaT02" "MAIRIE ST THIBAULT"
598 "0:Col02" "COLAS"
599 "0:CIM02" "CIMETIERE DE TROYES"
600 "0:DEG01" "DE GAULLE"
618 "0:Cro03" "CROUS"
653 "0:AER01" "AEROPORT"
654 "0:Chl02" "CHAMPS DES LISSES"
655 "0:GOG02" "GOGUENETTES"
700 "0:Del01" "DELPHIN"
710 "0:MIs02" "MAIRIE ISLE AUMONT"
724 "0:LAKd1" "LAKANAL"
725 "0:Cub01" "RESTAURANT LE CUBE"
733 "0:ZACd2" "ZA COULMET"
734 "0:pred1" "PRES DE LYON"
737 "0:Spd02" "Salle PDS"
752 "0:StT01" "ST THIBAULT"
780 "0:Rda02" "RESTAURANT DANTON"
795 "0:PAP02" "PAPIN"
838 "0:Epa02" "ECOLE PARADIS"
861 "0:HUg02" "HUGUIER"
894 "0:pON02" "PONTS"
905 "0:GANd1" "GANNE"
unused_shape WARNING 265

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 265 affected records are displayed below.

shapeId (?) The faulty record's id. csvRowNumber (?) The row number of the faulty record.
"L1HLP03" 2
"LRSCOHLP109096" 364
"LRSCOHLP109201" 472
"LRSCOHLP109202" 515
"LRSCOHLP109204" 544
"LRSCOHLP109240" 1179
"LRSCOHLP109249" 1245
"LRSCOHLP109261" 1288
"LRSCOHLP109262" 1424
"LRSCOHLP109264" 1513
"LRSCOHLP109265" 1572
"LD5HLP109074" 7693
"L4HLP109528" 8126
"L11HLP109272" 8206
"L11HLP109325" 8455
"L11HLP109339" 8597
"L12HLP109100" 8734
"L12HLP109294" 8829
"L12HLP109318" 8932
"L12HLP109319" 8942
"L16HLP109368" 8953
"L16HLP109511" 9094
"L16HLP109526" 9268
"L1HLP109066" 9426
"L1HLP109082" 9585
"L1HLP109138" 9808
"L1HLP109277" 9960
"L1HLP109278" 10157
"L4HLP109305" 10359
"L30HLP111859" 10514
"L12HLP109530" 11681
"L12HLP109531" 11859
"L21HLP110010" 11954
"L3HLP109120" 12238
"LRSCOHLP109205" 12329
"L36HLP109422" 12550
"L6HLP109132" 13153
"LD5HLP109094" 13275
"LD5HLP109421" 13360
"LD5HLP109422" 13591
"L2HLP06" 13849
"L6HLP01" 13975
"L3HLP04" 14151
"L4HLP109401" 15505
"L4HLP109492" 15590
"L6HLP109217" 23940
"L6HLP109434" 24257
"L6HLP109456" 24539
"L7HLP109224" 24819
"LD1HLP109381" 28519
unknown_column INFO 1

unknown_column

A column name is unknown.

You can see more about this notice here.

filename (?) The name of the faulty file. fieldName (?) The name of the unknown column. index (?) The index of the faulty column.
"stops.txt" "vehicle_type" 10