myrapidkl — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-06-20T00:27:00Z,
for the dataset file:///shared/myrapidkl_38aab567.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. calendar_dates.txt
  4. fare_attributes.txt
  5. fare_rules.txt
  6. frequencies.txt
  7. routes.txt
  8. shapes.txt
  9. stop_times.txt
  10. stops.txt
  11. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 189
  • Shapes: 137
  • Stops: 4342
  • Trips: 1141

Specification Compliance report

6014 notices reported (6 errors, 4864 warnings, 1144 infos)

Notice Code Severity Total
foreign_key_violation ERROR 6

foreign_key_violation

Wrong foreign key.

A foreign key references the primary key of another file. A foreign key violation means that the foreign key referenced from a given row (the child file) cannot be found in the corresponding file (the parent file). The Foreign keys are defined in the specification under "Type" for each file.

You can see more about this notice here.

childFilename (?) The name of the file from which reference is made. childFieldName (?) The name of the field that makes reference. parentFilename (?) The name of the file that is referred to. parentFieldName (?) The name of the field that is referred to. fieldValue (?) The faulty record's value. csvRowNumber (?) The row of the faulty record.
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "4522" 29549
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "4522" 29550
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "4522" 29551
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "4522" 29552
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "4522" 29553
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "4522" 29554
expired_calendar WARNING 5

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 "MONFRI"
3 "MONTHR"
4 "FRI"
5 "SAT"
6 "SUN"
leading_or_trailing_whitespaces WARNING 11

leading_or_trailing_whitespaces

The value in CSV file has leading or trailing whitespaces.

This notice is emitted for values protected with double quotes since whitespaces for non-protected values are trimmed automatically by CSV parser.

The validator strips whitespaces from protected values. We do not see any use case when such a whitespace may be needed. On the other hand, some real-world feeds use trailing whitespaces for some values and omit them for the others. This is causing the largest problem when a primary key and a foreign key differ just by a whitespace: it is clear that they are intended to be the same, that is why we always strip whitespaces.

You can see more about this notice here.

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) Faulty record's field name. fieldValue (?) Faulty value.
"routes.txt" 52 "route_long_name" " Sri Muda"
"routes.txt" 66 "route_desc" "From Stesen LRT Asia Jaya to Sek 14, Sek 17 "
"routes.txt" 129 "route_long_name" " Bandar Utama"
"routes.txt" 173 "route_long_name" " Bandar Utama"
"routes.txt" 181 "route_desc" "From Stesen LRT Asia Jaya to Sek 14, Sek 17 "
"trips.txt" 629 "trip_headsign" " Bandar Utama"
"trips.txt" 630 "trip_headsign" " Bandar Utama"
"trips.txt" 631 "trip_headsign" " Bandar Utama"
"trips.txt" 680 "trip_headsign" "Sek 14, Sek 17 "
"trips.txt" 681 "trip_headsign" "Sek 14, Sek 17 "
"trips.txt" 682 "trip_headsign" "Sek 14, Sek 17 "
missing_recommended_field WARNING 1262

missing_recommended_field

A recommended field is missing.

The given field has no value in some input row, even though values are recommended.

