GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-01-23T19:41:56Z,
for the dataset file:///shared/star-mobility.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. routes.txt
  5. shapes.txt
  6. stop_times.txt
  7. stops.txt
  8. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 67
  • Shapes: 811
  • Stops: 1862
  • Trips: 4487

Specification Compliance report

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

Notice Code Severity Total
expired_calendar WARNING 49

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 "14_1443"
3 "14_1446"
4 "14_1447"
5 "14_1448"
6 "14_1450"
7 "14_1452"
8 "14_1454"
9 "14_1457"
10 "14_1461"
11 "14_1462"
12 "14_1463"
13 "14_1464"
14 "14_1479"
15 "14_1480"
16 "14_1481"
17 "14_1482"
18 "14_1483"
19 "14_1485"
20 "14_1486"
21 "14_1488"
22 "14_1491"
23 "14_1492"
24 "14_1494"
25 "14_1495"
26 "14_1496"
27 "14_1499"
28 "14_1500"
29 "14_1501"
30 "14_1502"
31 "14_1503"
32 "14_1504"
33 "14_1507"
34 "14_1509"
35 "14_1510"
36 "14_1511"
37 "14_1513"
38 "14_1642"
39 "14_1645"
40 "14_1656"
41 "14_1660"
42 "14_1768"
43 "14_1775"
44 "14_2093"
45 "14_2138"
46 "14_2153"
47 "14_2155"
48 "14_2162"
49 "14_2331"
50 "14_2339"
fast_travel_between_consecutive_stops WARNING 6

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.
3132 "14_1790487" "s009" 287.18697585322144 0.5584191197145972 96646 13 "kl6003" "CORNEGLIANO LAUDENSE - Piazza Giovanni XXIII" "06:40:00" 96647 14 "pf6008" "PIEVE FISS. Pavia/Bologna" "06:40:07"
3132 "14_1790487" "s009" 316.6301423419775 0.7036225385377277 96647 14 "pf6008" "PIEVE FISS. Pavia/Bologna" "06:40:07" 96648 15 "pf6002" "PIEVE FISS. Isola Rota/Bocconi" "06:40:15"
3132 "14_1790487" "s009" 284.73982585132336 22.541902879896433 96648 15 "pf6002" "PIEVE FISS. Isola Rota/Bocconi" "06:40:15" 96649 16 "sd3008" "S.DONATO Adenauer/Schuman" "06:45:00"
1457 "14_1790710" "e061" 319.4449341407879 2.3958370060559093 101314 31 "sl6008" "SANT'ANGELO LODIGIANO - Maiano-SP235" "07:50:00" 101315 32 "pf6005" "PIEVE FISS. SP235 (Loc. Casenuove)" "07:50:27"
1457 "14_1790710" "e061" 322.6555178999867 0.8066387947499667 101315 32 "pf6005" "PIEVE FISS. SP235 (Loc. Casenuove)" "07:50:27" 101316 33 "pf6006" "PIEVE FISS. SP235/Tavernelle" "07:50:36"
1457 "14_1790710" "e061" 305.25786075570227 22.385576455418168 101316 33 "pf6006" "PIEVE FISS. SP235/Tavernelle" "07:50:36" 101317 34 "sd3008" "S.DONATO Adenauer/Schuman" "07:55:00"
fast_travel_between_far_stops WARNING 2

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.
3132 "14_1790487" "s009" 284.73982585132336 22.541902879896433 96648 15 "pf6002" "PIEVE FISS. Isola Rota/Bocconi" "06:40:15" 96649 16 "sd3008" "S.DONATO Adenauer/Schuman" "06:45:00"
1457 "14_1790710" "e061" 305.25786075570227 22.385576455418168 101316 33 "pf6006" "PIEVE FISS. SP235/Tavernelle" "07:50:36" 101317 34 "sd3008" "S.DONATO Adenauer/Schuman" "07:55:00"
leading_or_trailing_whitespaces WARNING 4

leading_or_trailing_whitespaces

The value in CSV file has leading or trailing whitespaces.

This notice is emitted for values protected with double quotes since whitespaces for non-protected values are trimmed automatically by CSV parser.

The validator strips whitespaces from protected values. We do not see any use case when such a whitespace may be needed. On the other hand, some real-world feeds use trailing whitespaces for some values and omit them for the others. This is causing the largest problem when a primary key and a foreign key differ just by a whitespace: it is clear that they are intended to be the same, that is why we always strip whitespaces.

