ktmb — Enhanced Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-10-30T16:58:01Z,
for the dataset file:///shared/ktmb_92cbeb7c.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-13

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: 154
  • Trips: 373

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.
160 "103069-2956" "103069-100_47300" 101.73722317629623 16.956203862716038 2369 5 "103069-42400" "Gurun" "20:22:00" 2370 6 "103069-43100" "Kobah" "20:31:00"
135 "103069-2908" "103069-100_47300" 101.73722317629623 16.956203862716038 2044 5 "103069-42400" "Gurun" "08:22:00" 2045 6 "103069-43100" "Kobah" "08:31:00"
135 "103069-2908" "103069-100_47300" 102.92802202474316 22.30107143869435 2047 8 "103069-44400" "Anak Bukit" "08:48:00" 2048 9 "103069-45600" "Kodiang" "09:00:00"
148 "103069-2943" "103069-100_47300" 102.92802202474316 22.30107143869435 2211 3 "103069-45600" "Kodiang" "16:00:00" 2212 4 "103069-44400" "Anak Bukit" "16:12:00"
148 "103069-2943" "103069-100_47300" 101.73722317629623 16.956203862716038 2214 6 "103069-43100" "Kobah" "16:29:00" 2215 7 "103069-42400" "Gurun" "16:38:00"
162 "103069-2959" "103069-100_47300" 102.92802202474316 22.30107143869435 2393 3 "103069-45600" "Kodiang" "20:30:00" 2394 4 "103069-44400" "Anak Bukit" "20:42:00"
162 "103069-2959" "103069-100_47300" 101.73722317629623 16.956203862716038 2396 6 "103069-43100" "Kobah" "20:59:00" 2397 7 "103069-42400" "Gurun" "21:08:00"
132 "103069-2905" "103069-100_47300" 102.92802202474316 22.30107143869435 2003 3 "103069-45600" "Kodiang" "06:25:00" 2004 4 "103069-44400" "Anak Bukit" "06:37:00"
132 "103069-2905" "103069-100_47300" 101.73722317629623 16.956203862716038 2006 6 "103069-43100" "Kobah" "06:54:00" 2007 7 "103069-42400" "Gurun" "07:03:00"
138 "103069-2915" "103069-100_47300" 102.92802202474316 22.30107143869435 2081 3 "103069-45600" "Kodiang" "09:00:00" 2082 4 "103069-44400" "Anak Bukit" "09:12:00"
138 "103069-2915" "103069-100_47300" 101.73722317629623 16.956203862716038 2084 6 "103069-43100" "Kobah" "09:29:00" 2085 7 "103069-42400" "Gurun" "09:38:00"
128 "103069-2900" "103069-100_47300" 101.73722317629623 16.956203862716038 1953 5 "103069-42400" "Gurun" "06:07:00" 1954 6 "103069-43100" "Kobah" "06:16:00"
128 "103069-2900" "103069-100_47300" 102.92802202474316 22.30107143869435 1956 8 "103069-44400" "Anak Bukit" "06:33:00" 1957 9 "103069-45600" "Kodiang" "06:45:00"
134 "103069-2907" "103069-100_47300" 102.92802202474316 22.30107143869435 2029 3 "103069-45600" "Kodiang" "06:45:00" 2030 4 "103069-44400" "Anak Bukit" "06:57:00"
134 "103069-2907" "103069-100_47300" 101.73722317629623 16.956203862716038 2032 6 "103069-43100" "Kobah" "07:14:00" 2033 7 "103069-42400" "Gurun" "07:23:00"
137 "103069-2912" "103069-100_47300" 101.73722317629623 16.956203862716038 2070 5 "103069-42400" "Gurun" "09:22:00" 2071 6 "103069-43100" "Kobah" "09:31:00"
137 "103069-2912" "103069-100_47300" 102.92802202474316 22.30107143869435 2073 8 "103069-44400" "Anak Bukit" "09:48:00" 2074 9 "103069-45600" "Kodiang" "10:00:00"
144 "103069-2938" "103069-100_47300" 101.73722317629623 16.956203862716038 2161 5 "103069-42400" "Gurun" "15:52:00" 2162 6 "103069-43100" "Kobah" "16:01:00"
144 "103069-2938" "103069-100_47300" 102.92802202474316 22.30107143869435 2164 8 "103069-44400" "Anak Bukit" "16:18:00" 2165 9 "103069-45600" "Kodiang" "16:30:00"
153 "103069-2949" "103069-100_47300" 102.92802202474316 22.30107143869435 2276 3 "103069-45600" "Kodiang" "17:30:00" 2277 4 "103069-44400" "Anak Bukit" "17:42:00"
153 "103069-2949" "103069-100_47300" 101.73722317629623 16.956203862716038 2279 6 "103069-43100" "Kobah" "17:59:00" 2280 7 "103069-42400" "Gurun" "18:08:00"
150 "103069-2946" "103069-100_47300" 101.73722317629623 16.956203862716038 2239 5 "103069-42400" "Gurun" "17:52:00" 2240 6 "103069-43100" "Kobah" "18:01:00"
150 "103069-2946" "103069-100_47300" 102.92802202474316 22.30107143869435 2242 8 "103069-44400" "Anak Bukit" "18:18:00" 2243 9 "103069-45600" "Kodiang" "18:30:00"
158 "103069-2954" "103069-100_47300" 101.73722317629623 16.956203862716038 2343 5 "103069-42400" "Gurun" "19:52:00" 2344 6 "103069-43100" "Kobah" "20:01:00"
158 "103069-2954" "103069-100_47300" 102.92802202474316 22.30107143869435 2346 8 "103069-44400" "Anak Bukit" "20:18:00" 2347 9 "103069-45600" "Kodiang" "20:30:00"
149 "103069-2944" "103069-100_47300" 101.73722317629623 16.956203862716038 2226 5 "103069-42400" "Gurun" "17:22:00" 2227 6 "103069-43100" "Kobah" "17:31:00"
149 "103069-2944" "103069-100_47300" 102.92802202474316 22.30107143869435 2229 8 "103069-44400" "Anak Bukit" "17:48:00" 2230 9 "103069-45600" "Kodiang" "18:00:00"
156 "103069-2952" "103069-100_47300" 101.73722317629623 16.956203862716038 2317 5 "103069-42400" "Gurun" "19:27:00" 2318 6 "103069-43100" "Kobah" "19:36:00"
156 "103069-2952" "103069-100_47300" 102.92802202474316 22.30107143869435 2320 8 "103069-44400" "Anak Bukit" "19:53:00" 2321 9 "103069-45600" "Kodiang" "20:05:00"
146 "103069-2940" "103069-100_47300" 101.73722317629623 16.956203862716038 2187 5 "103069-42400" "Gurun" "16:22:00" 2188 6 "103069-43100" "Kobah" "16:31:00"
146 "103069-2940" "103069-100_47300" 102.92802202474316 22.30107143869435 2190 8 "103069-44400" "Anak Bukit" "16:48:00" 2191 9 "103069-45600" "Kodiang" "17:00:00"
131 "103069-2904" "103069-100_47300" 101.73722317629623 16.956203862716038 1992 5 "103069-42400" "Gurun" "07:12:00" 1993 6 "103069-43100" "Kobah" "07:21:00"
131 "103069-2904" "103069-100_47300" 102.92802202474316 22.30107143869435 1995 8 "103069-44400" "Anak Bukit" "07:38:00" 1996 9 "103069-45600" "Kodiang" "07:50:00"
147 "103069-2941" "103069-100_47300" 102.92802202474316 22.30107143869435 2198 3 "103069-45600" "Kodiang" "15:30:00" 2199 4 "103069-44400" "Anak Bukit" "15:42:00"
147 "103069-2941" "103069-100_47300" 101.73722317629623 16.956203862716038 2201 6 "103069-43100" "Kobah" "15:59:00" 2202 7 "103069-42400" "Gurun" "16:08:00"
129 "103069-2901" "103069-100_47300" 102.92802202474316 22.30107143869435 1964 3 "103069-45600" "Kodiang" "05:45:00" 1965 4 "103069-44400" "Anak Bukit" "05:57:00"
129 "103069-2901" "103069-100_47300" 101.73722317629623 16.956203862716038 1967 6 "103069-43100" "Kobah" "06:14:00" 1968 7 "103069-42400" "Gurun" "06:23:00"
130 "103069-2903" "103069-100_47300" 102.92802202474316 22.30107143869435 1977 3 "103069-45600" "Kodiang" "06:05:00" 1978 4 "103069-44400" "Anak Bukit" "06:17:00"
130 "103069-2903" "103069-100_47300" 101.73722317629623 16.956203862716038 1980 6 "103069-43100" "Kobah" "06:34:00" 1981 7 "103069-42400" "Gurun" "06:43:00"
159 "103069-2955" "103069-100_47300" 102.92802202474316 22.30107143869435 2354 3 "103069-45600" "Kodiang" "19:00:00" 2355 4 "103069-44400" "Anak Bukit" "19:12:00"
159 "103069-2955" "103069-100_47300" 101.73722317629623 16.956203862716038 2357 6 "103069-43100" "Kobah" "19:29:00" 2358 7 "103069-42400" "Gurun" "19:38:00"
136 "103069-2911" "103069-100_47300" 102.92802202474316 22.30107143869435 2055 3 "103069-45600" "Kodiang" "08:00:00" 2056 4 "103069-44400" "Anak Bukit" "08:12:00"
136 "103069-2911" "103069-100_47300" 101.73722317629623 16.956203862716038 2058 6 "103069-43100" "Kobah" "08:29:00" 2059 7 "103069-42400" "Gurun" "08:38:00"
151 "103069-2947" "103069-100_47300" 102.92802202474316 22.30107143869435 2250 3 "103069-45600" "Kodiang" "17:00:00" 2251 4 "103069-44400" "Anak Bukit" "17:12:00"
151 "103069-2947" "103069-100_47300" 101.73722317629623 16.956203862716038 2253 6 "103069-43100" "Kobah" "17:29:00" 2254 7 "103069-42400" "Gurun" "17:38:00"
139 "103069-2920" "103069-100_47300" 101.73722317629623 16.956203862716038 2096 5 "103069-42400" "Gurun" "11:22:00" 2097 6 "103069-43100" "Kobah" "11:31:00"
139 "103069-2920" "103069-100_47300" 102.92802202474316 22.30107143869435 2099 8 "103069-44400" "Anak Bukit" "11:48:00" 2100 9 "103069-45600" "Kodiang" "12:00:00"
145 "103069-2939" "103069-100_47300" 102.92802202474316 22.30107143869435 2172 3 "103069-45600" "Kodiang" "15:00:00" 2173 4 "103069-44400" "Anak Bukit" "15:12:00"
145 "103069-2939" "103069-100_47300" 101.73722317629623 16.956203862716038 2175 6 "103069-43100" "Kobah" "15:29:00" 2176 7 "103069-42400" "Gurun" "15:38:00"
164 "103069-2964" "103069-100_47300" 101.73722317629623 16.956203862716038 2421 5 "103069-42400" "Gurun" "22:27:00" 2422 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.
160 "103069-2956" "103069-100_47300" 101.73722317629623 16.956203862716038 2369 5 "103069-42400" "Gurun" "20:22:00" 2370 6 "103069-43100" "Kobah" "20:31:00"
135 "103069-2908" "103069-100_47300" 101.73722317629623 16.956203862716038 2044 5 "103069-42400" "Gurun" "08:22:00" 2045 6 "103069-43100" "Kobah" "08:31:00"
148 "103069-2943" "103069-100_47300" 102.92802202474316 22.30107143869435 2211 3 "103069-45600" "Kodiang" "16:00:00" 2212 4 "103069-44400" "Anak Bukit" "16:12:00"
162 "103069-2959" "103069-100_47300" 102.92802202474316 22.30107143869435 2393 3 "103069-45600" "Kodiang" "20:30:00" 2394 4 "103069-44400" "Anak Bukit" "20:42:00"
132 "103069-2905" "103069-100_47300" 102.92802202474316 22.30107143869435 2003 3 "103069-45600" "Kodiang" "06:25:00" 2004 4 "103069-44400" "Anak Bukit" "06:37:00"
138 "103069-2915" "103069-100_47300" 102.92802202474316 22.30107143869435 2081 3 "103069-45600" "Kodiang" "09:00:00" 2082 4 "103069-44400" "Anak Bukit" "09:12:00"
128 "103069-2900" "103069-100_47300" 101.73722317629623 16.956203862716038 1953 5 "103069-42400" "Gurun" "06:07:00" 1954 6 "103069-43100" "Kobah" "06:16:00"
134 "103069-2907" "103069-100_47300" 102.92802202474316 22.30107143869435 2029 3 "103069-45600" "Kodiang" "06:45:00" 2030 4 "103069-44400" "Anak Bukit" "06:57:00"
137 "103069-2912" "103069-100_47300" 101.73722317629623 16.956203862716038 2070 5 "103069-42400" "Gurun" "09:22:00" 2071 6 "103069-43100" "Kobah" "09:31:00"
144 "103069-2938" "103069-100_47300" 101.73722317629623 16.956203862716038 2161 5 "103069-42400" "Gurun" "15:52:00" 2162 6 "103069-43100" "Kobah" "16:01:00"
153 "103069-2949" "103069-100_47300" 102.92802202474316 22.30107143869435 2276 3 "103069-45600" "Kodiang" "17:30:00" 2277 4 "103069-44400" "Anak Bukit" "17:42:00"
150 "103069-2946" "103069-100_47300" 101.73722317629623 16.956203862716038 2239 5 "103069-42400" "Gurun" "17:52:00" 2240 6 "103069-43100" "Kobah" "18:01:00"
158 "103069-2954" "103069-100_47300" 101.73722317629623 16.956203862716038 2343 5 "103069-42400" "Gurun" "19:52:00" 2344 6 "103069-43100" "Kobah" "20:01:00"
149 "103069-2944" "103069-100_47300" 101.73722317629623 16.956203862716038 2226 5 "103069-42400" "Gurun" "17:22:00" 2227 6 "103069-43100" "Kobah" "17:31:00"
156 "103069-2952" "103069-100_47300" 101.73722317629623 16.956203862716038 2317 5 "103069-42400" "Gurun" "19:27:00" 2318 6 "103069-43100" "Kobah" "19:36:00"
146 "103069-2940" "103069-100_47300" 101.73722317629623 16.956203862716038 2187 5 "103069-42400" "Gurun" "16:22:00" 2188 6 "103069-43100" "Kobah" "16:31:00"
131 "103069-2904" "103069-100_47300" 101.73722317629623 16.956203862716038 1992 5 "103069-42400" "Gurun" "07:12:00" 1993 6 "103069-43100" "Kobah" "07:21:00"
147 "103069-2941" "103069-100_47300" 102.92802202474316 22.30107143869435 2198 3 "103069-45600" "Kodiang" "15:30:00" 2199 4 "103069-44400" "Anak Bukit" "15:42:00"
129 "103069-2901" "103069-100_47300" 102.92802202474316 22.30107143869435 1964 3 "103069-45600" "Kodiang" "05:45:00" 1965 4 "103069-44400" "Anak Bukit" "05:57:00"
130 "103069-2903" "103069-100_47300" 102.92802202474316 22.30107143869435 1977 3 "103069-45600" "Kodiang" "06:05:00" 1978 4 "103069-44400" "Anak Bukit" "06:17:00"
159 "103069-2955" "103069-100_47300" 102.92802202474316 22.30107143869435 2354 3 "103069-45600" "Kodiang" "19:00:00" 2355 4 "103069-44400" "Anak Bukit" "19:12:00"
136 "103069-2911" "103069-100_47300" 102.92802202474316 22.30107143869435 2055 3 "103069-45600" "Kodiang" "08:00:00" 2056 4 "103069-44400" "Anak Bukit" "08:12:00"
151 "103069-2947" "103069-100_47300" 102.92802202474316 22.30107143869435 2250 3 "103069-45600" "Kodiang" "17:00:00" 2251 4 "103069-44400" "Anak Bukit" "17:12:00"
139 "103069-2920" "103069-100_47300" 101.73722317629623 16.956203862716038 2096 5 "103069-42400" "Gurun" "11:22:00" 2097 6 "103069-43100" "Kobah" "11:31:00"
145 "103069-2939" "103069-100_47300" 102.92802202474316 22.30107143869435 2172 3 "103069-45600" "Kodiang" "15:00:00" 2173 4 "103069-44400" "Anak Bukit" "15:12:00"
164 "103069-2964" "103069-100_47300" 101.73722317629623 16.956203862716038 2421 5 "103069-42400" "Gurun" "22:27:00" 2422 6 "103069-43100" "Kobah" "22:36:00"
152 "103069-2948" "103069-100_47300" 101.73722317629623 16.956203862716038 2265 5 "103069-42400" "Gurun" "18:22:00" 2266 6 "103069-43100" "Kobah" "18:31:00"
140 "103069-2923" "103069-100_47300" 102.92802202474316 22.30107143869435 2107 3 "103069-45600" "Kodiang" "11:00:00" 2108 4 "103069-44400" "Anak Bukit" "11:12:00"
133 "103069-2906" "103069-100_47300" 101.73722317629623 16.956203862716038 2018 5 "103069-42400" "Gurun" "07:42:00" 2019 6 "103069-43100" "Kobah" "07:51:00"
143 "103069-2936" "103069-100_47300" 101.73722317629623 16.956203862716038 2148 5 "103069-42400" "Gurun" "15:22:00" 2149 6 "103069-43100" "Kobah" "15:31:00"
163 "103069-2960" "103069-100_47300" 101.73722317629623 16.956203862716038 2408 5 "103069-42400" "Gurun" "21:32:00" 2409 6 "103069-43100" "Kobah" "21:41:00"
165 "103069-2967" "103069-100_47300" 102.92802202474316 22.30107143869435 2432 3 "103069-45600" "Kodiang" "22:00:00" 2433 4 "103069-44400" "Anak Bukit" "22:12:00"
141 "103069-2928" "103069-100_47300" 101.73722317629623 16.956203862716038 2122 5 "103069-42400" "Gurun" "13:22:00" 2123 6 "103069-43100" "Kobah" "13:31:00"
155 "103069-2951" "103069-100_47300" 102.92802202474316 22.30107143869435 2302 3 "103069-45600" "Kodiang" "18:00:00" 2303 4 "103069-44400" "Anak Bukit" "18:12:00"
142 "103069-2931" "103069-100_47300" 102.92802202474316 22.30107143869435 2133 3 "103069-45600" "Kodiang" "13:00:00" 2134 4 "103069-44400" "Anak Bukit" "13:12:00"
161 "103069-2957" "103069-100_47300" 102.92802202474316 22.30107143869435 2380 3 "103069-45600" "Kodiang" "19:30:00" 2381 4 "103069-44400" "Anak Bukit" "19:42:00"
154 "103069-2950" "103069-100_47300" 101.73722317629623 16.956203862716038 2291 5 "103069-42400" "Gurun" "18:52:00" 2292 6 "103069-43100" "Kobah" "19:01:00"
157 "103069-2953" "103069-100_47300" 102.92802202474316 22.30107143869435 2328 3 "103069-45600" "Kodiang" "18:30:00" 2329 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 "20261030" "20261113" "20261129"
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"