GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2025-12-06T01:31:16Z,
for the dataset file:///shared/taipei-bus.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:
Chinese
Feed Start Date:
2017-01-01
Feed End Date:
2026-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: 15
  • Blocks: 0
  • Routes: 393
  • Shapes: 0
  • Stops: 4136
  • Trips: 37611

Specification Compliance report

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

Notice Code Severity Total
fast_travel_between_consecutive_stops WARNING 1324

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 1324 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.
36093 "101711-159442:697953:0" "101711-17944" 215.18333884395145 3.825481579448026 1320008 26 "101711-STOP_TPE2454" "博嘉國小" "10:31:14" 1320009 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "10:32:18"
36191 "101711-159442:698051:0" "101711-17944" 215.18333884395145 3.825481579448026 1323830 26 "101711-STOP_TPE2454" "博嘉國小" "10:31:14" 1323831 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "10:32:18"
36020 "101711-159442:202000:0" "101711-17944" 215.18333884395145 3.825481579448026 1317161 26 "101711-STOP_TPE2454" "博嘉國小" "10:31:14" 1317162 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "10:32:18"
36054 "101711-159442:202269:0" "101711-17944" 215.18333884395145 3.825481579448026 1318487 26 "101711-STOP_TPE2454" "博嘉國小" "10:31:14" 1318488 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "10:32:18"
36240 "101711-159442:698100:0" "101711-17944" 215.18333884395145 3.825481579448026 1325741 26 "101711-STOP_TPE2454" "博嘉國小" "10:31:14" 1325742 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "10:32:18"
36142 "101711-159442:698002:0" "101711-17944" 215.18333884395145 3.825481579448026 1321919 26 "101711-STOP_TPE2454" "博嘉國小" "10:31:14" 1321920 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "10:32:18"
36289 "101711-159442:698149:0" "101711-17944" 215.18333884395145 3.825481579448026 1327652 26 "101711-STOP_TPE2454" "博嘉國小" "10:31:14" 1327653 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "10:32:18"
36 "101711-10142:508358:0" "101711-10142" 155.29682538540231 3.753006613480556 1340 48 "101711-STOP_TPE2429" "風動石" "07:01:47" 1341 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:03:14"
163 "101711-10142:508488:0" "101711-10142" 155.29682538540231 3.753006613480556 8071 48 "101711-STOP_TPE2429" "風動石" "07:01:47" 8072 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:03:14"
120 "101711-10142:508445:0" "101711-10142" 155.29682538540231 3.753006613480556 5792 48 "101711-STOP_TPE2429" "風動石" "07:01:47" 5793 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:03:14"
97 "101711-10142:508422:0" "101711-10142" 155.29682538540231 3.753006613480556 4573 48 "101711-STOP_TPE2429" "風動石" "07:01:47" 4574 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:03:14"
143 "101711-10142:508468:0" "101711-10142" 155.29682538540231 3.753006613480556 7011 48 "101711-STOP_TPE2429" "風動石" "07:01:47" 7012 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:03:14"
51 "101711-10142:508376:0" "101711-10142" 155.29682538540231 3.753006613480556 2135 48 "101711-STOP_TPE2429" "風動石" "07:01:47" 2136 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:03:14"
74 "101711-10142:508399:0" "101711-10142" 155.29682538540231 3.753006613480556 3354 48 "101711-STOP_TPE2429" "風動石" "07:01:47" 3355 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:03:14"
36159 "101711-159442:698019:0" "101711-17944" 199.59034327554917 3.825481579448026 1322582 26 "101711-STOP_TPE2454" "博嘉國小" "15:52:00" 1322583 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "15:53:09"
36257 "101711-159442:698117:0" "101711-17944" 199.59034327554917 3.825481579448026 1326404 26 "101711-STOP_TPE2454" "博嘉國小" "15:52:00" 1326405 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "15:53:09"
36208 "101711-159442:698068:0" "101711-17944" 199.59034327554917 3.825481579448026 1324493 26 "101711-STOP_TPE2454" "博嘉國小" "15:52:00" 1324494 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "15:53:09"
36306 "101711-159442:698166:0" "101711-17944" 199.59034327554917 3.825481579448026 1328315 26 "101711-STOP_TPE2454" "博嘉國小" "15:52:00" 1328316 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "15:53:09"
36110 "101711-159442:697970:0" "101711-17944" 199.59034327554917 3.825481579448026 1320671 26 "101711-STOP_TPE2454" "博嘉國小" "15:52:00" 1320672 27 "101711-STOP_TPE6929" "信義松仁路口(信義)" "15:53:09"
23855 "101711-157526:611052:1" "101711-15314" 150.66197965150582 1.6321714462246462 924947 16 "101711-STOP_TPE1000266" "劍潭" "12:53:35" 924948 17 "101711-STOP_TPE1233" "民族東路口" "12:54:14"
23854 "101711-157526:611051:1" "101711-15314" 150.66197965150582 1.6321714462246462 924885 16 "101711-STOP_TPE1000266" "劍潭" "12:53:35" 924886 17 "101711-STOP_TPE1233" "民族東路口" "12:54:14"
24003 "101711-157526:651765:1" "101711-15314" 150.66197965150582 1.6321714462246462 934123 16 "101711-STOP_TPE1000266" "劍潭" "12:53:35" 934124 17 "101711-STOP_TPE1233" "民族東路口" "12:54:14"
23887 "101711-157526:651649:1" "101711-15314" 150.66197965150582 1.6321714462246462 926931 16 "101711-STOP_TPE1000266" "劍潭" "12:53:35" 926932 17 "101711-STOP_TPE1233" "民族東路口" "12:54:14"
23945 "101711-157526:651707:1" "101711-15314" 150.66197965150582 1.6321714462246462 930527 16 "101711-STOP_TPE1000266" "劍潭" "12:53:35" 930528 17 "101711-STOP_TPE1233" "民族東路口" "12:54:14"
23916 "101711-157526:651678:1" "101711-15314" 150.66197965150582 1.6321714462246462 928729 16 "101711-STOP_TPE1000266" "劍潭" "12:53:35" 928730 17 "101711-STOP_TPE1233" "民族東路口" "12:54:14"
23974 "101711-157526:651736:1" "101711-15314" 150.66197965150582 1.6321714462246462 932325 16 "101711-STOP_TPE1000266" "劍潭" "12:53:35" 932326 17 "101711-STOP_TPE1233" "民族東路口" "12:54:14"
23822 "101711-157526:610987:1" "101711-15314" 150.66197965150582 1.6321714462246462 922901 16 "101711-STOP_TPE1000266" "劍潭" "22:03:09" 922902 17 "101711-STOP_TPE1233" "民族東路口" "22:03:48"
23823 "101711-157526:610988:1" "101711-15314" 150.66197965150582 1.6321714462246462 922963 16 "101711-STOP_TPE1000266" "劍潭" "22:03:09" 922964 17 "101711-STOP_TPE1233" "民族東路口" "22:03:48"
24002 "101711-157526:651764:1" "101711-15314" 150.66197965150582 1.6321714462246462 934061 16 "101711-STOP_TPE1000266" "劍潭" "12:23:35" 934062 17 "101711-STOP_TPE1233" "民族東路口" "12:24:14"
23886 "101711-157526:651648:1" "101711-15314" 150.66197965150582 1.6321714462246462 926869 16 "101711-STOP_TPE1000266" "劍潭" "12:23:35" 926870 17 "101711-STOP_TPE1233" "民族東路口" "12:24:14"
23944 "101711-157526:651706:1" "101711-15314" 150.66197965150582 1.6321714462246462 930465 16 "101711-STOP_TPE1000266" "劍潭" "12:23:35" 930466 17 "101711-STOP_TPE1233" "民族東路口" "12:24:14"
23915 "101711-157526:651677:1" "101711-15314" 150.66197965150582 1.6321714462246462 928667 16 "101711-STOP_TPE1000266" "劍潭" "12:23:35" 928668 17 "101711-STOP_TPE1233" "民族東路口" "12:24:14"
23973 "101711-157526:651735:1" "101711-15314" 150.66197965150582 1.6321714462246462 932263 16 "101711-STOP_TPE1000266" "劍潭" "12:23:35" 932264 17 "101711-STOP_TPE1233" "民族東路口" "12:24:14"
19365 "101711-160667:609828:0" "101711-11208" 171.3416957002854 1.6182271260582513 730340 16 "101711-STOP_TPE1000620" "陽明教養院" "15:51:42" 730341 17 "101711-STOP_TPE605" "大興山莊" "15:52:16"
19371 "101711-160667:609906:0" "101711-11208" 171.3416957002854 1.6182271260582513 730496 16 "101711-STOP_TPE1000620" "陽明教養院" "15:51:42" 730497 17 "101711-STOP_TPE605" "大興山莊" "15:52:16"
19373 "101711-160667:609932:0" "101711-11208" 171.3416957002854 1.6182271260582513 730548 16 "101711-STOP_TPE1000620" "陽明教養院" "15:51:42" 730549 17 "101711-STOP_TPE605" "大興山莊" "15:52:16"
19367 "101711-160667:609854:0" "101711-11208" 171.3416957002854 1.6182271260582513 730392 16 "101711-STOP_TPE1000620" "陽明教養院" "15:51:42" 730393 17 "101711-STOP_TPE605" "大興山莊" "15:52:16"
19369 "101711-160667:609880:0" "101711-11208" 171.3416957002854 1.6182271260582513 730444 16 "101711-STOP_TPE1000620" "陽明教養院" "15:51:42" 730445 17 "101711-STOP_TPE605" "大興山莊" "15:52:16"
122 "101711-10142:508447:0" "101711-10142" 155.29682538540231 3.753006613480556 5898 48 "101711-STOP_TPE2429" "風動石" "07:16:47" 5899 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:18:14"
99 "101711-10142:508424:0" "101711-10142" 155.29682538540231 3.753006613480556 4679 48 "101711-STOP_TPE2429" "風動石" "07:16:47" 4680 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:18:14"
145 "101711-10142:508470:0" "101711-10142" 155.29682538540231 3.753006613480556 7117 48 "101711-STOP_TPE2429" "風動石" "07:16:47" 7118 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:18:14"
53 "101711-10142:508378:0" "101711-10142" 155.29682538540231 3.753006613480556 2241 48 "101711-STOP_TPE2429" "風動石" "07:16:47" 2242 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:18:14"
76 "101711-10142:508401:0" "101711-10142" 155.29682538540231 3.753006613480556 3460 48 "101711-STOP_TPE2429" "風動石" "07:16:47" 3461 49 "101711-STOP_TPE6929" "信義松仁路口(信義)" "07:18:14"
28553 "101711-159390:665632:0" "101711-15581" 165.67965159124617 1.610774390470449 1134925 32 "101711-STOP_TPE20263" "三重派出所(重新路)" "12:39:28" 1134926 33 "101711-STOP_TPE1000398" "捷運民權西路站" "12:40:03"
28525 "101711-159390:665604:0" "101711-15581" 165.67965159124617 1.610774390470449 1133329 32 "101711-STOP_TPE20263" "三重派出所(重新路)" "12:39:28" 1133330 33 "101711-STOP_TPE1000398" "捷運民權西路站" "12:40:03"
11430 "101711-10942:629440:0" "101711-10942" 167.23218530303902 1.7652286226431897 454627 23 "101711-STOP_TPE13203" "重新大橋" "11:33:06" 454628 24 "101711-STOP_TPE70028" "西門國小(臺大醫院北護分院)" "11:33:44"
11511 "101711-10942:629527:0" "101711-10942" 167.23218530303902 1.7652286226431897 460135 23 "101711-STOP_TPE13203" "重新大橋" "11:33:06" 460136 24 "101711-STOP_TPE70028" "西門國小(臺大醫院北護分院)" "11:33:44"
11457 "101711-10942:629469:0" "101711-10942" 167.23218530303902 1.7652286226431897 456463 23 "101711-STOP_TPE13203" "重新大橋" "11:33:06" 456464 24 "101711-STOP_TPE70028" "西門國小(臺大醫院北護分院)" "11:33:44"
11484 "101711-10942:629498:0" "101711-10942" 167.23218530303902 1.7652286226431897 458299 23 "101711-STOP_TPE13203" "重新大橋" "11:33:06" 458300 24 "101711-STOP_TPE70028" "西門國小(臺大醫院北護分院)" "11:33:44"
11374 "101711-10942:629379:0" "101711-10942" 167.23218530303902 1.7652286226431897 450819 23 "101711-STOP_TPE13203" "重新大橋" "11:33:06" 450820 24 "101711-STOP_TPE70028" "西門國小(臺大醫院北護分院)" "11:33:44"
fast_travel_between_far_stops WARNING 5

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.
36823 "101711-160738:616179:1" "101711-18688" 215.53949736949306 10.776974868474653 1342477 0 "101711-STOP_TPE630" "文化大學一" "17:15:00" 1342478 1 "101711-STOP_TPE1165603314" "中國電視公司" "17:17:00"
36822 "101711-160738:616178:1" "101711-18688" 215.53949736949306 10.776974868474653 1342473 0 "101711-STOP_TPE630" "文化大學一" "17:15:00" 1342474 1 "101711-STOP_TPE1165603314" "中國電視公司" "17:17:00"
36820 "101711-160738:616176:1" "101711-18688" 215.53949736949306 10.776974868474653 1342465 0 "101711-STOP_TPE630" "文化大學一" "17:15:00" 1342466 1 "101711-STOP_TPE1165603314" "中國電視公司" "17:17:00"
36821 "101711-160738:616177:1" "101711-18688" 215.53949736949306 10.776974868474653 1342469 0 "101711-STOP_TPE630" "文化大學一" "17:15:00" 1342470 1 "101711-STOP_TPE1165603314" "中國電視公司" "17:17:00"
36824 "101711-160738:616180:1" "101711-18688" 215.53949736949306 10.776974868474653 1342481 0 "101711-STOP_TPE630" "文化大學一" "17:15:00" 1342482 1 "101711-STOP_TPE1165603314" "中國電視公司" "17:17:00"
mixed_case_recommended_field WARNING 39072

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 39072 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.
"routes.txt" "route_long_name" "板橋-西門" 2
"routes.txt" "route_desc" "票價描述:一段票" 2
"routes.txt" "route_long_name" "新店-臺北市政府" 3
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區景美女中-石壁坑" 3
"routes.txt" "route_long_name" "中華科技大學-東園" 4
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區玉成國小-饒河街觀光夜市(八德)" 4
"routes.txt" "route_long_name" "新莊-士林" 5
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區(往)新北大道中興路口-捷運民權西路站 (返)民權大龍街口-新北大道重光街口" 5
"routes.txt" "route_long_name" "南港-臺北橋" 6
"routes.txt" "route_desc" "票價描述:一段票" 6
"routes.txt" "route_long_name" "南港-捷運北門站" 7
"routes.txt" "route_desc" "票價描述:一段票" 7
"routes.txt" "route_long_name" "汐止社后-捷運昆陽站" 8
"routes.txt" "route_desc" "票價描述:一段票" 8
"routes.txt" "route_long_name" "南港高工-圓環" 9
"routes.txt" "route_desc" "票價描述:一段票" 9
"routes.txt" "route_long_name" "捷運圓山站-捷運文德站" 10
"routes.txt" "route_desc" "票價描述:一段票" 10
"routes.txt" "route_long_name" "葫蘆里-聯合醫院中興院區(西寧)" 11
"routes.txt" "route_desc" "票價描述:一段票" 11
"routes.txt" "route_long_name" "台北海大-臺大醫院" 12
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區(往)社子國小二→涼州重慶路口、(返)涼州重慶路口─洲美橋" 12
"routes.txt" "route_long_name" "台北海大-大同之家" 13
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區(往)社子國小二-捷運芝山站(戲曲中心)、(返)捷運芝山站(戲曲中心)-洲美橋" 13
"routes.txt" "route_long_name" "捷運劍潭站-大坪尾" 14
"routes.txt" "route_desc" "票價描述:一段票" 14
"routes.txt" "route_long_name" "捷運劍潭站-平等里" 15
"routes.txt" "route_desc" "票價描述:一段票" 15
"routes.txt" "route_long_name" "捷運圓山站-捷運中山國中站" 16
"routes.txt" "route_desc" "票價描述:一段票" 16
"routes.txt" "route_long_name" "三重-市政府" 17
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區延平長安路口-微風廣場" 17
"routes.txt" "route_long_name" "新莊-國父紀念館" 18
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區(往)祖師廟(貴陽)-東吳大學城中校區、(返)衡陽路-西門國小" 18
"routes.txt" "route_long_name" "新莊-國父紀念館" 19
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區(往)西門國小(臺大醫院北護分院)-東吳大學城中校區(返)衡陽路-西門國小" 19
"routes.txt" "route_long_name" "松山車站-松山機場" 20
"routes.txt" "route_desc" "票價描述:一段票" 20
"routes.txt" "route_long_name" "民生社區-南港花園社區" 21
"routes.txt" "route_desc" "票價描述:一段票" 21
"routes.txt" "route_long_name" "麥帥新城-圓環" 22
"routes.txt" "route_desc" "票價描述:一段票" 22
"routes.txt" "route_long_name" "錦繡山莊-臺北車站" 23
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區滬江中學-捷運公館站" 23
"routes.txt" "route_long_name" "錦繡山莊-復興北村" 24
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區滬江中學-捷運公館" 24
"routes.txt" "route_long_name" "大崎腳-捷運市政府站" 25
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區復興派出所-博嘉國小" 25
"routes.txt" "route_long_name" "青潭-復興北村" 26
"routes.txt" "route_desc" "票價描述:兩段票;收費緩衝區滬江中學-捷運公館站" 26
route_short_name_too_long WARNING 1

route_short_name_too_long

Short name of a route is too long (more than 12 characters).

You can see more about this notice here.

routeId (?) The id of the faulty record. csvRowNumber (?) The row number of the faulty record. routeShortName (?) The faulty record's `route_short_name`.
"101711-11142" 155 "小9(台灣好行-北投竹子湖)"