Longest bus route in Singapore
Type your bus number to see how long its route is, in kilometres, and every stop on it. LTA routes downloaded 11 Oct 2026.
How long is this bus route?
Each box is one stop, in the order the bus calls at them. Hover or tap a box for the stop name. Coloured boxes are stops the bus calls at more than once.
Jurong East Int and back
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- A28
- B29
- C30
- D31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- A39
- B40
- C41
- D42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- A: Bef Jln Tepong (Jurong Port Rd), stops 28 and 39 of 69
- B: Ctrl Fish Proc Fty (Jln Tepong), stops 29 and 40 of 69
- C: Bef Jln Buroh (Fishery Port Rd), stops 30 and 41 of 69
- D: Opp Jurong Abattoir (Jln Buroh), stops 31 and 42 of 69
Which is the longest bus route?
Kilometres from first stop to last, in each service's longer direction. A longer bar means a longer route. Click a row to pick it.
Bus 858 is the longest, 73.4 km (about 73 km). Half of the 602 services are 13.1 km or shorter.
Which is the shortest bus route?
The 8 shortest services by distance. Click a row to pick it.
Bus 902 is 1.0 km. Bus 858 goes 73 times as far.
Which bus has the most stops?
Stops in the longest trip of each service, with its length in km. Click a row to pick it.
Bus 70M has 104 stops in 41.9 km. Half of the 602 services have 27 stops or fewer.
Which bus stop is served by the most buses?
Number of bus services that call at each stop. A stop code is one side of the road.
UIC Bldg on Shenton Way is served by 52 services. 1,073 of 5,210 stops have only one.
Which buses call at the same stop more than once?
24 services where a stop appears again in the same trip. A loop's return to its start is not counted. Click a row to pick it.
24 of 602 services (4.0%) repeat a stop. No stop is called at more than 3 times in a trip.
Fun finds
The short version
Bus 858 is Singapore's longest bus route at 73.4 km (about 73 km) and bus 902 the shortest at 1.0 km, with half of the 602 bus services at 13.1 km or shorter, using LTA route data downloaded on 11 Oct 2026.
What we did. We took the stop list and the distance travelled to each stop for every route pattern in the 602 bus services (798 patterns), took the largest distance as the route's length, counted its stops, and ranked each service by its longer direction. We also counted how many services call at each of the 5,210 stops, and which stops a trip calls at more than once.
What we found. The longest route is 73.4 km and the shortest 1.0 km. The most stops in one trip is 104 (bus 70M, 41.9 km). UIC Bldg (Shenton Way) is served by the most services, 52. 1,073 stops have a single service. 24 services call at a stop more than once, 5 of them 3 times.
What to keep in mind. Distance is not travel time, so a longer route is not necessarily slower. For a loop, the distance is one full circuit and its return to the start counts as a stop. We say nothing about whether a route is good.
By Ben (opens in a new tab). Updated . Data: Land Transport Authority bus routes, via LTA DataMall.
Questions people ask
What is the longest bus route in Singapore?
Bus 858, at 73.4 km from first stop to last, with 75 stops. It is a loop from Woodlands Int, so the distance is one full circuit. Next are 966 (63.4 km), 518 (59.2 km) and 502 (56.0 km).
What is the shortest bus route in Singapore?
Bus 902, at 1.0 km and 2 stops (Woodlands Int to Republic Poly). Then 962C (1.4 km) and 973A (1.5 km).
Which bus has the most stops?
Bus 70M, with 104 stops in one trip, but it is only 41.9 km, place 15 of 602 by distance. The count includes the loop's return to its start. Next by stops are 24 (100), 51 (98) and 89 (95).
How long is the average bus route?
Half of the 602 services are 13.1 km or shorter in their longer direction, and have 27 stops or fewer.
Is the longest bus route also the one with the most stops?
No. Distance and stop count rank the services differently. A bus with many stops close together can be shorter than one with fewer stops spread along an expressway.
Which bus stop is served by the most buses?
UIC Bldg on Shenton Way (stop 03129), served by 52 bus services. Next are Woodlands Int (38) and Bedok Int (38). Each stop code is one side of the road.
Is there a bus that stops at the same place more than once?
Yes. 24 services call at a stop more than once in one trip, and 5 of them (291, 293, 358, 359, 812) call at their own starting interchange 3 times. Bus 358 has Pasir Ris Int as stops 1, 12 and 23 of 23. A loop's normal return to its start is not counted as a repeat.
Does a longer route take longer?
This page measures distance and stops, not time. We do not claim a link.
Is this every bus route in Singapore?
It is every service in the LTA route data we used: 602 services and 798 route patterns (one for each direction, or one for a loop). Services added or changed since we downloaded the data on 11 Oct 2026 may differ.
How were the kilometres and stops counted?
LTA lists, for each stop in a route, the distance the bus has travelled from its first stop. We took the largest figure in each route, less its first figure, as its length and counted the stops in order. For a loop that ends where it began, the start is counted again at the end because the bus calls there. A service with two directions is ranked by its longer direction.
The numbers behind it
| Bus | Route | Stops in each trip | Length (km) | Place by km | Calls at a stop more than once |
|---|---|---|---|---|---|
| 858 | Woodlands Int ⟲ | 75 | 73.4 | 1 | |
| 966 | Woodlands Int ⟲ | 51 | 63.4 | 2 | |
| 518 | Pasir Ris Int ⟲ | 90 | 59.2 | 3 | |
| 502 | Soon Lee Bus Pk ⟲ | 78 | 56.0 | 4 | |
| 53 | Bishan Int ⟲ | 85 | 52.9 | 5 | |
| 36 | Changi Airport Ter 2 ⟲ | 60 | 52.2 | 6 | |
| 24 | Ang Mo Kio Int ⟲ | 100 | 51.7 | 7 | |
| 160 | Jurong Town Hall Int ⟲ | 80 | 50.0 | 8 | |
| 34 | Punggol Coast Int ⟲ | 69 | 46.7 | 9 | |
| 27 | Hougang Ctrl Int ⟲ | 57 | 44.3 | 10 | |
| 35 | Bedok Int ⟲ | 35 | 43.8 | 11 | Yes |
| 89 | Hougang Ctrl Int ⟲ | 95 | 43.1 | 12 | |
| 972M | Bt Panjang Int ⟲ | 71 | 42.8 | 13 | |
| 857 | Yishun Int ⟲ | 64 | 42.3 | 14 | |
| 70M | Yio Chu Kang Int ⟲ | 104 | 41.9 | 15 | |
| 110 | Buangkok Int ⟲ | 32 | 40.7 | 16 | |
| 975 | Bt Panjang Int ⟲ | 85 | 40.7 | 16 | |
| 972 | Bt Panjang Int ⟲ | 56 | 40.3 | 18 | |
| 61 | Bt Batok Int ⇄ Eunos Int | 94 / 90 | 39.7 | 19 | |
| 961M | Woodlands Temp Int ⇄ Lor 1 Geylang Ter | 88 / 94 | 38.3 | 20 | |
| 30 | Bedok Int ⇄ Boon Lay Int | 77 / 75 | 37.9 | 21 | |
| 51 | Hougang Ctrl Int ⇄ Jurong East Int | 98 / 95 | 37.6 | 22 | |
| 858B | Bef Piccadilly Circus/TPE → Aft Piccadilly Circus/TPE | 11 | 36.7 | 23 | |
| 961 | Woodlands Temp Int ⇄ Lor 1 Geylang Ter | 85 / 91 | 35.7 | 24 | |
| 62 | Punggol Int ⟲ | 88 | 35.4 | 25 | |
| 974 | Joo Koon Int ⟲ | 50 | 35.2 | 26 | |
| 14 | Bedok Int ⇄ Clementi Int | 80 / 75 | 34.3 | 27 | |
| 170 | Queen St Ter ⇄ Larkin Ter | 66 / 64 | 34.3 | 27 | |
| 5 | Pasir Ris Int ⇄ Bt Merah Int | 61 / 61 | 34.0 | 29 | |
| 81 | Tampines Int ⟲ | 68 | 34.0 | 29 | |
| 154 | Boon Lay Int ⇄ Eunos Int | 67 / 73 | 33.8 | 31 | |
| 67 | Choa Chu Kang Int ⇄ Tampines Int | 80 / 85 | 33.4 | 32 | |
| 9 | Bedok Int ⟲ | 82 | 33.2 | 33 | |
| 966A | Woodlands Int → Marine Pde Stn Exit 2 | 27 | 32.7 | 34 | |
| 15 | Pasir Ris Int ⟲ | 69 | 32.5 | 35 | |
| 518A | Pasir Ris Int → Bayfront Stn Exit A | 40 | 32.5 | 35 | |
| 853M | Yishun Int ⇄ Upp East Coast Ter | 70 / 74 | 32.1 | 37 | |
| 23 | Tampines Int ⟲ | 43 | 32.0 | 38 | |
| 10 | Tampines Int ⇄ Kent Ridge Ter | 74 / 74 | 31.9 | 39 | |
| 196 | Bedok Int ⇄ Clementi Int | 68 / 67 | 31.5 | 40 | |
| 197 | Bedok Int ⇄ Jurong East Int | 69 / 66 | 31.3 | 41 | |
| 502A | Soon Lee Bus Pk → Downtown Stn Exit E | 32 | 31.3 | 41 | |
| 171 | Yishun Int ⟲ | 39 | 31.2 | 43 | |
| 168 | Bedok Int ⇄ Woodlands Int | 27 / 27 | 30.8 | 44 | |
| 665 | Blk 32 ⇄ Prince Edward Rd Stn Exit 2 | 22 / 23 | 30.7 | 45 | |
| 36B | Lagoon View → Bef Seaside Residences | 50 | 30.6 | 46 | |
| 666 | Damai Stn Exit A ⇄ Promenade Stn/Pan Pacific | 22 / 21 | 30.5 | 47 | |
| 64 | Sims Pl Ter ⟲ | 82 | 30.4 | 48 | |
| 167 | Sembawang Int ⇄ Bt Merah Int | 71 / 70 | 30.3 | 49 | |
| 178 | Woodlands Int ⇄ Boon Lay Int | 70 / 72 | 30.3 | 49 | |
| 860 | Yio Chu Kang Int ⟲ | 74 | 29.9 | 51 | |
| 182 | Joo Koon Int ⟲ | 58 | 29.8 | 52 | Yes |
| 963 | Woodlands Int ⇄ HarbourFront Int | 49 / 49 | 29.8 | 52 | |
| 963e | Woodlands Int ⇄ HarbourFront Int | 22 / 22 | 29.7 | 54 | |
| 648 | Blk 875 ⇄ Prince Edward Rd Stn Exit 2 | 19 / 19 | 29.5 | 55 | |
| 673 | Aft Punggol Pt Stn ⇄ Suntec Twr Two | 20 / 21 | 29.5 | 55 | |
| 34B | IKEA Tampines/Aft TPE → Tampines Wafer Fab Pk | 44 | 29.3 | 57 | |
| 166 | Ang Mo Kio Int ⇄ Clementi Int | 68 / 66 | 29.1 | 58 | |
| 143 | Toa Payoh Int ⇄ Jurong East Int | 74 / 75 | 29.0 | 59 | |
| 174e | Boon Lay Int ⇄ Kampong Bahru Ter | 34 / 36 | 29.0 | 59 | |
| 182M | Joo Koon Int ⟲ | 57 | 29.0 | 59 | |
| 174 | Boon Lay Int ⇄ Kampong Bahru Ter | 60 / 63 | 28.9 | 62 | |
| 670 | Opp Blk 288 ⇄ Marina Bay Financial Ctr | 20 / 19 | 28.8 | 63 | |
| 656 | Blk 424A CP ⇄ Prince Edward Rd Stn Exit 2 | 17 / 18 | 28.6 | 64 | |
| 677 | Opp Blk 110 ⇄ Suntec Twr Two | 26 / 26 | 28.5 | 65 | |
| 195 | Aft S'pore Flyer → Promenade Stn/Pan Pacific | 67 | 28.2 | 66 | |
| 678 | Blk 162B ⇄ Suntec Twr Two | 21 / 21 | 28.1 | 67 | |
| 147 | Hougang Ctrl Int ⇄ Clementi Int | 75 / 71 | 27.9 | 68 | |
| 21 | Pasir Ris Int ⇄ St. Michael's Ter | 69 / 68 | 27.6 | 69 | |
| 74 | Hougang Ctrl Int ⇄ Buona Vista Ter | 64 / 61 | 27.5 | 70 | |
| 969 | Woodlands Int ⇄ Tampines Int | 29 / 28 | 27.4 | 71 | |
| 138 | Ang Mo Kio Int ⟲ | 59 | 27.2 | 72 | |
| 960 | Woodlands Int ⇄ Promenade Stn/Pan Pacific | 46 / 46 | 27.1 | 73 | |
| 102 | Hougang Ctrl Int ⟲ | 60 | 26.9 | 74 | |
| 646 | Opp Blk 662B ⇄ Prince Edward Rd Stn Exit 2 | 19 / 20 | 26.9 | 74 | |
| 98 | Jurong East Int ⟲ | 69 | 26.9 | 74 | Yes |
| 59 | Bishan Int ⇄ Changi Village Ter | 51 / 50 | 26.7 | 77 | |
| 39 | Tampines Concourse Int ⇄ Yishun Int | 42 / 44 | 26.6 | 78 | |
| 2 | Changi Village Ter ⇄ Kampong Bahru Ter | 70 / 62 | 26.5 | 79 | |
| 97 | Tengah Int ⇄ Promenade Stn/Pan Pacific | 50 / 52 | 26.5 | 79 | |
| 97e | Tengah Int ⇄ Promenade Stn/Pan Pacific | 31 / 32 | 26.5 | 79 | |
| 36A | Changi Airport Ter 2 → Aft Cuscaden Rd | 32 | 26.4 | 82 | |
| 649 | Opp Blk 489A ⇄ Marina Bay Financial Ctr | 22 / 21 | 26.4 | 82 | |
| 663 | Bet Blks 405/406 ⇄ Prince Edward Rd Stn Exit 2 | 21 / 23 | 26.3 | 84 | |
| 105 | Serangoon Int ⇄ Jurong East Int | 57 / 57 | 26.2 | 85 | |
| 78 | Jurong Town Hall Int ⟲ | 59 | 26.2 | 85 | |
| 671 | Blk 266/Opp The Rivervale ⇄ Promenade Stn/Pan Pacific | 22 / 21 | 26.1 | 87 | |
| 683 | Blk 162B ⇄ Revival Ctr Ch | 26 / 24 | 26.1 | 87 | |
| 855 | Yishun Int ⇄ HarbourFront Int | 55 / 55 | 26.0 | 89 | |
| 650 | Blk 432C ⇄ Prince Edward Rd Stn Exit 2 | 18 / 18 | 25.9 | 90 | |
| 158 | Serangoon Int ⟲ | 69 | 25.8 | 91 | |
| 33 | Bedok Int ⇄ Kent Ridge Ter | 64 / 57 | 25.8 | 91 | |
| 661 | Blk 476 ⇄ Marina Bay Financial Ctr | 13 / 12 | 25.8 | 91 | |
| 985 | Choa Chu Kang Int ⇄ Lor 1 Geylang Ter | 40 / 40 | 25.8 | 91 | |
| 12 | Pasir Ris Int ⇄ Kampong Bahru Ter | 71 / 65 | 25.7 | 95 | |
| 151 | Hougang Ctrl Int ⇄ Kent Ridge Ter | 54 / 53 | 25.7 | 95 | |
| 401 | Bedok Int ⟲ | 44 | 25.7 | 95 | |
| 651 | Opp Blk 276B ⇄ Marina Bay Financial Ctr | 15 / 14 | 25.7 | 95 | |
| 79 | Jurong Town Hall Int ⟲ | 57 | 25.7 | 95 | |
| 970 | Bt Panjang Int ⇄ Shenton Way Ter | 65 / 65 | 25.7 | 95 | |
| 12e | Pasir Ris Int ⇄ Kampong Bahru Ter | 40 / 36 | 25.6 | 101 | |
| 157 | Toa Payoh Int ⇄ Boon Lay Int | 58 / 56 | 25.5 | 102 | |
| 52 | Bishan Int ⇄ Jurong East Int | 45 / 44 | 25.4 | 103 | |
| 672 | Blk 568 ⇄ Promenade Stn/Pan Pacific | 22 / 21 | 25.4 | 103 | |
| 980 | Sembawang Int ⇄ Lor 1 Geylang Ter | 64 / 61 | 25.4 | 103 | |
| 168A | Woodlands Int → Opp Tampines Stn/Int | 15 | 25.1 | 106 | |
| 65 | Tampines Int ⇄ HarbourFront Int | 66 / 64 | 25.1 | 106 | |
| 965 | Woodlands Temp Int ⇄ Buangkok Int | 34 / 33 | 25.0 | 108 | |
| 73 | Ang Mo Kio Int ⟲ | 58 | 24.9 | 109 | Yes |
| 13 | Yio Chu Kang Int ⇄ Upp East Coast Ter | 63 / 65 | 24.8 | 110 | |
| 156 | Buangkok Int ⇄ Clementi Int | 62 / 56 | 24.8 | 110 | |
| 248M | Tuas Ter ⟲ | 34 | 24.8 | 110 | |
| 44 | Punggol Coast Int ⇄ Near SATS Flight Kitchen | 19 / 19 | 24.8 | 110 | |
| 100 | Serangoon Int ⇄ Ghim Moh Ter | 57 / 54 | 24.7 | 114 | |
| 165 | Hougang Ctrl Int ⇄ Clementi Int | 60 / 57 | 24.6 | 115 | |
| 175 | Clementi Int ⇄ Lor 1 Geylang Ter | 56 / 61 | 24.6 | 115 | |
| 30e | Bedok Int ⇄ Opp Heng Mui Keng Terr | 18 / 18 | 24.6 | 115 | |
| 93 | HarbourFront Int ⇄ Eunos Int | 55 / 54 | 24.5 | 118 | |
| 132 | Hougang Ctrl Int ⇄ Bt Merah Int | 56 / 54 | 24.4 | 119 | |
| 187 | Woodlands Int ⇄ Boon Lay Int | 40 / 40 | 24.4 | 119 | |
| 48 | Bedok Nth Depot ⇄ Buona Vista Ter | 53 / 52 | 24.4 | 119 | |
| 950 | Woodlands Temp Int ⟲ | 19 | 24.4 | 119 | |
| 117M | Punggol Coast Int ⇄ Sembawang Int | 47 / 48 | 24.1 | 123 | |
| 675 | Blk 953 ⇄ Suntec Twr Two | 19 / 19 | 24.1 | 123 | |
| 960e | Woodlands Int ⇄ Promenade Stn/Pan Pacific | 23 / 22 | 24.1 | 123 | |
| 506 | Jurong East Int ⇄ Serangoon Int | 30 / 30 | 24.0 | 126 | |
| 647 | Blk 347 ⇄ Aft Promenade Stn Exit C | 22 / 24 | 24.0 | 126 | Yes |
| 111 | Ghim Moh Ter ⟲ | 55 | 23.9 | 128 | |
| 88 | Pasir Ris Int ⇄ Toa Payoh Int | 51 / 50 | 23.9 | 128 | |
| 49 | Jurong East Int ⟲ | 51 | 23.8 | 130 | |
| 679 | Opp Blk 471A ⇄ Suntec Twr Two | 20 / 19 | 23.8 | 130 | |
| 169 | Woodlands Int ⇄ Ang Mo Kio Int | 55 / 55 | 23.7 | 132 | |
| 161 | Hougang Ctrl Int ⇄ Woodlands Int | 23 / 24 | 23.6 | 133 | |
| 43 | Punggol Int ⇄ Upp East Coast Ter | 61 / 62 | 23.6 | 133 | |
| 184 | Gali Batu Ter → Opp Blk 635A | 56 | 23.5 | 135 | |
| 684 | Opp Blk 816A ⇄ Marina Bay Financial Ctr | 18 / 15 | 23.5 | 135 | |
| 70 | Yio Chu Kang Int ⇄ Shenton Way Ter | 55 / 57 | 23.5 | 135 | |
| 851 | Yishun Int ⇄ Bt Merah Int | 57 / 52 | 23.5 | 135 | |
| 852 | Yishun Int ⇄ Bt Batok Int | 50 / 47 | 23.5 | 135 | |
| 40 | Bedok Int ⟲ | 62 | 23.4 | 140 | |
| 117 | Punggol Coast Int ⇄ Sembawang Int | 46 / 47 | 23.3 | 141 | |
| 28 | Tampines Int ⇄ Toa Payoh Int | 59 / 57 | 23.3 | 141 | |
| 80 | Compassvale Int ⇄ HarbourFront Int | 58 / 60 | 23.2 | 143 | |
| 32 | Bedok Int ⇄ Buona Vista Ter | 60 / 57 | 23.1 | 144 | |
| 7 | Bedok Int ⇄ Clementi Int | 56 / 51 | 23.0 | 145 | |
| 176 | Bt Panjang Int ⇄ Bt Merah Int | 59 / 60 | 22.9 | 146 | |
| 190 | Choa Chu Kang Int ⇄ Kampong Bahru Ter | 34 / 31 | 22.9 | 146 | |
| 31 | Tampines Int ⇄ Toa Payoh Int | 48 / 46 | 22.9 | 146 | |
| 183 | Jurong East Int ⟲ | 58 | 22.8 | 149 | |
| 129 | Tampines Nth Int ⇄ St. Michael's Ter | 39 / 41 | 22.5 | 150 | |
| 16M | Bedok Int ⇄ Bt Merah Int | 50 / 47 | 22.5 | 150 | |
| 75 | Gali Batu Ter ⇄ Bt Merah Int | 56 / 54 | 22.5 | 150 | |
| 195A | Aft S'pore Flyer → Tiong Bahru Stn/Plaza | 54 | 22.4 | 153 | |
| 248 | Tuas Ter ⟲ | 33 | 22.4 | 153 | |
| 57 | Bishan Int ⇄ Bt Merah Int | 49 / 49 | 22.4 | 153 | |
| 854 | Yishun Int ⇄ Bedok Int | 52 / 52 | 22.4 | 153 | |
| 106 | Bt Batok Int ⇄ Shenton Way Ter | 48 / 49 | 22.3 | 157 | |
| 676 | Blk 477A ⇄ Suntec Twr Two | 20 / 20 | 22.3 | 157 | |
| 89e | Hougang Ctrl Int ⇄ SATS Cargo Ter | 25 / 26 | 22.3 | 157 | |
| 188 | Choa Chu Kang Int ⇄ HarbourFront Int | 57 / 54 | 22.2 | 160 | |
| 654 | Treasure Crest ⇄ Prince Edward Rd Stn Exit 2 | 15 / 15 | 22.1 | 161 | |
| 109 | Serangoon Int ⇄ Changi Village Ter | 51 / 52 | 22.0 | 162 | |
| 155 | Toa Payoh Int ⇄ Bedok Int | 54 / 58 | 22.0 | 162 | |
| 188e | Choa Chu Kang Int → HarbourFront Int | 28 | 22.0 | 162 | |
| 47 | Changi Business Pk Ter ⟲ | 51 | 22.0 | 162 | |
| 19 | Tampines Int ⟲ | 56 | 21.9 | 166 | |
| 653 | Bef Summerhill ⇄ Marina Bay Financial Ctr | 20 / 19 | 21.8 | 167 | |
| 854e | Yishun Int → Bedok Int | 25 | 21.8 | 167 | |
| 861 | Sembawang Int ⟲ | 56 | 21.8 | 167 | Yes |
| 16 | Bedok Int ⇄ Bt Merah Int | 48 / 45 | 21.7 | 170 | |
| 681 | Blk 477A ⇄ Revival Ctr Ch | 20 / 19 | 21.7 | 170 | |
| 162 | Yio Chu Kang Int ⟲ | 57 | 21.6 | 172 | |
| 871 | Tengah Int ⟲ | 52 | 21.5 | 173 | |
| 145 | Toa Payoh Int ⇄ Buona Vista Ter | 55 / 55 | 21.4 | 174 | |
| 123 | Bt Merah Int ⇄ Beach Stn Ter | 43 / 45 | 21.3 | 175 | |
| 180 | Boon Lay Int ⟲ | 47 | 21.3 | 175 | |
| 247 | Tuas Ter ⟲ | 51 | 21.3 | 175 | |
| 674 | Blk 306B ⇄ Marina Bay Financial Ctr | 13 / 12 | 21.3 | 175 | |
| 55 | Bishan Int ⇄ Upp East Coast Ter | 50 / 52 | 21.2 | 179 | |
| 657 | Blk 538 ⇄ Marina Bay Financial Ctr | 18 / 17 | 21.1 | 180 | |
| 70A | Yio Chu Kang Int → Opp The Ritz-Carlton | 52 | 21.1 | 180 | |
| 851e | Yishun Int ⇄ Aft Duxton Plain Pk | 24 / 21 | 21.1 | 180 | |
| 857B | Yishun Int → Aft Promenade Stn Exit C | 32 | 21.1 | 180 | |
| 258M | Joo Koon Int ⟲ | 48 | 21.0 | 184 | |
| 45 | Upp East Coast Ter ⇄ Opp Yio Chu Kang Stadium | 45 / 48 | 21.0 | 184 | |
| 974A | Joo Koon Int → Lot 1/Choa Chu Kang Stn | 33 | 20.9 | 186 | |
| 198 | Boon Lay Int ⇄ Bt Merah Int | 44 / 44 | 20.8 | 187 | |
| 58 | Bishan Int ⇄ Pasir Ris Int | 48 / 48 | 20.6 | 188 | |
| 668 | Opp Blk 649 ⇄ Marina Bay Financial Ctr | 19 / 19 | 20.6 | 188 | |
| 131 | St. Michael's Ter ⇄ Bt Merah Int | 50 / 48 | 20.5 | 190 | |
| 853 | Yishun Int ⇄ Lor 1 Geylang Ter | 43 / 44 | 20.5 | 190 | |
| 969A | Tampines Int → Yishun Stn | 15 | 20.4 | 192 | |
| 975C | Bt Panjang Int → Police Coast Guard | 44 | 20.4 | 192 | |
| 14e | Blk 403 ⇄ Orchard Stn/Lucky Plaza | 31 / 28 | 20.3 | 194 | |
| 153 | Bt Merah Int ⇄ Hougang Ctrl Int | 45 / 45 | 20.3 | 194 | |
| 14A | Bedok Int → Somerset Youth Pk | 51 | 20.1 | 196 | |
| 29 | Tampines Int ⟲ | 54 | 20.0 | 197 | |
| 972A | Bt Panjang Int → Dhoby Ghaut Stn | 27 | 19.9 | 198 | |
| 682 | Blk 204 CP ⇄ Aft Dhoby Ghaut Stn | 18 / 20 | 19.8 | 199 | |
| 120 | Kampong Bahru Ter ⟲ | 49 | 19.7 | 200 | |
| 163 | Sengkang Int ⇄ Toa Payoh Int | 51 / 48 | 19.7 | 200 | |
| 3 | Tampines Int ⇄ Punggol Int | 39 / 41 | 19.7 | 200 | |
| 63 | Eunos Int ⇄ Opp Blk 36 | 53 / 50 | 19.5 | 203 | |
| 925M | Woodlands Temp Int ⟲ | 40 | 19.4 | 204 | |
| 859 | Sembawang Int ⟲ | 50 | 19.1 | 205 | |
| 98M | Jurong East Int ⟲ | 48 | 19.1 | 205 | |
| 137 | Sims Pl Ter ⇄ Upp East Coast Ter | 45 / 48 | 18.9 | 207 | |
| 652 | Opp Sembawang Hills FC ⇄ Prince Edward Rd Stn Exit 2 | 25 / 26 | 18.9 | 207 | |
| 660M | Blk 991A ⇄ Prince Edward Rd Stn Exit 2 | 20 / 22 | 18.8 | 209 | |
| 185 | Soon Lee Bus Pk ⇄ Buona Vista Ter | 37 / 37 | 18.6 | 210 | |
| 50 | Bishan Int ⇄ Punggol Int | 48 / 47 | 18.6 | 210 | |
| 124 | St. Michael's Ter ⇄ HarbourFront Int | 47 / 43 | 18.5 | 212 | |
| 190A | Choa Chu Kang Int → Dhoby Ghaut Stn | 21 | 18.5 | 212 | |
| 925 | Woodlands Temp Int ⇄ Choa Chu Kang Int | 39 / 39 | 18.5 | 212 | |
| 186 | Shenton Way Ter ⇄ St. Michael's Ter | 43 / 46 | 18.4 | 215 | |
| 77 | Bt Batok Int ⇄ Promenade Stn/Pan Pacific | 46 / 47 | 18.4 | 215 | |
| 112 | Hougang Ctrl Int ⟲ | 47 | 18.3 | 217 | |
| 119 | Punggol Int ⟲ | 48 | 18.3 | 217 | |
| 107 | Hougang Ctrl Int ⇄ Shenton Way Ter | 41 / 41 | 18.1 | 219 | |
| 25 | Ang Mo Kio Int ⇄ Upp East Coast Ter | 43 / 44 | 18.1 | 219 | |
| 85 | Punggol Int ⇄ Yishun Int | 30 / 31 | 18.1 | 219 | |
| 103 | Serangoon Int ⇄ Yishun Int | 41 / 45 | 18.0 | 222 | |
| 660 | Blk 987B ⇄ Prince Edward Rd Stn Exit 2 | 17 / 19 | 18.0 | 222 | |
| 927 | Choa Chu Kang Int ⟲ | 33 | 18.0 | 222 | |
| 133 | Ang Mo Kio Int ⇄ Shenton Way Ter | 44 / 41 | 17.9 | 225 | |
| 20 | Tampines Int ⟲ | 44 | 17.9 | 225 | |
| 135 | Ang Mo Kio Int ⇄ Kembangan Stn | 46 / 48 | 17.8 | 227 | |
| 35M | Bedok Int ⟲ | 20 | 17.8 | 227 | |
| 125 | St. Michael's Ter ⟲ | 48 | 17.7 | 229 | Yes |
| 139 | Toa Payoh Int ⇄ Bt Merah Int | 45 / 41 | 17.7 | 229 | |
| 655 | Bet Blks 50/51 ⇄ Marina Bay Financial Ctr | 22 / 21 | 17.7 | 229 | |
| 54 | Bishan Int ⇄ Kampong Bahru Ter | 45 / 41 | 17.6 | 232 | |
| 8 | Tampines Int ⇄ Toa Payoh Int | 40 / 39 | 17.6 | 232 | |
| 258 | Joo Koon Int ⟲ | 41 | 17.5 | 234 | |
| 82 | Punggol Int ⟲ | 43 | 17.5 | 234 | |
| 89A | Aft Punggol Rd → AirFreight Ter Bldg | 37 | 17.5 | 234 | |
| 201 | Kent Ridge Ter ⟲ | 38 | 17.4 | 237 | |
| 912 | Woodlands Int ⟲ | 43 | 17.4 | 237 | |
| 104 | Punggol Coast Int ⇄ Woodleigh Int | 40 / 40 | 17.3 | 239 | |
| 43e | Punggol Int ⇄ Marine Pde Stn Exit 4 | 28 / 31 | 17.3 | 239 | |
| 66 | Jurong East Int ⟲ | 44 | 17.3 | 239 | |
| 680 | Blk 991A ⇄ Aft Dhoby Ghaut Stn | 20 / 22 | 17.2 | 242 | |
| 72 | Yio Chu Kang Int ⇄ Tampines Int | 45 / 44 | 17.2 | 242 | |
| 856 | Yishun Int ⇄ Woodlands Int | 37 / 39 | 17.2 | 242 | |
| 121 | Shenton Way Ter ⟲ | 43 | 17.1 | 245 | Yes |
| 71 | Yio Chu Kang Int ⟲ | 42 | 17.1 | 245 | |
| 136 | Ang Mo Kio Int ⇄ Punggol Int | 40 / 41 | 17.0 | 247 | |
| 254 | Joo Koon Int ⟲ | 32 | 17.0 | 247 | |
| 99 | Clementi Int ⇄ Joo Koon Int | 46 / 45 | 17.0 | 247 | |
| 10e | Opp Man Fatt Lam Tp ⇄ Aft Straits Blvd | 30 / 28 | 16.9 | 250 | |
| 246 | Boon Lay Int ⟲ | 45 | 16.9 | 250 | |
| 268 | Bef Ang Mo Kio St 64 → Liuxun Sanhemiao Tp | 46 | 16.8 | 252 | |
| 962 | Woodlands Int ⟲ | 46 | 16.8 | 252 | |
| 113 | Hougang Ctrl Int ⟲ | 44 | 16.7 | 254 | |
| 122 | Kampong Bahru Ter ⟲ | 39 | 16.7 | 254 | |
| 811 | Yishun Int ⟲ | 43 | 16.6 | 256 | |
| 118 | Punggol Int ⇄ Changi Business Pk Ter | 26 / 25 | 16.5 | 257 | |
| 159 | Sengkang Int ⇄ Toa Payoh Int | 40 / 41 | 16.5 | 257 | |
| 90 | Toa Payoh Int ⟲ | 36 | 16.4 | 259 | |
| 147A | Hougang Ctrl Int → Aft Duxton Plain Pk | 47 | 16.3 | 260 | |
| 189 | Bt Batok Int ⟲ | 32 | 16.3 | 260 | |
| 193 | Boon Lay Int ⇄ Tuas Ter | 44 / 43 | 16.3 | 260 | |
| 130 | Ang Mo Kio Int ⇄ Shenton Way Ter | 42 / 38 | 16.2 | 263 | |
| 200 | Buona Vista Ter ⟲ | 45 | 16.1 | 264 | |
| 265 | Liuxun Sanhemiao Tp → Opp Yio Chu Kang Stadium | 41 | 16.1 | 264 | Yes |
| 62A | Punggol Int → Aljunied Stn | 41 | 16.0 | 266 | |
| 252 | Boon Lay Int ⟲ | 37 | 15.9 | 267 | |
| 76 | Yio Chu Kang Int ⇄ Eunos Int | 41 / 43 | 15.8 | 268 | |
| 101 | Serangoon Int ⟲ | 46 | 15.7 | 269 | |
| 249 | Boon Lay Int ⟲ | 38 | 15.6 | 270 | |
| 196A | Bedok Int → Prince Edward Rd Stn Exit 2 | 34 | 15.5 | 271 | |
| 975B | Opp Choa Chu Kang Stn → Opp Lim Chu Kang Lane 3 | 30 | 15.5 | 271 | |
| 240 | Boon Lay Int ⟲ | 38 | 15.3 | 273 | |
| 60 | Eunos Int ⟲ | 33 | 15.2 | 274 | Yes |
| 107M | Hougang Ctrl Int ⇄ Opp Suntec Convention Ctr | 38 / 36 | 15.1 | 275 | |
| 146 | Woodleigh Int ⟲ | 36 | 15.1 | 275 | |
| 293 | Tampines Int ⟲ | 41 | 15.1 | 275 | Yes |
| 86 | Compassvale Int ⇄ Ang Mo Kio Int | 31 / 30 | 15.1 | 275 | |
| 41 | Jurong East Int ⟲ | 38 | 14.8 | 279 | |
| 172 | Choa Chu Kang Int ⇄ Boon Lay Int | 31 / 30 | 14.7 | 280 | |
| 26 | Bedok Int ⇄ Toa Payoh Int | 34 / 30 | 14.7 | 280 | |
| 860T | Yio Chu Kang Int → Yishun Int | 37 | 14.7 | 280 | |
| 154B | Boon Lay Int → Ngee Ann Poly | 32 | 14.6 | 283 | |
| 257 | Joo Koon Int ⟲ | 39 | 14.6 | 283 | |
| 667 | Blk 308 ⇄ Marina Bay Financial Ctr | 14 / 12 | 14.4 | 285 | |
| 192 | Boon Lay Int ⇄ Tuas Ter | 33 / 33 | 14.2 | 286 | |
| 298 | Tampines Nth Int ⟲ | 38 | 14.0 | 287 | |
| 69 | Tampines Int ⟲ | 35 | 14.0 | 287 | |
| 134 | Sims Pl Ter ⟲ | 36 | 13.9 | 289 | |
| 173 | Bt Batok Int ⇄ Clementi Int | 32 / 32 | 13.9 | 289 | |
| 359 | Pasir Ris Int ⟲ | 38 | 13.8 | 291 | Yes |
| 856B | Woodlands Int → Aft Admiral Hill | 30 | 13.8 | 291 | |
| 7A | Bedok Int → Orchard Stn Exit 13 | 35 | 13.6 | 293 | |
| 83 | Punggol Int ⟲ | 31 | 13.4 | 294 | |
| 68 | Pasir Ris Int ⟲ | 41 | 13.3 | 295 | |
| 87 | Compassvale Int ⇄ Bedok Int | 33 / 32 | 13.3 | 295 | |
| 118A | Punggol Int → ITE Coll East Adm Blk | 21 | 13.2 | 297 | |
| 196e | Lagoon View ⇄ Prince Edward Rd Stn Exit 2 | 18 / 17 | 13.2 | 297 | |
| 315 | Serangoon Int ⟲ | 32 | 13.2 | 297 | Yes |
| 405 | Boon Lay Int ⟲ | 27 | 13.2 | 297 | |
| 22 | Ang Mo Kio Int ⇄ Eunos Int | 34 / 33 | 13.1 | 301 | |
| 807 | Yishun Int ⟲ | 38 | 13.1 | 301 | |
| 116 | Hougang Ctrl Int ⟲ | 37 | 13.0 | 303 | |
| 251 | Boon Lay Int ⟲ | 32 | 13.0 | 303 | |
| 79T | Jurong Town Hall Int → Boon Lay Int | 28 | 13.0 | 303 | |
| 913 | Woodlands Int ⟲ | 33 | 12.9 | 306 | |
| 18 | Tampines Nth Int ⇄ SBST Bedok Nth Depot | 31 / 31 | 12.8 | 307 | |
| 812 | Yishun Int ⟲ | 34 | 12.8 | 307 | Yes |
| 984 | Jurong Town Hall Int ⇄ Opp Blk 635A | 31 / 32 | 12.8 | 307 | |
| 15A | Pasir Ris Int → Opp Eunos Stn | 25 | 12.7 | 310 | |
| 2B | Changi Village Ter → Bedok Stn Exit A | 33 | 12.7 | 310 | |
| 883 | Sembawang Int ⟲ | 33 | 12.7 | 310 | Yes |
| 63M | Eunos Int ⟲ | 35 | 12.6 | 313 | |
| 454 | Tampines Nth Int ⟲ | 18 | 12.5 | 314 | |
| 73T | Ang Mo Kio Int → Toa Payoh Int | 29 | 12.4 | 315 | |
| 17 | Pasir Ris Int ⇄ Bedok Int | 31 / 31 | 12.3 | 316 | |
| 325 | Hougang Ctrl Int ⟲ | 32 | 12.3 | 316 | |
| 56 | Bishan Int ⇄ Promenade Stn/Pan Pacific | 26 / 27 | 12.3 | 316 | |
| 80A | Compassvale Int → Aljunied Stn | 32 | 12.3 | 316 | |
| 983 | Choa Chu Kang Int ⟲ | 30 | 12.3 | 316 | Yes |
| 58B | Pasir Ris Int → Tai Seng Stn Exit A/B | 27 | 12.2 | 321 | |
| 92 | Ghim Moh Ter ⟲ | 37 | 12.2 | 321 | |
| 967 | Woodlands Temp Int ⟲ | 29 | 12.2 | 321 | |
| 883M | Sembawang Int ⟲ | 33 | 12.1 | 324 | Yes |
| 85A | Yishun Int → Sengkang Community Hub | 19 | 12.0 | 325 | |
| 307 | Choa Chu Kang Int ⟲ | 32 | 11.9 | 326 | |
| 34A | Punggol Coast Int → Opp Our Tampines Hub | 22 | 11.9 | 326 | |
| 53A | Blk 738 → Changi Airport Ter 2 | 20 | 11.9 | 326 | |
| 169A | Woodlands Int → Opp Yishun Stn | 28 | 11.8 | 329 | |
| 177 | Bt Batok Int ⟲ | 27 | 11.8 | 329 | Yes |
| 911 | Woodlands Int ⟲ | 28 | 11.8 | 329 | |
| 979 | Bt Panjang Int ⟲ | 36 | 11.8 | 329 | |
| 991 | Bt Batok Int ⇄ Choa Chu Kang Int | 26 / 27 | 11.8 | 329 | |
| 50A | Aft Punggol Field → Bef Ang Mo Kio Stn Exit B | 32 | 11.7 | 334 | |
| 58A | S'Goon Stn Exit B → Tampines Wafer Fab Pk | 27 | 11.7 | 334 | |
| 990 | Bt Batok Int ⟲ | 28 | 11.6 | 336 | |
| 95 | Kent Ridge Ter ⟲ | 30 | 11.5 | 337 | |
| 158A | Aljunied Stn → Opp Aljunied Stn | 29 | 11.4 | 338 | |
| 170X | Opp Kranji Stn ⇄ JB Sentral Bus Ter | 8 / 8 | 11.4 | 338 | |
| 400 | Shenton Way Ter ⟲ | 21 | 11.4 | 338 | |
| 46 | Upp East Coast Ter ⇄ Pasir Ris Int | 32 / 29 | 11.4 | 338 | |
| 6 | Pasir Ris Int ⟲ | 30 | 11.4 | 338 | |
| 131A | St. Michael's Ter → Aft Straits Blvd | 31 | 11.3 | 343 | |
| 38 | Tampines Int ⇄ Bedok Int | 29 / 29 | 11.3 | 343 | |
| 114 | Buangkok Int ⇄ Yio Chu Kang Int | 28 / 26 | 11.1 | 345 | |
| 180A | Boon Lay Int → Blk 183 | 25 | 11.1 | 345 | |
| 199 | Boon Lay Int ⟲ | 27 | 11.1 | 345 | |
| 222 | Bedok Int ⟲ | 30 | 11.1 | 345 | |
| 459 | Punggol Stn/Waterway Pt ⇄ Tai Seng Stn Exit A/B | 6 / 6 | 11.1 | 345 | |
| 94 | Eunos Int ⟲ | 26 | 11.1 | 345 | |
| 872 | Tengah Int ⟲ | 28 | 11.0 | 351 | |
| 9B | Simei Stn → 3rd Cargo Agents | 29 | 11.0 | 351 | |
| 253 | Joo Koon Int ⟲ | 24 | 10.9 | 353 | |
| 37 | Tampines Int ⟲ | 26 | 10.9 | 353 | |
| 33A | Kent Ridge Ter → Blk 1 | 23 | 10.8 | 355 | |
| 11 | Lor 1 Geylang Ter ⟲ | 25 | 10.7 | 356 | Yes |
| 39A | Opp Pasir Ris Int/Mall → Aft Piccadilly Circus/TPE | 16 | 10.7 | 356 | |
| 913M | Woodlands Int → Woodlands Int | 27 | 10.7 | 356 | |
| 973 | Bt Panjang Int ⟲ | 29 | 10.7 | 356 | |
| 118B | Opp ITE Coll East Adm Blk → Bef Punggol Rd | 16 | 10.6 | 360 | |
| 123M | HarbourFront Int ⟲ | 25 | 10.6 | 360 | Yes |
| 228 | Bedok Int ⟲ | 30 | 10.6 | 360 | |
| 291 | Tampines Int ⟲ | 29 | 10.6 | 360 | Yes |
| 7B | Clementi Int → Dhoby Ghaut Stn | 25 | 10.6 | 360 | |
| 4 | Tampines Int ⟲ | 28 | 10.5 | 365 | |
| 455 | Bt Panjang Int ⟲ | 13 | 10.5 | 365 | |
| 912B | Woodlands Int → Woodlands Int | 25 | 10.5 | 365 | |
| 230 | Caldecott Stn Exit 1 → Bef Caldecott Stn Exit 4 | 31 | 10.4 | 368 | |
| 27A | Blk 203B → Opp Century Sq | 18 | 10.4 | 368 | |
| 335 | Jurong East Int ⟲ | 31 | 10.4 | 368 | |
| 861A | Sembawang Int → Khatib Stn Exit D | 29 | 10.4 | 368 | |
| 386 | Punggol Int ⟲ | 20 | 10.3 | 372 | |
| 3A | Tampines Int → Blk 747A | 28 | 10.3 | 372 | |
| 163B | Sengkang Int → Aft Lentor Stn Exit 4 | 28 | 10.1 | 374 | |
| 140 | Lor 1 Geylang Ter ⟲ | 28 | 9.9 | 375 | |
| 964 | Woodlands Int ⟲ | 27 | 9.9 | 375 | |
| 141 | Lor 1 Geylang Ter ⇄ Toa Payoh Int | 26 / 27 | 9.8 | 377 | |
| 410G | Bishan Int ⟲ | 24 | 9.8 | 377 | |
| 179A | Boon Lay Int ⟲ | 12 | 9.7 | 379 | |
| 229 | Bedok Int ⟲ | 24 | 9.7 | 379 | |
| 143M | Jurong East Int ⟲ | 28 | 9.6 | 381 | |
| 179 | Boon Lay Int ⟲ | 24 | 9.6 | 381 | |
| 317 | Serangoon Int ⟲ | 32 | 9.6 | 381 | Yes |
| 88A | Blk 190C → Opp Ang Mo Kio Stn | 27 | 9.6 | 381 | |
| 901M | Woodlands Int ⟲ | 24 | 9.6 | 381 | |
| 920 | Bt Panjang Int ⟲ | 32 | 9.6 | 381 | |
| 965A | Woodlands Temp Int → Opp Yishun Stn | 18 | 9.6 | 381 | |
| 98B | Blk 490 → Jurong Island Checkpt | 27 | 9.6 | 381 | |
| 859T | Sembawang Int → Yishun Int | 26 | 9.5 | 389 | |
| 299 | Tampines Nth Int ⟲ | 24 | 9.4 | 390 | |
| 43A | Punggol Int → S'goon Stn Exit C/Blk 201 | 25 | 9.4 | 390 | |
| 458 | Opp Sengkang Stn/Blk 260A ⇄ Tai Seng Stn Exit A/B | 8 / 7 | 9.4 | 390 | |
| 334 | Jurong East Int ⟲ | 26 | 9.3 | 393 | |
| 452 | Tengah Int ⇄ Beauty World Stn Exit C | 10 / 10 | 9.3 | 393 | |
| 410W | Bishan Int ⟲ | 22 | 9.2 | 395 | |
| 993 | Jurong East Int ⟲ | 25 | 9.2 | 395 | |
| 90A | Toa Payoh Int → Paya Lebar Air Base | 23 | 9.1 | 397 | |
| 922 | Bt Panjang Int ⟲ | 26 | 9.1 | 397 | |
| 194 | Boon Lay Int ⟲ | 8 | 9.0 | 399 | |
| 235 | Toa Payoh Int ⟲ | 25 | 9.0 | 399 | |
| 381 | Punggol Int ⇄ Punggol Coast Int | 22 / 22 | 9.0 | 399 | |
| 858A | Woodlands Int → Opp Yishun Stn | 24 | 9.0 | 399 | |
| 976 | Choa Chu Kang Int ⇄ Bt Panjang Int | 24 / 25 | 8.9 | 403 | |
| 255 | Joo Koon Int ⟲ | 24 | 8.8 | 404 | |
| 181 | Boon Lay Int ⇄ Tengah Int | 15 / 15 | 8.7 | 405 | |
| 882 | Sembawang Int ⟲ | 24 | 8.7 | 405 | |
| 925A | Woodlands Temp Int → Kranji Resvr Pk B | 18 | 8.7 | 405 | |
| 262 | Ang Mo Kio Int ⟲ | 24 | 8.6 | 408 | |
| 900 | Woodlands Int ⟲ | 24 | 8.6 | 408 | |
| 127 | Tampines Int ⟲ | 22 | 8.5 | 410 | |
| 268A | Bef Ang Mo Kio St 64 → Techplace 2 | 24 | 8.5 | 410 | |
| 269 | Ang Mo Kio Int ⟲ | 22 | 8.5 | 410 | |
| 358 | Pasir Ris Int ⟲ | 23 | 8.5 | 410 | Yes |
| 804 | Yishun Int ⟲ | 23 | 8.5 | 410 | |
| 142 | Toa Payoh Int ⟲ | 21 | 8.4 | 415 | |
| 333 | Jurong East Int ⟲ | 20 | 8.4 | 415 | |
| 903 | Woodlands Int ⟲ | 22 | 8.4 | 415 | |
| 9A | Bedok Int → Blk 149A | 21 | 8.4 | 415 | |
| 374 | Compassvale Int ⟲ | 20 | 8.3 | 419 | |
| 981 | Sembawang Int ⇄ Bef Senoko Dr | 21 / 21 | 8.3 | 419 | |
| 200A | Buona Vista Ter → Kent Ridge Ter | 23 | 8.2 | 421 | |
| 800 | Yishun Int ⟲ | 22 | 8.2 | 421 | |
| 302 | Choa Chu Kang Int ⟲ | 22 | 8.1 | 423 | |
| 904 | Woodlands Int ⟲ | 21 | 8.1 | 423 | |
| 159A | Sengkang Int → Bef Ang Mo Kio Stn Exit B | 25 | 8.0 | 425 | |
| 39B | Blk 220C → Pasir Ris Int/Mall | 16 | 7.9 | 426 | |
| 129B | Gambir Ridge → Opp Temasek Poly East G | 7 | 7.8 | 427 | |
| 150 | Eunos Int ⟲ | 21 | 7.8 | 427 | |
| 285 | Clementi Int ⟲ | 19 | 7.8 | 427 | |
| 372 | Compassvale Int ⟲ | 23 | 7.8 | 427 | |
| 456 | St. Michael's Ter ⟲ | 14 | 7.8 | 427 | Yes |
| 801 | Yishun Int ⟲ | 22 | 7.8 | 427 | |
| 296 | Tampines Int ⟲ | 20 | 7.6 | 433 | |
| 84W | Punggol Int ⟲ | 18 | 7.6 | 433 | |
| 18M | Opp SBST Bedok Nth Depot → SBST Bedok Nth Depot | 21 | 7.5 | 435 | |
| 191 | Buona Vista Ter ⟲ | 20 | 7.5 | 435 | |
| 60T | Eunos Int → Bedok Int | 17 | 7.4 | 437 | |
| 84G | Punggol Int ⟲ | 18 | 7.4 | 437 | |
| 129A | Temasek Poly East G → Bartley Stn Exit A | 5 | 7.3 | 439 | |
| 138C | S'pore Zoo → Springleaf Stn Exit 2 | 14 | 7.3 | 439 | |
| 945 | Bt Batok Int ⟲ | 19 | 7.3 | 439 | |
| 181M | Boon Lay Int ⟲ | 18 | 7.2 | 442 | |
| 240M | Lakeside Stn → Opp Lakeside Stn | 17 | 7.2 | 442 | |
| 249A | Boon Lay Int → Tg Kling Rd (End) | 17 | 7.2 | 442 | |
| 71A | Mayflower Stn Exit 5 → Opp Bishan Stn | 18 | 7.2 | 442 | |
| 20A | Blk 148 → Expo Stn Exit B | 21 | 7.1 | 446 | |
| 53M | Kovan Hub ⟲ | 22 | 7.1 | 446 | |
| 857A | Yishun Int → Opp Sunrise Gdns | 16 | 7.1 | 446 | |
| 138A | Springleaf Stn Exit 3 → S'pore Zoo | 14 | 7.0 | 449 | |
| 403 | Pasir Ris Int ⟲ | 23 | 6.9 | 450 | |
| 871A | Tengah Int → Blk 240 | 17 | 6.9 | 450 | |
| 912A | Woodlands Int → Woodlands Int | 19 | 6.9 | 450 | |
| 113A | Kovan Stn Exit C → Kovan Stn Exit B | 20 | 6.8 | 453 | |
| 148 | Woodleigh Int ⟲ | 16 | 6.8 | 453 | |
| 329 | Hougang Ctrl Int ⟲ | 24 | 6.8 | 453 | |
| 457 | Opp Hougang Ctrl Int ⇄ Tai Seng Stn Exit A/B | 4 / 4 | 6.8 | 453 | |
| 460 | Tampines Int ⟲ | 10 | 6.8 | 453 | |
| 83T | Punggol Int → Sengkang Int | 16 | 6.8 | 453 | |
| 91 | Buona Vista Ter ⟲ | 19 | 6.8 | 453 | |
| 941 | Bt Batok Int ⟲ | 19 | 6.8 | 453 | |
| 96 | Clementi Int ⟲ | 15 | 6.8 | 453 | |
| 33B | Bedok Int → Blk 22 | 18 | 6.7 | 462 | |
| 72A | Yio Chu Kang Int → Opp Hougang Ctrl Int | 20 | 6.7 | 462 | |
| 232 | Toa Payoh Int ⟲ | 20 | 6.6 | 464 | |
| 238 | Toa Payoh Int ⟲ | 20 | 6.6 | 464 | |
| 292 | Tampines Int ⟲ | 15 | 6.6 | 464 | |
| 307A | Choa Chu Kang Int → Opp Choa Chu Kang Stn | 18 | 6.6 | 464 | |
| 870 | Jurong Town Hall Int ⇄ Tengah Int | 13 / 15 | 6.6 | 464 | |
| 78A | Jurong Town Hall Int → Opp CLP Intl | 16 | 6.5 | 469 | |
| 806 | Yishun Int ⟲ | 18 | 6.5 | 469 | |
| 805 | Yishun Int ⟲ | 18 | 6.4 | 471 | |
| 861B | Blk 624 → Canberra Stn | 18 | 6.3 | 472 | |
| 70B | Opp Serenity Pk → S'goon Stn Exit C/Blk 201 | 18 | 6.2 | 473 | |
| 913T | Woodlands Int → Woodlands Int | 16 | 6.2 | 473 | |
| 984A | Blk 634 CP → Blk 805D | 17 | 6.2 | 473 | |
| 231 | Toa Payoh Int ⟲ | 18 | 6.1 | 476 | |
| 241 | Boon Lay Int ⟲ | 18 | 6.1 | 476 | |
| 992 | Bt Batok Int ⇄ Tengah Int | 16 / 17 | 6.1 | 476 | |
| 384 | Punggol Int ⟲ | 14 | 6.0 | 479 | |
| 901 | Woodlands Int ⟲ | 15 | 6.0 | 479 | |
| 911T | Woodlands Int → Woodlands Int | 14 | 5.9 | 481 | |
| 282 | Clementi Int ⟲ | 12 | 5.8 | 482 | |
| 300 | Choa Chu Kang Int ⟲ | 15 | 5.8 | 482 | |
| 42 | Kembangan Stn ⟲ | 22 | 5.8 | 482 | |
| 807B | Yishun Int → Jiemin Pr Sch | 18 | 5.8 | 482 | |
| 86B | Opp Yio Chu Kang Stn → Bef Piccadilly Circus/TPE | 16 | 5.8 | 482 | |
| 105B | Jurong East Int → Clementi Stn Exit B | 13 | 5.7 | 487 | |
| 242 | Boon Lay Int ⟲ | 15 | 5.7 | 487 | |
| 825 | Yio Chu Kang Int ⟲ | 15 | 5.7 | 487 | |
| 86A | Aft Piccadilly Circus/TPE → Yio Chu Kang Stn | 18 | 5.7 | 487 | |
| 142A | Toa Payoh Int → Sant Ritz | 16 | 5.6 | 491 | |
| 163A | Sengkang Int → Bef Sengkang West Rd | 17 | 5.6 | 491 | |
| 903M | Woodlands Int ⟲ | 15 | 5.6 | 491 | |
| 301 | Choa Chu Kang Int ⟲ | 17 | 5.5 | 494 | |
| 382G | Punggol Int ⟲ | 15 | 5.4 | 495 | |
| 307T | Opp Choa Chu Kang Stn → Choa Chu Kang Int | 15 | 5.3 | 496 | |
| 382 | Punggol Int ⟲ | 14 / 14 | 5.3 | 496 | |
| 382W | Punggol Int ⟲ | 15 | 5.3 | 496 | |
| 453 | Tengah Int ⇄ Bt Batok Int | 10 / 9 | 5.3 | 496 | |
| 811A | Yishun Int → Opp Yishun Stn Exit B | 15 | 5.3 | 496 | |
| 109A | Serangoon Int → Blk 913 | 15 | 5.2 | 501 | |
| 179B | Hall 1 → Pioneer Stn Exit B | 11 | 5.2 | 501 | |
| 106A | Bt Batok Int → Clementi Stn Exit B | 12 | 5.1 | 503 | |
| 160A | Jurong Town Hall Int → Opp Dunearn Sec Sch | 12 | 5.1 | 503 | |
| 243G | Boon Lay Int ⟲ | 15 | 5.1 | 503 | |
| 243W | Boon Lay Int ⟲ | 15 | 5.1 | 503 | |
| 461 | Bet Blks 405/406 ⇄ Khatib Stn Exit A | 4 / 4 | 5.1 | 503 | |
| 859A | Sembawang Int ⟲ | 15 | 5.1 | 503 | |
| 859B | Sembawang Int ⟲ | 14 | 5.0 | 509 | |
| 947 | Bt Batok Int ⟲ | 14 | 5.0 | 509 | |
| 112A | Hougang Ctrl Int → Kovan Stn Exit B | 12 | 4.9 | 511 | |
| 178A | Woodlands Int → Kranji Stn | 13 | 4.9 | 511 | |
| 451 | Opp Blk 816A ⇄ Bt Gombak Stn | 9 / 9 | 4.9 | 511 | |
| 856C | Blk 23 → Bef British American Tobacco | 11 | 4.9 | 511 | |
| 94A | Eunos Int → Bef RSAF Roundabout | 14 | 4.9 | 511 | |
| 983A | Choa Chu Kang Int → Blk 26 | 13 | 4.9 | 511 | |
| 100A | Serangoon Int → Aljunied Stn | 13 | 4.8 | 517 | |
| 261 | Ang Mo Kio Int ⟲ | 14 | 4.8 | 517 | |
| 273 | Bt Merah Int ⟲ | 14 | 4.8 | 517 | |
| 831G | Tengah Int ⟲ | 11 | 4.8 | 517 | |
| 115 | Kovan Hub ⟲ | 13 | 4.7 | 521 | |
| 198A | Boon Lay Int → Opp Parc Oasis | 13 | 4.7 | 521 | |
| 371 | Sengkang Int ⟲ | 12 | 4.7 | 521 | |
| 5B | Aft Changi General Hosp → Bef Mariam Wk | 12 | 4.7 | 521 | |
| 5A | Aft Ballota Pk → Bef Changi General Hosp | 12 | 4.6 | 525 | |
| 807A | Yishun Int → Khatib Stn Exit D | 14 | 4.6 | 525 | |
| 831W | Tengah Int ⟲ | 12 | 4.6 | 525 | |
| 962B | Opp Sun Plaza → Sun Plaza/ Sembawang Stn | 12 | 4.6 | 525 | |
| 31A | Tampines Int → Tanah Merah Stn Exit 1 | 9 | 4.5 | 529 | |
| 354 | Pasir Ris Int ⟲ | 12 | 4.5 | 529 | |
| 95B | Kent Ridge Ter → Buona Vista Stn Exit C | 12 | 4.5 | 529 | |
| 872A | Tengah Int → Chinese Gdn Stn | 12 | 4.4 | 532 | |
| 102A | Sengkang Stn → Opp Blk 461B | 11 | 4.3 | 533 | |
| 137A | Bedok Stn Exit B → Bedok Nth Stn Exit A | 11 | 4.3 | 533 | |
| 183B | Jurong East Int → Aft Toh Tuck Lk | 11 | 4.2 | 535 | |
| 18A | Tampines Nth Int → Tampines East Stn Exit D | 10 | 4.2 | 535 | |
| 324 | Hougang Ctrl Int ⟲ | 9 | 4.2 | 535 | |
| 803 | Yishun Int ⟲ | 12 | 4.2 | 535 | |
| 96A | Clementi Int → NUS Raffles Hall | 10 | 4.2 | 535 | |
| 102B | Blk 461B → Opp Sengkang Stn/Blk 260A | 11 | 4.1 | 540 | |
| 139A | Toa Payoh Int → Bet Blks 33/34 | 9 | 4.0 | 541 | |
| 269A | Ang Mo Kio Int → Opp Yio Chu Kang CC | 12 | 4.0 | 541 | |
| 272 | Bt Merah Int ⟲ | 14 | 4.0 | 541 | |
| 116A | Blk 504A CP → S'goon Stn Exit C/Blk 201 | 11 | 3.9 | 544 | |
| 117A | Opp Blks 469A/469B → Khatib Stn Exit A | 10 | 3.9 | 544 | |
| 222A | Bedok Int → Bedok Stn Exit A | 11 | 3.9 | 544 | |
| 230M | Toa Payoh Int ⟲ | 12 | 3.9 | 544 | |
| 268B | Opp Ang Mo Kio Police Div HQ → Aft Ang Mo Kio Stn Exit A | 11 | 3.9 | 544 | |
| 268C | Opp Ang Mo Kio Stn → Ang Mo Kio Police Div HQ | 11 | 3.9 | 544 | |
| 883B | Yishun Stn → Opp Blk 590C | 11 | 3.9 | 544 | |
| 17A | Bedok Int → SBST Bedok Nth Depot | 10 | 3.8 | 551 | |
| 60A | Eunos Int → Blk 608 | 10 | 3.8 | 551 | |
| 169B | Woodlands Int → Bef W'lands Ind Pk E3 | 9 | 3.7 | 553 | |
| 222B | Bedok Stn Exit A → Bedok Stn Exit B | 10 | 3.7 | 553 | |
| 983M | Opp Blk 486 → Aft Teck Whye Walk | 11 | 3.7 | 553 | |
| 861M | Blk 120A → Sembawang Int | 11 | 3.6 | 556 | |
| 88B | Aft Ang Mo Kio Stn Exit A → Bef Yio Chu Kang Rd | 12 | 3.6 | 556 | |
| 21A | Bef Lor 18 Geylang → Bef Tai Hoe Hotel | 8 | 3.5 | 558 | |
| 182A | Opp Tuas Lk Stn → Bef Tuas Sth Ave 4 | 9 | 3.4 | 559 | |
| 55B | Bishan Int → Blk 443 | 8 | 3.4 | 559 | |
| 856A | Woodlands Int → W'lands Train Checkpt | 7 | 3.4 | 559 | |
| 98A | Lakeside Stn → Corp Pl | 11 | 3.4 | 559 | |
| 181A | Boon Lay Int → Blk 276B | 9 | 3.3 | 563 | |
| 225W | Bedok Int ⟲ | 9 | 3.3 | 563 | |
| 96B | Aft Architecture Dr → Clementi Stn Exit A/Mall | 8 | 3.3 | 563 | |
| 991B | Choa Chu Kang Int → Opp Choa Chu Kang Mkt | 7 | 3.3 | 563 | |
| 225G | Bedok Int ⟲ | 11 | 3.2 | 567 | |
| 114A | Buangkok Int → Blk 991B | 8 | 3.1 | 568 | |
| 29A | Tampines Int → Blk 497D | 9 | 3.1 | 568 | |
| 386A | Punggol Int → Blk 682A | 7 | 3.1 | 568 | |
| 92A | Buona Vista Stn Exit D → Opp Normanton Pk/R'ford | 10 | 3.1 | 568 | |
| SWB | Sengkang Int → Thanggam Stn Exit B | 5 | 3.1 | 568 | |
| 51A | Jurong East Int → Blk 407 | 9 | 3.0 | 573 | |
| 138M | Ang Mo Kio Int ⟲ | 6 | 2.9 | 574 | |
| 173A | Bt Batok Int → Blk 254 | 8 | 2.9 | 574 | |
| 189A | Bt Batok Int → Opp Midview Bldg | 8 | 2.9 | 574 | |
| 154A | Blk 151 → Lakeside Stn | 9 | 2.8 | 577 | |
| 92B | Kent Ridge Stn Exit B → Kent Ridge Stn | 13 | 2.8 | 577 | |
| SWA | Fernvale Stn/Blk 439A → Sengkang Int | 5 | 2.8 | 577 | |
| 241A | Blk 962 → Pioneer Stn Exit B | 9 | 2.5 | 580 | |
| 125A | Opp Aljunied Stn → Bef Siemens Ctr | 8 | 2.4 | 581 | |
| 302A | Yew Tee Stn → Opp Yew Tee Stn | 8 | 2.3 | 582 | |
| 882A | Sembawang Int → Blk 592A | 7 | 2.3 | 582 | |
| 382A | Punggol Int → Blk 226A | 7 | 2.2 | 584 | |
| 112B | Hougang Ctrl Int → Opp Blk 321 | 6 | 2.1 | 585 | |
| 13A | Blk 307A → Bishan Stn | 6 | 2.1 | 585 | |
| 68A | Bef Tampines Nth Dr 1 → Tampines Int | 7 | 2.0 | 587 | |
| 68B | Tampines Int → Aft Tampines Nth Dr 1 | 7 | 2.0 | 587 | |
| 911A | Woodlands Int → Blk 146 | 5 | 1.9 | 589 | |
| 127A | Tampines Int → Opp Blk 610C | 6 | 1.8 | 590 | |
| 145A | Redhill Stn → Blk 1 | 7 | 1.8 | 590 | |
| 240A | Blk 65 → Lakeside Stn | 6 | 1.8 | 590 | |
| 284 | Clementi Int ⟲ | 5 | 1.8 | 590 | |
| 45A | Opp Blk 115 → S'goon Stn Exit A/Blk 413 | 6 | 1.8 | 590 | |
| 72B | Yio Chu Kang Int → ITE Coll Ctrl | 5 | 1.8 | 590 | |
| 807C | Opp Khatib Stn Exit D → Opp Blk 445 | 6 | 1.8 | 590 | |
| 991A | Bt Batok Int → Princess E Pr Sch | 6 | 1.8 | 590 | |
| 975A | Opp Choa Chu Kang Stn → Aft Hai Inn See Tp | 7 | 1.7 | 598 | |
| 159B | Aft Ang Mo Kio Int → ITE Coll Ctrl | 5 | 1.6 | 599 | |
| 973A | Bt Panjang Int → Bef Pending Stn | 4 | 1.5 | 600 | |
| 962C | Blk 618 → Bef Admiralty Stn/Blk 680 | 5 | 1.4 | 601 | |
| 902 | Woodlands Int → Republic Poly | 2 | 1.0 | 602 |
| Bus | Stops in the trip | Which stops (road), and their place in the trip |
|---|---|---|
| 98 | 69 | Bef Jln Tepong (Jurong Port Rd), stops 28 and 39; Ctrl Fish Proc Fty (Jln Tepong), stops 29 and 40; Bef Jln Buroh (Fishery Port Rd), stops 30 and 41; Opp Jurong Abattoir (Jln Buroh), stops 31 and 42 |
| 456 | 14 | Blk 29 (Jln Bahagia), stops 3 and 11; Blk 19 (Jln Tenteram), stops 4 and 12; Opp Blk 65 (Jln Tenteram), stops 5 and 13 |
| 11 | 25 | Stadium Stn (Stadium Cres), stops 7 and 18; Opp S'pore Indoor Stadium (Stadium Walk), stops 8 and 19 |
| 123M | 25 | Aft Radin Mas Pr Sch (Bt Purmei Ave), stops 7 and 20; Blk 109 (Bt Purmei Ave), stops 8 and 21 |
| 125 | 48 | Blk 29 (Jln Bahagia), stops 3 and 46; Bet Blks 33/34 (Jln Bahagia), stops 4 and 47 |
| 60 | 33 | Christ Ch (Bedok Reservoir Rd), stops 9 and 23; Blk 608 (Bedok Reservoir Rd), stops 10 and 24 |
| 983 | 30 | Blk 802B (Keat Hong Cl), stops 7 and 23; Blk 803 (Keat Hong Cl), stops 8 and 24 |
| 291 | 29 | Tampines Int (Tampines Ctrl 1), stops 1, 14 and 29 |
| 293 | 41 | Tampines Int (Tampines Ctrl 1), stops 1, 19 and 41 |
| 358 | 23 | Pasir Ris Int (Pasir Ris Dr 3), stops 1, 12 and 23 |
| 359 | 38 | Pasir Ris Int (Pasir Ris Dr 3), stops 1, 17 and 38 |
| 812 | 34 | Yishun Int (Yishun Ave 2), stops 1, 14 and 34 |
| 121 | 43 | Prince Edward Rd Stn Exit 2 (Shenton Way), stops 2 and 42 |
| 177 | 27 | MINDEF Pick-Up/Drop-Off (Gombak Dr), stops 9 and 19 |
| 182 | 58 | Tuas Checkpt (Jln Ahmad Ibrahim), stops 10 and 51 |
| 265 | 41 | Ang Mo Kio Int (Ang Mo Kio Ave 8), stops 14 and 29 |
| 315 | 32 | S'goon Gdn Circus (S'goon Gdn Way), stops 7 and 25 |
| 317 | 32 | S'goon Gdn Circus (S'goon Gdn Way), stops 9 and 23 |
| 35 | 35 | Tanah Merah Ferry Ter (Tanah Merah Ferry Rd), stops 10 and 25 |
| 647 | 24 | Opp Blk 347 (Bt Batok West Ave 5), stops 23 and 24 |
| 73 | 58 | S'goon Gdn Circus (S'goon Gdn Way), stops 16 and 42 |
| 861 | 56 | Blk 126 CP (Canberra st), stops 8 and 49 |
| 883 | 33 | Blk 126 CP (Canberra st), stops 9 and 25 |
| 883M | 33 | Blk 126 CP (Canberra st), stops 9 and 25 |
| Place | Stop | Road | Stop code | Services |
|---|---|---|---|---|
| 1 | UIC Bldg | Shenton Way | 03129 | 52 |
| 2 | Woodlands Int | Woodlands Sq | 46009 | 38 |
| 3 | Bedok Int | Bedok Nth Dr | 84009 | 38 |
| 4 | Aft Capital Twr | Robinson Rd | 03111 | 37 |
| 5 | YMCA | Orchard Rd | 08041 | 36 |
| 6 | Boon Lay Int | Jurong West Ctrl 3 | 22009 | 35 |
| 7 | Prince Edward Rd Stn Exit 2 | Shenton Way | 03218 | 34 |
| 8 | Dhoby Ghaut Stn Exit B | Penang Rd | 08031 | 34 |
| 9 | 80 Robinson Rd | Robinson Rd | 03071 | 33 |
| 10 | SMU | Stamford Rd | 04121 | 33 |
| 11 | Dhoby Ghaut Stn | Orchard Rd | 08057 | 33 |
| 12 | Yishun Int | Yishun Ave 2 | 59009 | 33 |
| 13 | Raffles Hotel | Bras Basah Rd | 02049 | 32 |
| 14 | Tampines Int | Tampines Ctrl 1 | 75009 | 32 |
| 15 | Aft Bras Basah Stn Exit A | Bras Basah Rd | 04179 | 30 |
| 16 | Bencoolen Stn Exit B | Bras Basah Rd | 08069 | 30 |
| 17 | Marina Bay Stn | Central Blvd | 03539 | 29 |
| 18 | Downtown Stn Exit E | Central Blvd | 03529 | 28 |
| 19 | Winsland Hse | Penang Rd | 08111 | 28 |
| 20 | Somerset Stn | Somerset Rd | 08121 | 28 |
| 21 | The Sail | Marina Blvd | 03381 | 27 |
| 22 | Marina Bay Financial Ctr | Marina Blvd | 03391 | 27 |
| 23 | Capitol Bldg | Stamford Rd | 04111 | 27 |
| 24 | Concorde Hotel S'pore | Orchard Rd | 08138 | 26 |
| 25 | Aft Promenade Stn Exit C | Temasek Ave | 02161 | 25 |
The boring bit
Where the data comes from
Bus stops, bus services and bus routes from LTA DataMall (opens in a new tab), the Land Transport Authority's data service. Downloaded 11 Oct 2026. Contains information from LTA DataMall, made available under the Singapore Open Data Licence (LTA API terms).
What is not claimed
- A longer route is not claimed to be slower or better, and a shorter one is not claimed to be faster. We measure distance and stops, not travel time.
- We do not say why a route calls at a stop twice.
- A stop code is one side of the road. A busy place with stops on both sides, or several stops with the same name, is counted stop by stop, so places with many stops are not added together.
- The kilometres are the distances LTA lists for each stop. We did not measure them ourselves. In 23 route patterns, LTA's first stop is not at 0 km (the route starts part-way along a longer one), so we measure from the first stop listed.
- For a loop that ends where it began, the distance is one full circuit and the start counts again at the end. A service with two directions is ranked by the longer one.
- Routes changed after 11 Oct 2026 are not here.
Coverage
602 services and 798 route patterns in the data, and 5,210 stops. All were counted. Every service is in the first table.
Report an error. Corrections are logged publicly with a date.
How we did it
- Downloaded the three LTA lists (stops, services, routes; routes come 500 rows at a time) and put each service's stops in order, one list for each direction or loop.
- Took the length as the largest distance LTA lists in a route, counted the stops, and kept the longer direction for each service.
- Counted the services that call at each stop code.
- Found repeats by counting each stop code in a trip, leaving out a loop's return to its start.
Show the Python code
import json, collections
def prep(raw_dir):
routes = json.load(open(raw_dir + "/BusRoutes.json")) # LTA DataMall BusRoutes, all pages joined
# each row: ServiceNo, Direction, StopSequence, BusStopCode, Distance (km travelled from the route's first stop)
trips = collections.defaultdict(list)
for r in routes:
trips[(r["ServiceNo"], r["Direction"])].append(r)
length, stops_in, repeated = {}, {}, {}
served = collections.defaultdict(set)
for (svc, d), rows in sorted(trips.items()):
rows.sort(key=lambda r: r["StopSequence"])
codes = [r["BusStopCode"] for r in rows]
km = max(r["Distance"] or 0 for r in rows) - (rows[0]["Distance"] or 0) # largest distance, less the first stop's
length[svc] = max(length.get(svc, 0), round(km, 1)) # a service is ranked by its longer direction
stops_in[svc] = max(stops_in.get(svc, 0), len(codes)) # stops in its longest trip
for c in codes:
served[c].add(svc)
inner = codes[:-1] if codes[0] == codes[-1] else codes # a loop's return to its start is not a repeat
n = collections.Counter(inner)
again = [c for c in dict.fromkeys(inner) if n[c] > 1]
if again:
repeated[(svc, d)] = again
ranked = sorted(length.items(), key=lambda kv: (-kv[1], kv[0])) # longest route first
return length, stops_in, served, repeated, rankedWhat could make it wrong: a route that has changed since the download, a stop listed twice by slip, or a distance that LTA recorded wrongly. One service (857) has a distance that resets to 0 at its last stop, so we take the largest figure. Some very short services (such as 902, 1.0 km) look odd, and we show them as LTA lists them.
No machine learning was needed. The questions were "how far" and "how many", which adding up and counting answer directly.
Source: LTA DataMall (opens in a new tab) (BusStops, BusServices, BusRoutes), downloaded 11 Oct 2026.