GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2025-12-12T21:14:35Z,
for the dataset file:///shared/smartertravel.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 Email:
alex@busmaps.com
Feed Language:
English
Feed Start Date:
2019-01-01
Feed End Date:
2019-12-31

Files included


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

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 25
  • Shapes: 0
  • Stops: 346
  • Trips: 47

Specification Compliance report

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

Notice Code Severity Total
expired_calendar WARNING 1

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 "2306-allweek"
fast_travel_between_consecutive_stops WARNING 11

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.
18 "2306-19_Outbound" "2306-19" 123.25507392241782 1.369500821360198 232 5 "2306-417" "stop 417" "00:10:52" 233 6 "2306-418" "stop 418" "00:11:32"
18 "2306-19_Outbound" "2306-19" 227.75307616213234 5.061179470269608 237 10 "2306-422" "stop 422" "00:25:47" 238 11 "2306-409" "stop 409" "00:27:07"
20 "2306-2_Outbound" "2306-2" 192.16831865368178 5.604909294065719 305 13 "2306-16" "stop 16" "00:54:13" 306 14 "2306-18" "stop 18" "00:55:58"
22 "2306-20_Outbound" "2306-20" 313.8076398714753 5.230127331191255 349 0 "2306-409" "stop 409" "00:00:17" 350 1 "2306-368" "stop 368" "00:00:17"
26 "2306-22_Outbound" "2306-22" 144.114994455601 2.4019165742600164 384 0 "2306-54" "stop 54" "00:00:17" 385 1 "2306-61" "stop 61" "00:00:17"
26 "2306-22_Outbound" "2306-22" 266.7842978815433 0.37053374705769904 386 2 "2306-62" "stop 62" "00:10:59" 387 3 "2306-63" "stop 63" "00:11:04"
19 "2306-2_Inbound" "2306-2" 102.7310541714209 5.1365527085710445 277 24 "2306-18" "stop 18" "01:47:57" 278 25 "2306-17" "stop 17" "01:50:57"
38 "2306-29_Outbound" "2306-29" 251.6339813392891 1.7474582037450632 561 0 "2306-26" "stop 26" "00:00:17" 562 1 "2306-54" "stop 54" "00:00:42"
40 "2306-30_Outbound" "2306-30" 145.53922904122552 2.425653817353759 593 0 "2306-383" "stop 383" "00:00:17" 594 1 "2306-344" "stop 344" "00:00:17"
5 "2306-12_Inbound" "2306-12" 108.59094184109703 5.308890490009189 39 0 "2306-127" "stop 127" "00:00:17" 40 1 "2306-185" "stop 185" "00:03:13"
7 "2306-13_Inbound" "2306-13" 182.7078777019877 3.0451312950331286 53 1 "2306-18" "stop 18" "00:27:12" 54 2 "2306-83" "stop 83" "00:27:12"
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 "20251212" "20191231" "20251219"
mixed_case_recommended_field WARNING 395

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 395 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.
"agency.txt" "agency_name" "bus" 2
"routes.txt" "route_long_name" "14al" 11
"stops.txt" "stop_name" "stop 2" 2
"stops.txt" "stop_name" "stop 3" 3
"stops.txt" "stop_name" "stop 4" 4
"stops.txt" "stop_name" "stop 5" 5
"stops.txt" "stop_name" "stop 6" 6
"stops.txt" "stop_name" "stop 7" 7
"stops.txt" "stop_name" "stop 8" 8
"stops.txt" "stop_name" "stop 9" 9
"stops.txt" "stop_name" "stop 10" 10
"stops.txt" "stop_name" "stop 11" 11
"stops.txt" "stop_name" "stop 12" 12
"stops.txt" "stop_name" "stop 13" 13
"stops.txt" "stop_name" "stop 14" 14
"stops.txt" "stop_name" "stop 15" 15
"stops.txt" "stop_name" "stop 16" 16
"stops.txt" "stop_name" "stop 17" 17
"stops.txt" "stop_name" "stop 18" 18
"stops.txt" "stop_name" "stop 19" 19
"stops.txt" "stop_name" "stop 20" 20
"stops.txt" "stop_name" "stop 23" 21
"stops.txt" "stop_name" "stop 24" 22
"stops.txt" "stop_name" "stop 25" 23
"stops.txt" "stop_name" "stop 26" 24
"stops.txt" "stop_name" "stop 27" 25
"stops.txt" "stop_name" "stop 28" 26
"stops.txt" "stop_name" "stop 29" 27
"stops.txt" "stop_name" "stop 30" 28
"stops.txt" "stop_name" "stop 38" 29
"stops.txt" "stop_name" "stop 39" 30
"stops.txt" "stop_name" "stop 40" 31
"stops.txt" "stop_name" "stop 41" 32
"stops.txt" "stop_name" "stop 44" 33
"stops.txt" "stop_name" "stop 46" 34
"stops.txt" "stop_name" "stop 47" 35
"stops.txt" "stop_name" "stop 48" 36
"stops.txt" "stop_name" "stop 49" 37
"stops.txt" "stop_name" "stop 50" 38
"stops.txt" "stop_name" "stop 53" 39
"stops.txt" "stop_name" "stop 54" 40
"stops.txt" "stop_name" "stop 55" 41
"stops.txt" "stop_name" "stop 56" 42
"stops.txt" "stop_name" "stop 57" 43
"stops.txt" "stop_name" "stop 58" 44
"stops.txt" "stop_name" "stop 59" 45
"stops.txt" "stop_name" "stop 60" 46
"stops.txt" "stop_name" "stop 61" 47
"stops.txt" "stop_name" "stop 62" 48
"stops.txt" "stop_name" "stop 63" 49
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.
"20251212" "20190101" "20191231"