You can see more about this notice here.

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

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) The name of the missing field.
"fare_attributes.txt" 2 "agency_id"
"fare_attributes.txt" 3 "agency_id"
"fare_attributes.txt" 4 "agency_id"
"fare_attributes.txt" 5 "agency_id"
"fare_attributes.txt" 6 "agency_id"
"fare_attributes.txt" 7 "agency_id"
"fare_attributes.txt" 8 "agency_id"
"fare_attributes.txt" 9 "agency_id"
"fare_attributes.txt" 10 "agency_id"
"fare_attributes.txt" 11 "agency_id"
"fare_attributes.txt" 12 "agency_id"
"fare_attributes.txt" 13 "agency_id"
"fare_attributes.txt" 14 "agency_id"
"fare_attributes.txt" 15 "agency_id"
"fare_attributes.txt" 16 "agency_id"
"fare_attributes.txt" 17 "agency_id"
"fare_attributes.txt" 18 "agency_id"
"fare_attributes.txt" 19 "agency_id"
"fare_attributes.txt" 20 "agency_id"
"fare_attributes.txt" 21 "agency_id"
"fare_attributes.txt" 22 "agency_id"
"fare_attributes.txt" 23 "agency_id"
"fare_attributes.txt" 24 "agency_id"
"fare_attributes.txt" 25 "agency_id"
"fare_attributes.txt" 26 "agency_id"
"fare_attributes.txt" 27 "agency_id"
"fare_attributes.txt" 28 "agency_id"
"fare_attributes.txt" 29 "agency_id"
"fare_attributes.txt" 30 "agency_id"
"fare_attributes.txt" 31 "agency_id"
"fare_attributes.txt" 32 "agency_id"
"fare_attributes.txt" 33 "agency_id"
"fare_attributes.txt" 34 "agency_id"
"fare_attributes.txt" 35 "agency_id"
"fare_attributes.txt" 36 "agency_id"
"fare_attributes.txt" 37 "agency_id"
"fare_attributes.txt" 38 "agency_id"
"fare_attributes.txt" 39 "agency_id"
"fare_attributes.txt" 40 "agency_id"
"fare_attributes.txt" 41 "agency_id"
"fare_attributes.txt" 42 "agency_id"
"fare_attributes.txt" 43 "agency_id"
"fare_attributes.txt" 44 "agency_id"
"fare_attributes.txt" 45 "agency_id"
"fare_attributes.txt" 46 "agency_id"
"fare_attributes.txt" 47 "agency_id"
"fare_attributes.txt" 48 "agency_id"
"fare_attributes.txt" 49 "agency_id"
"fare_attributes.txt" 50 "agency_id"
"fare_attributes.txt" 51 "agency_id"
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 12

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.

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" "BANDAR KINRARA" 43
"stops.txt" "stop_name" "TESCO, MRR2" 949
"stops.txt" "stop_name" "KJMC, LDP" 2376
"stops.txt" "stop_name" "SDS KEB PKAYAR" 3105
"stops.txt" "stop_name" "KLCC LRT" 4119
"stops.txt" "stop_name" "PWTC LRT" 4153
"trips.txt" "trip_headsign" "SS6, SS5, SS3" 662
"trips.txt" "trip_headsign" "SS6, SS5, SS3" 663
"trips.txt" "trip_headsign" "SS6, SS5, SS3" 664
"trips.txt" "trip_headsign" "HUKM via LRT BTS" 776
"trips.txt" "trip_headsign" "HUKM via LRT BTS" 777
"trips.txt" "trip_headsign" "HUKM via LRT BTS" 778
single_shape_point WARNING 8

single_shape_point

The shape within shapes.txt contains a single shape point.

A shape should contain more than one shape point to visualize the route

You can see more about this notice here.

shapeId (?) The faulty record's id. csvRowNumber (?) The row number of the faulty record.
"117" 958
"118" 959
"139" 1245
"140" 1246
"158" 1247
"159" 1248
"28363" 4411
"28364" 4412
stop_too_far_from_shape WARNING 3564

stop_too_far_from_shape

Stop too far from trip shape.

Per GTFS Best Practices, route alignments (in shapes.txt) should be within 100 meters of stop locations which a trip serves. This potentially indicates a problem with the location of the stop or the path of the shape.

You can see more about this notice here.

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

