GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2025-12-13T04:07:43Z,
for the dataset file:///shared/stan2.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. transfers.txt
  9. trips.txt

Counts


  • Agencies: 1
  • Blocks: 287
  • Routes: 45
  • Shapes: 132
  • Stops: 1631
  • Trips: 31478

Specification Compliance report

675 notices reported (0 errors, 674 warnings, 1 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 508

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 508 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.
"L22P29" 53561 361.0 24 53560 361.0 23 0.022014632971716547
"L22P29" 54087 9469.0 550 54086 9469.0 549 0.2358494382577044
"L60P20" 31757 82.0 11 31756 82.0 10 0.6287612836353735
"L60P20" 31929 2747.0 183 31928 2747.0 182 0.6640715566571568
"L60P20" 31959 3204.0 213 31958 3204.0 212 0.6026714484175734
"L60P20" 32006 3902.0 260 32005 3902.0 259 0.3197993441416243
"L60P20" 32032 4210.0 286 32031 4210.0 285 0.5925221275596468
"L60P20" 32065 4771.0 319 32064 4771.0 318 0.3010414804993032
"L30P9" 2230 1956.0 145 2229 1956.0 144 0.2875260237152785
"L30P9" 2273 2567.0 188 2272 2567.0 187 0.6871796432980954
"L30P9" 2314 3193.0 229 2313 3193.0 228 0.045080544929008544
"L30P9" 2349 3418.0 264 2348 3418.0 263 0.16179239207085128
"L30P9" 2383 3730.0 298 2382 3730.0 297 0.19102528552668985
"L30P9" 2785 10447.0 700 2784 10447.0 699 0.7602025578922595
"L33P30" 66742 6681.0 327 66741 6681.0 326 0.8272388477170273
"L39P15" 37825 700.0 24 37824 700.0 23 0.13363605032321188
"L39P15" 37874 1882.0 73 37873 1882.0 72 0.36917290722506196
"L39P15" 37995 4185.0 194 37994 4185.0 193 0.623308124198303
"L60P2" 72594 4996.0 219 72593 4996.0 218 0.5838687302698333
"L60P2" 72637 5634.0 262 72636 5634.0 261 0.3197993441416243
"L60P2" 72721 6920.0 346 72720 6920.0 345 0.6446041549787281
"L64P1" 19366 423.0 31 19365 423.0 30 0.30626493296125157
"L64P2" 28520 1231.0 71 28519 1231.0 70 0.39879033331152514
"L66P13" 6410 153.0 11 6409 153.0 10 0.07921257160326685
"L66P13" 6922 7894.0 523 6921 7894.0 522 0.26092289252320733
"L60P8" 17440 74.0 13 17439 74.0 12 0.3010414804993032
"L60P8" 17473 635.0 46 17472 635.0 45 0.5925221275596468
"L60P8" 17536 1566.0 109 17535 1566.0 108 0.5838687302698333
"L66P11" 19617 1775.0 135 19616 1775.0 134 0.562214727709241
"L66P11" 19639 2170.0 157 19638 2170.0 156 0.2875260237152785
"L66P11" 19665 2493.0 183 19664 2493.0 182 0.7448113656811556
"L66P11" 19719 3344.0 237 19718 3344.0 236 0.045080544929008544
"L66P11" 19754 3569.0 272 19753 3569.0 271 0.16179239207085128
"L66P11" 19769 3809.0 287 19768 3809.0 286 0.26092289252320733
"L66P11" 19788 3881.0 306 19787 3881.0 305 0.19102528552668985
"L66P11" 20054 7131.0 572 20053 7131.0 571 0.5789916358953403
"L66P11" 20078 7353.0 596 20077 7353.0 595 0.1325735443687636
"L66P11" 20153 10013.0 671 20152 10013.0 670 0.4834634683254374
"L66P11" 20213 10678.0 731 20212 10678.0 730 0.07921257160326685
"L45P2" 27682 662.0 42 27681 662.0 41 0.30626493296125157
"L45P2" 28139 8422.0 499 28138 8422.0 498 0.7705675974898428
"L45P2" 28324 11759.0 684 28323 11759.0 683 0.3105839175508825
"L45P1" 30781 2303.0 131 30780 2303.0 130 0.878078217416231
"L45P1" 31017 6603.0 367 31016 6603.0 366 0.8606088165205138
"L45P1" 31187 8908.0 537 31186 8908.0 536 0.2875260237152785
"L22P30" 53015 1763.0 125 53014 1763.0 124 0.6287612836353735
"L22P30" 53199 4686.0 309 53198 4686.0 308 0.5838687302698333
"L22P30" 53234 5302.0 344 53233 5302.0 343 0.3197993441416243
"L22P30" 53513 10427.0 623 53512 10427.0 622 0.022014632971716547
"L2P27" 69990 5725.0 328 69989 5725.0 327 0.27993408593890046
equal_shape_distance_same_coordinates WARNING 12

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.

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`.
"L50P9" 33414 6804.0 511 33413 6804.0 510
"L50P9" 33416 6818.0 513 33415 6818.0 512
"L46P3" 30489 7423.0 438 30488 7423.0 437
"L30P11" 2084 10759.0 681 2083 10759.0 680
"L47P5" 24438 10929.0 683 24437 10929.0 682
"L17P11" 25539 6428.0 524 25538 6428.0 523
"L17P11" 25541 6442.0 526 25540 6442.0 525
"L42P15" 54552 5135.0 398 54551 5135.0 397
"L14P19" 43547 9597.0 631 43546 9597.0 630
"L14P19" 43549 9611.0 633 43548 9611.0 632
"L14P18" 3581 6483.0 458 3580 6483.0 457
"L14P18" 3583 6497.0 460 3582 6497.0 459
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 13

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.

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_short_name" "14exp" 27
"stops.txt" "stop_name" "18 juin" 38
"stops.txt" "stop_name" "arrêt provisoire place des justes" 355
"stops.txt" "stop_name" "arrêt provisoire saint léon" 358
"stops.txt" "stop_name" "le F ru des sciences" 498
"stops.txt" "stop_name" "69 me RI" 545
"stops.txt" "stop_name" "18 juin" 618
"stops.txt" "stop_name" "DEPOT KSL" 826
"stops.txt" "stop_name" "arrêt provisoire place des justes" 1186
"stops.txt" "stop_name" "arrêt provisoire place des justes" 1187
"stops.txt" "stop_name" "arrêt provisoire saint léon" 1190
"stops.txt" "stop_name" "69ème RI" 1551
"stops.txt" "stop_name" "69ème RI" 1552
route_color_contrast WARNING 5

route_color_contrast

Insufficient route color contrast.

A route's color and route_text_color should be contrasting.

You can see more about this notice here.

routeId (?) The id of the faulty record. csvRowNumber (?) The row number of the faulty record. routeColor (?) The faulty record's HTML route color. routeTextColor (?) The faulty record's HTML route text color.
"45" 2 "#99FF00" "#FFFFFF"
"63" 5 "#FFCC00" "#FFFFFF"
"56" 10 "#66FF66" "#FFFFFF"
"43" 28 "#FFED00" "#FFFFFF"
"53" 41 "#99FF00" "#FFFFFF"
stop_without_stop_time WARNING 97

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 97 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.
577 "VAREC5" "Le Reclus"
652 "ESSBL2" "Essey Porte Verte"
664 "LXZOL3" "Zola"
665 "NYREc0" "Republique"
689 "VAFHY2" "Forêt de Haye"
692 "NYDUP0" "Dupont des Loges"
693 "NYGAR5" "Nancy Gare"
694 "VALOD3" "Vélodrome"
716 "NYLEO2" "Gare Saint-Léon"
717 "NYGAR3" "Gare - Poirel"
729 "NYJAR2" "Jeanne d'Arc"
736 "NYJAR0" "Jeanne d'Arc"
745 "MXZEN0" "Zénith - Parvis"
752 "ESTAM0" "Essey Tamaris"
755 "ESALT0" "Alouettes"
756 "ESALT1" "Alouettes"
765 "ESGRI0" "Grives"
767 "MAGAU1" "Place de Gaulle"
791 "ESROO1" "Essey Roosevelt"
802 "MAERB0" "Acacias"
816 "MAGAU0" "Place de Gaulle"
826 "DKSL0" "DEPOT KSL"
827 "MACMT1" "Charmettes"
828 "MACMT0" "Charmettes"
829 "ESCLM0" "Joseph Huet"
830 "ESCLM1" "Joseph Huet"
834 "MAERB1" "Acacias"
841 "ESTAM1" "Essey Tamaris"
902 "MACRN2" "Washington Foch"
903 "MACRN0" "Washington Foch"
915 "ESBRI0" "Clinique Pasteur"
943 "VAREC4" "Le Reclus"
946 "VACHM0" "La Champelle"
947 "VACHM1" "La Champelle"
951 "MXECO0" "Maxeville EcoParc"
952 "MXECO1" "Maxeville EcoParc"
980 "NYDFE0" "Division de Fer"
981 "NYPCL0" "Point Central"
985 "LXSAR0" "Sarre"
991 "VABLG1" "Belgique"
995 "ESBRI1" "Clinique Pasteur"
1107 "MALIV0" "Saint-Livier"
1108 "MALIV2" "Saint-Livier"
1118 "NYMUL1" "Mulhouse"
1130 "NYCH32" "Charles III"
1131 "MAPIC2" "Gérard Barrois"
1132 "NYREP5" "Joffre Gare"
1138 "NYMUL0" "Mulhouse"
1143 "VACHU3" "Vandoeuvre CHU Brabois"
1144 "NYEXE0" "Exelmans"
unused_shape WARNING 38

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.

shapeId (?) The faulty record's id. csvRowNumber (?) The row number of the faulty record.
"L2P5" 219
"L3P2" 2800
"L62P6" 9314
"L16P2" 10338
"L16P4" 10848
"L16P3" 11230
"L16P1" 11618
"L7P4" 14560
"L47P70" 16370
"L47P71" 16765
"L43P1" 17719
"L47P2" 22331
"L47P4" 22840
"L47P5" 23755
"L3P4" 24661
"L46P2" 26250
"L46P4" 27091
"L45P2" 27640
"L3P5" 28577
"L3P1" 28719
"L1P39" 28848
"L46P1" 29232
"L46P3" 30051
"L45P1" 30650
"L47P1" 35208
"L39P15" 37801
"L39P14" 38002
"L7P2" 38216
"L7P13" 55382
"L7P12" 56859
"L2P25" 61900
"L11P60" 63840
"L11P57" 64761
"L11P59" 73040
"L11P58" 73925
"L2P8" 74692
"L2P7" 74800
"L2P24" 75821
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" 11