GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-02-03T14:33:54Z,
for the dataset file:///shared/vitoria-gasteiz_b7ae620b.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Tuvisa
Feed Email:
tuvisa@vitoria-gasteiz.org
Feed Language:
Spanish
Feed Start Date:
2026-02-01
Feed End Date:
2026-03-04

Files included


  1. agency.txt
  2. attributions.txt
  3. calendar_dates.txt
  4. fare_attributes.txt
  5. fare_rules.txt
  6. feed_info.txt
  7. routes.txt
  8. shapes.txt
  9. stop_times.txt
  10. stops.txt
  11. translations.txt
  12. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 30
  • Shapes: 58
  • Stops: 348
  • Trips: 4129

Specification Compliance report

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

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 527

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 527 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.
"sha-cd028d7a" 20762 583.0 33 20761 583.0 32 0.2686689656284832
"sha-cd028d7a" 20776 1230.0 47 20775 1230.0 46 0.3335853034368008
"sha-cd028d7a" 20783 1410.0 54 20782 1410.0 53 0.44478040434662636
"sha-cd028d7a" 20800 1558.0 71 20799 1558.0 70 0.815241219795754
"sha-cd028d7a" 20802 1560.0 73 20801 1560.0 72 0.8152413517750431
"sha-cd028d7a" 20808 1565.0 79 20807 1565.0 78 0.8152414705563819
"sha-cd028d7a" 20812 1569.0 83 20811 1569.0 82 0.8152416157335466
"sha-cd028d7a" 20815 1572.0 86 20814 1572.0 85 0.8152414705563819
"sha-cd028d7a" 20818 1575.0 89 20817 1575.0 88 0.8152413517750431
"sha-cd028d7a" 20821 1578.0 92 20820 1578.0 91 0.815241219795754
"sha-cd028d7a" 20823 1580.0 94 20822 1580.0 93 0.8152410746185076
"sha-cd028d7a" 20855 1888.0 126 20854 1888.0 125 0.8152352674715919
"sha-cd028d7a" 20859 1892.0 130 20858 1892.0 129 0.8152352675040032
"sha-cd028d7a" 20875 2265.0 146 20874 2265.0 145 0.2445684421477884
"sha-cd028d7a" 20889 2790.0 160 20888 2790.0 159 0.2368630842610465
"sha-80684da3" 12402 3408.0 25 12401 3408.0 24 0.23685660284868354
"sha-26e4fa35" 2720 0.0 2 2719 0.0 1 0.732556190027107
"sha-26e4fa35" 2799 841.0 81 2798 841.0 80 0.24456389268726034
"sha-26e4fa35" 2840 1712.0 122 2839 1712.0 121 0.24454603045124076
"sha-26e4fa35" 2962 3002.0 244 2961 3002.0 243 0.8151892180234876
"sha-26e4fa35" 2964 3004.0 246 2963 3004.0 245 0.8151890728030692
"sha-26e4fa35" 2983 3025.0 265 2982 3025.0 264 0.8151870929959913
"sha-26e4fa35" 2987 3029.0 269 2986 3029.0 268 0.8151868290169708
"sha-26e4fa35" 2994 3036.0 276 2993 3036.0 275 0.8151865782368095
"sha-26e4fa35" 3059 3619.0 341 3058 3619.0 340 0.8151585958873573
"sha-26e4fa35" 3063 3707.0 345 3062 3707.0 344 0.6032805887360995
"sha-26e4fa35" 3127 5283.0 409 3126 5283.0 408 0.22239020252697528
"sha-26e4fa35" 3164 6211.0 446 3163 6211.0 445 0.5015961766407421
"sha-26e4fa35" 3171 6425.0 453 3170 6425.0 452 0.34451266954871196
"sha-26e4fa35" 3183 6645.0 465 3182 6645.0 464 0.8151785135945745
"sha-26e4fa35" 3532 10070.0 814 3531 10070.0 813 0.8151038026224956
"sha-26e4fa35" 3541 10082.0 823 3540 10082.0 822 0.8151042119031647
"sha-26e4fa35" 3686 11814.0 968 3685 11814.0 967 0.46433084096735877
"sha-26e4fa35" 3793 13624.0 1075 3792 13624.0 1074 0.4521910155720141
"sha-26e4fa35" 3804 14947.0 1086 3803 14947.0 1085 0.4077065112518669
"sha-26e4fa35" 3832 15693.0 1114 3831 15693.0 1113 0.3261839976135111
"sha-c17aa9d9" 18856 2062.0 190 18855 2062.0 189 0.8152210134412494
"sha-c17aa9d9" 18942 2976.0 276 18941 2976.0 275 0.815260752460387
"sha-c17aa9d9" 18978 3349.0 312 18977 3349.0 311 0.24457949269058765
"sha-c17aa9d9" 19009 3916.0 343 19008 3916.0 342 0.2686689656284832
"sha-c17aa9d9" 19023 4563.0 357 19022 4563.0 356 0.3335853034368008
"sha-c17aa9d9" 19069 5201.0 403 19068 5201.0 402 0.8151946295227158
"sha-c17aa9d9" 19110 5500.0 444 19109 5500.0 443 0.8151896139582233
"sha-c17aa9d9" 19114 5504.0 448 19113 5504.0 447 0.8151894688027055
"sha-c17aa9d9" 19122 5511.0 456 19121 5511.0 455 0.8151892180234876
"sha-c17aa9d9" 19124 5513.0 458 19123 5513.0 457 0.8151890728030692
"sha-c17aa9d9" 19187 6159.0 521 19186 6159.0 520 0.3434004185677008
"sha-c17aa9d9" 19204 6431.0 538 19203 6431.0 537 0.24454421289339562
"sha-6d1c8b1e" 10831 49.0 17 10830 49.0 16 0.8153437601838411
"sha-6d1c8b1e" 10846 64.0 32 10845 64.0 31 0.8153429684233674
equal_shape_distance_same_coordinates WARNING 6

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`.
"sha-38795552" 5808 0.0 2 5807 0.0 1
"sha-18aab018" 1483 2013.0 122 1482 2013.0 121
"sha-78c049ff" 11834 0.0 2 11833 0.0 1
"sha-861324a1" 12518 0.0 2 12517 0.0 1
"sha-1e5700e0" 1727 2013.0 122 1726 2013.0 121
"sha-edc50537" 23552 0.0 2 23551 0.0 1
fast_travel_between_consecutive_stops WARNING 1

fast_travel_between_consecutive_stops

A transit vehicle moves too fast between two consecutive stops.

The speed threshold depends on route type:

Route type Description Threshold, km/h
0 Light rail 100
1 Subway 150
2 Rail 500
3 Bus 150
4 Ferry 80
5 Cable tram 30
6 Aerial lift 50
7 Funicular 50
11 Trolleybus 150
12 Monorail 150
- Unknown 200

You can see more about this notice here.

tripCsvRowNumber (?) The row number of the problematic trip. tripId (?) `trip_id` of the problematic trip. routeId (?) `route_id` of the problematic trip. speedKph (?) Travel speed (km/h). distanceKm (?) Distance between stops (km). csvRowNumber1 (?) The row number of the first stop time. stopSequence1 (?) `stop_sequence` of the first stop. stopId1 (?) `stop_id` of the first stop. stopName1 (?) `stop_name` of the first stop. departureTime1 (?) `departure_time` of the first stop. csvRowNumber2 (?) The row number of the second stop time. stopSequence2 (?) `stop_sequence` of the second stop. stopId2 (?) `stop_id` of the second stop. stopName2 (?) `stop_name` of the second stop. arrivalTime2 (?) `arrival_time` of the second stop.
2395 "L5ESP5_005-LAB" "5" 338.93720699793846 0.5648953449965641 38818 17 "1193" "Av. Los Huetos / Mayoristas" "11:13:49" 38819 18 "1195" "Av. Los Huetos / Mercedes" "11:13:55"
feed_expiration_date30_days WARNING 1

feed_expiration_date30_days

Dataset should cover at least the next 30 days of service.

At any time, the GTFS dataset should cover at least the next 30 days of service, and ideally for as long as the operator is confident that the schedule will continue to be operated.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. currentDate (?) Current date (YYYYMMDD format). feedEndDate (?) Feed end date (YYYYMMDD format). suggestedExpirationDate (?) Suggested expiration date (YYYYMMDD format).
2 "20260203" "20260304" "20260305"
mixed_case_recommended_field WARNING 4530

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 4530 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_short_name" "1_0_2026-02-01T17:35:24_87247fa4" 2
"trips.txt" "trip_short_name" "8_0_2026-02-01T10:07:59_75f628bf" 4
"trips.txt" "trip_headsign" "BEI A / MENDIZORROTZA" 5
"trips.txt" "trip_headsign" "BEI A / BOULEVARD" 6
"trips.txt" "trip_headsign" "BEI A / MENDIZORROTZA" 7
"trips.txt" "trip_headsign" "BEI A / BOULEVARD" 8
"trips.txt" "trip_headsign" "BEI A / MENDIZORROTZA" 9
"trips.txt" "trip_headsign" "BEI A / BOULEVARD" 10
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 11
"trips.txt" "trip_short_name" "E1CEM_001-CM" 11
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 12
"trips.txt" "trip_short_name" "E1CEM_002-CM" 12
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 13
"trips.txt" "trip_short_name" "E1CEM_003-CS" 13
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 14
"trips.txt" "trip_short_name" "E1CEM_004-CS" 14
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 15
"trips.txt" "trip_short_name" "E1CEM_005-CS" 15
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 16
"trips.txt" "trip_short_name" "E1CEM_006-CS" 16
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 17
"trips.txt" "trip_short_name" "E1CEM_007-CS" 17
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 18
"trips.txt" "trip_short_name" "E1CEM_010-CDI" 18
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 19
"trips.txt" "trip_short_name" "E1CEM_011-CDI" 19
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 20
"trips.txt" "trip_short_name" "E1CEM_012-CDI" 20
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 21
"trips.txt" "trip_short_name" "E1CEM_013-CDI" 21
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 22
"trips.txt" "trip_short_name" "E1CEM_014-CDI" 22
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 23
"trips.txt" "trip_short_name" "E1CEM_015-CDI" 23
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 24
"trips.txt" "trip_short_name" "E1CEM_016-CDI" 24
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 25
"trips.txt" "trip_short_name" "E1CEM_017-CDI" 25
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 26
"trips.txt" "trip_short_name" "E1CEM_018-CDI" 26
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 27
"trips.txt" "trip_short_name" "E1CEM_019-CDI" 27
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 28
"trips.txt" "trip_short_name" "E1CEM_020-CDI" 28
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 29
"trips.txt" "trip_short_name" "E1CEM_021-CDI" 29
"trips.txt" "trip_headsign" "LAKUA / ABETXUKO" 30
"trips.txt" "trip_headsign" "LAKUA / ABETXUKO" 31
"trips.txt" "trip_headsign" "LAKUA / ABETXUKO" 32
"trips.txt" "trip_headsign" "LAKUA / ABETXUKO" 33