braga — Enhanced Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-05-04T17:30:05Z,
for the dataset file:///shared/braga_03ecbc79.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Busmaps.com
Publisher URL:
https://busmaps.com
Feed Language:
Portuguese
Feed Start Date:
2025-11-30
Feed End Date:
2025-12-08

Files included


  1. agency.txt
  2. calendar.txt
  3. calendar_dates.txt
  4. feed_info.txt
  5. routes.txt
  6. shapes.txt
  7. stop_times.txt
  8. stops.txt
  9. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 130
  • Shapes: 426
  • Stops: 1922
  • Trips: 5368

Specification Compliance report

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

Notice Code Severity Total
expired_calendar WARNING 12

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 "2412-1"
3 "2412-234"
4 "2412-2345"
5 "2412-24"
6 "2412-245"
7 "2412-3"
8 "2412-30167"
9 "2412-3017"
10 "2412-307"
11 "2412-5"
12 "2412-6"
13 "2412-6154526fbf9ae670b604"
fast_travel_between_far_stops WARNING 1

fast_travel_between_far_stops

A transit vehicle moves too fast between two far stops.

Two stops are considered "far" if they are more than 10 km apart. This normally indicates a more serious problem than too fast travel between consecutive stops.

The speed threshold depends on route type and are the same as fast_travel_between_consecutive_stops.

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.
4919 "2412-4595657" "2412-146301" 151.73841957726643 10.115894638484429 134617 1 "2412-1798" "Ciclo I" "13:25:00" 134651 35 "2412-1179" "António G Pereira I" "13:28:00"
feed_expiration_date7_days WARNING 1

feed_expiration_date7_days

Dataset should be valid for at least the next 7 days.

The dataset expiration date defined in feed_info.txt is in seven days or less. At any time, the published GTFS dataset should be valid for at least the next 7 days.

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" "20251208" "20260511"
stop_too_far_from_shape WARNING 57

stop_too_far_from_shape

Stop too far from trip shape.

Per GTFS Best Practices, route alignments (in shapes.txt) should be within 100 meters of stop locations which a trip serves. This potentially indicates a problem with the location of the stop or the path of the shape.

You can see more about this notice here.

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