You can see more about this notice here.

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) Faulty record's field name. fieldValue (?) Faulty value.
"stops.txt" 198 "stop_name" "CASTELNUOVO BOCCA D'ADDA- Via Umberto I "
"stops.txt" 1492 "stop_name" "S.ANGELO - Via Buozzi 18/loc. Ranera "
"stops.txt" 1493 "stop_name" "S.ANGELO - Via Buozzi "
"stops.txt" 1499 "stop_name" "SANT'ANGELO LODIGIANO-Via Cavour/fr Via "
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 282

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 282 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.
"stops.txt" "stop_name" "BAGNOLO CREMASCO- SS 235" 63
"stops.txt" "stop_name" "BREMBIO - S.P 168 km 4" 77
"stops.txt" "stop_name" "BREMBIO - S.P 168 km 4" 78
"stops.txt" "stop_name" "BORGHETTO LODIGIANO" 101
"stops.txt" "stop_name" "COMAZZO- LAVAGNA VIA MARCONI 22" 129
"stops.txt" "stop_name" "CURA CARPIGNANO" 135
"stops.txt" "stop_name" "CURA CARPIGNANO" 136
"stops.txt" "stop_name" "CAMAIRAGO-S.P. 27 BIVIO" 150
"stops.txt" "stop_name" "CASALPUSTERLENGO - FS" 250
"stops.txt" "stop_name" "CASTIGLIONE D'ADDA-S.S. 591" 312
"stops.txt" "stop_name" "CASTIGLIONE - SS 591" 316
"stops.txt" "stop_name" "CASTIRAGA VIDARDO- S.P. 17" 319
"stops.txt" "stop_name" "CASTIRAGA VIDARDO-S.P. 17" 322
"stops.txt" "stop_name" "GOMBITO-SP13 civico 27" 363
"stops.txt" "stop_name" "GOMBITO-SP13 civico fr 27" 370
"stops.txt" "stop_name" "FARFENGO-P.ZZA BORROMEO/FR 5" 374
"stops.txt" "stop_name" "GENIVOLTA-SS 438-CIVICO 130" 415
"stops.txt" "stop_name" "GENIVOLTA-SS 438 fr civ 130" 420
"stops.txt" "stop_name" "INVERNO E MONTELEONE-" 421
"stops.txt" "stop_name" "CODOGNO-ITAS" 456
"stops.txt" "stop_name" "CREMA - FS" 493
"stops.txt" "stop_name" "CREMA - FS" 511
"stops.txt" "stop_name" "CASALETTO CEREDANO" 529
"stops.txt" "stop_name" "CASALETTO CEREDANO" 532
"stops.txt" "stop_name" "CORNEGLIANO LAUDENSE - SP186" 533
"stops.txt" "stop_name" "CORNEGLIANO LAUDENSE - SP186" 535
"stops.txt" "stop_name" "CAPPELLA CANTONE-P.ZZA GARIBALDI" 543
"stops.txt" "stop_name" "CAPPELLA CANTONE-P.ZZA GARIBALDI" 544
"stops.txt" "stop_name" "COLTURANO-BALBIANO S.P. 159" 546
"stops.txt" "stop_name" "COLTURANO-BALBIANO S.P.159" 553
"stops.txt" "stop_name" "CORTE PALASIO" 557
"stops.txt" "stop_name" "VIA BUONARROTI N.16" 635
"stops.txt" "stop_name" "VIA BUONARROTI N. FR 25" 636
"stops.txt" "stop_name" "VIA BUONARROTI N.32" 637
"stops.txt" "stop_name" "VIA FONTANILE N. 2" 638
"stops.txt" "stop_name" "VIA FONTANILE N.12" 639
"stops.txt" "stop_name" "VIA VESPUCCI FR N.30" 640
"stops.txt" "stop_name" "VIA VISCONTI FR 30/B" 641
"stops.txt" "stop_name" "VIA PASCOLI N.9" 642
"stops.txt" "stop_name" "VIA S.ROCCO" 643
"stops.txt" "stop_name" "VIA DON STURZO N.6" 644
"stops.txt" "stop_name" "VIA S.AMBROGIO" 645
"stops.txt" "stop_name" "VIA ROGGIA ARZONA FR N.2" 647
"stops.txt" "stop_name" "VIA DON MILANI N.13" 648
"stops.txt" "stop_name" "VIA DON MAZZOLARI N.3" 649
"stops.txt" "stop_name" "VIALE ASSUNTA N.59" 651
"stops.txt" "stop_name" "VIA VOLTA M2" 652
"stops.txt" "stop_name" "VIA CAVOUR N.2" 653
"stops.txt" "stop_name" "VIA CAVOUR N.8" 654
"stops.txt" "stop_name" "VIA FATEBENEFRATELLI N.7" 655
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" "20250616" "20250911"