GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2025-12-05T21:02:33Z,
for the dataset file:///shared/thebus-org-thebus-1.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
TheBus
Publisher URL:
http://www.thebus.org
Feed Email:
N/A
Feed Language:
English
Feed Start Date:
2025-11-23
Feed End Date:
2026-02-28

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: 2
  • Blocks: 2489
  • Routes: 122
  • Shapes: 566
  • Stops: 3810
  • Trips: 37873

Specification Compliance report

133555 notices reported (1208 errors, 132336 warnings, 11 infos)

Notice Code Severity Total
decreasing_or_equal_stop_time_distance ERROR 1208

decreasing_or_equal_stop_time_distance

Decreasing or equal shape_dist_traveled in stop_times.txt.

When sorted by stop_times.stop_sequence, two consecutive entries in stop_times.txt should have increasing distance, based on the field shape_dist_traveled. If the values are equal, this is considered as an error.

You can see more about this notice here.

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

tripId (?) The id of the faulty trip. stopId (?) The id of the faulty stop. csvRowNumber (?) The row number from `stop_times.txt`. shapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the faulty record. stopSequence (?) The faulty record's `stop_times.stop_sequence`. prevCsvRowNumber (?) The row number from `stop_times.txt` of the previous stop time. prevShapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the previous stop time. prevStopSequence (?) The previous record's `stop_times.stop_sequence`.
"5257937" "2341" 324713 68013.9 51 345096 68013.9 50
"5208884" "2341" 36802 233110.8 142 37037 233110.8 141
"5208877" "2341" 37729 155078.8 142 37728 155078.8 141
"5208876" "2341" 78525 163274.6 125 79678 163274.6 124
"5208895" "2341" 324518 68013.9 51 344901 68013.9 50
"5208893" "2341" 324517 68013.9 51 344900 68013.9 50
"5208844" "2341" 324513 68013.9 51 344896 68013.9 50
"5208836" "2341" 324512 68013.9 51 344895 68013.9 50
"5208868" "2341" 324516 68013.9 51 344899 68013.9 50
"5208860" "2341" 324515 68013.9 51 344898 68013.9 50
"5208852" "2341" 324514 68013.9 51 344897 68013.9 50
"5255366" "2341" 324682 68013.9 51 345065 68013.9 50
"5255374" "2341" 36967 233110.8 142 37202 233110.8 141
"5208828" "2341" 36801 233110.8 142 37036 233110.8 141
"5255382" "2341" 324683 68013.9 51 345066 68013.9 50
"5255390" "2341" 324684 68013.9 51 345067 68013.9 50
"5255398" "2341" 324685 68013.9 51 345068 68013.9 50
"5257812" "4416" 182618 55479.3 76 175930 55479.3 75
"5257815" "4417" 302102 85011.6 53 331620 85011.6 52
"5257814" "4417" 302101 85011.6 53 331619 85011.6 52
"5257819" "4417" 264078 95290.4 60 288546 95290.4 59
"5257818" "4416" 196277 116795.4 73 188160 116795.4 72
"5208995" "2341" 324527 68013.9 51 344910 68013.9 50
"5208993" "2341" 324526 68013.9 51 344909 68013.9 50
"5208963" "2341" 36810 233110.8 142 37045 233110.8 141
"5208969" "2341" 36811 233110.8 142 37046 233110.8 141
"5208961" "2341" 36809 233110.8 142 37044 233110.8 141
"5208953" "2341" 36808 233110.8 142 37043 233110.8 141
"5208955" "2341" 37731 155078.8 142 37730 155078.8 141
"5208987" "2341" 324525 68013.9 51 344908 68013.9 50
"5208985" "2341" 37733 155078.8 142 37732 155078.8 141
"5208977" "2341" 36812 233110.8 142 37047 233110.8 141
"5208971" "2341" 324524 68013.9 51 344907 68013.9 50
"5208927" "2341" 68822 219833.0 131 67528 219833.0 130
"5208923" "2341" 324522 68013.9 51 344905 68013.9 50
"5208915" "2341" 324520 68013.9 51 344903 68013.9 50
"5208919" "2341" 324521 68013.9 51 344904 68013.9 50
"5208943" "2341" 36807 233110.8 142 37042 233110.8 141
"5208945" "2341" 324523 68013.9 51 344906 68013.9 50
"5208937" "2341" 36806 233110.8 142 37041 233110.8 141
"5208931" "2341" 36804 233110.8 142 37039 233110.8 141
"5208935" "2341" 36805 233110.8 142 37040 233110.8 141
"5208903" "2341" 36803 233110.8 142 37038 233110.8 141
"5208901" "2341" 324519 68013.9 51 344902 68013.9 50
"5208682" "2341" 324505 68013.9 51 344888 68013.9 50
"5208690" "2341" 324506 68013.9 51 344889 68013.9 50
"5257763" "2341" 324712 68013.9 51 345095 68013.9 50
"5208766" "2341" 36798 233110.8 142 37033 233110.8 141
"5208758" "2341" 36797 233110.8 142 37032 233110.8 141
"5208750" "2341" 36796 233110.8 142 37031 233110.8 141
expired_calendar WARNING 38

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.
5 "27223"
7 "27225"
9 "27227"
11 "27229"
12 "27232"
13 "27235"
14 "27236"
16 "27242"
18 "27244"
19 "27245"
22 "27248"
23 "27251"
24 "27254"
25 "27255"
26 "27260"
27 "27263"
28 "27264"
29 "27265"
31 "27271"
32 "27272"
33 "27273"
34 "27274"
83 "27217"
84 "27218"
85 "27219"
86 "27220"
87 "27230"
90 "27234"
92 "27239"
93 "27240"
94 "27241"
96 "27250"
98 "27253"
101 "27258"
102 "27259"
104 "27262"
107 "27269"
108 "27270"
missing_feed_contact_email_and_url WARNING 1