tripCsvRowNumber (?) The row number of the faulty record from `trips.txt`. shapeId (?) The id of the shape that is referred to. tripId (?) The id of the trip that is referred to. stopTimeCsvRowNumber (?) The row number of the faulty record from `stop_times.txt`. stopId (?) The id of the stop that is referred to. stopName (?) The name of the stop that is referred to. match (?) Latitude and longitude pair of the location. geoDistanceToShape (?) Distance from stop to shape.
4473 "2412-37_1057" "2412-4586007" 124429 "2412-330" "Souto I" [41.486735113676716,-8.50757694690492] 275.3185553711112
4473 "2412-37_1057" "2412-4586007" 124430 "2412-677" "Real Iii" [41.48673399999999,-8.507786] 493.52438143531697
4473 "2412-37_1057" "2412-4586007" 124431 "2412-678" "Real Ii" [41.486757,-8.507899] 729.2146054791112
4473 "2412-37_1057" "2412-4586007" 124432 "2412-272" "Cachada Ii" [41.487173,-8.514436999999997] 1053.4188774443555
4473 "2412-37_1057" "2412-4586007" 124433 "2412-382" "Real I" [41.486757,-8.507899] 881.4395874484788
4473 "2412-37_1057" "2412-4586007" 124434 "2412-384" "Real Ii" [41.486757,-8.507899] 736.5796727512615
4473 "2412-37_1057" "2412-4586007" 124435 "2412-385" "Real Iii" [41.48673399999999,-8.507786] 496.253184588086
4473 "2412-37_1057" "2412-4586007" 124436 "2412-332" "Souto I" [41.486743738138145,-8.50750351611837] 278.31519214713256
5297 "2412-32_225" "2412-4612018" 147416 "2412-1090" "Quinta II (Mazagăo)" [41.52564608548401,-8.456391285830668] 118.62002779283478
5296 "2412-32_220" "2412-4612017" 147383 "2412-1090" "Quinta II (Mazagăo)" [41.52564636493643,-8.456389588620828] 118.60046106303935
4970 "2412-50_Ida_Casais" "2412-4598026" 136556 "2412-608" "Seixido (Assento)" [41.56546399999999,-8.47732] 428.0837364202465
4970 "2412-50_Ida_Casais" "2412-4598026" 136557 "2412-611" "Assento" [41.56546399999999,-8.47732] 717.2708598290487
4970 "2412-50_Ida_Casais" "2412-4598026" 136558 "2412-609" "Seixido (Assento)" [41.56546399999999,-8.47732] 427.83216821047284
1746 "2412-35_901" "2412-4550207" 43018 "2412-2066" "José Luís Cruz Araújo" [41.484722000000005,-8.484936000000001] 165.00685086268948
1746 "2412-35_901" "2412-4550207" 43019 "2412-2067" "Calvário I" [41.484511,-8.484741] 106.95520311416497
1748 "2412-35_903" "2412-4550209" 43115 "2412-2066" "José Luís Cruz Araújo" [41.484722000000005,-8.484936000000001] 165.00685086268948
1748 "2412-35_903" "2412-4550209" 43116 "2412-2067" "Calvário I" [41.484511,-8.484741] 106.95520311416497
4157 "2412-58_282" "2412-4574592" 117195 "2412-2091" "25 Abril" [41.532117764632204,-8.429276294910903] 277.06513156881994
5145 "2412-53_313" "2412-4610655" 142346 "2412-66" "Norton Matos I" [41.554014,-8.426174] 191.98571975928638
2117 "2412-59_964" "2412-4551358" 53688 "2412-12" "Central Iv" [41.551817,-8.420495] 116.68013714925256
5132 "2412-6_39" "2412-4610642" 141993 "2412-66" "Norton Matos I" [41.55401899999999,-8.426242] 195.70520430579555
998 "2412-5_907" "2412-4549001" 18281 "2412-1503" "Cons Torres Almeida Ii" [41.551532,-8.429023000000003] 102.18550572154582
998 "2412-5_907" "2412-4549001" 18282 "2412-47" "Conde Agrolongo Iii" [41.551532,-8.429023000000003] 246.26721992131752
5098 "2412-33_231" "2412-4610607" 140948 "2412-1911" "25 de Abril (D Maria II Ii)" [41.54768633968758,-8.417355049164678] 138.4063393524367
5098 "2412-33_231" "2412-4610607" 140949 "2412-1912" "25 de Abril (D Maria II Iii)" [41.54845947362315,-8.416528626143853] 139.8801197483922
1743 "2412-35_1030" "2412-4550201" 42850 "2412-2066" "José Luís Cruz Araújo" [41.484723,-8.484938] 165.03696111040156
1743 "2412-35_1030" "2412-4550201" 42851 "2412-2067" "Calvário I" [41.484514,-8.484743] 107.1832572449199
1744 "2412-35_897" "2412-4550205" 42875 "2412-2066" "José Luís Cruz Araújo" [41.484723,-8.484935] 164.8685536432842
1744 "2412-35_897" "2412-4550205" 42876 "2412-2067" "Calvário I" [41.48451,-8.484741] 106.93387301441983
1745 "2412-35_898" "2412-4550206" 42931 "2412-2058" "António G Pereira V" [41.476351,-8.484749] 241.51645709863737
1745 "2412-35_898" "2412-4550206" 42939 "2412-2066" "José Luís Cruz Araújo" [41.484723,-8.484935] 164.8685536432842
1745 "2412-35_898" "2412-4550206" 42940 "2412-2067" "Calvário I" [41.48451,-8.484741] 106.93387301441983
1749 "2412-35_899" "2412-4550210" 43150 "2412-2058" "António G Pereira V" [41.476351,-8.484749] 241.51645709863737
1749 "2412-35_899" "2412-4550210" 43158 "2412-2066" "José Luís Cruz Araújo" [41.484723,-8.484935] 164.8685536432842
1749 "2412-35_899" "2412-4550210" 43159 "2412-2067" "Calvário I" [41.48451,-8.484741] 106.93387301441983
4248 "2412-20_670" "2412-4574712" 119167 "2412-286" "Raio (Joăo Penha)" [41.546851,-8.420419000000003] 267.4169990817713
4979 "2412-50_Volta_Casais" "2412-4598055" 136807 "2412-608" "Seixido (Assento)" [41.565428,-8.477214000000002] 437.7528556303896
4979 "2412-50_Volta_Casais" "2412-4598055" 136808 "2412-611" "Assento" [41.565428,-8.477214000000002] 726.9152246085868
4979 "2412-50_Volta_Casais" "2412-4598055" 136809 "2412-609" "Seixido (Assento)" [41.565428,-8.477214000000002] 437.4914469295924
2122 "2412-59_532" "2412-4551363" 53866 "2412-12" "Central Iv" [41.551838,-8.420151] 145.2281575025235
4271 "2412-20_135" "2412-4574732" 120071 "2412-147" "Central Ii" [41.55056743159432,-8.418806874110286] 180.46483527490858
1613 "2412-24_168" "2412-4549872" 38647 "2412-1442" "Vergadela Ii" [41.57015412636059,-8.382915402671212] 290.75724895114604
1613 "2412-24_168" "2412-4549872" 38648 "2412-1444" "Mourisca I" [41.570117999999994,-8.382466] 344.91458959667324
1613 "2412-24_168" "2412-4549872" 38649 "2412-1443" "Mourisca Ii" [41.570117999999994,-8.382466] 275.87833327956287
1613 "2412-24_168" "2412-4549872" 38693 "2412-1695" "Sequeira (Caldas)" [41.53424700000001,-8.476887] 152.13687980992657
1613 "2412-24_168" "2412-4549872" 38695 "2412-1696" "Alegrete" [41.534215,-8.479237] 185.93793249224657
1615 "2412-24_160" "2412-4549874" 38740 "2412-1442" "Vergadela Ii" [41.57015412636059,-8.382915402671212] 290.75724895114604
1615 "2412-24_160" "2412-4549874" 38741 "2412-1444" "Mourisca I" [41.570117999999994,-8.382466] 344.91458959667324
1615 "2412-24_160" "2412-4549874" 38742 "2412-1443" "Mourisca Ii" [41.570117999999994,-8.382466] 275.87833327956287
1370 "2412-18_117" "2412-4549591" 31731 "2412-147" "Central Ii" [41.55057466357519,-8.418729038738755] 183.68911737387435
stops_match_shape_out_of_order WARNING 6