tripCsvRowNumber (?) The row number of the faulty record from `trips.txt`. shapeId (?) The id of the shape that is referred to. tripId (?) The id of the trip that is referred to. stopTimeCsvRowNumber (?) The row number of the faulty record from `stop_times.txt`. stopId (?) The id of the stop that is referred to. stopName (?) The name of the stop that is referred to. match (?) Latitude and longitude pair of the location. geoDistanceToShape (?) Distance from stop to shape.
548 "192" "MONFRI192" 16340 "1944" "Terminal PJ Old Town, Jalan Othman" [3.098619,101.67044000000001] 2888.5180788143875
548 "192" "MONFRI192" 16343 "1945" "Mahkamah Syariah, Jalan Othman" [3.098619,101.67044000000001] 2544.0630464547453
548 "192" "MONFRI192" 16346 "2324" "Simpang Jalan 5/55, Jalan 5/46" [3.098619,101.67044000000001] 1965.5324889078854
548 "192" "MONFRI192" 16349 "2325" "Simpang Jalan 5/61, Jalan 5/46" [3.098619,101.67044000000001] 1824.3380248511842
548 "192" "MONFRI192" 16352 "2326" "Tadika Minda, Jalan 5/46" [3.098619,101.67044000000001] 1671.0299476452954
548 "192" "MONFRI192" 16355 "2327" "Petronas Gasing Indah (opp.), Jalan 5/46" [3.098619,101.67044000000001] 1500.8670754057705
548 "192" "MONFRI192" 16358 "2328" "Dewan UMNO, Kampung Pasir, Jalan 5/46" [3.098619,101.67044000000001] 1415.952989457901
548 "192" "MONFRI192" 16361 "2329" "Rumah Teres Gasing Indah, Jalan 1/32" [3.098619,101.67044000000001] 1279.3723816024692
548 "192" "MONFRI192" 16364 "2330" "Pantai Dalam 22, Jalan Pantai Dalam" [3.098619,101.67044000000001] 942.7372788520388
548 "192" "MONFRI192" 16367 "2331" "Klinik Kesihatan, Jalan Pantai Dalam" [3.098619,101.67044000000001] 524.0588067607147
548 "192" "MONFRI192" 16370 "2332" "Selepas Pasar, Jalan Pantai Dalam" [3.098619,101.67044000000001] 359.70976166180566
548 "192" "MONFRI192" 16379 "1484" "Angkasapuri, Lebuhraya NPE" [3.10754,101.673233] 556.7652084711937
548 "192" "MONFRI192" 16382 "2317" "Kuarters TNB, Lebuhraya NPE" [3.10754,101.673233] 1003.1120713433104
548 "192" "MONFRI192" 16385 "1846" "Klinik TNB, Jalan Bangsar" [3.10754,101.673233] 1205.6050178248693
548 "192" "MONFRI192" 16388 "1848" "Stor TNB, Jalan Bangsar" [3.10754,101.673233] 1446.790013104177
548 "192" "MONFRI192" 16391 "1485" "NSTP, Jalan Bangsar" [3.10754,101.673233] 1790.148446688549
548 "192" "MONFRI192" 16394 "1486" "Stesen LRT Bangsar, Jalan Bangsar" [3.10754,101.673233] 2319.8814826827165
548 "192" "MONFRI192" 16397 "51" "Sri Kota (opp.), Jalan Travers" [3.10754,101.673233] 2815.1950734662855
548 "192" "MONFRI192" 16400 "1487" "KL Sentral, Jalan Tun Sambanthan" [3.10754,101.673233] 3289.5848630609485
548 "192" "MONFRI192" 16403 "2" "Petronas (opp.), Jalan Tun Sambanthan" [3.10754,101.673233] 3633.5599600377723
548 "192" "MONFRI192" 16406 "4" "Central Market, Jalan Tun Tan Cheng Lock" [3.10754,101.673233] 4768.882184237778
548 "192" "MONFRI192" 16409 "4364" "Jalan Tun Tan Cheng Lock (Restoran)" [3.10754,101.673233] 4963.3959249031695
548 "192" "MONFRI192" 16412 "1488" "Kota Raya, Jalan Petaling" [3.10754,101.673233] 4993.941705600172
548 "192" "MONFRI192" 16415 "4365" "Jalan Tun H. S. Lee (Tokong Cina)" [3.10754,101.673233] 4949.548786361556
548 "192" "MONFRI192" 16418 "4366" "Jalan Tun H. S. Lee (Kuil Hindu)" [3.10754,101.673233] 4736.73828962975
548 "192" "MONFRI192" 16421 "1792" "HAB Pasar Seni, Platform C" [3.10754,101.673233] 4594.076438294399
557 "195" "MONFRI195" 16634 "366" "HSBC, Medan Pasar" [3.1492509999999996,101.696569] 195.98791140994314
557 "195" "MONFRI195" 16643 "531" "DBKL, Jalan Raja Laut" [3.1538247956463445,101.69377374837006] 100.77740400303779
557 "195" "MONFRI195" 16661 "416" "Tan Chong Motor, Jalan Ipoh" [3.168767003955909,101.69492345801146] 113.6463518937451
557 "195" "MONFRI195" 16670 "474" "Hotel Mesra Inn, Jalan Ipoh" [3.174789155190265,101.69102307669918] 114.90674059287714
557 "195" "MONFRI195" 16673 "475" "Kuil Hindu, Jalan Ipoh" [3.17727360356219,101.68941395197353] 206.11980139162472
557 "195" "MONFRI195" 16676 "476" "Mobil, Jalan Ipoh" [3.179742524667812,101.68781487465158] 294.56239948811503
557 "195" "MONFRI195" 16679 "477" "HSBC / Perodua, Jalan Ipoh" [3.182204399269474,101.68622035201061] 433.9816783971697
557 "195" "MONFRI195" 16682 "478" "Kompleks Batu, Jalan Ipoh" [3.1857632002964626,101.68391534878364] 384.79578518784047
557 "195" "MONFRI195" 16685 "479" "SMK ( P ) Jalan Ipoh, Jalan Ipoh" [3.188042060849665,101.68243934130207] 112.42875998103479
557 "195" "MONFRI195" 16691 "481" "Taman Bamboo, Jalan Ipoh" [3.1943906612405857,101.67832734036004] 162.44771653103334
557 "195" "MONFRI195" 16694 "482" "Kompleks Mikasa, Jalan Ipoh" [3.1972498622536834,101.67647541017226] 251.68336109178117
557 "195" "MONFRI195" 16697 "483" "Wisma Haji Pilus, Jalan Ipoh" [3.2006205288113483,101.6742921831212] 273.66053841268905
557 "195" "MONFRI195" 16703 "2267" "Taman Wahyu, Jalan Ipoh" [3.2118436779229755,101.66702266991096] 617.2176279432942
557 "195" "MONFRI195" 16706 "2268" "Tesco Extra Selayang, Jalan Ipoh" [3.2171781851012575,101.66356730903672] 1075.7771311656409
557 "195" "MONFRI195" 16709 "1822" "Warta Lama (opp.), Jalan Ipoh" [3.2263877961482823,101.6576017947257] 1819.1310654172862
557 "195" "MONFRI195" 16712 "2359" "Kedai Tomyam Yanti Pasar Borong" [3.2308758812779974,101.65469459571392] 1093.8437346120224
557 "195" "MONFRI195" 16715 "2360" "Taman Sri Murni Fasa 1, Jalan 1/2B" [3.230756730825413,101.65477177693262] 863.1107676934067
557 "195" "MONFRI195" 16718 "2361" "Masjid Al Zakiran, Jalan 13/2A" [3.2332525252302893,101.65315508983545] 915.1594649057076
557 "195" "MONFRI195" 16721 "2362" "Restoran Maju, Jalan 13/2A" [3.2338924685408266,101.6527405557064] 1108.2581379589872
557 "195" "MONFRI195" 16724 "2363" "Taman Wilayah (1), Jalan 9/2B" [3.236201559905359,101.65124479736598] 954.4632916543658
557 "195" "MONFRI195" 16727 "2364" "Taman Sri Melati (opp.), Jalan Melati 1" [3.2367063109056584,101.65091783410043] 933.8332262345698
557 "195" "MONFRI195" 16730 "2365" "Maybank (1), Taman Selayang Jaya 14" [3.236821558143425,101.65084318017986] 198.2944301930425
557 "195" "MONFRI195" 16733 "2366" "Rumah No. 51, Jalan Selayang Jaya 24" [3.2378400410238135,101.65018343471071] 277.04243909760766
557 "195" "MONFRI195" 16736 "2367" "Taman Selayang Jaya (1), Jalan SJ 27" [3.2383573195124846,101.64984835518074] 371.6960574495677
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.
"20260620" "20100101" "20200101"
trip_headsign_matches_intermediate_stop INFO 3

