ktmb — Enhanced Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-11-06T18:52:52Z,
for the dataset file:///shared/ktmb_b749e0d0.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:
English
Feed Start Date:
2026-08-18
Feed End Date:
2026-11-20

Files included


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

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 9
  • Shapes: 0
  • Stops: 155
  • Trips: 379

Specification Compliance report

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

Notice Code Severity Total
fast_travel_between_consecutive_stops WARNING 75

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 75 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.
162 "103069-2956" "103069-100_47300" 101.73722317629623 16.956203862716038 2384 5 "103069-42400" "Gurun" "20:22:00" 2385 6 "103069-43100" "Kobah" "20:31:00"
137 "103069-2908" "103069-100_47300" 101.73722317629623 16.956203862716038 2059 5 "103069-42400" "Gurun" "08:22:00" 2060 6 "103069-43100" "Kobah" "08:31:00"
137 "103069-2908" "103069-100_47300" 102.92802202474316 22.30107143869435 2062 8 "103069-44400" "Anak Bukit" "08:48:00" 2063 9 "103069-45600" "Kodiang" "09:00:00"
150 "103069-2943" "103069-100_47300" 102.92802202474316 22.30107143869435 2226 3 "103069-45600" "Kodiang" "16:00:00" 2227 4 "103069-44400" "Anak Bukit" "16:12:00"
150 "103069-2943" "103069-100_47300" 101.73722317629623 16.956203862716038 2229 6 "103069-43100" "Kobah" "16:29:00" 2230 7 "103069-42400" "Gurun" "16:38:00"
164 "103069-2959" "103069-100_47300" 102.92802202474316 22.30107143869435 2408 3 "103069-45600" "Kodiang" "20:30:00" 2409 4 "103069-44400" "Anak Bukit" "20:42:00"
164 "103069-2959" "103069-100_47300" 101.73722317629623 16.956203862716038 2411 6 "103069-43100" "Kobah" "20:59:00" 2412 7 "103069-42400" "Gurun" "21:08:00"
134 "103069-2905" "103069-100_47300" 102.92802202474316 22.30107143869435 2018 3 "103069-45600" "Kodiang" "06:25:00" 2019 4 "103069-44400" "Anak Bukit" "06:37:00"
134 "103069-2905" "103069-100_47300" 101.73722317629623 16.956203862716038 2021 6 "103069-43100" "Kobah" "06:54:00" 2022 7 "103069-42400" "Gurun" "07:03:00"
140 "103069-2915" "103069-100_47300" 102.92802202474316 22.30107143869435 2096 3 "103069-45600" "Kodiang" "09:00:00" 2097 4 "103069-44400" "Anak Bukit" "09:12:00"
140 "103069-2915" "103069-100_47300" 101.73722317629623 16.956203862716038 2099 6 "103069-43100" "Kobah" "09:29:00" 2100 7 "103069-42400" "Gurun" "09:38:00"
130 "103069-2900" "103069-100_47300" 101.73722317629623 16.956203862716038 1968 5 "103069-42400" "Gurun" "06:07:00" 1969 6 "103069-43100" "Kobah" "06:16:00"
130 "103069-2900" "103069-100_47300" 102.92802202474316 22.30107143869435 1971 8 "103069-44400" "Anak Bukit" "06:33:00" 1972 9 "103069-45600" "Kodiang" "06:45:00"
136 "103069-2907" "103069-100_47300" 102.92802202474316 22.30107143869435 2044 3 "103069-45600" "Kodiang" "06:45:00" 2045 4 "103069-44400" "Anak Bukit" "06:57:00"
136 "103069-2907" "103069-100_47300" 101.73722317629623 16.956203862716038 2047 6 "103069-43100" "Kobah" "07:14:00" 2048 7 "103069-42400" "Gurun" "07:23:00"
139 "103069-2912" "103069-100_47300" 101.73722317629623 16.956203862716038 2085 5 "103069-42400" "Gurun" "09:22:00" 2086 6 "103069-43100" "Kobah" "09:31:00"
139 "103069-2912" "103069-100_47300" 102.92802202474316 22.30107143869435 2088 8 "103069-44400" "Anak Bukit" "09:48:00" 2089 9 "103069-45600" "Kodiang" "10:00:00"
146 "103069-2938" "103069-100_47300" 101.73722317629623 16.956203862716038 2176 5 "103069-42400" "Gurun" "15:52:00" 2177 6 "103069-43100" "Kobah" "16:01:00"
146 "103069-2938" "103069-100_47300" 102.92802202474316 22.30107143869435 2179 8 "103069-44400" "Anak Bukit" "16:18:00" 2180 9 "103069-45600" "Kodiang" "16:30:00"
155 "103069-2949" "103069-100_47300" 102.92802202474316 22.30107143869435 2291 3 "103069-45600" "Kodiang" "17:30:00" 2292 4 "103069-44400" "Anak Bukit" "17:42:00"
155 "103069-2949" "103069-100_47300" 101.73722317629623 16.956203862716038 2294 6 "103069-43100" "Kobah" "17:59:00" 2295 7 "103069-42400" "Gurun" "18:08:00"
152 "103069-2946" "103069-100_47300" 101.73722317629623 16.956203862716038 2254 5 "103069-42400" "Gurun" "17:52:00" 2255 6 "103069-43100" "Kobah" "18:01:00"
152 "103069-2946" "103069-100_47300" 102.92802202474316 22.30107143869435 2257 8 "103069-44400" "Anak Bukit" "18:18:00" 2258 9 "103069-45600" "Kodiang" "18:30:00"
160 "103069-2954" "103069-100_47300" 101.73722317629623 16.956203862716038 2358 5 "103069-42400" "Gurun" "19:52:00" 2359 6 "103069-43100" "Kobah" "20:01:00"
160 "103069-2954" "103069-100_47300" 102.92802202474316 22.30107143869435 2361 8 "103069-44400" "Anak Bukit" "20:18:00" 2362 9 "103069-45600" "Kodiang" "20:30:00"
151 "103069-2944" "103069-100_47300" 101.73722317629623 16.956203862716038 2241 5 "103069-42400" "Gurun" "17:22:00" 2242 6 "103069-43100" "Kobah" "17:31:00"
151 "103069-2944" "103069-100_47300" 102.92802202474316 22.30107143869435 2244 8 "103069-44400" "Anak Bukit" "17:48:00" 2245 9 "103069-45600" "Kodiang" "18:00:00"
158 "103069-2952" "103069-100_47300" 101.73722317629623 16.956203862716038 2332 5 "103069-42400" "Gurun" "19:27:00" 2333 6 "103069-43100" "Kobah" "19:36:00"
158 "103069-2952" "103069-100_47300" 102.92802202474316 22.30107143869435 2335 8 "103069-44400" "Anak Bukit" "19:53:00" 2336 9 "103069-45600" "Kodiang" "20:05:00"
148 "103069-2940" "103069-100_47300" 101.73722317629623 16.956203862716038 2202 5 "103069-42400" "Gurun" "16:22:00" 2203 6 "103069-43100" "Kobah" "16:31:00"
148 "103069-2940" "103069-100_47300" 102.92802202474316 22.30107143869435 2205 8 "103069-44400" "Anak Bukit" "16:48:00" 2206 9 "103069-45600" "Kodiang" "17:00:00"
133 "103069-2904" "103069-100_47300" 101.73722317629623 16.956203862716038 2007 5 "103069-42400" "Gurun" "07:12:00" 2008 6 "103069-43100" "Kobah" "07:21:00"
133 "103069-2904" "103069-100_47300" 102.92802202474316 22.30107143869435 2010 8 "103069-44400" "Anak Bukit" "07:38:00" 2011 9 "103069-45600" "Kodiang" "07:50:00"
149 "103069-2941" "103069-100_47300" 102.92802202474316 22.30107143869435 2213 3 "103069-45600" "Kodiang" "15:30:00" 2214 4 "103069-44400" "Anak Bukit" "15:42:00"
149 "103069-2941" "103069-100_47300" 101.73722317629623 16.956203862716038 2216 6 "103069-43100" "Kobah" "15:59:00" 2217 7 "103069-42400" "Gurun" "16:08:00"
131 "103069-2901" "103069-100_47300" 102.92802202474316 22.30107143869435 1979 3 "103069-45600" "Kodiang" "05:45:00" 1980 4 "103069-44400" "Anak Bukit" "05:57:00"
131 "103069-2901" "103069-100_47300" 101.73722317629623 16.956203862716038 1982 6 "103069-43100" "Kobah" "06:14:00" 1983 7 "103069-42400" "Gurun" "06:23:00"
132 "103069-2903" "103069-100_47300" 102.92802202474316 22.30107143869435 1992 3 "103069-45600" "Kodiang" "06:05:00" 1993 4 "103069-44400" "Anak Bukit" "06:17:00"
132 "103069-2903" "103069-100_47300" 101.73722317629623 16.956203862716038 1995 6 "103069-43100" "Kobah" "06:34:00" 1996 7 "103069-42400" "Gurun" "06:43:00"
161 "103069-2955" "103069-100_47300" 102.92802202474316 22.30107143869435 2369 3 "103069-45600" "Kodiang" "19:00:00" 2370 4 "103069-44400" "Anak Bukit" "19:12:00"
161 "103069-2955" "103069-100_47300" 101.73722317629623 16.956203862716038 2372 6 "103069-43100" "Kobah" "19:29:00" 2373 7 "103069-42400" "Gurun" "19:38:00"
138 "103069-2911" "103069-100_47300" 102.92802202474316 22.30107143869435 2070 3 "103069-45600" "Kodiang" "08:00:00" 2071 4 "103069-44400" "Anak Bukit" "08:12:00"
138 "103069-2911" "103069-100_47300" 101.73722317629623 16.956203862716038 2073 6 "103069-43100" "Kobah" "08:29:00" 2074 7 "103069-42400" "Gurun" "08:38:00"
153 "103069-2947" "103069-100_47300" 102.92802202474316 22.30107143869435 2265 3 "103069-45600" "Kodiang" "17:00:00" 2266 4 "103069-44400" "Anak Bukit" "17:12:00"
153 "103069-2947" "103069-100_47300" 101.73722317629623 16.956203862716038 2268 6 "103069-43100" "Kobah" "17:29:00" 2269 7 "103069-42400" "Gurun" "17:38:00"
141 "103069-2920" "103069-100_47300" 101.73722317629623 16.956203862716038 2111 5 "103069-42400" "Gurun" "11:22:00" 2112 6 "103069-43100" "Kobah" "11:31:00"
141 "103069-2920" "103069-100_47300" 102.92802202474316 22.30107143869435 2114 8 "103069-44400" "Anak Bukit" "11:48:00" 2115 9 "103069-45600" "Kodiang" "12:00:00"
147 "103069-2939" "103069-100_47300" 102.92802202474316 22.30107143869435 2187 3 "103069-45600" "Kodiang" "15:00:00" 2188 4 "103069-44400" "Anak Bukit" "15:12:00"
147 "103069-2939" "103069-100_47300" 101.73722317629623 16.956203862716038 2190 6 "103069-43100" "Kobah" "15:29:00" 2191 7 "103069-42400" "Gurun" "15:38:00"
166 "103069-2964" "103069-100_47300" 101.73722317629623 16.956203862716038 2436 5 "103069-42400" "Gurun" "22:27:00" 2437 6 "103069-43100" "Kobah" "22:36:00"
fast_travel_between_far_stops WARNING 38

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.
162 "103069-2956" "103069-100_47300" 101.73722317629623 16.956203862716038 2384 5 "103069-42400" "Gurun" "20:22:00" 2385 6 "103069-43100" "Kobah" "20:31:00"
137 "103069-2908" "103069-100_47300" 101.73722317629623 16.956203862716038 2059 5 "103069-42400" "Gurun" "08:22:00" 2060 6 "103069-43100" "Kobah" "08:31:00"
150 "103069-2943" "103069-100_47300" 102.92802202474316 22.30107143869435 2226 3 "103069-45600" "Kodiang" "16:00:00" 2227 4 "103069-44400" "Anak Bukit" "16:12:00"
164 "103069-2959" "103069-100_47300" 102.92802202474316 22.30107143869435 2408 3 "103069-45600" "Kodiang" "20:30:00" 2409 4 "103069-44400" "Anak Bukit" "20:42:00"
134 "103069-2905" "103069-100_47300" 102.92802202474316 22.30107143869435 2018 3 "103069-45600" "Kodiang" "06:25:00" 2019 4 "103069-44400" "Anak Bukit" "06:37:00"
140 "103069-2915" "103069-100_47300" 102.92802202474316 22.30107143869435 2096 3 "103069-45600" "Kodiang" "09:00:00" 2097 4 "103069-44400" "Anak Bukit" "09:12:00"
130 "103069-2900" "103069-100_47300" 101.73722317629623 16.956203862716038 1968 5 "103069-42400" "Gurun" "06:07:00" 1969 6 "103069-43100" "Kobah" "06:16:00"
136 "103069-2907" "103069-100_47300" 102.92802202474316 22.30107143869435 2044 3 "103069-45600" "Kodiang" "06:45:00" 2045 4 "103069-44400" "Anak Bukit" "06:57:00"
139 "103069-2912" "103069-100_47300" 101.73722317629623 16.956203862716038 2085 5 "103069-42400" "Gurun" "09:22:00" 2086 6 "103069-43100" "Kobah" "09:31:00"
146 "103069-2938" "103069-100_47300" 101.73722317629623 16.956203862716038 2176 5 "103069-42400" "Gurun" "15:52:00" 2177 6 "103069-43100" "Kobah" "16:01:00"
155 "103069-2949" "103069-100_47300" 102.92802202474316 22.30107143869435 2291 3 "103069-45600" "Kodiang" "17:30:00" 2292 4 "103069-44400" "Anak Bukit" "17:42:00"
152 "103069-2946" "103069-100_47300" 101.73722317629623 16.956203862716038 2254 5 "103069-42400" "Gurun" "17:52:00" 2255 6 "103069-43100" "Kobah" "18:01:00"
160 "103069-2954" "103069-100_47300" 101.73722317629623 16.956203862716038 2358 5 "103069-42400" "Gurun" "19:52:00" 2359 6 "103069-43100" "Kobah" "20:01:00"
151 "103069-2944" "103069-100_47300" 101.73722317629623 16.956203862716038 2241 5 "103069-42400" "Gurun" "17:22:00" 2242 6 "103069-43100" "Kobah" "17:31:00"
158 "103069-2952" "103069-100_47300" 101.73722317629623 16.956203862716038 2332 5 "103069-42400" "Gurun" "19:27:00" 2333 6 "103069-43100" "Kobah" "19:36:00"
148 "103069-2940" "103069-100_47300" 101.73722317629623 16.956203862716038 2202 5 "103069-42400" "Gurun" "16:22:00" 2203 6 "103069-43100" "Kobah" "16:31:00"
133 "103069-2904" "103069-100_47300" 101.73722317629623 16.956203862716038 2007 5 "103069-42400" "Gurun" "07:12:00" 2008 6 "103069-43100" "Kobah" "07:21:00"
149 "103069-2941" "103069-100_47300" 102.92802202474316 22.30107143869435 2213 3 "103069-45600" "Kodiang" "15:30:00" 2214 4 "103069-44400" "Anak Bukit" "15:42:00"
131 "103069-2901" "103069-100_47300" 102.92802202474316 22.30107143869435 1979 3 "103069-45600" "Kodiang" "05:45:00" 1980 4 "103069-44400" "Anak Bukit" "05:57:00"
132 "103069-2903" "103069-100_47300" 102.92802202474316 22.30107143869435 1992 3 "103069-45600" "Kodiang" "06:05:00" 1993 4 "103069-44400" "Anak Bukit" "06:17:00"
161 "103069-2955" "103069-100_47300" 102.92802202474316 22.30107143869435 2369 3 "103069-45600" "Kodiang" "19:00:00" 2370 4 "103069-44400" "Anak Bukit" "19:12:00"
138 "103069-2911" "103069-100_47300" 102.92802202474316 22.30107143869435 2070 3 "103069-45600" "Kodiang" "08:00:00" 2071 4 "103069-44400" "Anak Bukit" "08:12:00"
153 "103069-2947" "103069-100_47300" 102.92802202474316 22.30107143869435 2265 3 "103069-45600" "Kodiang" "17:00:00" 2266 4 "103069-44400" "Anak Bukit" "17:12:00"
141 "103069-2920" "103069-100_47300" 101.73722317629623 16.956203862716038 2111 5 "103069-42400" "Gurun" "11:22:00" 2112 6 "103069-43100" "Kobah" "11:31:00"
147 "103069-2939" "103069-100_47300" 102.92802202474316 22.30107143869435 2187 3 "103069-45600" "Kodiang" "15:00:00" 2188 4 "103069-44400" "Anak Bukit" "15:12:00"
166 "103069-2964" "103069-100_47300" 101.73722317629623 16.956203862716038 2436 5 "103069-42400" "Gurun" "22:27:00" 2437 6 "103069-43100" "Kobah" "22:36:00"
154 "103069-2948" "103069-100_47300" 101.73722317629623 16.956203862716038 2280 5 "103069-42400" "Gurun" "18:22:00" 2281 6 "103069-43100" "Kobah" "18:31:00"
142 "103069-2923" "103069-100_47300" 102.92802202474316 22.30107143869435 2122 3 "103069-45600" "Kodiang" "11:00:00" 2123 4 "103069-44400" "Anak Bukit" "11:12:00"
135 "103069-2906" "103069-100_47300" 101.73722317629623 16.956203862716038 2033 5 "103069-42400" "Gurun" "07:42:00" 2034 6 "103069-43100" "Kobah" "07:51:00"
145 "103069-2936" "103069-100_47300" 101.73722317629623 16.956203862716038 2163 5 "103069-42400" "Gurun" "15:22:00" 2164 6 "103069-43100" "Kobah" "15:31:00"
165 "103069-2960" "103069-100_47300" 101.73722317629623 16.956203862716038 2423 5 "103069-42400" "Gurun" "21:32:00" 2424 6 "103069-43100" "Kobah" "21:41:00"
167 "103069-2967" "103069-100_47300" 102.92802202474316 22.30107143869435 2447 3 "103069-45600" "Kodiang" "22:00:00" 2448 4 "103069-44400" "Anak Bukit" "22:12:00"
143 "103069-2928" "103069-100_47300" 101.73722317629623 16.956203862716038 2137 5 "103069-42400" "Gurun" "13:22:00" 2138 6 "103069-43100" "Kobah" "13:31:00"
157 "103069-2951" "103069-100_47300" 102.92802202474316 22.30107143869435 2317 3 "103069-45600" "Kodiang" "18:00:00" 2318 4 "103069-44400" "Anak Bukit" "18:12:00"
144 "103069-2931" "103069-100_47300" 102.92802202474316 22.30107143869435 2148 3 "103069-45600" "Kodiang" "13:00:00" 2149 4 "103069-44400" "Anak Bukit" "13:12:00"
163 "103069-2957" "103069-100_47300" 102.92802202474316 22.30107143869435 2395 3 "103069-45600" "Kodiang" "19:30:00" 2396 4 "103069-44400" "Anak Bukit" "19:42:00"
156 "103069-2950" "103069-100_47300" 101.73722317629623 16.956203862716038 2306 5 "103069-42400" "Gurun" "18:52:00" 2307 6 "103069-43100" "Kobah" "19:01:00"
159 "103069-2953" "103069-100_47300" 102.92802202474316 22.30107143869435 2343 3 "103069-45600" "Kodiang" "18:30:00" 2344 4 "103069-44400" "Anak Bukit" "18:42:00"
feed_expiration_date30_days WARNING 1

feed_expiration_date30_days

Dataset should cover at least the next 30 days of service.

At any time, the GTFS dataset should cover at least the next 30 days of service, and ideally for as long as the operator is confident that the schedule will continue to be operated.

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 "20261106" "20261120" "20261206"
route_short_name_too_long WARNING 4

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`.
"103069-KC05_KB18" 2 "Seremban Line"
"103069-KA15_KD19" 3 "Port Klang Line"
"103069-100_47300" 4 "Padang Besar Line"
"103069-SS" 6 "Shuttle Selatan"