stops_match_shape_out_of_order

Two stop entries are different than their arrival-departure order defined by shapes.txt.

This could indicate a problem with the location of the stops, the path of the shape, or the sequence of the stops for their trip.

You can see more about this notice here.

tripCsvRowNumber (?) The row number of the faulty record from `trips.txt`. shapeId (?) The id of the shape that is referred to. tripId (?) The id of the trip that is referred to. stopTimeCsvRowNumber1 (?) The row number of the first faulty record from `stop_times.txt`. stopId1 (?) The id of the first stop that is referred to. stopName1 (?) The name of the first stop that is referred to. match1 (?) Latitude and longitude pair of the first matching location. stopTimeCsvRowNumber2 (?) The row number of the second faulty record from `stop_times.txt`. stopId2 (?) The id of the second stop that is referred to. stopName2 (?) The name of the second stop that is referred to. match2 (?) Latitude and longitude pair of the second matching location.
4075 "2412-945_769" "2412-4573719" 114551 "2412-788" "Paço Palmeira (Brac Augusta)" [41.596776476320535,-8.433073322534723] 114550 "2412-794" "Paço Palmeira (Securitas)" [41.59309426920629,-8.431569422618225]
272 "2412-Tub SJoao Ida Estadio" "2412-4530576" 3750 "2412-214" "Feira (Parretas)" [41.5555542574507,-8.430715827716385] 3749 "2412-2172" "S. Martinho (Viaduto)" [41.55366142505954,-8.430341477970902]
4919 "2412-350_3" "2412-4595657" 134652 "2412-1507" "Padre Manuel J. Rebelo" [41.49187601494212,-8.468258969170174] 134651 "2412-1179" "António G Pereira I" [41.48767800000001,-8.473305]
2916 "2412-89_806" "2412-4552314" 74278 "2412-1386" "Paióis" [41.54966715806224,-8.449218416040294] 74277 "2412-1390" "Paióis" [41.54810840950248,-8.446402375186652]
4720 "2412-54_318" "2412-4588343" 125724 "2412-275" "Carmo (Mercado)" [41.55403801402713,-8.426260353787017] 125723 "2412-185" "Conde Agrolongo Ii" [41.552880832724966,-8.427039326042127]
112 "2412-370" "2412-4520509" 1745 "2412-1944" "António Rocha Ii" [41.571295440927415,-8.454626104987382] 1744 "2412-1943" "António Rocha I" [41.5716243682904,-8.457790592804512]
trip_coverage_not_active_for_next7_days WARNING 1

trip_coverage_not_active_for_next7_days

Trips data should be valid for at least the next seven days.

This notice is triggered if the date range where a significant number of trips are running ends in less than 7 days.

You can see more about this notice here.

currentDate (?) Current date (YYYYMMDD format). serviceWindowStartDate (?) The start date of the majority service window. serviceWindowEndDate (?) The end date of the majority service window.
"20260504" "20251202" "20251205"