GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-01-23T15:27:36Z,
for the dataset file:///shared/tst.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. frequencies.txt
  5. routes.txt
  6. shapes.txt
  7. stop_times.txt
  8. stops.txt
  9. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 176
  • Shapes: 176
  • Stops: 1706
  • Trips: 2120

Specification Compliance report

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

Notice Code Severity Total
duplicate_route_name WARNING 20

duplicate_route_name

Two distinct routes have either the same route_short_name, the same route_long_name, or the same combination of route_short_name and route_long_name.

All routes of the same route_type with the same agency_id should have unique combinations of route_short_name and route_long_name.

Note that there may be valid cases where routes have the same short and long name, e.g., if they serve different areas. However, different directions must be modeled as the same route.

Example of bad data:

route_id route_short_name route_long_name
route1 U1 Southern
route2 U1 Southern

You can see more about this notice here.

csvRowNumber1 (?) The row number of the first occurrence. routeId1 (?) The id of the the first occurrence. csvRowNumber2 (?) The row number of the other occurrence. routeId2 (?) The id of the the other occurrence. routeShortName (?) Common `routes.route_short_name`. routeLongName (?) Common `routes.route_long_name`. routeTypeValue (?) Common `routes.route_type`. agencyId (?) Common `routes.agency_id`.
33 "193509" 35 "193511" "" "227 - Sesimbra - Maçã (via Sampaio)" 3 "11"
34 "193510" 36 "193512" "" "227 - Maçã - Sesimbra (via Sampaio)" 3 "11"
39 "193515" 41 "193517" "" "184 - FOGUETEIRO (Est) - SEIXAL (TF)" 3 "11"
40 "193516" 42 "193518" "" "184 - SEIXAL (TF) - FOGUETEIRO (Est)" 3 "11"
10 "20159" 52 "21719" "" "133 - LAZARIM/PILOTOS - CACILHAS (via Alto do Índio)" 3 "11"
61 "20133" 62 "20135" "" "123 - CHARNECA DE CAPARICA/QTA TEXUGO - CACILHAS (via Vale Flores)" 3 "11"
53 "50510" 84 "20287" "" "211 - SESIMBRA - QTA DO CONDE (Modelo) (via Fontainhas e Pinhal do General)" 3 "11"
97 "20345" 99 "20347" "" "240 - SESIMBRA - LAGOA ALBUFEIRA" 3 "11"
98 "20346" 100 "20348" "" "240 - LAGOA ALBUFEIRA - SESIMBRA" 3 "11"
101 "20116" 103 "20118" "" "114 - PAIO PIRES (C) - CACILHAS (via TF do Seixal)" 3 "11"
104 "20121" 106 "20123" "" "116 - PAIO PIRES (Qta da Flamância) - FONTE DA TELHA" 3 "11"
105 "20122" 107 "20124" "" "116 - FONTE DA TELHA - PAIO PIRES (Qta da Flamância)" 3 "11"
104 "20121" 108 "20125" "" "116 - PAIO PIRES (Qta da Flamância) - FONTE DA TELHA" 3 "11"
114 "20134" 115 "20136" "" "123 - CACILHAS - CHARNECA DE CAPARICA/QTA TEXUGO (via Vale Flores)" 3 "11"
54 "50511" 131 "20288" "" "211 - QTA DO CONDE (Modelo) - SESIMBRA (via Fontainhas e Pinhal do General)" 3 "11"
134 "20107" 136 "20109" "" "110 - STA MARTA DO PINHAL - CACILHAS (via Qta de S. Nicolau)" 3 "11"
135 "20108" 137 "20110" "" "110 - CACILHAS - STA MARTA DO PINHAL (via Qta de S. Nicolau)" 3 "11"
143 "20253" 144 "20255" "" "199 - PAIO PIRES (Centro) - CACILHAS" 3 "11"
71 "20254" 145 "20256" "" "199 - CACILHAS - PAIO PIRES (Centro)" 3 "11"
11 "20160" 176 "21720" "" "133 - CACILHAS - LAZARIM/PILOTOS (via Alto do Índio)" 3 "11"
expired_calendar WARNING 2192

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.

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

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
2 "28094938"
3 "28094939"
4 "28094944"
5 "28094945"
6 "28094946"
7 "28094947"
8 "28094940"
9 "28094941"
10 "28094942"
11 "28094943"
12 "28094948"
13 "28094953"
14 "28094954"
15 "28094955"
16 "28094956"
17 "28094949"
18 "28094950"
19 "28094951"
20 "28094952"
21 "28095054"
22 "28095055"
23 "28095056"
24 "28095057"
25 "28095059"
26 "28095058"
27 "28095060"
28 "28095061"
29 "28095062"
30 "28095064"
31 "28095063"
32 "28038617"
33 "28038618"
34 "28038626"
35 "28038628"
36 "28038630"
37 "28038632"
38 "28038634"
39 "28038638"
40 "28038636"
41 "28038606"
42 "28038615"
43 "28038595"
44 "28038604"
45 "28038607"
46 "28038596"
47 "28038620"
48 "28038616"
49 "28038613"
50 "28038614"
51 "28038610"
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.
483 "28039022" "20134" 150.9624228387236 0.5451420824731685 17395 1 "11_1105" "Cacilhas (Avª Aliança Povo MFA) Canecão" "06:11:31" 17396 2 "11_1108" "Cacilhas (Avª Aliança Povo MFA) Fte Lisnave" "06:11:44"
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 33

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_long_name" "125 - TRAFARIA - CACILHAS" 2
"routes.txt" "route_long_name" "125 - CACILHAS - TRAFARIA" 3
"routes.txt" "route_long_name" "126 - MARISOL - CACILHAS" 4
"routes.txt" "route_long_name" "126 - CACILHAS - MARISOL" 5
"routes.txt" "route_long_name" "103 - FORUM - ALMADA" 43
"routes.txt" "route_long_name" "103 - ALMADA - FORUM" 44
"routes.txt" "route_long_name" "124 - COSTA DE CAPARICA - CACILHAS" 45
"routes.txt" "route_long_name" "124 - CACILHAS - COSTA DE CAPARICA" 46
"routes.txt" "route_long_name" "783 - SETÚBAL - CACILHAS" 47
"routes.txt" "route_long_name" "783 - CACILHAS - SETÚBAL" 48
"routes.txt" "route_long_name" "223 - ALDEIA DO MECO - SESIMBRA" 65
"routes.txt" "route_long_name" "171 - COVA DO VAPOR - TRAFARIA" 75
"routes.txt" "route_long_name" "167 - FORUM - COSTA DE CAPARICA" 78
"routes.txt" "route_long_name" "203 - CACILHAS - SESIMBRA" 82
"routes.txt" "route_long_name" "234 - ALDEIA DO MECO - CASAIS DE SAMPAIO" 91
"routes.txt" "route_long_name" "234 - CASAIS DE SAMPAIO - ALDEIA DO MECO" 92
"routes.txt" "route_long_name" "240 - SESIMBRA - LAGOA ALBUFEIRA" 97
"routes.txt" "route_long_name" "240 - LAGOA ALBUFEIRA - SESIMBRA" 98
"routes.txt" "route_long_name" "240 - SESIMBRA - LAGOA ALBUFEIRA" 99
"routes.txt" "route_long_name" "240 - LAGOA ALBUFEIRA - SESIMBRA" 100
"routes.txt" "route_long_name" "117 - RAPOSEIRA - TRAFARIA" 109
"routes.txt" "route_long_name" "117 - TRAFARIA - RAPOSEIRA" 110
"routes.txt" "route_long_name" "146 - PORTO BRANDÃO - BANÁTICA" 122
"routes.txt" "route_long_name" "146 - BANÁTICA - PORTO BRANDÃO" 123
"routes.txt" "route_long_name" "203 - SESIMBRA - CACILHAS" 127
"routes.txt" "route_long_name" "223 - SESIMBRA - ALDEIA DO MECO" 138
"routes.txt" "route_long_name" "171 - TRAFARIA - COVA DO VAPOR" 154
"routes.txt" "route_long_name" "167 - COSTA DE CAPARICA - FORUM" 157
"routes.txt" "route_long_name" "101 - CRISTO REI - CACILHAS" 160
"routes.txt" "route_long_name" "101 - CACILHAS - CRISTO REI" 172
"routes.txt" "route_long_name" "106 - Bº FUNDO FOMENTO NORTE - CACILHAS" 173
"routes.txt" "route_long_name" "106 - CACILHAS - Bº FUNDO FOMENTO NORTE" 174
"stops.txt" "stop_name" "HGO - CDC" 810
stop_too_far_from_shape WARNING 165

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 165 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.
1554 "21820" "28094970" 51147 "11_2118" "Cacilhas (Lgo Alfredo Dinis Alex) Terminal P23" [38.6849905661304,-9.14748314500459] 320.3182078185159
951 "20179" "28095564" 32493 "11_4070" "Lisboa (Marquês Pombal) Fte Quiosque" [38.72503963633059,-9.15515656255909] 176.94584782547943
1131 "20212" "28095753" 36492 "11_2146" "Trafaria (Lgo Porto Lisboa) Terminal" [38.6727097406987,-9.2321848820089] 128.96200758554414
949 "20178" "28095562" 32435 "11_4071" "Ch Caparica (R Frederico Freitas) Solmar" [38.6088312686342,-9.18760292725764] 578.6943006766905
1128 "20211" "28095750" 36456 "11_2268" "Cova Vapor (R Parque 149) Posto EDP" [38.6653,-9.2464] 710.3484306169519
913 "20177" "28090426" 31211 "11_1109" "Cacilhas (Lgo Alfredo Dinis Alex) Terminal P1" [38.6843493877169,-9.14723304047087] 371.68709086526366
872 "20176" "28090392" 29612 "11_1497" "Qta Princesa (R Cidade Luanda)" [38.63316369250913,-9.12987863985332] 191.45523105636263
851 "20175" "28095544" 29366 "11_2061" "Banática (Terminal)" [38.6741453199326,-9.197292659442418] 408.2299632636067
831 "20174" "28095521" 29063 "11_2320" "Porto Brandão (Cais) Terminal" [38.6760283507351,-9.207002122273368] 202.35448323710406
1138 "20219" "28095762" 36589 "11_2022" "Almada (Pça S João Baptista 3)" [38.67737297714,-9.16279731083078] 562.0393201784779
1135 "20216" "28095757" 36544 "11_2213" "Costa Caparica (Torre Argolas) Terminal P2" [38.6437728511157,-9.232794461747892] 441.692588660364
1583 "21822" "28095507" 52209 "11_2114" "Cacilhas (Lgo Alfredo Dinis Alex) Terminal P17" [38.6849905661304,-9.14748314500459] 311.5044425819931
1133 "20215" "28095755" 36512 "11_1623" "Vale Figueira (R Dr Alberto Araújo) Fte Esc Daniel" [38.6404156661072,-9.18552682240885] 387.58500477114575
1565 "21821" "28095497" 51681 "11_1314" "Fonte Telha (Praia)" [38.5764898811345,-9.193493188117822] 479.380210647273
1601 "192237" "28095785" 53200 "11_4241" "Cova Piedade (Lgo 5 Outubro) Jardim" [38.67338775459179,-9.15484964086715] 370.4878275090216
1541 "21819" "28094957" 50913 "11_1273" "Feijó (Almada Fórum)" [38.6609852463047,-9.16369816733674] 838.3316264004677
1679 "192239" "28095620" 53949 "11_2322" "Costa Caparica (Torre Argolas) Terminal P6" [38.645295505079,-9.232251863903311] 570.533815320014
828 "20172" "28089561" 29006 "11_1624" "Vale Figueira (R Dr Alberto Araújo) Esc Daniel Sam" [38.6348481107862,-9.1726018138093] 984.4906788898346
825 "20171" "28089558" 28949 "11_1010" "Corroios (Est Ferroviária)" [38.638778557117206,-9.15336571855345] 390.5481967429629
1150 "20225" "28095772" 36763 "11_1135" "Miratejo (Alameda 25 Abril) C C Miratejo" [38.651688606073506,-9.14320301119782] 127.18368470509013
1478 "20346" "28090258" 48610 "11_1985" "Lagoa Albufeira (Avª Copacabana) (X) Avª Alcaide" [38.5091331958635,-9.16753006313852] 483.6540437922599
1149 "20224" "28089677" 36749 "11_3896" "Sobreda (R Manuel Parada) Esc Sec Sobreda" [38.6481370084128,-9.18334533820936] 252.94502658149352
1475 "20345" "28090252" 48442 "11_1324" "Sesimbra (Terminal)" [38.4473641906082,-9.101840175562398] 256.9403719736848
1148 "20223" "28089676" 36735 "11_3055" "Ch Caparica (Estr Bela Vista 191)" [38.6311868296259,-9.19346655156127] 189.3437238897061
1469 "20344" "28089820" 48310 "11_3218" "Pinhal Frades (Avª 25 Abril) Esc Básica P Frades" [38.5947247551153,-9.092959541312252] 264.49089046280795
1032 "20189" "28095653" 34084 "11_4343" "LISBOA (Terminal Sete Rios)" [38.73618659147991,-9.16041369314052] 872.138971104087
1146 "20222" "28095770" 36707 "11_1624" "Vale Figueira (R Dr Alberto Araújo) Esc Daniel Sam" [38.6354471559402,-9.177114492495356] 636.1623368699462
1463 "20343" "28089814" 48178 "11_2734" "Fernão Ferro (EN 378) Emigrante" [38.56738000000001,-9.097130000000002] 532.1592546046408
1019 "20188" "28095640" 33512 "11_2381" "Marisol (R Amadeu S Cardoso Fte Lte 31A)" [38.603169953589806,-9.16996282733006] 276.69652289017955
1143 "20221" "28095767" 36668 "11_2145" "Ch Caparica (R Antonio Andrade) Churrasqueira" [38.6206321481032,-9.19424072250302] 364.85289408176885
1013 "20187" "28095634" 33443 "11_4343" "LISBOA (Terminal Sete Rios)" [38.73618659147991,-9.16041369314052] 872.138971104087
1140 "20220" "28095764" 36623 "11_2107" "Lisboa (C Universit) Avª Prof G Pinto (Term) Fte R" [38.750110320883,-9.16145201372858] 251.55112191562972
1007 "20186" "28095628" 33344 "11_2324" "Trafaria (Lgo Porto Lisboa) Terminal" [38.6727097406987,-9.2321848820089] 136.09121262212633
1748 "192769" "28040525" 55974 "11_2657" "Sesimbra (Terminal)" [38.4473641906082,-9.101840175562398] 257.9314152588574
1687 "192407" "28039540" 54037 "11_1010" "Corroios (Est Ferroviária)" [38.638778557117206,-9.15336571855345] 390.5481967429629
1699 "192408" "28039552" 54349 "11_1202" "Costa Caparica (Terminal P5)" [38.6452252800537,-9.2366507895806] 375.44261469952824
159 "20109" "28090359" 5926 "11_1571" "Sta Marta Pinhal (Cemitério)" [38.6295369222255,-9.149622941786228] 547.1345585717834
1711 "192409" "28039916" 54661 "11_1199" "Costa Caparica (Terminal P1)" [38.6452252800537,-9.2366507895806] 374.881567848221
131 "20108" "28090338" 5170 "11_1114" "Cacilhas (Lgo Alfredo Dinis Alex) Terminal P2" [38.6843493877169,-9.14723304047087] 354.08485990713143
1159 "20227" "28095781" 36922 "11_4241" "Cova Piedade (Lgo 5 Outubro) Jardim" [38.67171721703778,-9.15406486079896] 313.2323078842274
1482 "20348" "28090268" 48812 "11_1985" "Lagoa Albufeira (Avª Copacabana) (X) Avª Alcaide" [38.5091331958635,-9.16753006313852] 483.6540437922599
1156 "20226" "28095778" 36877 "11_2408" "Pragal (Hospital G Orta) Terminal" [38.6725083190643,-9.170106212887939] 532.6856370248439
1480 "20347" "28090263" 48722 "11_1324" "Sesimbra (Terminal)" [38.4473641906082,-9.101840175562398] 256.9403719736848
1747 "192768" "28040524" 55939 "11_2534" "Azoia (EN 379) Xavier Lima" [38.427848405747206,-9.189462838913219] 673.6907517368608
994 "20183" "28095607" 33175 "11_4343" "LISBOA (Terminal Sete Rios)" [38.73618659147991,-9.16041369314052] 872.138971104087
980 "20182" "28095593" 32979 "11_2322" "Costa Caparica (Torre Argolas) Terminal P6" [38.645295505079,-9.232251863903311] 570.533815320014
967 "20181" "28095580" 32797 "11_4343" "LISBOA (Terminal Sete Rios)" [38.73618659147991,-9.16041369314052] 872.138971104087
955 "20180" "28095568" 32605 "11_2022" "Almada (Pça S João Baptista 3)" [38.67737297714,-9.16279731083078] 562.0393201784779
1683 "192240" "28095624" 53993 "11_4070" "Lisboa (Marquês Pombal) Fte Quiosque" [38.72503963633059,-9.15515656255909] 176.94584782547943
719 "20159" "28039426" 26180 "11_1449" "Pilotos (R Nuno Tristão)" [38.64612261297529,-9.207071081418155] 151.19853740130344
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.
1453 "20332" "28090250" 47849 "11_2693" "Sesimbra (EN 378) Telefones" [38.4473641906082,-9.1018401755624] 47848 "11_1566" "Sesimbra (Terminal)" [38.4456454728547,-9.09996995431391]
1641 "192238" "28095830" 53626 "11_4243" "Pragal (Hospital G Orta) Terminal" [38.674077833166095,-9.17608216248606] 53625 "11_4248" "HGO - CDC" [38.67388308249081,-9.177882656223332]
106 "20107" "28090312" 4446 "11_1572" "Sta Marta Pinhal (R António V Silva) Colégio Mãos" [38.62909736208411,-9.15458456344489] 4445 "11_4368" "Sta Marta Pinhal (R António V Silva) Centro de Saú" [38.632972067372926,-9.150587398311995]
1160 "20228" "28095782" 36936 "11_4243" "Pragal (Hospital G Orta) Terminal" [38.674077833166095,-9.17608216248606] 36935 "11_4248" "HGO - CDC" [38.67388308249081,-9.177882656223332]
1512 "21354" "28090448" 50149 "11_1572" "Sta Marta Pinhal (R António V Silva) Colégio Mãos" [38.62909736208411,-9.15458456344489] 50148 "11_4368" "Sta Marta Pinhal (R António V Silva) Centro de Saú" [38.6326757243165,-9.151189490156513]
1408 "20303" "28040569" 46588 "11_2687" "Sesimbra (Lgo Marinha)" [38.4430370957386,-9.102432801903289] 46587 "11_2662" "Sesimbra (R João Luz) EDP" [38.4444492732682,-9.10109745639319]
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.
"20260123" "20211108" "20221101"