Singapore’s bus network plays a vital role in connecting people across the island. The current bus network predates the construction of the MRT network and remains a key part of the public transport network today. Bus routes range from short neighbourhood feeder or industrial routes to longer trunk services connecting different towns.
While feeder bus services tend to be numbered by region, the system behind trunk service numbers is less well understood. Contrary to popular belief, bus service numbers are not randomly assigned—they were also originally organised based on geographical regions. This article explains how Singapore’s bus numbering system came to be and how it has evolved since the 1970s.
Background
The current bus numbering system dates back to the 1971 Bus Reorganisation, which restructured existing services into 130 routes to reduce overlap. This effort was based on recommendations from the 1970 Wilson Report, A Study of the Public Bus Transport System of Singapore. A standardised numbering system from 1 to 208 was introduced, with route numbers grouped by region.
Over the years, however, changes driven by rail network integration and multiple rounds of bus service rationalisation have broken up the original bus network. Many bus routes no longer end within their initial regions but still retain their original numbers. As a result, the once-clear regional grouping has blurred—though some patterns remain where changes have been less drastic. Today, new services are often assigned numbers by ‘filling gaps’ in the existing sequence, rather than strictly adhering to the original region-based numbering system.
1970s: Beginnings
The present-day numbering of bus services can be traced back to the 1971 Bus Reorganisation conducted on 11th April 1971, where all 130 existing bus routes (operated by twelve independent bus companies) were reorganised to minimise duplication, and allocated to four bus companies.
These rationalisation plans were executed on the recommendations of the Wilson Report, commissioned in 1970, titled A Study of the Public Bus Transport System of Singapore. The bus numbering system was standardised in numbers from 1 to 208, with route numbers distributed by geographical region of their route termini.
- 0x (1 – 5): Changi Point (present-day Changi Village; excluding 5 from Sungei Bedok)
- 1x (10 – 13): Bedok Road (present-day Sungei Bedok)
- 2x (20 – 22): Opera Estate
- 3x (30 – 33): Changi Rd (near present-day Siglap)
- 4x (40 – 46): Telok Kurau (excluding 45/46 from Kallang Park/Tg Rhu)
- 5x (50 – 52): Kaki Bukit/Eunos
- 6x (60 – 65): MacPherson Estate
- 7x (70 – 73): Mixture of northern regions (Upper Thomson Road/Serangoon Gardens)
- 8x (80 – 84): Upper Changi (present day Old Tampines Road)/Punggol
- 9x (90 – 95): Paya Lebar Airport (excluding 94 from Kolam Ayer)
- 10x (100 – 104): Serangoon Gardens Estate
- 11x (110 – 112): Upper Serangoon Road (near present-day Hougang South)
- 12x (120 – 126): St. Michael’s Estate
- 13x (130 – 131): Balestier Road
- 14x (140 – 149): Toa Payoh New Town
- 15x (150 – 159): Toa Payoh New Town (excluding 154 from MacPherson Est via TPY)
- 16x (160 – 166): Sembawang/Sembawang Hills Estate
- 17x (170 – 177): Queen Street and a mixture of western regions (Lim Chu Kang, Mandai, Nanyang University, Tuas Village, Jurong)
- 18x (180 – 182): Upper Bukit Timah Road (near present-day Beauty World)
- 19x (190 – 199): Mixture of western and southern regions (Delta, Ulu Pandan, Buona Vista, Bukit Timah, South Canal Rd, Bukit Merah, Jurong)
- 20x (200 – 208): Mixture of short trunk services in the western and southern regions (Bukit Timah, Toh Tuck, Jurong, Kranji)
These trunk bus routes form the backbone of Singapore’s public transport network back then, operating along main arterial roadways and connecting major areas of urban development to the City areas. Radial services are supplemented by inter-urban services that provide direct transport links between major residential and industrial areas.
Routes were operated by three regional companies—Amalgamated Bus Company (ABC), Associated Bus Services (ABS) and United Bus Company (UBC)—which were formed from the merger of 11 existing bus companies, alongside the existing Singapore Traction Company (STC), which continued servicing central Singapore. STC eventually folded in December 1971, and its routes were taken over by the three regional companies.
Late 1970s: SBS is formed; Feeder services are introduced
Singapore Bus Service (SBS) was formed on 1 November 1973 by the government-sanctioned merger of the three existing regional bus companies, taking over the existing bus route network established in 1971. The late 1970s saw the introduction of Feeder services to service new towns being built around Singapore.
- 21x (210 – 219): Used for feeder services around the island since 1976; no specific geographical area except for Service 219
- 22x (220 – 229): Feeder services in Bedok New Town since 1976
- 23x (230 – 239): Feeder services in Toa Payoh New Town since 1976
- 24x (240 – 244): Residential feeder services in Jurong since 1977
- 25x (245 – 258): Industrial services in Jurong since 1978
- 26x (260 – 269): Feeder services in Ang Mo Kio New Town since 1978
- 27x (271 – 275): Feeder services in Bukit Merah New Town since 1979
- 28x (282 – 287): Feeder services in Clementi New Town since 1979
- 30x (301 – 308): Blue Arrow peak-hour semi-express services between 1975 and 1989
- 40x, 45x (401 – 409, 450): Special services, usually operating on weekends and public holidays only
1980s: Expansion of New Towns; TIBS is established
As more new towns were built around Singapore, more bus services were introduced to serve them, continuing the region-based numbering of bus services.
Trans-Island Bus Services (TIBS) began operations in 1983 as Singapore’s second public bus operator and progressively took over 12 SBS routes in Sembawang and Woodlands. It also introduced new services to the new towns of Yishun and Woodlands.
SBS services:
- 29x (290 – 297): Feeder services in Tampines New Town since 1983
- 31x (312 – 318): Feeder services in Serangoon New Town since 1984
- 32x (321 – 329): Feeder services in Hougang New Town since 1982
- 33x (331 – 336): Feeder services in Jurong East New Town since 1983
- 34x (343 – 345): Feeder services in Bukit Panjang New Town between 1988 and 2000
- 35x (353): Feeder services in Bishan New Town between 1986 and 1988
- 35x (350 – 359): Feeder services in Pasir Ris New Town since 1989
- 36x (361 – 367): Feeder services in Bukit Batok New Town between 1985 and 2003
- 37x (372): Feeder services in Woodlands New Town between 1982 and 1996
- 38x (382 – 385): Feeder services in Eunos between 1986 and 2002
- 39x (390 – 395): Changi Airport bus services between 1981 and 1983
TIBS services:
- 80x (800 – 806): Feeder services based in Yishun New Town since 1984
- 82x (825): Lentor Estate bus service since 1988
- 85x (850 – 859): Trunk services in Yishun New Town since 1985
- 90x (900 – 906): Feeder services in Woodlands New Town since 1985
- 92x (925 – 927): Special services since 1986
- 95x (950 – 952): Trunk services in Woodlands New Town between 1989 & 1996
1990s: New Express and Intra-Town services
The 1990s saw new categories of bus services rolled out by SBS/TIBS, such as Townlink, Intratown, and Express services. City Shuttle Services were also renumbered with the 60x designation in 1997.
- 30x (300 – 303): Feeder services in Choa Chu Kang New Town since 1990
- 41x (410): Townlink (now Feeder) services in Bishan New Town since 1992
- 50x (501 – 508): Express services (SBS) since 1997
- 52x (520 – 521): Express services (TIBS) between 1997 & 2003
- 54x (540 – 549):Â Premium services 540, 541, 543, 547, 548 & 549 (Bus Plus)
- 54x (545, 546):Â Executive Express services
- 55x (555, 556):Â CityLink Direct services
- 60x (602 – 608): City Shuttle Services between 1997 & 2007
- 62x – 64x: Scheme BÂ services since 1997
- 70x (700): RapidBus (later Trunk) between 1998 & 2020
- 78x (781 – 788):Â Turf Club services between 1999 & 2000
- 81x (811 – 812): Intratown services in Yishun New Town since 1996
- 82x (820 – 821):Â Feeder services in Jalan Kayu between 1998 & 2001
- 86x (860 – 866): Trunk services in Sengkang New Town between 1998 & 1999
- 91x (911 – 913): Intratown services in Woodlands New Town since 1996
- 96x (960 – 969): Trunk services in Woodlands New Town since 1996
- 98x (980 – 981): Trunk services in Sembawang New Town since 1998
2000s: New Premium and Basic Plus services
A new series of bus service numbers in the 2000s and 2010s was largely dedicated to Premium and various other basic-plus bus services.
- 37x (371 – 374): Feeder services in Sengkang since 2000
- 37x (378 – 379): Feeder services in Jalan Kayu between 2001 & 2003
- 51x (511 – 518): Express services (SBS) since 2000
- 52x (522 – 529): Premium services
- 53x (530 – 539): Premium services
- 54x (540 – 549): Premium services
- 55x (550 – 559): Premium/CityShopper services
- 56x (560 – 569): Premium services
- 57x (570 – 579): CityShopper services
- 58x (580 – 589): Premium/CityShopper services
- 59x (590 – 599): Premium services
- 71x (711 – 718): Jurong Island bus services since 2000
- 72x (720 – 729): Premium services
- 73x (730 – 739): Premium services
- 74x (740 – 749): Premium services
- 75x (750 – 759): Premium services
- 76x (760 – 769): Premium services
- 86x (860, 861): Trunk services in Yishun New Town since 2012 (except 868E in Bukit Batok & Jurong East)
- 88x (882, 883): Trunk services in Sembawang New Town since 2005
- 92x (920 – 922): Feeder services in Bukit Panjang New Town since 2000, replacing 34x series
- 94x (941 – 947): Feeder services in Bukit Batok New Town since 2003, replacing 36x series
- 97x (970 – 979): Trunk services in Bukit Panjang New Town since 2000
- 98x (982E – 989):Â Trunk services in Choa Chu Kang New Town since 2001
Special bus services that use alphabetical Prefixes and Suffixes are documented in a separate article: Legacy Bus Service Prefixes and Suffixes
2010s to Present:
The 2010s saw a Government-led restructuring of the Singapore bus industry with the Bus Service Enhancement Programme in 2012, Bus Contracting Model in 2016, and Bus Connectivity Enhancement Programme in 2024.
- 12x (120, 121, 122):Â Trunk services from the City since 2013
- 13x (134, 137):Â Trunk services in Sims Place since 2016
- 14x (140, 141, 146, 148): Trunk services in Kallang since 2013; Trunk services in Woodleigh since 2024
- 15x (150):Â Trunk service in Eunos since 2016
- 38x (381 – 386): Feeder services in Punggol New Town since 2014
- 65x (651 – 659): City Direct Services since 2013
- 66x (660 – 669): City Direct Services since 2014
- 67x (670 – 678): City Direct Services since 2016
- 87x (870 – 872): Trunk services in Tengah New Town since 2023
- 99x (990 – 993): Trunk services in Bukit Batok New Town since 2014
Present-Day Categories
Owing to numerous service amendments and rationalisation exercises, present-day bus services no longer strictly follow the old region-based numbering. The insertion of bus services in the many intervening years and route amendments means that the ‘pattern’, even within a group of 10 services by second number, a wide catchment is served
And now, the changes to the service coverage of bus services in different bus service series over the decades:
Trunk Services
Services | Present-day Catchment | Remarks / Exceptions |
0x to 20x | Trunk services across Singapore | Some geographical concentration (e.g. 5x in Bishan, 8x, 10x and 11x in the Northeast) |
82x 85x to 88x 95x to 99x |
Trunk services in Northern Singapore | Some geographical concentration: 85x/86x in Yishun (except 868E) 87x in Tengah 88x in Sembawang 95x/96x in Woodlands 97x in Bukit Panjang 98x in Sembawang/Choa Chu Kang 99x in Bukit Batok |
The 0x to 20x series of trunk services has been preserved since the 1970s. The lowest service number is currently Service 2 (Changi Village ↔ Kampong Bahru), following the discontinuation of Service 1 (Changi Point ↔ Delta Fringe Car Park) in 1989.
The 5x series’ changes from the 1970s are clear, as it had evolved from Kaki Bukit/Eunos ares to present-day Bishan services. The only exception is Service 51 (Hougang Ctrl ↔ Jurong East), which plies a modified version of its old Jln Eunos ↔ Labrador routing.
Another notable shift is the 19x series which has shifted from a mix of southern and western region services, to one that is more predominately based in Jurong West, given the discontinuation of first-generation 19x routes (190, 191, 192, 193, 194, 199) that originated from Delta, Ulu Pandan, Buona Vista, South Canal, and Prince Edward respectively. 190 aside, these 19x route numbers were later re-used in Jurong West, while Services 195, 196, 197 & 198 still serve the original catchment today in modified forms.
Feeder & Other Services
Feeder bus services continue to be numbered based on geographical region.
Services | Present-day Catchment | Remarks / Exceptions |
22x | Bedok feeder | |
23x | Toa Payoh feeder | |
24x/25x | Jurong West feeder + Industrial | |
26x | Ang Mo Kio feeder | |
27x | Bukit Merah feeder | |
28x | Clementi feeder | |
29x | Tampines feeder | |
30x | Choa Chu Kang feeder | |
31x | Serangoon feeder | |
32x | Hougang feeder | |
33x | Jurong East feeder | |
35x | Pasir Ris feeder | |
37x | Sengkang feeder | |
38x | Punggol feeder | |
40x | Special Trunk services (formerly Parks) | |
50x/51x | Express buses | |
52x to 59x | Premium buses | |
62x to 64x | Scheme B services | |
65x to 67x | City Direct services | |
71x | Jurong Island services | |
72x to 77x | Premium buses | |
80x/81x | Yishun feeder | |
82x | Lentor estate service | |
90x/91x | Woodlands feeder | |
92x | Bukit Panjang feeder | Previously 34x (before 2000) |
94x | Bukit Batok feeder | Previously 36x (before 2003) |
Other bus services that use prefixes and suffixes are documented in a separate article: Bus Service Prefixes and Suffixes.
Links:
- Defunct Bus Services (1981 – 1994)
- Defunct Bus Services (1995 – 2009) [Under construction]
Back to Bus Articles
We need to reorganise all the number again. BCM literally mess many thing.
5,7,8 all should belong to Tampines and Bedok package.
16 Bedok.
21,26 all should stay Bedok.
30 should go Jurong West.. 32 33 no complains
51 52 should be Clementi
57 stay Bishan better under Bishan-TPY
61 IF no route shorterned should be under Serangoon-Eunos. Else better under Bulim.
72 under Seletar better. 78 under Clementi better
81 if extend to Woodleigh under Serangoon-Eunos.
97 under Clementi better.
99 under Jurong West more sense.
105 under Clementi.
117 under Loyang since Loyang will move to Lor Halus.
124 under Bt Merah. 129 under Bishan-Toa Payoh.
136 under Seletar.
141 under Bishan-Toa Payoh.143 and 145 under Clementi.
156 under Sengkang-Hougang.
154 157 under Jurong West if no cut. 159 under Bishan-Toa Payoh.
160 under Clementi.
169 prefer Seletar or Woodlands if the latter move to Mandai in 29.
178 187 under Jurong West.
197 under Bedok.
850E 851 851e 852 Yishun feeders all under Sembawang-Yishun
169 963 963e 965 966 969 all goes Woodlands
96 Clementi feeders all go to Clementi
45 under Seletar.825 under Seletar
974 under Choa Chu KANG-Bukit Panjang
993 under Bulim
You messed things up even more. There needs to be balance between the depots to ensure fairness. Also, this is completely OFF TOPIC
Ppl discuss about numbering so is it an offence if I say renumbered?43M to 104 is that messy? If messy do your company engaged to do the renumbered system at every bus stops? So don’t act like you own everything here,Thanks!
As if you do anyways. Just take a look at the article of BCM. You keep insisting your anti-SBST rhetoric and “correcting” people when they don’t agree with you. If you tell people to stop acting like they own the place, why not YOU stop acting like you own the place as well?
Next, changing 43M -> 104 only is NOT THE SAME as changing literally every trunk service number from 2-201. How many bus numbers have we changed under BCM? TWO. (944 -> 992, 160M -> 993) This is not 1971 or 1973 where we can freely jumble up the numbers all over again. They could because of how disorganised the bus network was and also because the network was WAY smaller than it is now.
Finally, BCM has NOTHING to do with numbering. You treat BCM as if it is god, don’t you? Like literally EVERY SINGLE COMMENT you write is F—K SBST, F—K SBST and F—K SBST. Listen, no one is going to listen to you if you keep throwing your rhetoric around in EVERY SINGLE POST. I had tried stopping myself from intervening in your discussions, but you are literally talking to a kid here. His YouTube account got deleted recently, and he literally had thoughts of self-harm before. All you are doing is add salt onto the wound.
Listen, let me properly explain what BCM is for the nth time. Your bus services are owned by the government. All the bus companies do is to operate and timetable the bus services. Bus routing is planned by the government, rationalisation is planned by the government, everything else is planned by the government.