GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-05-04T20:14:58Z,
for the dataset file:///shared/vitoria-gasteiz_cf087b0a.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-05-03
Feed End Date:
2026-05-31

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: 349
  • Trips: 4131

Specification Compliance report

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

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 516

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 516 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-fd5160cc" 21699 0.0 2 21698 0.0 1 0.732556190027107
"sha-fd5160cc" 21778 841.0 81 21777 841.0 80 0.24456389268726034
"sha-fd5160cc" 21819 1712.0 122 21818 1712.0 121 0.24454603045124076
"sha-fd5160cc" 21937 3584.0 240 21936 3584.0 239 0.8151591238665448
"sha-fd5160cc" 21939 3586.0 242 21938 3586.0 241 0.8151589786398994
"sha-fd5160cc" 21959 3881.0 262 21958 3881.0 261 0.8151534348698769
"sha-fd5160cc" 21962 3884.0 265 21961 3884.0 264 0.8151535800652611
"sha-fd5160cc" 21965 3887.0 268 21964 3887.0 267 0.815153698861462
"sha-fd5160cc" 21978 3961.0 281 21977 3961.0 280 0.13787348362922802
"sha-fd5160cc" 22009 5049.0 312 22008 5049.0 311 0.23685894848185127
"sha-fd5160cc" 22106 7109.0 409 22105 7109.0 408 0.5015780289784716
"sha-fd5160cc" 22221 8103.0 524 22220 8103.0 523 0.5619197681766297
"sha-fd5160cc" 22426 10052.0 729 22425 10052.0 728 0.8151038026224956
"sha-fd5160cc" 22435 10064.0 738 22434 10064.0 737 0.8151042119031647
"sha-fd5160cc" 22580 11796.0 883 22579 11796.0 882 0.46433084096735877
"sha-fd5160cc" 22664 13478.0 967 22663 13478.0 966 0.23686528279061667
"sha-fd5160cc" 22771 15311.0 1074 22770 15311.0 1073 0.4521910155720141
"sha-fd5160cc" 22782 16634.0 1085 22781 16634.0 1084 0.4077065112518669
"sha-fd5160cc" 22810 17380.0 1113 22809 17380.0 1112 0.3261839976135111
"sha-1c6d28e4" 223 0.0 2 222 0.0 1 0.732556190027107
"sha-1c6d28e4" 302 841.0 81 301 841.0 80 0.24456389268726034
"sha-1c6d28e4" 343 1712.0 122 342 1712.0 121 0.24454603045124076
"sha-1c6d28e4" 465 3002.0 244 464 3002.0 243 0.8151892180234876
"sha-1c6d28e4" 467 3004.0 246 466 3004.0 245 0.8151890728030692
"sha-1c6d28e4" 486 3025.0 265 485 3025.0 264 0.8151870929959913
"sha-1c6d28e4" 490 3029.0 269 489 3029.0 268 0.8151868290169708
"sha-1c6d28e4" 497 3036.0 276 496 3036.0 275 0.8151865782368095
"sha-1c6d28e4" 562 3619.0 341 561 3619.0 340 0.8151585958873573
"sha-1c6d28e4" 566 3707.0 345 565 3707.0 344 0.6032805887360995
"sha-1c6d28e4" 630 5283.0 409 629 5283.0 408 0.22239020252697528
"sha-1c6d28e4" 667 6211.0 446 666 6211.0 445 0.5015961766407421
"sha-1c6d28e4" 674 6425.0 453 673 6425.0 452 0.34451266954871196
"sha-1c6d28e4" 686 6645.0 465 685 6645.0 464 0.8151785135945745
"sha-1c6d28e4" 1035 10070.0 814 1034 10070.0 813 0.8151038026224956
"sha-1c6d28e4" 1044 10082.0 823 1043 10082.0 822 0.8151042119031647
"sha-1c6d28e4" 1189 11814.0 968 1188 11814.0 967 0.46433084096735877
"sha-1c6d28e4" 1296 13624.0 1075 1295 13624.0 1074 0.4521910155720141
"sha-1c6d28e4" 1307 14947.0 1086 1306 14947.0 1085 0.4077065112518669
"sha-1c6d28e4" 1335 15693.0 1114 1334 15693.0 1113 0.3261839976135111
"sha-9ca42bdf" 14713 3040.0 28 14712 3040.0 27 0.5559755059637761
"sha-9ca42bdf" 14778 4080.0 93 14777 4080.0 92 0.44478040434662636
"sha-9ca42bdf" 14789 5250.0 104 14788 5250.0 103 0.4665057038266799
"sha-9ca42bdf" 14808 6252.0 123 14807 6252.0 122 0.24458752980430268
"sha-9ca42bdf" 14848 6883.0 163 14847 6883.0 162 0.8152452979119011
"sha-9ca42bdf" 14855 6889.0 170 14854 6889.0 169 0.8152451791312105
"sha-9ca42bdf" 14877 6913.0 192 14876 6913.0 191 0.8152430675035405
"sha-9ca42bdf" 14879 6915.0 194 14878 6915.0 193 0.8152429222942649
"sha-9ca42bdf" 14889 6924.0 204 14888 6924.0 203 0.8152426583686645
"sha-9ca42bdf" 14900 6934.0 215 14899 6934.0 214 0.8152430674711291
"sha-947c604c" 13027 467.0 49 13026 467.0 48 0.4892768672596147
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-95235e3c" 14145 0.0 2 14144 0.0 1
"sha-9b62cc54" 14652 0.0 2 14651 0.0 1
"sha-d485b036" 18636 0.0 2 18635 0.0 1
"sha-1d927b6a" 1564 2013.0 122 1563 2013.0 121
"sha-26e89781" 2859 2013.0 122 2858 2013.0 121
"sha-eb9883d5" 20783 0.0 2 20782 0.0 1
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 "20260504" "20260531" "20260603"
mixed_case_recommended_field WARNING 4535

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 4535 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_20260503T173051_b6ae041e" 2
"trips.txt" "trip_headsign" "ARKAIATE / ZABALGANA" 3
"trips.txt" "trip_short_name" "6_0_20260503T045621_104ee4b6" 3
"trips.txt" "trip_short_name" "8_0_20260503T084452_b6b09fe7" 4
"trips.txt" "trip_short_name" "8_1_20260503T084205_05efec5b" 5
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 7
"trips.txt" "trip_short_name" "E1CEM_001-CM" 7
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 8
"trips.txt" "trip_short_name" "E1CEM_002-CM" 8
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 9
"trips.txt" "trip_short_name" "E1CEM_003-CS" 9
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 10
"trips.txt" "trip_short_name" "E1CEM_004-CS" 10
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 11
"trips.txt" "trip_short_name" "E1CEM_005-CS" 11
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 12
"trips.txt" "trip_short_name" "E1CEM_006-CS" 12
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 13
"trips.txt" "trip_short_name" "E1CEM_007-CS" 13
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 14
"trips.txt" "trip_short_name" "E1CEM_010-CDI" 14
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 15
"trips.txt" "trip_short_name" "E1CEM_011-CDI" 15
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 16
"trips.txt" "trip_short_name" "E1CEM_012-CDI" 16
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 17
"trips.txt" "trip_short_name" "E1CEM_013-CDI" 17
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 18
"trips.txt" "trip_short_name" "E1CEM_014-CDI" 18
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 19
"trips.txt" "trip_short_name" "E1CEM_015-CDI" 19
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 20
"trips.txt" "trip_short_name" "E1CEM_016-CDI" 20
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 21
"trips.txt" "trip_short_name" "E1CEM_017-CDI" 21
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 22
"trips.txt" "trip_short_name" "E1CEM_018-CDI" 22
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 23
"trips.txt" "trip_short_name" "E1CEM_019-CDI" 23
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 24
"trips.txt" "trip_short_name" "E1CEM_020-CDI" 24
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 25
"trips.txt" "trip_short_name" "E1CEM_021-CDI" 25
"trips.txt" "trip_headsign" "ESPECIAL / BUESA ARENA" 26
"trips.txt" "trip_headsign" "ESPECIAL / BUESA ARENA" 27
"trips.txt" "trip_headsign" "ESPECIAL / BUESA ARENA" 28
"trips.txt" "trip_headsign" "ESPECIAL / BUESA ARENA" 29
"trips.txt" "trip_headsign" "ESPECIAL / BUESA ARENA" 30
"trips.txt" "trip_headsign" "ESPECIAL / BUESA ARENA" 31
"trips.txt" "trip_headsign" "ESPECIAL / BUESA ARENA" 32
stop_without_stop_time WARNING 3

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.
71 "1194" "Av. Los Huetos / Azucarera"
228 "1193" "Av. Los Huetos / Mayoristas"
257 "1195" "Av. Los Huetos / Mercedes"