airpullman-spa-ita — Enhanced Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-10-30T18:44:40Z,
for the dataset file:///shared/airpullman-spa-ita_4160d274.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:
Italian
Feed Start Date:
2026-09-10
Feed End Date:
2026-12-31

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: 34
  • Shapes: 325
  • Stops: 871
  • Trips: 2250

Specification Compliance report

2815 notices reported (0 errors, 2813 warnings, 2 infos)

Notice Code Severity Total
fast_travel_between_consecutive_stops WARNING 563

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.

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

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.
158 "104915-1138" "104915-Z122" 155.95005520253716 0.4331945977848254 4640 21 "104915-ARE_20" "Arese v.le dei Platani, fr. 106 (Res. Il Boscaccio)" "18:28:00" 4641 22 "104915-ARE_18" "Arese v.le dei Platani 1 (C. Giada -Liceo)" "18:28:10"
219 "104915-1455" "104915-Z150" 151.3149018143542 0.4203191717065394 7045 27 "104915-LES_28" "Lentate s-S. v.le Italia fr. Cimitero" "07:57:00" 7046 28 "104915-LES_27" "Lentate s-S. v.le Italia 100" "07:57:10"
219 "104915-1455" "104915-Z150" 189.5293603338203 0.526470445371723 7048 30 "104915-LES_25" "Lentate s-S. v. Garibaldi, 76" "08:01:00" 7049 31 "104915-LES_04" "Lentate s-S. v. Nazionale dei Giovi 190 / Como" "08:01:10"
662 "104915-4724" "104915-Z111" 158.6375881913554 0.44065996719820943 18464 8 "104915-SOL_08" "Solaro c.so Europa 26" "12:40:00" 18465 9 "104915-SOL_09" "Solaro c.so Europa 56 (Electrolux)" "12:40:10"
53 "104915-611" "104915-Z114" 162.7793913004748 0.4521649758346522 1410 14 "104915-SEN_40" "Senago v. Mascagni 35" "14:51:00" 1411 15 "104915-SEN_48" "Senago v. Xxiv Maggio fr. 52" "14:51:10"
1996 "104915-9142" "104915-Z115" 183.471620755267 0.5096433909868527 52874 5 "104915-SOL_02" "Solaro v. Varese / fr. v. Mascagni (Esselunga)" "06:37:00" 52875 6 "104915-SOL_03" "Solaro v. Varese 1" "06:37:10"
627 "104915-4680" "104915-Z111" 158.6375881913554 0.44065996719820943 17469 8 "104915-SOL_08" "Solaro c.so Europa 26" "06:03:00" 17470 9 "104915-SOL_09" "Solaro c.so Europa 56 (Electrolux)" "06:03:10"
961 "104915-5405" "104915-Z117" 179.66732057284327 0.49907589048012024 26221 4 "104915-CEM_40" "Cesano M.no v. Magenta 60 / Donegani" "06:25:00" 26222 5 "104915-CEM_44" "Cesano M.no v. Martinelli fr. 53 (Basf)" "06:25:10"
2009 "104915-9155" "104915-Z115" 162.68983482523294 0.4519162078478693 53373 22 "104915-CEM_24" "Cesano M.no v. Friuli fr. 65 / Lucania" "08:35:00" 53374 23 "104915-CEM_19" "Cesano M.no v. Venaria Reale / p.za San Carlo" "08:35:10"
2009 "104915-9155" "104915-Z115" 393.0893847954881 1.0919149577652447 53374 23 "104915-CEM_19" "Cesano M.no v. Venaria Reale / p.za San Carlo" "08:35:10" 53375 24 "104915-CEM_40" "Cesano M.no v. Magenta 60 / Donegani" "08:35:20"
498 "104915-4532" "104915-Z110" 178.4309423657986 0.4956415065716627 14323 8 "104915-CAR_06" "Caronno P.la v. 5 Giornate / v. Torino" "10:35:00" 14324 9 "104915-CAR_07" "Caronno P.la v. 5 Giornate, 1606" "10:35:10"
498 "104915-4532" "104915-Z110" 163.06411841434652 0.4529558844842959 14325 10 "104915-GAR_01" "Garbagnate M.se fraz. Bariana v. Peloritana, 73 (C.R.G.)" "10:39:00" 14326 11 "104915-GAR_02" "Garbagnate M.se fraz. Bariana v. Peloritana fr. v. Como" "10:39:10"
605 "104915-4658" "104915-Z110" 197.38101222507746 0.5482805895141041 16892 23 "104915-CAR_14" "Caronno P.la c.so della Vittoria fr. 439" "08:55:00" 16893 24 "104915-CAR_15" "Caronno P.la c.so della Vittoria 988 / A. Merini" "08:55:10"
1791 "104915-8410" "104915-Z150" 160.99270349933235 0.4472019541648121 48077 19 "104915-BAR_03" "Barlassina c.so Milano 14" "19:45:00" 48078 20 "104915-BAR_04" "Barlassina c.so Milano fr.133" "19:45:10"
1217 "104915-5828" "104915-Z150" 220.01619134162553 0.6111560870600709 33547 12 "104915-LES_39" "Lentate s-S. fraz. Copreno v. Naz.le dei Giovi fr.250 / Trieste" "12:39:00" 33548 13 "104915-LES_10" "Lentate s-S. fraz.Copreno v. Naz.le dei Giovi fr.202 (H. Nardini)" "12:39:10"
608 "104915-4661" "104915-Z110" 197.38101222507746 0.5482805895141041 16978 23 "104915-CAR_14" "Caronno P.la c.so della Vittoria fr. 439" "13:55:00" 16979 24 "104915-CAR_15" "Caronno P.la c.so della Vittoria 988 / A. Merini" "13:55:10"
290 "104915-1962" "104915-Z161" 181.93159871768214 0.5053655519935615 8804 4 "104915-CEL_08" "Ceriano L.to v. Mazzini 76" "07:09:00" 8805 5 "104915-CEL_04" "Ceriano L.to p.za Diaz fr. 23" "07:09:10"
2052 "104915-9199" "104915-Z117" 215.66268995820397 0.5990630276616776 54607 9 "104915-CEM_39" "Cesano M.no v. Groane / Gorane fr.28 (Pass. a Livello)" "10:42:00" 54608 10 "104915-CEM_41" "Cesano M.no v. Martinelli 53 (Basf)" "10:42:10"
1957 "104915-9102" "104915-Z117" 193.9993477729817 0.5388870771471714 51831 6 "104915-SOL_03" "Solaro v. Varese 1" "20:30:00" 51832 7 "104915-SOL_17" "Solaro v. Roma 40b" "20:30:10"
2060 "104915-9277" "104915-Z115" 215.66268995820397 0.5990630276616776 54895 9 "104915-CEM_39" "Cesano M.no v. Groane / Gorane fr.28 (Pass. a Livello)" "12:20:00" 54896 10 "104915-CEM_41" "Cesano M.no v. Martinelli 53 (Basf)" "12:20:10"
2060 "104915-9277" "104915-Z115" 337.0942077099888 0.9363727991944133 54897 11 "104915-CEM_01" "Cesano M.no v. Magenta fr. 60 / Bracco" "12:21:00" 54898 12 "104915-CEM_02" "Cesano M.no v. Magenta 1 / Udine" "12:21:10"
1979 "104915-9124" "104915-Z115" 150.62333561675482 0.4183981544909856 52341 1 "104915-SAR_02" "Saronno v. Marconi fr. 14 / C. Cesati (Municipio)" "05:46:00" 52342 2 "104915-SAR_03" "Saronno v. Marconi 53" "05:46:10"
1979 "104915-9124" "104915-Z115" 193.9993477729817 0.5388870771471714 52346 6 "104915-SOL_03" "Solaro v. Varese 1" "05:51:00" 52347 7 "104915-SOL_17" "Solaro v. Roma 40b" "05:51:10"
1979 "104915-9124" "104915-Z115" 337.0942077099888 0.9363727991944133 52351 11 "104915-CEM_01" "Cesano M.no v. Magenta fr. 60 / Bracco" "06:00:00" 52352 12 "104915-CEM_02" "Cesano M.no v. Magenta 1 / Udine" "06:00:10"
1979 "104915-9124" "104915-Z115" 166.2615049403691 0.46183751372324744 52359 19 "104915-CEM_56" "Cesano M.no v. Duca D'Aosta / A. Strada (Scuole)" "06:07:00" 52360 20 "104915-CEM_57" "Cesano M.no v. Indipendenza, 20 / Beccaria" "06:07:10"
585 "104915-4638" "104915-Z110" 197.38101222507746 0.5482805895141041 16358 19 "104915-CAR_14" "Caronno P.la c.so della Vittoria fr. 439" "15:53:00" 16359 20 "104915-CAR_15" "Caronno P.la c.so della Vittoria 988 / A. Merini" "15:53:10"
2064 "104915-9281" "104915-Z115" 215.66268995820397 0.5990630276616776 55051 9 "104915-CEM_39" "Cesano M.no v. Groane / Gorane fr.28 (Pass. a Livello)" "14:54:00" 55052 10 "104915-CEM_41" "Cesano M.no v. Martinelli 53 (Basf)" "14:54:10"
2064 "104915-9281" "104915-Z115" 337.0942077099888 0.9363727991944133 55053 11 "104915-CEM_01" "Cesano M.no v. Magenta fr. 60 / Bracco" "14:55:00" 55054 12 "104915-CEM_02" "Cesano M.no v. Magenta 1 / Udine" "14:55:10"
591 "104915-4644" "104915-Z110" 521.9295163845105 1.4498042121791959 16495 0 "104915-GAR_45" "Garbagnate M.se fraz. Bariana v. Peloritana 24" "06:25:00" 16496 1 "104915-CAR_10" "Caronno P.la v. 5 Giornate 1815" "06:25:10"
591 "104915-4644" "104915-Z110" 215.06300460762776 0.5973972350211882 16497 2 "104915-CAR_11" "Caronno P.la v. 5 Giornate 1173 / fr. v. Torino" "06:26:00" 16498 3 "104915-CAR_12" "Caronno P.la v. 5 Giornate 573" "06:26:10"
1306 "104915-6024" "104915-Z113" 166.24902458124512 0.4618028460590143 35991 10 "104915-ORI_12" "Origgio v. Manzoni fr.18 (Ass. Anziani)" "19:32:00" 35992 11 "104915-ORI_13" "Origgio v. per La Muschiona (Cimitero)" "19:32:10"
510 "104915-4544" "104915-Z110" 178.4309423657986 0.4956415065716627 14581 8 "104915-CAR_06" "Caronno P.la v. 5 Giornate / v. Torino" "14:35:00" 14582 9 "104915-CAR_07" "Caronno P.la v. 5 Giornate, 1606" "14:35:10"
510 "104915-4544" "104915-Z110" 163.06411841434652 0.4529558844842959 14583 10 "104915-GAR_01" "Garbagnate M.se fraz. Bariana v. Peloritana, 73 (C.R.G.)" "14:39:00" 14584 11 "104915-GAR_02" "Garbagnate M.se fraz. Bariana v. Peloritana fr. v. Como" "14:39:10"
581 "104915-4634" "104915-Z110" 197.38101222507746 0.5482805895141041 16254 19 "104915-CAR_14" "Caronno P.la c.so della Vittoria fr. 439" "13:08:00" 16255 20 "104915-CAR_15" "Caronno P.la c.so della Vittoria 988 / A. Merini" "13:08:10"
1702 "104915-8320" "104915-Z121" 194.7893474420001 0.5410815206722225 45927 12 "104915-ARE_17" "Arese v.le dei Platani fr. 1 (C. Giada -Liceo)" "07:01:00" 45928 13 "104915-ARE_19" "Arese v.le dei Platani, 106 (Res. Il Boscaccio)" "07:01:10"
496 "104915-4530" "104915-Z110" 178.4309423657986 0.4956415065716627 14277 8 "104915-CAR_06" "Caronno P.la v. 5 Giornate / v. Torino" "09:35:00" 14278 9 "104915-CAR_07" "Caronno P.la v. 5 Giornate, 1606" "09:35:10"
496 "104915-4530" "104915-Z110" 163.06411841434652 0.4529558844842959 14279 10 "104915-GAR_01" "Garbagnate M.se fraz. Bariana v. Peloritana, 73 (C.R.G.)" "09:39:00" 14280 11 "104915-GAR_02" "Garbagnate M.se fraz. Bariana v. Peloritana fr. v. Como" "09:39:10"
665 "104915-4727" "104915-Z111" 158.6375881913554 0.44065996719820943 18554 8 "104915-SOL_08" "Solaro c.so Europa 26" "15:40:00" 18555 9 "104915-SOL_09" "Solaro c.so Europa 56 (Electrolux)" "15:40:10"
443 "104915-4475" "104915-Z110" 163.06411841434652 0.4529558844842959 12886 10 "104915-GAR_01" "Garbagnate M.se fraz. Bariana v. Peloritana, 73 (C.R.G.)" "14:07:00" 12887 11 "104915-GAR_02" "Garbagnate M.se fraz. Bariana v. Peloritana fr. v. Como" "14:07:10"
443 "104915-4475" "104915-Z110" 192.18472396980604 0.5338464554716834 12900 24 "104915-RHO_28" "RHO v. Risorgimento, 16" "14:23:00" 12901 25 "104915-RHO_29" "RHO v. Risorgimento, 42" "14:23:10"
960 "104915-5403" "104915-Z117" 193.9993477729817 0.5388870771471714 26203 6 "104915-SOL_03" "Solaro v. Varese 1" "20:30:00" 26204 7 "104915-SOL_17" "Solaro v. Roma 40b" "20:30:10"
960 "104915-5403" "104915-Z117" 157.99723455746457 0.43888120710406825 26210 13 "104915-CEM_03" "Cesano M.no v. Friuli 53 / fr. Lucania" "20:45:00" 26211 14 "104915-CEM_04" "Cesano M.no v. Friuli 13 / Veneto" "20:45:10"
1427 "104915-6556" "104915-Z161" 181.93159871768214 0.5053655519935615 39155 4 "104915-CEL_08" "Ceriano L.to v. Mazzini 76" "06:45:00" 39156 5 "104915-CEL_04" "Ceriano L.to p.za Diaz fr. 23" "06:45:10"
1986 "104915-9132" "104915-Z115" 393.0893847954881 1.0919149577652447 52580 23 "104915-CEM_19" "Cesano M.no v. Venaria Reale / p.za San Carlo" "14:13:00" 52581 24 "104915-CEM_40" "Cesano M.no v. Magenta 60 / Donegani" "14:13:10"
1798 "104915-8417" "104915-Z150" 211.97913658996632 0.5888309349721287 48331 2 "104915-LIM_59" "Limbiate v. Bonaparte 14 / Calatafimi" "14:22:00" 48332 3 "104915-CEM_47" "Cesano M.no v. Naz. dei Giovi 105 / Umbria (Iris Versari)" "14:22:10"
1418 "104915-6333" "104915-Z113" 262.69305997547224 0.7297029443763118 38975 10 "104915-LAI_57" "Lainate v. F. Filzi fr. 39 / v. Re Umberto I" "07:12:00" 38976 11 "104915-LAI_10" "Lainate v. Re Umberto I° / v. Kennedy" "07:12:10"
1214 "104915-5821" "104915-Z150" 176.77649077285685 0.4910458077023801 33440 35 "104915-CEM_06" "Cesano M.no v. Nazionale dei Giovi 70 A / Friuli (Fn)" "09:35:00" 33441 36 "104915-CEM_17" "Cesano M.no v. Nazionale dei Giovi 90 A / Libertà" "09:35:10"
1260 "104915-5924" "104915-Z150" 176.77649077285685 0.4910458077023801 33440 35 "104915-CEM_06" "Cesano M.no v. Nazionale dei Giovi 70 A / Friuli (Fn)" "09:35:00" 33441 36 "104915-CEM_17" "Cesano M.no v. Nazionale dei Giovi 90 A / Libertà" "09:35:10"
998 "104915-5446" "104915-Z120" 263.9594798022123 0.7332207772283674 27247 8 "104915-RHO_86" "RHO v. Alessandro Volta, fr. 50 / fr. Bixio" "08:35:00" 27248 9 "104915-RHO_58" "RHO v. Dei Cornaggia, 10 / Castellazzo" "08:35:10"
1640 "104915-8256" "104915-Z150" 220.01619134162553 0.6111560870600709 44185 11 "104915-LES_39" "Lentate s-S. fraz. Copreno v. Naz.le dei Giovi fr.250 / Trieste" "19:22:00" 44186 12 "104915-LES_10" "Lentate s-S. fraz.Copreno v. Naz.le dei Giovi fr.202 (H. Nardini)" "19:22:10"
mixed_case_recommended_field WARNING 2250

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 2250 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" "andata" 2
"trips.txt" "trip_headsign" "andata" 3
"trips.txt" "trip_headsign" "andata" 4
"trips.txt" "trip_headsign" "andata" 5
"trips.txt" "trip_headsign" "andata" 6
"trips.txt" "trip_headsign" "andata" 7
"trips.txt" "trip_headsign" "andata" 8
"trips.txt" "trip_headsign" "andata" 9
"trips.txt" "trip_headsign" "andata" 10
"trips.txt" "trip_headsign" "andata" 11
"trips.txt" "trip_headsign" "andata" 12
"trips.txt" "trip_headsign" "andata" 13
"trips.txt" "trip_headsign" "andata" 14
"trips.txt" "trip_headsign" "andata" 15
"trips.txt" "trip_headsign" "andata" 16
"trips.txt" "trip_headsign" "andata" 17
"trips.txt" "trip_headsign" "andata" 18
"trips.txt" "trip_headsign" "andata" 19
"trips.txt" "trip_headsign" "andata" 20
"trips.txt" "trip_headsign" "andata" 21
"trips.txt" "trip_headsign" "andata" 22
"trips.txt" "trip_headsign" "andata" 23
"trips.txt" "trip_headsign" "andata" 24
"trips.txt" "trip_headsign" "andata" 25
"trips.txt" "trip_headsign" "andata" 26
"trips.txt" "trip_headsign" "andata" 27
"trips.txt" "trip_headsign" "andata" 28
"trips.txt" "trip_headsign" "andata" 29
"trips.txt" "trip_headsign" "andata" 30
"trips.txt" "trip_headsign" "andata" 31
"trips.txt" "trip_headsign" "andata" 32
"trips.txt" "trip_headsign" "andata" 33
"trips.txt" "trip_headsign" "andata" 34
"trips.txt" "trip_headsign" "andata" 35
"trips.txt" "trip_headsign" "ritorno" 36
"trips.txt" "trip_headsign" "ritorno" 37
"trips.txt" "trip_headsign" "andata" 38
"trips.txt" "trip_headsign" "andata" 39
"trips.txt" "trip_headsign" "andata" 40
"trips.txt" "trip_headsign" "andata" 41
"trips.txt" "trip_headsign" "andata" 42
"trips.txt" "trip_headsign" "andata" 43
"trips.txt" "trip_headsign" "andata" 44
"trips.txt" "trip_headsign" "andata" 45
"trips.txt" "trip_headsign" "andata" 46
"trips.txt" "trip_headsign" "andata" 47
"trips.txt" "trip_headsign" "andata" 48
"trips.txt" "trip_headsign" "andata" 49
"trips.txt" "trip_headsign" "andata" 50
"trips.txt" "trip_headsign" "andata" 51
big_gap_in_service INFO 2

big_gap_in_service

A service has a gap of more than 13 days between active service dates.

You can see more about this notice here.

serviceId (?) The service_id that has the gap. gapStartDate (?) The first day of the gap. gapEndDate (?) The last day of the gap. gapDurationDays (?) The number of days in the gap.
"104915-212" "2026-09-11" "2026-12-07" 86
"104915-212" "2026-12-07" "2026-12-23" 15