trip_headsign_matches_intermediate_stop

Trip headsign matches the name of an intermediate stop, not the last stop.

The trip_headsign matches the stop_name of a stop that is not the last stop of the trip. This may confuse passengers boarding after that stop, since the headsign suggests the vehicle is heading to a stop it has already passed.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record in `trips.txt`. tripId (?) The id of the trip with the problematic headsign. tripHeadsign (?) The headsign value that matches an intermediate stop name. stopId1 (?) The id of the intermediate stop whose name matches the headsign. stopSequence (?) The stop_sequence value of the intermediate stop that matches the headsign. stopId2 (?) The id of the actual last stop of the trip.
788 "MONFRI274" "Stesen LRT Salak Selatan" "3148" 1 "3158"
789 "SAT274" "Stesen LRT Salak Selatan" "3148" 1 "3158"
790 "SUN274" "Stesen LRT Salak Selatan" "3148" 1 "3158"
unsorted_stop_times INFO 1141

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 1141 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.
"SAT179" 14922 15009
"SAT178" 14901 14919
"MONFRI301" 24248 24362
"SAT30" 2655 2766
"MONFRI300" 24158 24245
"SAT31" 2769 2889
"MONFRI303" 24452 24587
"SAT32" 2892 3015
"SAT174" 14832 14865
"MONFRI302" 24365 24449
"SAT33" 3018 3138
"SAT177" 14868 14898
"MONFRI305" 24788 24926
"SAT34" 3141 3270
"MONFRI304" 24590 24785
"SAT35" 3273 3444
"SAT171" 14592 14679
"MONFRI307" 25037 25130
"SAT36" 3447 3621
"SAT170" 14517 14589
"MONFRI306" 24929 25034
"SAT37" 3624 3762
"SAT173" 14760 14829
"MONFRI309" 25190 25241
"SAT38" 3765 3909
"SAT172" 14682 14757
"MONFRI308" 25133 25187
"SAT39" 3912 4047
"MONFRI310" 25244 25265
"SAT189" 16062 16212
"MONFRI312" 25283 25352
"MONFRI311" 25268 25280
"SAT20" 1272 1443
"SAT186" 15564 15741
"MONFRI314" 25424 25484
"SAT21" 1446 1602
"SAT185" 15420 15561
"MONFRI313" 25355 25421
"SAT22" 1605 1776
"SAT188" 15918 16059
"MONFRI316" 25538 25679
"SAT23" 1779 1872
"SAT187" 15744 15915
"MONFRI315" 25487 25535
"SAT24" 1875 1968
"SAT182" 15165 15225
"MONFRI318" 25799 25925
"SAT25" 1971 2064
"SAT181" 15117 15162
"MONFRI317" 25682 25796