bas-my-ipoh — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-06-27T02:58:42Z,
for the dataset file:///shared/bas-my-ipoh_793d6013.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
N/A
Publisher URL:
N/A
Feed Email:
N/A
Feed Language:
N/A

Files included


  1. agency.txt
  2. calendar.txt
  3. routes.txt
  4. shapes.txt
  5. stop_times.txt
  6. stops.txt
  7. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 17
  • Shapes: 29
  • Stops: 2079
  • Trips: 369

Specification Compliance report

2883 notices reported (0 errors, 2514 warnings, 369 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 "Bas.my"
missing_recommended_file WARNING 1

missing_recommended_file

A recommended file is missing.

You can see more about this notice here.

filename (?) The name of the faulty file.
"feed_info.txt"
mixed_case_recommended_field WARNING 1912

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 1912 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" "THE COMBINE BUS MYBUS IPOH" 2
"routes.txt" "route_short_name" "BANDARAYA IPOH" 2
"routes.txt" "route_long_name" "BANDARAYA IPOH" 2
"routes.txt" "route_short_name" "STESEN BAS MEDAN KIDD - BERCHAM VIA TAMAN IPOH" 3
"routes.txt" "route_long_name" "STESEN BAS MEDAN KIDD - BERCHAM VIA TAMAN IPOH" 3
"routes.txt" "route_short_name" "STESEN BAS MEDAN KIDD - BERCHAM VIA KG SIMEE" 4
"routes.txt" "route_long_name" "STESEN BAS MEDAN KIDD - BERCHAM VIA KG SIMEE" 4
"routes.txt" "route_short_name" "STESEN BAS MEDAN KIDD-MANJOI-BUNTONG" 5
"routes.txt" "route_long_name" "STESEN BAS MEDAN KIDD-MANJOI-BUNTONG" 5
"routes.txt" "route_short_name" "STESEN BAS MEDAN KIDD-CHEMPAKA-AMPANG" 6
"routes.txt" "route_long_name" "STESEN BAS MEDAN KIDD-CHEMPAKA-AMPANG" 6
"routes.txt" "route_short_name" "TERMINAL MEDAN KIDD - TERMINAL AMANJAYA" 7
"routes.txt" "route_long_name" "TERMINAL MEDAN KIDD - TERMINAL AMANJAYA" 7
"routes.txt" "route_short_name" "TERMINAL MEDAN KIDD - TERMINAL AMANJAYA - CHEMOR" 8
"routes.txt" "route_long_name" "TERMINAL MEDAN KIDD - TERMINAL AMANJAYA - CHEMOR" 8
"routes.txt" "route_short_name" "TERMINAL MEDAN KIDD - KUALA KANGSAR VIA BUKIT GANTANG" 9
"routes.txt" "route_long_name" "TERMINAL MEDAN KIDD - KUALA KANGSAR VIA BUKIT GANTANG" 9
"routes.txt" "route_short_name" "TERMINAL MEDAN KIDD - KUALA KANGSAR VIA JALAN TUN RAZAK" 10
"routes.txt" "route_long_name" "TERMINAL MEDAN KIDD - KUALA KANGSAR VIA JALAN TUN RAZAK" 10
"routes.txt" "route_short_name" "STESEN BAS MEDAN KIDD - KANTHAN 3" 11
"routes.txt" "route_long_name" "STESEN BAS MEDAN KIDD - KANTHAN 3" 11
"routes.txt" "route_short_name" "MEDAN KIDD - TANJUNG RAMBUTAN VIA BERCHAM" 12
"routes.txt" "route_long_name" "MEDAN KIDD - TANJUNG RAMBUTAN VIA BERCHAM" 12
"routes.txt" "route_short_name" "MEDAN KIDD -TANJUNG RAMBUTAN -CHEMOR" 13
"routes.txt" "route_long_name" "MEDAN KIDD -TANJUNG RAMBUTAN -CHEMOR" 13
"routes.txt" "route_short_name" "MEDAN KIDD-TANJUNG RAMBUTAN" 14
"routes.txt" "route_long_name" "MEDAN KIDD-TANJUNG RAMBUTAN" 14
"routes.txt" "route_short_name" "TERMINAL MEDAN KIDD- GOPENG - KAMPAR" 15
"routes.txt" "route_long_name" "TERMINAL MEDAN KIDD- GOPENG - KAMPAR" 15
"routes.txt" "route_short_name" "MEDAN KIDD-PASIR PUTEH-PENGKALAN SENTOSA" 16
"routes.txt" "route_long_name" "MEDAN KIDD-PASIR PUTEH-PENGKALAN SENTOSA" 16
"routes.txt" "route_short_name" "MEDAN KIDD-BATU GAJAH-SRI ISKANDAR" 17
"routes.txt" "route_long_name" "MEDAN KIDD-BATU GAJAH-SRI ISKANDAR" 17
"routes.txt" "route_short_name" "MEDAN KIDD-LTSAS-TAMAN BOTANI" 18
"routes.txt" "route_long_name" "MEDAN KIDD-LTSAS-TAMAN BOTANI" 18
"stops.txt" "stop_name" "ACS IPOH" 2
"stops.txt" "stop_name" "ACS IPOH" 3
"stops.txt" "stop_name" "AEON FALIM" 4
"stops.txt" "stop_name" "AEON FALIM" 5
"stops.txt" "stop_name" "AEON IPOH JALAN SULTAN AZLAN SHAH" 6
"stops.txt" "stop_name" "AEON IPOH JALAN SULTAN AZLAN SHAH" 7
"stops.txt" "stop_name" "AEON IPOH JALAN SULTAN AZLAN SHAH" 8
"stops.txt" "stop_name" "AEON IPOH JALAN SULTAN AZLAN SHAH" 9
"stops.txt" "stop_name" "AEON KLEBANG" 10
"stops.txt" "stop_name" "AEON KLEBANG" 11
"stops.txt" "stop_name" "AEON KLEBANG" 12
"stops.txt" "stop_name" "AEON KLEBANG" 13
"stops.txt" "stop_name" "AEON KLEBANG" 14
"stops.txt" "stop_name" "AEON KLEBANG" 15
"stops.txt" "stop_name" "AEON STATION 18" 16
route_long_name_contains_short_name WARNING 17

route_long_name_contains_short_name

Long name should not contain short name for a single route.

In routes.txt, route_long_name should not contain the value for route_short_name, because when both are provided, they are often combined by transit applications. Note that only one of the two fields is required. If there is no short name used for a route, use route_long_name only.

Good examples:

route_short_name/route_long_name Dataset
"N"/"Judah" Muni San Fransisco
"6"/"ML King Jr Blvd" Trimet Portland Streetcar
"55"/"Boulevard Saint Laurent" STM Montreal
"1"/"Rangiora/Cashmere" Metro Christchurch

Bad examples:

route_short_name/route_long_name
"604"/"604"
"14"/"Route 14"
"2"/"Route 2: Bellows Falls In-Town"

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`. routeLongName (?) The faulty record's `route_long_name`.
"A100" 2 "BANDARAYA IPOH" "BANDARAYA IPOH"
"A101A" 3 "STESEN BAS MEDAN KIDD - BERCHAM VIA TAMAN IPOH" "STESEN BAS MEDAN KIDD - BERCHAM VIA TAMAN IPOH"
"A101B" 4 "STESEN BAS MEDAN KIDD - BERCHAM VIA KG SIMEE" "STESEN BAS MEDAN KIDD - BERCHAM VIA KG SIMEE"
"A102" 5 "STESEN BAS MEDAN KIDD-MANJOI-BUNTONG" "STESEN BAS MEDAN KIDD-MANJOI-BUNTONG"
"A103" 6 "STESEN BAS MEDAN KIDD-CHEMPAKA-AMPANG" "STESEN BAS MEDAN KIDD-CHEMPAKA-AMPANG"
"A30A" 7 "TERMINAL MEDAN KIDD - TERMINAL AMANJAYA" "TERMINAL MEDAN KIDD - TERMINAL AMANJAYA"
"A30B" 8 "TERMINAL MEDAN KIDD - TERMINAL AMANJAYA - CHEMOR" "TERMINAL MEDAN KIDD - TERMINAL AMANJAYA - CHEMOR"
"A31A" 9 "TERMINAL MEDAN KIDD - KUALA KANGSAR VIA BUKIT GANTANG" "TERMINAL MEDAN KIDD - KUALA KANGSAR VIA BUKIT GANTANG"
"A31B" 10 "TERMINAL MEDAN KIDD - KUALA KANGSAR VIA JALAN TUN RAZAK" "TERMINAL MEDAN KIDD - KUALA KANGSAR VIA JALAN TUN RAZAK"
"A31X" 11 "STESEN BAS MEDAN KIDD - KANTHAN 3" "STESEN BAS MEDAN KIDD - KANTHAN 3"
"A32" 12 "MEDAN KIDD - TANJUNG RAMBUTAN VIA BERCHAM" "MEDAN KIDD - TANJUNG RAMBUTAN VIA BERCHAM"
"A33A" 13 "MEDAN KIDD -TANJUNG RAMBUTAN -CHEMOR" "MEDAN KIDD -TANJUNG RAMBUTAN -CHEMOR"
"A33B" 14 "MEDAN KIDD-TANJUNG RAMBUTAN" "MEDAN KIDD-TANJUNG RAMBUTAN"
"A34" 15 "TERMINAL MEDAN KIDD- GOPENG - KAMPAR" "TERMINAL MEDAN KIDD- GOPENG - KAMPAR"
"A35" 16 "MEDAN KIDD-PASIR PUTEH-PENGKALAN SENTOSA" "MEDAN KIDD-PASIR PUTEH-PENGKALAN SENTOSA"
"A36" 17 "MEDAN KIDD-BATU GAJAH-SRI ISKANDAR" "MEDAN KIDD-BATU GAJAH-SRI ISKANDAR"
"A37" 18 "MEDAN KIDD-LTSAS-TAMAN BOTANI" "MEDAN KIDD-LTSAS-TAMAN BOTANI"
route_short_name_too_long WARNING 17

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`.
"A100" 2 "BANDARAYA IPOH"
"A101A" 3 "STESEN BAS MEDAN KIDD - BERCHAM VIA TAMAN IPOH"
"A101B" 4 "STESEN BAS MEDAN KIDD - BERCHAM VIA KG SIMEE"
"A102" 5 "STESEN BAS MEDAN KIDD-MANJOI-BUNTONG"
"A103" 6 "STESEN BAS MEDAN KIDD-CHEMPAKA-AMPANG"
"A30A" 7 "TERMINAL MEDAN KIDD - TERMINAL AMANJAYA"
"A30B" 8 "TERMINAL MEDAN KIDD - TERMINAL AMANJAYA - CHEMOR"
"A31A" 9 "TERMINAL MEDAN KIDD - KUALA KANGSAR VIA BUKIT GANTANG"
"A31B" 10 "TERMINAL MEDAN KIDD - KUALA KANGSAR VIA JALAN TUN RAZAK"
"A31X" 11 "STESEN BAS MEDAN KIDD - KANTHAN 3"
"A32" 12 "MEDAN KIDD - TANJUNG RAMBUTAN VIA BERCHAM"
"A33A" 13 "MEDAN KIDD -TANJUNG RAMBUTAN -CHEMOR"
"A33B" 14 "MEDAN KIDD-TANJUNG RAMBUTAN"
"A34" 15 "TERMINAL MEDAN KIDD- GOPENG - KAMPAR"
"A35" 16 "MEDAN KIDD-PASIR PUTEH-PENGKALAN SENTOSA"
"A36" 17 "MEDAN KIDD-BATU GAJAH-SRI ISKANDAR"
"A37" 18 "MEDAN KIDD-LTSAS-TAMAN BOTANI"
stop_without_stop_time WARNING 565

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.

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

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty stop. stopName (?) The name of the faulty stop.
8 "AEONIPOH_F101B" "AEON IPOH JALAN SULTAN AZLAN SHAH"
9 "AEONIPOH_F101BR" "AEON IPOH JALAN SULTAN AZLAN SHAH"
23 "AKC2_A101B" "AEON KINTA CITY 2"
29 "AMALL_F100R" "ANGSANA MALL"
31 "AMALL_F103R" "ANGSANA MALL"
32 "AMALL_F101B" "ANGSANA MALL"
35 "AMALL2_F101B" "ANGSANA MALL 2"
44 "BATU10_37B" "BATU 10"
45 "BATU10_37BR" "BATU 10"
46 "BATU10_37" "BATU 10"
47 "BATU10_37R" "BATU 10"
48 "BATU10_101" "BATU 10"
49 "BATU10_101R" "BATU 10"
61 "BATU20_69" "BATU 20"
62 "BATU20_69R" "BATU 20"
63 "BATU20_70" "BATU 20"
64 "BATU20_70R" "BATU 20"
66 "BATU6_68" "BATU 6"
67 "BATU6_68R" "BATU 6"
68 "BATU6_37B" "BATU 6"
69 "BATU6_37BR" "BATU 6"
70 "BATU6_37" "BATU 6"
71 "BATU6_37R" "BATU 6"
72 "BATU6_101" "BATU 6"
73 "BATU6_101R" "BATU 6"
79 "BATU6_F101AR" "BATU 6"
80 "BATU6_F101B" "BATU 6"
81 "BATU6_F101BR" "BATU 6"
89 "BBJDLPK1_F101AR" "BALAI BOMBA JALAN DATO LAU PAK KHUAN 1"
91 "BBJDLPK2_F101AR" "BALAI BOMBA JALAN DATO LAU PAK KHUAN 2"
95 "BBT_F101AR" "BANDAR BARU TAMBUN"
97 "BBT_F101BR" "BANDAR BARU TAMBUN"
103 "BGNNSRKNTA_T35R" "BANGUNAN SERI KINTA"
105 "BGNNSRKNTA_T32R" "BANGUNAN SERI KINTA"
107 "BGNNSRKNTA_T33AR" "BANGUNAN SERI KINTA"
109 "BGNNSRKNTA_F100R" "BANGUNAN SERI KINTA"
111 "BGNNSRKNTA_F101AR" "BANGUNAN SERI KINTA"
113 "BGNNSRKNTA_T33BR" "BANGUNAN SERI KINTA"
115 "BGNNSRKNTA_F101BR" "BANGUNAN SERI KINTA"
117 "BGNNSRKNTA_F103R" "BANGUNAN SERI KINTA"
119 "BGNNSRKNTA_T37R" "BANGUNAN SERI KINTA"
130 "BHPJTL_F101AR" "BHP JALAN TAMBUN LAMA"
131 "BHPJTL_F101B" "BHP JALAN TAMBUN LAMA"
132 "BHPJTL_F101BR" "BHP JALAN TAMBUN LAMA"
139 "BII_F100R" "BANK ISLAM IPOH"
146 "BILLION_F102R" "BILLION SILIBIN"
156 "BPAS_23" "BATANG PADANG AUTO SERVICES"
157 "BPAS_23R" "BATANG PADANG AUTO SERVICES"
158 "BPAS_29" "BATANG PADANG AUTO SERVICES"
159 "BPAS_29R" "BATANG PADANG AUTO SERVICES"
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.
"20260627" "20260626" "20260626"
unsorted_stop_times INFO 369

unsorted_stop_times

Stop times are not sorted by trip_id and stop_sequence.

'stop_times.txt' entries for a given trip are not sorted by stop_sequence, or are not contiguous in the file.

You can see more about this notice here.

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

tripId (?) The faulty record's trip_id. startCsvRowNumber (?) CSV row number of the first stop_times entry for this trip. endCsvRowNumber (?) CSV row number of the last stop_times entry for this trip.
"R2402007_T10" 3906 3993
"R2402023_T10" 15247 15273
"R2402023_T15" 15382 15408
"R2402023_T16" 15409 15435
"R2402005_T8" 2774 2860
"R2402023_T17" 15436 15462
"R2402005_T9" 2861 2947
"R2402023_T18" 15463 15489
"R2402005_T6" 2600 2686
"R2402015_T16" 8412 8471
"R2402023_T11" 15274 15300
"R2402005_T7" 2687 2773
"R2402015_T17" 8472 8531
"R2402023_T12" 15301 15327
"R2402005_T4" 2426 2512
"R2402015_T18" 8532 8591
"R2402023_T13" 15328 15354
"R2402005_T5" 2513 2599
"R2402015_T19" 8592 8651
"R2402023_T14" 15355 15381
"R2402015_T12" 8172 8231
"R2402017_T2" 11178 11228
"R2402015_T13" 8232 8291
"R2402017_T1" 10872 10922
"R2402015_T14" 8292 8351
"R2402017_T4" 11586 11636
"R2402015_T15" 8352 8411
"R2402017_T3" 11484 11534
"R2402023_T19" 15490 15516
"R2402015_T10" 8052 8111
"R2402015_T11" 8112 8171
"R2402011_T1" 6793 6842
"R2402011_T2" 6843 6892
"R2402011_T5" 6993 7042
"R2402011_T6" 7043 7092
"R2402027_T15" 18326 18375
"R2402011_T3" 6893 6942
"R2402011_T4" 6943 6992
"R2402027_T12" 18176 18225
"R2402027_T11" 18126 18175
"R2402011_T7" 7093 7142
"R2402023_T20" 15544 15570
"R2402027_T14" 18276 18325
"R2402023_T21" 15571 15597
"R2402027_T13" 18226 18275
"R2402027_T10" 18076 18125
"R2402023_T26" 15706 15732
"R2402023_T27" 15733 15759
"R2402023_T22" 15598 15624
"R2402023_T23" 15625 15651