missing_feed_contact_email_and_url

Best Practices for feed_info.txt suggest providing at least one of feed_contact_email and feed_contact_url.

You can see more about this notice here.

csvRowNumber (?) The row number of the validated record.
2
missing_timepoint_value WARNING 100000

missing_timepoint_value

stop_times.timepoint value is missing for a record.

When at least one of stop_times.arrival_time or stop_times.departure_time are provided, stop_times.timepoint should be defined

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record. tripId (?) The faulty record's `stop_times.trip_id`. stopSequence (?) The faulty record's `stop_times.stop_sequence`.
2 "5201729" 1
3 "5201737" 1
4 "5201745" 1
5 "5201753" 1
6 "5201756" 1
7 "5201758" 1
8 "5201764" 1
9 "5201765" 1
10 "5201766" 1
11 "5201769" 1
12 "5201772" 1
13 "5201773" 1
14 "5201774" 1
15 "5201775" 1
16 "5201777" 1
17 "5201780" 1
18 "5201781" 1
19 "5201782" 1
20 "5201783" 1
21 "5201785" 1
22 "5201788" 1
23 "5201789" 1
24 "5201791" 1
25 "5201792" 1
26 "5201793" 1
27 "5201796" 1
28 "5201797" 1
29 "5201798" 1
30 "5201799" 1
31 "5201800" 1
32 "5201801" 1
33 "5201802" 1
34 "5201803" 1
35 "5201804" 1
36 "5201805" 1
37 "5201806" 1
38 "5201808" 1
39 "5201809" 1
40 "5201810" 1
41 "5201811" 1
42 "5201812" 1
43 "5201813" 1
44 "5201815" 1
45 "5201816" 1
46 "5201818" 1
47 "5201819" 1
48 "5201821" 1
49 "5201822" 1
50 "5201823" 1
51 "5201824" 1
mixed_case_recommended_field WARNING 32294

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 32294 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" "PAKI AVE + PONI MOI RD" 2
"stops.txt" "stop_name" "PAKI AVE + DIAMOND HEAD TENNIS CTR" 3
"stops.txt" "stop_name" "PAKI AVE + NOELA ST" 4
"stops.txt" "stop_name" "PAKI AVE + PAKI PLAYGROUND" 5
"stops.txt" "stop_name" "PAKI AVE + MONSARRAT AVE" 6
"stops.txt" "stop_name" "PAKI AVE + KAPAHULU AVE" 7
"stops.txt" "stop_name" "KAPAHULU AVE + ALA WAI BL" 8
"stops.txt" "stop_name" "KAPAHULU AVE + KUHIO AVE" 9
"stops.txt" "stop_name" "KUHIO AVE + PAOAKALANI AVE" 10
"stops.txt" "stop_name" "KUHIO AVE + LILIUOKALANI AVE" 11
"stops.txt" "stop_name" "KUHIO AVE + KAIULANI AVE" 12
"stops.txt" "stop_name" "KUHIO AVE + WALINA ST" 13
"stops.txt" "stop_name" "KUHIO AVE + SEASIDE AVE" 14
"stops.txt" "stop_name" "KUHIO AVE + LEWERS ST" 15
"stops.txt" "stop_name" "KUHIO AVE + LAUNIU ST" 16
"stops.txt" "stop_name" "KUHIO AVE + NAMAHANA ST" 17
"stops.txt" "stop_name" "KALAKAUA AVE + PAU ST" 18
"stops.txt" "stop_name" "KALAKAUA AVE + MCCULLY ST" 19
"stops.txt" "stop_name" "KALAKAUA AVE + KAPIOLANI BL" 20
"stops.txt" "stop_name" "KALAKAUA AVE + KAPIOLANI BL" 21
"stops.txt" "stop_name" "KALAKAUA AVE + OPP MAKALOA ST" 22
"stops.txt" "stop_name" "KALAKAUA AVE + PHILIP ST" 23
"stops.txt" "stop_name" "KALAKAUA AVE + S KING ST" 24
"stops.txt" "stop_name" "S BERETANIA ST + OPP KALAKAUA AVE" 25
"stops.txt" "stop_name" "S BERETANIA ST + KEEAUMOKU ST" 26
"stops.txt" "stop_name" "S BERETANIA ST + PIIKOI ST" 27
"stops.txt" "stop_name" "S BERETANIA ST + PENSACOLA ST" 28
"stops.txt" "stop_name" "S BERETANIA ST + WARD AVE" 29
"stops.txt" "stop_name" "S BERETANIA ST + ALAPAI ST" 30
"stops.txt" "stop_name" "S BERETANIA ST + PUNCHBOWL ST" 31
"stops.txt" "stop_name" "S HOTEL ST + ALAKEA ST" 32
"stops.txt" "stop_name" "S HOTEL ST + BISHOP ST" 33
"stops.txt" "stop_name" "S HOTEL ST + BETHEL ST" 34
"stops.txt" "stop_name" "N HOTEL ST + KEKAULIKE ST" 35
"stops.txt" "stop_name" "N KING ST + N BERETANIA ST" 36
"stops.txt" "stop_name" "LILIHA ST + N KING ST" 37
"stops.txt" "stop_name" "LILIHA ST + VINEYARD BL" 38
"stops.txt" "stop_name" "LILIHA ST + KAULUWELA PL" 39
"stops.txt" "stop_name" "LILIHA ST + SCHOOL ST" 40
"stops.txt" "stop_name" "LILIHA ST + 1657" 41
"stops.txt" "stop_name" "LILIHA ST + KUAKINI ST" 42
"stops.txt" "stop_name" "LILIHA ST + ELENA ST" 43
"stops.txt" "stop_name" "LILIHA ST + BATES ST" 44
"stops.txt" "stop_name" "LILIHA ST + JUDD ST" 45
"stops.txt" "stop_name" "LILIHA ST + BACHELOT ST" 46
"stops.txt" "stop_name" "LILIHA ST + HALAPIA PL" 47
"stops.txt" "stop_name" "LILIHA ST + OPP EKEKELA ST" 48
"stops.txt" "stop_name" "LILIHA ST + WYLLIE ST" 49
"stops.txt" "stop_name" "LILIHA ST + NAMAUU DR" 50
"stops.txt" "stop_name" "SCHOOL ST + LILIHA ST" 51
stop_without_stop_time WARNING 3

stop_without_stop_time

A stop in stops.txt is not referenced by any stop_times.stop_id.

Such stops are not used by any trip and normally do not provide user value. This notice may indicate a typo in stop_times.txt.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty stop. stopName (?) The name of the faulty stop.
3772 "4851" "KALEWA ST TERMINUS"
3796 "32003" "KALIHI FACILITY GARAGE"
3797 "32004" "PEARL CITY FACILITY GARAGE"
unknown_column INFO 11

unknown_column

A column name is unknown.

You can see more about this notice here.

filename (?) The name of the faulty file. fieldName (?) The name of the unknown column. index (?) The index of the faulty column.
"stop_times.txt" "stop_code" 11
"stops.txt" "stop_serial_number" 11
"trips.txt" "trip_headsign_short" 8
"trips.txt" "apc_trip_id" 9
"trips.txt" "display_code" 10
"trips.txt" "trip_serial_number" 11
"trips.txt" "block" 12
"calendar.txt" "events_and_status" 11
"calendar.txt" "operating_days" 12
"calendar.txt" "duty" 13
"feed_info.txt" "feed_description" 7