GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-06-19T18:19:08Z,
for the dataset file:///shared/vitoria-gasteiz_c9626c42.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-06-17
Feed End Date:
2026-07-18

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: 54
  • Stops: 348
  • Trips: 4131

Specification Compliance report

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

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 518

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 518 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-558b9ad9" 9455 332.0 48 9454 332.0 47 0.8150521999433968
"sha-558b9ad9" 9458 335.0 51 9457 335.0 50 0.8150520547270367
"sha-558b9ad9" 9486 710.0 79 9485 710.0 78 0.27573373409392443
"sha-558b9ad9" 9617 2935.0 210 9616 2935.0 209 0.1973445050964952
"sha-10cf4a5d" 863 49.0 17 862 49.0 16 0.8153437601838411
"sha-10cf4a5d" 878 64.0 32 877 64.0 31 0.8153429684233674
"sha-10cf4a5d" 909 96.0 63 908 96.0 62 0.8153453437345222
"sha-10cf4a5d" 914 101.0 68 913 101.0 67 0.8153456076538852
"sha-10cf4a5d" 917 104.0 71 916 104.0 70 0.8153457264175661
"sha-10cf4a5d" 961 437.0 115 960 437.0 114 0.8153808267692086
"sha-10cf4a5d" 1003 955.0 157 1002 955.0 156 0.8154304393842454
"sha-10cf4a5d" 1011 963.0 165 1010 963.0 164 0.8154309803207395
"sha-10cf4a5d" 1020 971.0 174 1019 971.0 173 0.8154310991023763
"sha-10cf4a5d" 1023 974.0 177 1022 974.0 176 0.8154309803531585
"sha-10cf4a5d" 1060 1389.0 214 1059 1389.0 213 0.8154253067559764
"sha-10cf4a5d" 1075 1404.0 229 1074 1404.0 228 0.8154245018931213
"sha-10cf4a5d" 1144 2435.0 298 1143 2435.0 297 0.8153474418582991
"sha-10cf4a5d" 1150 2440.0 304 1149 2440.0 303 0.8153475870459423
"sha-10cf4a5d" 1157 2446.0 311 1156 2446.0 310 0.815347441890715
"sha-10cf4a5d" 1159 2448.0 313 1158 2448.0 312 0.8153473231273244
"sha-10cf4a5d" 1200 3190.0 354 1199 3190.0 353 0.8153089219095772
"sha-10cf4a5d" 1292 5153.0 446 1291 5153.0 445 0.3434000873718352
"sha-10cf4a5d" 1360 5830.0 514 1359 5830.0 513 0.8150607808891951
"sha-10cf4a5d" 1364 5836.0 518 1363 5836.0 517 0.8150608997011058
"sha-10cf4a5d" 1470 7895.0 624 1469 7895.0 623 0.16299108263574705
"sha-10cf4a5d" 1481 8141.0 635 1480 8141.0 634 0.8149692765131218
"sha-10cf4a5d" 1488 8148.0 642 1487 8148.0 641 0.8149690124521667
"sha-10cf4a5d" 1492 8152.0 646 1491 8152.0 645 0.8149690124521667
"sha-10cf4a5d" 1503 8163.0 657 1502 8163.0 656 0.8149695406063783
"sha-10cf4a5d" 1527 8191.0 681 1526 8191.0 680 0.814972062382549
"sha-10cf4a5d" 1531 8195.0 685 1530 8195.0 684 0.8149721812094751
"sha-10cf4a5d" 1536 8199.0 690 1535 8199.0 689 0.8149721811770743
"sha-10cf4a5d" 1600 8603.0 754 1599 8603.0 753 0.8150123303561594
"sha-40dce6b1" 7326 2062.0 190 7325 2062.0 189 0.8152210134412494
"sha-40dce6b1" 7412 2976.0 276 7411 2976.0 275 0.815260752460387
"sha-40dce6b1" 7448 3349.0 312 7447 3349.0 311 0.24457949269058765
"sha-40dce6b1" 7479 3916.0 343 7478 3916.0 342 0.2686689656284832
"sha-40dce6b1" 7493 4563.0 357 7492 4563.0 356 0.3335853034368008
"sha-40dce6b1" 7539 5201.0 403 7538 5201.0 402 0.8151946295227158
"sha-40dce6b1" 7580 5500.0 444 7579 5500.0 443 0.8151896139582233
"sha-40dce6b1" 7584 5504.0 448 7583 5504.0 447 0.8151894688027055
"sha-40dce6b1" 7592 5511.0 456 7591 5511.0 455 0.8151892180234876
"sha-40dce6b1" 7594 5513.0 458 7593 5513.0 457 0.8151890728030692
"sha-40dce6b1" 7657 6159.0 521 7656 6159.0 520 0.3434004185677008
"sha-40dce6b1" 7674 6431.0 538 7673 6431.0 537 0.24454421289339562
"sha-4c2277e8" 9149 2364.0 80 9148 2364.0 79 0.8151896139582233
"sha-4c2277e8" 9152 2367.0 83 9151 2367.0 82 0.8151894688027055
"sha-4c2277e8" 9225 3022.0 156 9224 3022.0 155 0.3434004185677008
"sha-4c2277e8" 9242 3294.0 173 9241 3294.0 172 0.24454421289339562
"sha-4c2277e8" 9317 4826.0 248 9316 4826.0 247 0.2368630842610465
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-7a50ce5b" 13678 0.0 2 13677 0.0 1
"sha-a0447295" 17548 0.0 2 17547 0.0 1
"sha-15a62679" 1630 0.0 2 1629 0.0 1
"sha-3dddc219" 6412 2013.0 122 6411 2013.0 121
"sha-bdf5b2ff" 21641 0.0 2 21640 0.0 1
"sha-7a9cd822" 13895 2013.0 122 13894 2013.0 121
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 "20260619" "20260718" "20260719"
mixed_case_recommended_field WARNING 4546

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 4546 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_headsign" "ALDAIA / LARREIN" 2
"trips.txt" "trip_short_name" "10_0_20260617T113028_eff08f3f" 2
"trips.txt" "trip_headsign" "LAKUA / MARITURRI" 3
"trips.txt" "trip_short_name" "4_0_20260617T030226_676ca3c1" 3
"trips.txt" "trip_headsign" "LAKUA / MARITURRI" 4
"trips.txt" "trip_headsign" "LAKUA / MARITURRI" 5
"trips.txt" "trip_headsign" "LAKUA / MARITURRI" 6
"trips.txt" "trip_headsign" "MARITURRI / LAKUA" 7
"trips.txt" "trip_headsign" "MARITURRI / LAKUA" 8
"trips.txt" "trip_headsign" "MARITURRI / LAKUA" 9
"trips.txt" "trip_short_name" "4_1_20260617T172323_1da52c78" 9
"trips.txt" "trip_headsign" "ARKAIATE / ARIÑEZ ITV" 10
"trips.txt" "trip_short_name" "5_0_20260617T025858_2af3a63a" 10
"trips.txt" "trip_headsign" "ARKAIATE / ELEJALDE" 11
"trips.txt" "trip_short_name" "5_0_2_20260617T164206_0db67540" 11
"trips.txt" "trip_headsign" "ARKAIATE / ARIÑEZ" 12
"trips.txt" "trip_short_name" "5_0_3_20260618T024713_bef5dce2" 12
"trips.txt" "trip_headsign" "ARKAIATE / ASTEGIETA" 13
"trips.txt" "trip_headsign" "ELEJALDE / ARKAIATE" 14
"trips.txt" "trip_short_name" "5_1_2_20260617T053514_732b94dd" 14
"trips.txt" "trip_headsign" "ELEJALDE / ARKAIATE" 15
"trips.txt" "trip_short_name" "5_1_2_20260617T055354_e73cc657" 15
"trips.txt" "trip_headsign" "ELEJALDE / ARKAIATE" 16
"trips.txt" "trip_headsign" "ELEJALDE / ARKAIATE" 17
"trips.txt" "trip_short_name" "5_1_2_20260617T113157_7339dad5" 17
"trips.txt" "trip_headsign" "ELEJALDE / ARKAIATE" 18
"trips.txt" "trip_headsign" "ALDAIA / LARREIN" 19
"trips.txt" "trip_short_name" "6118ESP2L10" 19
"trips.txt" "trip_headsign" "ARKAIATE / ELEJALDE" 20
"trips.txt" "trip_short_name" "6440ESP4L5" 20
"trips.txt" "trip_short_name" "8_0_20260617T095524_a7fb8728" 21
"trips.txt" "trip_headsign" "BEI A / MENDIZORROTZA" 22
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 23
"trips.txt" "trip_short_name" "E1CEM_001-CM" 23
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 24
"trips.txt" "trip_short_name" "E1CEM_002-CM" 24
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 25
"trips.txt" "trip_short_name" "E1CEM_003-CS" 25
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 26
"trips.txt" "trip_short_name" "E1CEM_004-CS" 26
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 27
"trips.txt" "trip_short_name" "E1CEM_005-CS" 27
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 28
"trips.txt" "trip_short_name" "E1CEM_006-CS" 28
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 29
"trips.txt" "trip_short_name" "E1CEM_007-CS" 29
"trips.txt" "trip_headsign" "CEMENTERIO / EL SALVADOR" 30
"trips.txt" "trip_short_name" "E1CEM_008-CV" 30
"trips.txt" "trip_headsign" "EL SALVADOR / CEMENTERIO" 31
"trips.txt" "trip_short_name" "E1CEM_009-CV" 31
stop_without_stop_time WARNING 1

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.
341 "1334" "Bake kalea / Santiago Ospitalea - Paz / Hospital Santiago"