{
  "agency": {
    "country": "MY",
    "id": "rapidkl-bus",
    "name": "Rapid KL (bus network)",
    "operating_note": "The Rapid KL city bus and BRT network across the Klang Valley. Its primary Kuala Lumpur location is not a service boundary; the network also serves Selangor. A distinct published feed from the Rapid Rail and MRT feeder networks, counted as one feed record.",
    "subdivision_code": "MY-14",
    "subdivision_name": "Wilayah Persekutuan Kuala Lumpur"
  },
  "categories": {
    "completeness": {
      "details": {
        "accessibility": {
          "measures": "presence_not_usability",
          "score": 0.0,
          "stops_marked_accessible_pct": 0.0,
          "stops_marked_not_accessible_pct": 0.0,
          "stops_stated_pct": 0.0,
          "trips_stated_pct": 0.0
        },
        "accessibility_measures": "presence_not_usability",
        "cemv": {
          "declared": false,
          "supported": false
        },
        "components": {
          "contact": 7.5,
          "fares": 0.0,
          "headsigns": 7.9,
          "stop_names": 0.2,
          "wheelchair_stops": 0.0,
          "wheelchair_trips": 0.0
        },
        "fare_free": false,
        "fares": {
          "applied": false,
          "has_leg_rules": false,
          "has_products": false,
          "has_transfer_rules": false,
          "model": "none",
          "product_count": 0
        },
        "flex": {
          "booking_reachable": false,
          "booking_rule_count": 0,
          "has_booking_rules": false,
          "has_flex": false
        },
        "has_fares": false,
        "headsign_pct": 52.8,
        "mixed_case_stop_name_pct": 1.2,
        "pathways": {
          "has_entrances": false,
          "has_levels": false,
          "has_pathways": false,
          "has_stations": false,
          "has_step_free": false,
          "pathway_count": 0
        },
        "stops": 4056,
        "translations": {
          "feed_lang": null,
          "has_translations": false,
          "languages": [],
          "translated_tables": [],
          "translation_count": 0
        },
        "trips": 2112,
        "wheelchair_accessible_pct": 0.0,
        "wheelchair_boarding_pct": 0.0,
        "wheelchair_marked_accessible_pct": 0.0,
        "wheelchair_marked_not_accessible_pct": 0.0
      },
      "findings": [
        {
          "code": "scorecard_wheelchair_boarding_unknown",
          "count": 4056,
          "effort": "A column in stops.txt; your scheduling software likely has it.",
          "fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops.",
          "owner": "Likely your team",
          "points": 25.0,
          "severity": "WARNING",
          "what": "4056 of 4056 stops don't say whether a wheelchair user can board there.",
          "why": "Riders who use wheelchairs can't plan a trip when accessibility is marked 'unknown'; apps show no information at all."
        },
        {
          "code": "scorecard_wheelchair_accessible_unknown",
          "count": 2112,
          "effort": "A default or per-trip field in your export.",
          "fix": "Set wheelchair_accessible on every trip. If every vehicle is accessible, this may be one default; otherwise use the value for each trip.",
          "owner": "Likely your export tool",
          "points": 15.0,
          "severity": "WARNING",
          "what": "2112 of 2112 trips don't say whether the vehicle is wheelchair accessible.",
          "why": "Even with accessible stops, riders need to know the bus itself can take them."
        },
        {
          "code": "scorecard_no_fare_data",
          "count": 1,
          "effort": "A small file for most flat-fare systems.",
          "fix": "Add fare_attributes.txt (or Fares v2 files) with your fare structure. If your service is fare-free, ask to have it marked fare-free instead.",
          "owner": "",
          "points": 15.0,
          "severity": "WARNING",
          "what": "The feed contains no fare information.",
          "why": "Riders see 'fare unknown' in trip planners and can't budget their trip; visitors are most affected."
        },
        {
          "code": "scorecard_stop_names_all_caps",
          "count": 4009,
          "effort": "Often a bulk fix in your scheduling software.",
          "fix": "Rename stops to mixed case where the language has letter case (for example, 'Central Station').",
          "owner": "Likely your export tool",
          "points": 14.8,
          "severity": "INFO",
          "what": "About 4009 stop names are written in ALL CAPS.",
          "why": "Mixed-case names are easier to read in apps and are read more naturally by screen readers."
        },
        {
          "code": "scorecard_missing_headsigns",
          "count": 996,
          "effort": "Usually a bulk edit in your scheduling software.",
          "fix": "Populate trip_headsign to match what the bus displays.",
          "owner": "Likely your export tool",
          "points": 7.1,
          "severity": "WARNING",
          "what": "996 of 2112 trips have no headsign.",
          "why": "Riders at the stop can't tell which direction a bus is going."
        },
        {
          "code": "scorecard_no_feed_contact",
          "count": 1,
          "effort": "One field.",
          "fix": "Add feed_contact_email to feed_info.txt.",
          "owner": "",
          "points": 7.5,
          "severity": "INFO",
          "what": "feed_info.txt has no technical contact (feed_contact_email or feed_contact_url).",
          "why": "Trip-planning apps and regional data coordinators have nobody to email when they spot a problem with your feed, so problems linger."
        }
      ],
      "name": "completeness",
      "score": 15.6,
      "status": "measured",
      "summary": "0% of stops state wheelchair accessibility (0% marked accessible, 0% marked not accessible). This measures what the feed publishes, not whether a stop is physically usable. Fare data is not published.",
      "weight": 0.25
    },
    "correctness": {
      "details": {
        "distinct_codes": 10,
        "instances_by_severity": {
          "ERROR": 0,
          "INFO": 83,
          "WARNING": 5429
        },
        "validator_version": "8.0.1"
      },
      "findings": [
        {
          "code": "mixed_case_recommended_field",
          "count": 5132,
          "effort": "Often a bulk fix in your scheduling software.",
          "fix": "Use mixed case for stop names and headsigns (e.g. 'Main St & 2nd Ave', not 'MAIN ST & 2ND AVE').",
          "owner": "Likely your export tool",
          "points": 8.0,
          "severity": "WARNING",
          "what": "Some rider-facing names are in ALL CAPS or all lowercase.",
          "why": "ALL-CAPS stop and headsign names are harder to read in apps and are read awkwardly by screen readers."
        },
        {
          "code": "fast_travel_between_consecutive_stops",
          "count": 159,
          "effort": "A few minutes per flagged trip.",
          "fix": "Check the flagged stop times for transposed minutes.",
          "owner": "",
          "points": 8.0,
          "severity": "WARNING",
          "what": "Some scheduled trips move faster between stops than a bus can.",
          "why": "Usually a typo'd stop time; riders get arrival times no bus can meet."
        },
        {
          "code": "fast_travel_between_far_stops",
          "count": 75,
          "effort": "Varies.",
          "fix": "Review the rule documentation for 'fast_travel_between_far_stops' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
          "owner": "",
          "points": 8.0,
          "severity": "WARNING",
          "what": "Fast travel between far stops (flagged by the MobilityData validator).",
          "why": "See the linked rule for what this affects."
        },
        {
          "code": "stop_too_far_from_shape",
          "count": 36,
          "effort": "A few minutes per flagged stop.",
          "fix": "Check the flagged stops' coordinates and the route shape in your scheduling software; re-snap whichever is misplaced.",
          "owner": "Likely your export tool",
          "points": 6.0,
          "severity": "WARNING",
          "what": "Some stops sit far from the route line they belong to.",
          "why": "Trip planners may draw the bus route through the wrong streets or point riders to the wrong corner."
        },
        {
          "code": "stops_match_shape_out_of_order",
          "count": 12,
          "effort": "A few minutes per flagged trip.",
          "fix": "Check the stop order and the shape direction in your scheduling software; the shape is often drawn backwards.",
          "owner": "Likely your export tool",
          "points": 6.0,
          "severity": "WARNING",
          "what": "On some trips the stops fall along the route line in a different order than the schedule lists.",
          "why": "Trip planners can draw the bus doubling back or skipping ahead, which confuses riders reading the map."
        },
        {
          "code": "unusable_trip",
          "count": 6,
          "effort": "Worth a vendor question if it appears often.",
          "fix": "Check the flagged trips in your scheduling software; remove them or restore their missing stops.",
          "owner": "Likely your export tool",
          "points": 6.0,
          "severity": "WARNING",
          "what": "Some trips serve fewer than two stops.",
          "why": "A trip with one stop can't be ridden; planners ignore it and it may signal an export problem."
        },
        {
          "code": "unused_trip",
          "count": 6,
          "effort": "Varies.",
          "fix": "Review the rule documentation for 'unused_trip' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
          "owner": "",
          "points": 6.0,
          "severity": "WARNING",
          "what": "Unused trip (flagged by the MobilityData validator).",
          "why": "See the linked rule for what this affects."
        },
        {
          "code": "route_short_name_too_long",
          "count": 2,
          "effort": "Varies.",
          "fix": "Review the rule documentation for 'route_short_name_too_long' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
          "owner": "",
          "points": 4.0,
          "severity": "WARNING",
          "what": "Route short name too long (flagged by the MobilityData validator).",
          "why": "See the linked rule for what this affects."
        },
        {
          "code": "missing_recommended_file",
          "count": 1,
          "effort": "One small file, set once in export settings.",
          "fix": "Add feed_info.txt with publisher name, URL, language, and feed_start_date/feed_end_date.",
          "owner": "Likely your export tool",
          "points": 4.0,
          "severity": "WARNING",
          "what": "A file GTFS asks for (usually feed_info.txt) is missing.",
          "why": "feed_info.txt tells apps who publishes the feed and when it expires; without it nobody is warned before data goes stale."
        },
        {
          "code": "unsorted_stop_times",
          "count": 83,
          "effort": "Varies.",
          "fix": "Review the rule documentation for 'unsorted_stop_times' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.",
          "owner": "",
          "points": 1.0,
          "severity": "INFO",
          "what": "Unsorted stop times (flagged by the MobilityData validator).",
          "why": "See the linked rule for what this affects."
        }
      ],
      "name": "correctness",
      "score": 43.0,
      "status": "measured",
      "summary": "The MobilityData validator flagged 10 kinds of issue across 5512 instances (0 error, 5429 warning, 83 informational).",
      "weight": 0.35
    },
    "freshness": {
      "details": {
        "days_until_expiry": 255,
        "effective_expiry_date": "2027-03-31",
        "feed_end_date": null,
        "feed_start_date": null,
        "feed_version": null,
        "has_feed_info": false,
        "last_service_date": "2027-03-31",
        "seasonal_boundary": false,
        "service_horizon_review_years": 10,
        "service_horizon_status": "within_review_threshold",
        "service_type": "fixed"
      },
      "findings": [
        {
          "code": "scorecard_missing_feed_info_dates",
          "count": 1,
          "effort": "Two fields, set once in export settings.",
          "fix": "Add feed_info.txt with feed_start_date and feed_end_date to your export.",
          "owner": "Likely your export tool",
          "points": 15.0,
          "severity": "WARNING",
          "what": "feed_info.txt is missing its start/end dates (the file itself is absent)",
          "why": "Apps and this scorecard can't warn anyone before the feed goes stale without stated validity dates."
        }
      ],
      "name": "freshness",
      "score": 85.0,
      "status": "measured",
      "summary": "Service data covers the next 255 days.",
      "weight": 0.2
    },
    "realtime": {
      "name": "realtime",
      "status": "not_yet_measured",
      "summary": "Not scored yet. Nothing here counts against the grade.",
      "weight": 0.2
    }
  },
  "confidence": {
    "feed_age_days": 0,
    "fetch_source": "origin",
    "level": "medium",
    "measured_categories": 3,
    "notes": [
      "Realtime quality was not measured this run. It does not count against the grade.",
      "The feed was downloaded from the agency's own URL."
    ],
    "rt_windows": 0,
    "total_categories": 4
  },
  "conformance": {
    "awarded": false,
    "criteria": [
      {
        "detail": "Passes validation with no errors.",
        "key": "valid",
        "met": true
      },
      {
        "detail": "Service data covers the next 255 days.",
        "key": "current",
        "met": true
      },
      {
        "detail": "States wheelchair access on 0% of stops and 0% of trips; the mark needs 90% of each.",
        "key": "accessible",
        "met": false
      }
    ],
    "status": "not_yet",
    "summary": "This feed is close to the conformance mark. States wheelchair access on 0% of stops and 0% of trips; the mark needs 90% of each."
  },
  "feed": {
    "license_note": "CC BY 4.0; published as open data through data.gov.my, the Government of Malaysia's official open data platform. Credit Prasarana Malaysia Berhad (Rapid Bus).",
    "reachable": true,
    "sha256": "8eb1605fea4d0f7400e96e98a9f53ddf54aac015f73ec916b64509ea6775dc9e",
    "size_bytes": 1681141,
    "static_url": "https://api.data.gov.my/gtfs-static/prasarana?category=rapid-bus-kl"
  },
  "fetch": {
    "final_url": "https://openapi-malaysia-transport.s3.ap-southeast-1.amazonaws.com/prasarana/gtfs_rapid_bus_kl.zip",
    "max_attempts": 4,
    "reader_archive_profile": "raw-v1",
    "source": "origin",
    "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
  },
  "generated_at": "2026-07-19T00:00:00+00:00",
  "geo": {
    "bbox": [
      101.40902,
      2.74531,
      101.87623,
      3.33733
    ],
    "lat": 3.10761,
    "lon": 101.67461,
    "stop_count": 4056
  },
  "mode_profile": {
    "ferry_only": false,
    "graded": false,
    "has_ferry": false,
    "is_multimodal": false,
    "measured": true,
    "modes": [
      {
        "key": "bus",
        "label": "Bus",
        "route_count": 137,
        "trip_count": 2112,
        "trip_share_pct": 100.0
      }
    ],
    "primary_mode": "bus",
    "primary_mode_label": "Bus",
    "route_count": 137,
    "trip_count": 2112
  },
  "overall": {
    "grade": "F",
    "margin_to_lower_band": 44.9,
    "margin_to_next_band": 15.1,
    "score": 44.9
  },
  "recommendations": [
    {
      "category": "accessibility",
      "code": "scorecard_stop_name_needs_tts",
      "count": 135,
      "effort": "A short text field per affected stop; start with the busiest.",
      "fix": "Add tts_stop_name with the spoken form, e.g. 'Main Street and Second Avenue', for the affected stops.",
      "owner": "",
      "points": 0.0,
      "severity": "INFO",
      "what": "135 stop name(s) use abbreviations or symbols a screen reader may mispronounce, with no spoken form set (\"PETRONAS/SHELL (OPP)\", \"PJ341 SPG SS 1/32\", \"PJ111 SPG SS 1/1D\", and more).",
      "why": "Riders who use a screen reader hear the raw name, so 'Main St & 2nd Ave' can come out as 'Main saint' or drop the ampersand."
    }
  ],
  "routability": {
    "boardable_stops": 4056,
    "findings": [
      {
        "code": "scorecard_single_stop_trips",
        "count": 6,
        "effort": "Usually an export setting or a stop_times mapping in your software.",
        "fix": "Check your scheduling export: every trip should list each stop it calls at, in order, with times.",
        "owner": "Likely your export tool",
        "points": 0.0,
        "severity": "WARNING",
        "what": "6 of 2112 trips list fewer than two stops.",
        "why": "A trip with one stop has no leg a rider can ride; trip planners can't route anyone on it, so the service effectively does not exist."
      }
    ],
    "orphan_stops": 0,
    "single_stop_trips": 6,
    "trips_total": 2112
  },
  "route_map": {
    "drawn_route_count": 137,
    "has_shapes": true,
    "path": "data/artifacts/rapidkl-bus/geometry.geojson",
    "route_count": 137,
    "routes": [
      {
        "color": "21618C",
        "color_name": "teal",
        "has_shape": true,
        "id": "B1000",
        "label": "SUNWAY LINE",
        "long": "BRT USJ 7 - BRT Setia Jaya",
        "short": "SUNWAY LINE",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "P0010",
        "label": "PJ01",
        "long": "Terminal Taman Medan ~ Stesen LRT Taman Jaya",
        "short": "PJ01",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "P0020",
        "label": "PJ02",
        "long": "Stesen LRT Taman Jaya ~ PPUM via SS2 PJ",
        "short": "PJ02",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "P0030",
        "label": "PJ03",
        "long": "Stesen LRT Taman Bahagia ~ SS6 Kelana Park View",
        "short": "PJ03",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "P0040",
        "label": "PJ04",
        "long": "Stesen LRT Taman Bahagia ~ Kampung Tunku via SS3",
        "short": "PJ04",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "P0050",
        "label": "PJ05",
        "long": "Bandar Utama ~ Stesen LRT Taman Bahagia",
        "short": "PJ05",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "P0060",
        "label": "PJ06",
        "long": "Bandar Utama ~ Damansara Damai",
        "short": "PJ06",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "21618C",
        "color_name": "teal",
        "has_shape": true,
        "id": "P1010",
        "label": "P101",
        "long": "Kompleks F ~ Presint 5",
        "short": "P101",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "21618C",
        "color_name": "teal",
        "has_shape": true,
        "id": "P1020",
        "label": "P102",
        "long": "Presint 11 ~ Kompleks E",
        "short": "P102",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "21618C",
        "color_name": "teal",
        "has_shape": true,
        "id": "P1030",
        "label": "P103",
        "long": "Presint 14 via Alamanda ~ Kompleks E",
        "short": "P103",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "21618C",
        "color_name": "teal",
        "has_shape": true,
        "id": "P1040",
        "label": "P104",
        "long": "Presint 5 ~ Dataran Gemilang ~ Presint 4",
        "short": "P104",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "21618C",
        "color_name": "teal",
        "has_shape": true,
        "id": "P1050",
        "label": "P105",
        "long": "Dataran Gemilang ~ Kompleks ABCDE",
        "short": "P105",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "21618C",
        "color_name": "teal",
        "has_shape": true,
        "id": "P1060",
        "label": "P106",
        "long": "Presint 4 ~ Kompleks E",
        "short": "P106",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "21618C",
        "color_name": "teal",
        "has_shape": true,
        "id": "P1080",
        "label": "P108",
        "long": "Terminal Putrajaya Sentral ~ Kompleks ABCDE",
        "short": "P108",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S0030",
        "label": "KJ01",
        "long": "Hentian Kajang ~ Bandar Kajang via Seksyen 7 Bangi",
        "short": "KJ01",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S0040",
        "label": "AJ01",
        "long": "Ukay Perdana ~ Taman Melawati via Sg. Sering",
        "short": "AJ01",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S0060",
        "label": "BTG1",
        "long": "Hentian Banting ~ Mitsui Outlet , KLIA 2",
        "short": "BTG1",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S0070",
        "label": "MPS1",
        "long": "Selayang Mutiara ~ Stesen LRT Gombak",
        "short": "MPS1",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "21618C",
        "color_name": "teal",
        "has_shape": true,
        "id": "S0120",
        "label": "HLB2",
        "long": "LRT Taman Jaya ~ Hong Leong Bank PJCT",
        "short": "HLB2",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S1030",
        "label": "AJ2A",
        "long": "Sri Nilam ~ Taman Cahaya",
        "short": "AJ2A",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S1040",
        "label": "AJ2B",
        "long": "Sri Nilam ~ AEON Big Ampang",
        "short": "AJ2B",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S1050",
        "label": "AJ03",
        "long": "Stesen LRT Cempaka ~ Bukit Teratai",
        "short": "AJ03",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S1060",
        "label": "KJ02",
        "long": "Stesen KTM Bangi ~ Bandar Bukit Mahkota",
        "short": "KJ02",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S1070",
        "label": "KJ03",
        "long": "Stesen MRT BTHO ~ Taman Tun Perak",
        "short": "KJ03",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S1140",
        "label": "AJ04",
        "long": "Pandan Perdana ~ Hospital Ampang",
        "short": "AJ04",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S1170",
        "label": "KJ04",
        "long": "Hentian Kajang ~ Bandar Baru Bangi",
        "short": "KJ04",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S1190",
        "label": "MPS2A",
        "long": "Lotus Rawang ~ Rawang Perdana",
        "short": "MPS2A",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S1390",
        "label": "MPS3",
        "long": "Batu Arang ~ Stesen MRT Sungai Buloh",
        "short": "MPS3",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S1490",
        "label": "MPS4",
        "long": "Wangsa Permai ~ Bandar Baru Selayang",
        "short": "MPS4",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S2060",
        "label": "BTG2",
        "long": "Hentian Banting ~ Bandar Baru Banting",
        "short": "BTG2",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S4020",
        "label": "SA02",
        "long": "Hentian Bandar Seksyen 14 ~ Stesen KTM Batu 3",
        "short": "SA02",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S4050",
        "label": "SA05",
        "long": "Stesen Bas Seksyen 13 ~ Bukit Jelutong",
        "short": "SA05",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S4070",
        "label": "SA07",
        "long": "Stesen KTM Batu 3 ~ Seksyen 20 via HICOM",
        "short": "SA07",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "S4080",
        "label": "SA08",
        "long": "Stesen LRT Alam Megah ~ Kota Kemuning",
        "short": "SA08",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "21618C",
        "color_name": "teal",
        "has_shape": true,
        "id": "S5010",
        "label": "MENARA PRASARANA",
        "long": "LRT Lembah Subang ~ Menara Prasarana",
        "short": "MENARA PRASARANA",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "S6060",
        "label": "PAVILION BUKIT JALIL (PAVBJ)",
        "long": "Stesen LRT Awan Besar ~ Pavilion Bukit Jalil",
        "short": "PAVILION BUKIT JALIL (PAVBJ)",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T2000",
        "label": "T200",
        "long": "Stesen LRT Gombak ~ UIA Gombak",
        "short": "T200",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T2010",
        "label": "T201",
        "long": "Stesen LRT Gombak ~ Hab Wira Damai",
        "short": "T201",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T2020",
        "label": "T202",
        "long": "Stesen LRT Taman Melati ~ Taman Melewar",
        "short": "T202",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T2220",
        "label": "T222",
        "long": "Stesen LRT Sri Rampai ~ UKAY Perdana",
        "short": "T222",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T2230",
        "label": "T223",
        "long": "Stesen LRT Setiawangsa ~ AU3, Jentayu, Keramat",
        "short": "T223",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T2240",
        "label": "T224",
        "long": "Stesen LRT Dato Keramat ~ Desa Pandan",
        "short": "T224",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T2500",
        "label": "T250",
        "long": "Stesen LRT Wangsa Maju ~ Setapak Sentral",
        "short": "T250",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T2510",
        "label": "T251",
        "long": "Stesen LRT Sri Rampai ~ Seksyen 10 Wangsa Maju",
        "short": "T251",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T3008",
        "label": "T300",
        "long": "Bukit Indah ~ Ampang Point via Jalan Rasmi",
        "short": "T300",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T3018",
        "label": "T301",
        "long": "Taman Mulia Jaya ~ Ampang Point via Jalan Merdeka",
        "short": "T301",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T3028",
        "label": "T302",
        "long": "Hutan Lipur Ampang ~ Ampang Point",
        "short": "T302",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T3030",
        "label": "T303",
        "long": "Ampang Point ~ Stesen LRT Pandan Indah",
        "short": "T303",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T3048",
        "label": "T304",
        "long": "Bukit Indah ~ Ampang Point via Jalan Ampang",
        "short": "T304",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T3500",
        "label": "T350",
        "long": "Stesen LRT Cempaka ~ Taman Mawar",
        "short": "T350",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T3510",
        "label": "T351",
        "long": "Stesen LRT Cempaka ~ Taman Bukit Permai",
        "short": "T351",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T4068",
        "label": "T406",
        "long": "Cheras Batu 10 ~ Pangsun",
        "short": "T406",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T4069",
        "label": "T406B",
        "long": "Cheras Batu 10 ~ Sungai Lui",
        "short": "T406B",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T4508",
        "label": "T450",
        "long": "Beranang ~ MRT Stadium Kajang",
        "short": "T450",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T5718",
        "label": "T571",
        "long": "Stesen KTM Serdang ~ Taman Sri Pulai",
        "short": "T571",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T5800",
        "label": "T580",
        "long": "Stesen LRT Awan Besar ~ TPM via Stesen LRT Bukit Jalil",
        "short": "T580",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T5810",
        "label": "T581",
        "long": "Stesen LRT Alam Sutera ~ PPR Pinggiran Bukit Jalil",
        "short": "T581",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T6000",
        "label": "T600",
        "long": "Stesen LRT IOI Puchong ~ Taman Wawasan",
        "short": "T600",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T6010",
        "label": "T601",
        "long": "Puchong Utama ~ Puchong Prima",
        "short": "T601",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T6030",
        "label": "T603",
        "long": "Stesen LRT Puchong Prima ~ Taman Mas Sepang",
        "short": "T603",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T6040",
        "label": "T604",
        "long": "Stesen LRT Perindustrian Puchong ~ Taman Kinrara",
        "short": "T604",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T6050",
        "label": "T605",
        "long": "Stesen LRT Bandar Puteri ~ Taman Wawasan",
        "short": "T605",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T6400",
        "label": "T640",
        "long": "Stesen LRT Taman Jaya ~ Taman Sri Sentosa",
        "short": "T640",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7158",
        "label": "T715",
        "long": "UiTM Puncak Alam ~ Bandar Puncak Alam",
        "short": "T715",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7190",
        "label": "T719",
        "long": "Stesen LRT Klang Jaya ~ Taman Kota Pendamar",
        "short": "T719",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7210",
        "label": "T721",
        "long": "Stesen LRT Taman Selatan ~ Pandamaran",
        "short": "T721",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7220",
        "label": "T722",
        "long": "Stesen LRT Jambatan Kota ~ Kampung Sungai Kandis",
        "short": "T722",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7250",
        "label": "T725",
        "long": "Stesen LRT Jambatan Kota ~ Kampung Sungai Udang",
        "short": "T725",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7280",
        "label": "T728",
        "long": "Stesen LRT Pasar Klang ~ Setia City Mall",
        "short": "T728",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7290",
        "label": "T729",
        "long": "Stesen LRT Pasar Klang ~ Bandar Bukit Raja",
        "short": "T729",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7530",
        "label": "T753",
        "long": "Stesen LRT Dato Menteri ~ Seksyen 8 Shah Alam",
        "short": "T753",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7548",
        "label": "T754",
        "long": "Hentian Bandar Shah Alam ~ Terminal Seksyen 17",
        "short": "T754",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7568",
        "label": "T756",
        "long": "Kemuning Business Park ~ Hentian Bandar via Taman Muda",
        "short": "T756",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7620",
        "label": "T762",
        "long": "Stesen LRT Dato Menteri ~ Bukit Bandaraya",
        "short": "T762",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7640",
        "label": "T764",
        "long": "Stesen LRT UITM Shah Alam ~ Seksyen 24",
        "short": "T764",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7650",
        "label": "T765",
        "long": "Stesen LRT Seksyen 7 ~ UITM",
        "short": "T765",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7740",
        "label": "T774",
        "long": "Stesen LRT Glenmarie ~ MSU, Stadium Shah Alam",
        "short": "T774",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7760",
        "label": "T776",
        "long": "Stesen LRT USJ 7 ~ Subang Mewah",
        "short": "T776",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7790",
        "label": "T779",
        "long": "Stesen LRT Kerjaya~ Subang Hitech",
        "short": "T779",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7800",
        "label": "T780",
        "long": "Stesen LRT BU 11 ~ Stesen LRT Kelana Jaya",
        "short": "T780",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7810",
        "label": "T781",
        "long": "Stesen LRT Kelana Jaya ~ Stesen LRT Subang",
        "short": "T781",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7820",
        "label": "T782",
        "long": "Stesen LRT Lembah Subang ~ Ara Damansara",
        "short": "T782",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7860",
        "label": "T786",
        "long": "Stesen LRT Asia Jaya ~ Stesen MRT Phileo Damansara",
        "short": "T786",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7870",
        "label": "T787",
        "long": "Stesen LRT Asia Jaya ~ Seksyen 14 & 18",
        "short": "T787",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7880",
        "label": "T788",
        "long": "Stesen LRT Universiti ~ Mid Valley",
        "short": "T788",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7890",
        "label": "T789",
        "long": "Stesen LRT Universiti ~ Universiti Malaya via Pantai Hillpark",
        "short": "T789",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7900",
        "label": "T790",
        "long": "Stesen LRT Paramount ~ Mid Valley",
        "short": "T790",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T7910",
        "label": "T791",
        "long": "Stesen LRT Kerinchi ~ Pantai Hill Park",
        "short": "T791",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T8500",
        "label": "T850",
        "long": "Stesen LRT Bangsar ~ Stesen MRT Semantan",
        "short": "T850",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "008716",
        "color_name": "green",
        "has_shape": true,
        "id": "T8510",
        "label": "T851",
        "long": "KL Sentral ~ Parlimen",
        "short": "T851",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U1510",
        "label": "151",
        "long": "Bandar Baru Selayang ~ Hab Lebuh Pudu",
        "short": "151",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U1708",
        "label": "170",
        "long": "Hab Wira Damai ~ SOGO KL",
        "short": "170",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U1710",
        "label": "171",
        "long": "Hab Wira Damai ~ Lebuh Ampang via Sentul",
        "short": "171",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U1730",
        "label": "173",
        "long": "Taman Jasa Utama ~ Lebuh Ampang",
        "short": "173",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U1800",
        "label": "180",
        "long": "Taman Dato' Senu ~ Hab Pasar Seni",
        "short": "180",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U1900",
        "label": "190",
        "long": "Desa Sri Hartamas ~ Lin Ho Jln Lekiu",
        "short": "190",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U2000",
        "label": "200",
        "long": "UIA Gombak ~ SOGO KL",
        "short": "200",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U2018",
        "label": "201",
        "long": "Batu 12 Gombak \u2013 SOGO KL",
        "short": "201",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U2020",
        "label": "202",
        "long": "Hub Wira Damai ~ Lebuh Ampang via Gombak",
        "short": "202",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U2200",
        "label": "220",
        "long": "Taman Melawati ~ Lebuh Ampang",
        "short": "220",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U2220",
        "label": "222",
        "long": "Taman Melawati ~ Stesen LRT Wangsa Maju",
        "short": "222",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U2500",
        "label": "250",
        "long": "Stesen LRT Wangsa Maju ~ Lebuh Ampang",
        "short": "250",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U2510",
        "label": "251",
        "long": "AU3 Jentayu ~ Chow Kit",
        "short": "251",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U2538",
        "label": "253",
        "long": "Stesen LRT Wangsa Maju ~ Ampang Point",
        "short": "253",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U2548",
        "label": "254",
        "long": "Ayer Panas ~ Titiwangsa via Chowkit",
        "short": "254",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U3000",
        "label": "300",
        "long": "Terminal Maluri ~ Lebuh Ampang",
        "short": "300",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U3020",
        "label": "302",
        "long": "Titiwangsa ~ KLCC",
        "short": "302",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U3030",
        "label": "303",
        "long": "Taman Mulia Jaya ~ Lebuh Ampang",
        "short": "303",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U4000",
        "label": "400",
        "long": "Damai Perdana ~ Hab Lebuh Pudu via Bukit Bintang",
        "short": "400",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U4200",
        "label": "420",
        "long": "Hentian Taman Dagang ~ Menara Maybank via Bukit Bintang",
        "short": "420",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U4210",
        "label": "421",
        "long": "Hentian Taman Dagang ~ Menara Maybank via Bukit Bintang",
        "short": "421",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U4500",
        "label": "450",
        "long": "Hentian Kajang ~ Hab Lebuh Pudu",
        "short": "450",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U5410",
        "label": "541",
        "long": "Stesen MRT Taman Equine ~ Stesen LRT BK 5",
        "short": "541",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U5800",
        "label": "580",
        "long": "Desa Petaling ~ Pasar Seni via Stesen LRT Salak Selatan",
        "short": "580",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U5810",
        "label": "581",
        "long": "Desa Tasik ~ Stesen LRT Bandar Tasik Selatan",
        "short": "581",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U5900",
        "label": "590",
        "long": "Bandar Sungai Long ~ Hab Pasar Seni",
        "short": "590",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U6000",
        "label": "600",
        "long": "Puchong Utama ~ Hab Pasar Seni",
        "short": "600",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U6028",
        "label": "602",
        "long": "Puchong Prima ~ IOI Puchong",
        "short": "602",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U6400",
        "label": "640",
        "long": "Hab Bas Sri Manja ~ Hab Pasar Seni",
        "short": "640",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U6418",
        "label": "641",
        "long": "Stesen LRT Subang Jaya ~ Pearl Point",
        "short": "641",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U6500",
        "label": "650",
        "long": "Taman Desa ~ Hab Pasar Seni",
        "short": "650",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U6510",
        "label": "651",
        "long": "Stesen LRT Muhibbah ~Pearl Point",
        "short": "651",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U6520",
        "label": "652",
        "long": "Stesen LRT Awan Besar ~Batu 3 Jalan Klang Lama",
        "short": "652",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7508",
        "label": "750",
        "long": "Hab Sekysen 2 ~ Hab Pasar Seni",
        "short": "750",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7510",
        "label": "751",
        "long": "Taman Sri Muda ~ Hab Pasar Seni",
        "short": "751",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7520",
        "label": "752",
        "long": "Stesen LRT Putra Height ~ Hentian Bandar Shah Alam",
        "short": "752",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7538",
        "label": "753",
        "long": "Hentian Bandar Shah Alam ~ UiTM Puncak Alam",
        "short": "753",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7548",
        "label": "754",
        "long": "LRT Stadium Shah Alam ~ UITM Puncak Perdana",
        "short": "754",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7700",
        "label": "770",
        "long": "Subang Mewah USJ 1 ~ Hab Pasar Seni",
        "short": "770",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7718",
        "label": "771",
        "long": "Subang Mewah USJ 1 ~ Desa Mentari via Persiaran Tujuan",
        "short": "771",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7720",
        "label": "772",
        "long": "Subang Suria Mah Sing ~ Hab Pasar Seni",
        "short": "772",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7800",
        "label": "780",
        "long": "Kota Damansara ~ Hab Pasar Seni",
        "short": "780",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7828",
        "label": "782",
        "long": "Hentian PJ Old Town ~ Hab Pasar Seni",
        "short": "782",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U7830",
        "label": "783",
        "long": "Stesen LRT Kelana Jaya ~ Subang Parade",
        "short": "783",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U8210",
        "label": "821",
        "long": "Pantai Hill Park ~ Hab Pasar Seni",
        "short": "821",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U8220",
        "label": "822",
        "long": "Stesen LRT Bangsar ~ Bangsar Shopping Centre",
        "short": "822",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      },
      {
        "color": "006CFF",
        "color_name": "blue",
        "has_shape": true,
        "id": "U8518",
        "label": "851",
        "long": "Hab Pasar Seni ~ Kompleks Mahkamah Jalan Duta",
        "short": "851",
        "text_color": "FFFFFF",
        "type_label": "Bus"
      }
    ],
    "stop_count": 4056,
    "stop_points_capped": true
  },
  "rubric_version": "1.2",
  "schema_version": "1.15",
  "scoring_profile": {
    "id": "gtfs-scorecard-1.2",
    "provenance": "GTFS Scorecard's project-authored weights, deductions, thresholds, grade bands, and fix ranking, informed by the California Transit Data Guidelines and the MobilityData gtfs-validator. It is not a worldwide standard or a compliance determination.",
    "rubric_version": "1.2"
  },
  "snapshot_date": "2026-07-19",
  "top_fixes": [
    {
      "code": "scorecard_wheelchair_boarding_unknown",
      "count": 4056,
      "effort": "A column in stops.txt; your scheduling software likely has it.",
      "fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops.",
      "owner": "Likely your team",
      "points": 25.0,
      "rank": 1,
      "severity": "WARNING",
      "what": "4056 of 4056 stops don't say whether a wheelchair user can board there.",
      "why": "Riders who use wheelchairs can't plan a trip when accessibility is marked 'unknown'; apps show no information at all."
    },
    {
      "code": "scorecard_wheelchair_accessible_unknown",
      "count": 2112,
      "effort": "A default or per-trip field in your export.",
      "fix": "Set wheelchair_accessible on every trip. If every vehicle is accessible, this may be one default; otherwise use the value for each trip.",
      "owner": "Likely your export tool",
      "points": 15.0,
      "rank": 2,
      "severity": "WARNING",
      "what": "2112 of 2112 trips don't say whether the vehicle is wheelchair accessible.",
      "why": "Even with accessible stops, riders need to know the bus itself can take them."
    },
    {
      "code": "scorecard_missing_feed_info_dates",
      "count": 1,
      "effort": "Two fields, set once in export settings.",
      "fix": "Add feed_info.txt with feed_start_date and feed_end_date to your export.",
      "owner": "Likely your export tool",
      "points": 15.0,
      "rank": 3,
      "severity": "WARNING",
      "what": "feed_info.txt is missing its start/end dates (the file itself is absent)",
      "why": "Apps and this scorecard can't warn anyone before the feed goes stale without stated validity dates."
    }
  ],
  "validator_version": "8.0.1"
}
