City Direct Services (CDS) are express bus services in Singapore that connect residential estates with the Central Business District (CBD) / town area via expressways.
These routes operate during the weekday peak hours only, offering City-bound trips in the morning, and return trips in the evenings. These services charge Express fares.
List of City Direct Services
| Service | Route | Heartland Catchment | City Area |
| 646 | Tampines Street 64 ⇄ Shenton Way / Anson Road | Tampines North, Tampines West | CBD |
| 647 | Bukit Batok West Avenue 5 ⇄ Temasek Avenue / Temasek Boulevard | Bukit Batok West, Toh Guan | CBD, Suntec |
| 648 | Woodlands Street 82 ⇄ Shenton Way / Anson Road | Woodlands | Dhoby Ghaut, CBD |
| 649 | Choa Chu Kang Avenue 5 ⇄ Marina Boulevard / Central Boulevard | Choa Chu Kang, Bukit Batok West | CBD |
| 650 | Yishun Street 41 / Yishun Ring Rd ⇄ Shenton Way / Anson Road | Yishun | Dhoby Ghaut, CBD |
| 651 | Jurong West Avenue 3 ⇄ Marina Boulevard / Central Boulevard | Jurong West | CBD |
| 652 | Upper Thomson Road ⇄ Shenton Way / Anson Road | Ang Mo Kio | Dhoby Ghaut, CBD |
| 653 | Hume Avenue / Hillview Avenue ⇄ Marina Boulevard / Central Boulevard | Hillview, Bukit Batok | CBD |
| 654 | Anchorvale Crescent ⇄ Shenton Way / Anson Road | Sengkang West, Sengkang East | |
| 655 | West Coast Road ⇄ Marina Boulevard / Central Boulevard | Pandan Gardens, Teban Gardens, West Coast | |
| 656 | Canberra Road ⇄ Shenton Way / Anson Road | Sembawang | Dhoby Ghaut, CBD |
| 657 | Jurong West Avenue 1 ⇄ Marina Boulevard / Central Boulevard | Jurong East | CBD |
| 660 | Buangkok Green ⇄ Shenton Way / Anson Road | Hougang | Dhoby Ghaut, CBD |
| 660M | Buangkok Crescent ⇄ Shenton Way / Anson Road | Hougang | |
| 661 | Pasir Ris Drive 3 ⇄ Marina Boulevard / Central Boulevard | Pasir Ris | CBD |
| 663 | Yishun Avenue 6 ⇄ Shenton Way / Anson Road | Yishun East | Dhoby Ghaut, CBD |
| 665 | Marsiling Drive ⇄ Shenton Way / Anson Road | Marsiling, Woodlands | |
| 666 | Punggol Drive ⇄ Raffles Boulevard / Temasek Boulevard | Punggol East | CBD, Bayfront, Suntec |
| 667 | Clementi Avenue 4 ⇄ Marina Boulevard / Central Boulevard | Clementi, Dover | CBD |
| 668 | Ang Mo Kio Avenue 5 ⇄ Marina Boulevard / Central Boulevard | Ang Mo Kio, Yio Chu Kang | |
| 670 | Yishun Avenue 7 ⇄ Marina Boulevard / Central Boulevard | Yishun West | |
| 671 | Punggol Road ⇄ Raffles Boulevard / Temasek Boulevard | Sengkang | CBD, Bayfront, Suntec |
| 672 | Hougang Street 51 ⇄ Raffles Boulevard / Temasek Boulevard | Hougang | |
| 673 | Punggol Way ⇄ Temasek Boulevard | Punggol West | |
| 674 | Tengah Boulevard ⇄ Marina Boulevard / Central Boulevard | Tengah | CBD |
| 675 | Yio Chu Kang Road ⇄ Temasek Boulevard | Hougang | CBD, Bayfront, Suntec |
| 676 | Upper Serangoon Road ⇄ Temasek Boulevard | Hougang, Upper Serangoon | |
| 677 | Punggol Road ⇄ Temasek Boulevard | Sengkang West, Sengkang East | |
| 678 | Punggol Central ⇄ Temasek Boulevard | Punggol East | |
| 679 | Sengkang West Way ⇄ Temasek Boulevard | Fernvale, Sengkang West | |
| 680 | Buangkok Crescent ⇄ Orchard Road | Buangkok, Hougang | Novena, Orchard, Dhoby Ghaut |
| 681 | Upper Serangoon Road ⇄ Moulmein Road | Hougang | City Hall, Dhoby Ghaut, Orchard, Novena |
| 682 | Compassvale Drive ⇄ Orchard Road | Anchorvale, Sengkang West | Novena, Orchard, Dhoby Ghaut |
| 683 | Punggol Central ⇄ Moulmein Road | Punggol East | City Hall, Dhoby Ghaut, Orchard, Novena |
| 684 | Keat Hong Link ⇄ Marina Boulevard / Central Boulevard | Brickland, Bukit Batok West | CBD |
List of Withdrawn City Direct Services: (Click to expand)
| City Direct | Route | Introduced | Withdrawn |
| 658 | Bedok Reservoir Road / Kaki Bukit Avenue 1 ⇄ Shenton Way / Anson Road | 19 May 2014 | 17 Dec 2018 |
| 659 | Bedok South Road ⇄ Shenton Way / Anson Road | 9 Jun 2014 | 17 Dec 2018 |
| 662 | Choa Chu Kang North 7 ⇄ Marina Boulevard / Central Boulevard | 6 Oct 2015 | 17 Dec 2018 |
| 664 | Tampines Street 41 ⇄ Marina Boulevard / Central Boulevard | 6 Oct 2015 | 17 Dec 2018 |
| 669 | Bedok North Road ⇄ Marina Boulevard / Central Boulevard | 22 Mar 2016 | 3 Jun 2019 |
Brief History
City Direct Services (CDS) were introduced under the Bus Services Enhancement Programme (BSEP) in line with the Government’s plan to provide more options for commuters using stretches of existing rail lines which experience persistently high ridership. Most of these routes were introduced between 2013 and 2016.
With limited stops and usage of expressways, the travel time for commuters is comparable to taking a feeder bus/LRT and transferring to the MRT to the City, and without the hassle of transferring between different public transport modes. For this convenience, CDS charges express fares, which are higher than regular basic fares.
An initial 10 City Direct services were launched, starting with CDS 651 in September 2013, and CDS 652–660 from January 2014 to June 2014. Each City Direct service was introduced with two morning and evening trips, with more trips added on routes with higher demand. Four similar
In March 2024, an expansion of the BSEP was announced, increasing the number of CDS to 20. This was revised to 22 new CDS services in March 2015. Services 661–672 were introduced between September 2015 and November 2016.
In July 2024, the Bus Connectivity Enhancement Programme was launched. Under the BCEP, the Government announced that more peak-hour express bus services, such as City Direct Services, will be introduced to provide alternatives for residents to complement busier MRT lines.
In December 2025, a new tranche of City Direct services were launched under the BCEP that connected the heartlands with Novena, Newton, Orchard, Somerset, and Dhoby Ghaut. This was the first time that City Direct routes were not routed to serve the CBD.
In June 2026, existing peak-hour express bus routes which served the CBD, namely 513, 868E, 951E, 982E & 850E, were converted to City Direct services and renumbered as 646 to 650, respectively. All services (except 868E) were introduced under the BSEP but predated the launch of the first City Direct service. Numbered City Direct 646 to 650, this is the first time that the 64x series route numbers are used for City Direct; these were previously used by Scheme B bus routes that have since been discontinued.
Private Bus Operators
At the start, Private Bus Operators were contracted to operate City Direct routes, to augment the resources of public transport operators.
After their initial two-year operating contracts with Private Bus Operators had expired, most City Direct services were transferred to Public Transport Operators. Poorer performing services were withdrawn. CDS 658, 659, 662 & 664 were withdrawn in December 2018, while CDS 669 was withdrawn in June 2019. By December 2020, all City Direct bus services were operated by Public Bus Operators.
Handover dates are detailed in the Timeline section below.
Fare History
When the first 10 CDS routes were introduced between 2013–2014, flat fares were charged, equivalent to the full distance of the bus route under the distance-based Express fare scheme. Fares could be paid via card or cash upon boarding, with no tap-out necessary, and no transfer discounts offered.
When the subsequent tranche of CDS routes 661–665 was launched in September 2015, these services were integrated with the distance-based fare structure used across the public transport network. With buses now fitted with the same fare collection equipment as public buses (including entry and exit readers), commuters could pay Express fares corresponding to the exact distance travelled, and benefit from transfer discounts between CDS and other buses/trains under distance-based fare rules.
An LTA press release in September 2015 mentioned that the existing 651–660 would be converted to Distance Fares progressively from 4Q 2015, with the full transition expected to be completed by mid-2016.
CBD Routing
In general, the routing in CBD for CDS is as follows:
| CDS | Morning Peak (Alighting Points) | Evening Peak (Boarding Points) |
| 649, 651, 653, 655, 657, 661, 667, 668, 670, 674 & 684 |
|
|
| 648, 650, 652, 656, 660, 660M, 663 & 665 |
|
|
| 646 & 654 |
|
|
| 666, 671 & 672 |
|
|
| 673, 675, 676, 677, 678 & 679 |
|
|
| 647 |
|
|
| 680 & 682 |
|
|
| 681 & 683 |
|
|
As of 15 Jun 2026:
| Road Name |
Bus Stop | Morning Peak |
Evening Peak |
| Anson Rd | (03241) Aft Enggor St | 651, 653, 655, 657, 661, 666, 667, 668, 670, 671, 672, 674 & 684 | 652, 654, 656, 660, 660M, 663 & 665 |
| (03222) Hub Synergy Pt | 647, 649, 673, 675, 676, 677, 678 & 679 | 646, 648 & 650 | |
| (03223) Tanjong Pagar Stn Exit C | 673, 675, 676, 677, 678 & 679 | — | |
| Bayfront Ave | (03511) Aft Bayfront Stn Exit E | 666, 671, 672, 673, 675, 676, 677, 678 & 679 | — |
| (03501) Marina Bay Sands Theatre | 666, 671, 672, 673, 675, 676, 677, 678 & 679 | — | |
| (03509) Bayfront Stn Exit B / MBS | — | 666, 671, 672, 673, 675, 676, 677, 678 & 679 | |
| (03519) Bayfront Stn Exit A | — | 666, 671, 672, 673, 675, 676, 677, 678 & 679 | |
| Bras Basah Rd | (08069) Bencoolen Stn Exit B | 648, 650, 652, 656, 660, 660M, 663 & 665 | 681 & 683 |
| (04179) Aft Bras Basah Stn Exit A | 648, 650, 652, 656, 660, 660M, 663 & 665 | 681 & 683 | |
| (02049) Raffles Hotel | 648, 650, 652, 656, 660, 660M, 663 & 665 | 681 & 683 | |
| Cecil St | (03151) Aft Telok Ayer St | 673, 675, 676, 677, 678 & 679 | — |
| Central Blvd | (03539) Marina Bay Stn | 646 & 654 | 649, 651, 653, 655, 657, 661, 666, 667, 668, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679 & 684 |
| (03539) Downtown Stn Exit E | 646 & 654 | 649, 651, 653, 655, 657, 661, 666, 667, 668, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679 & 684 | |
| Collyer Quay | (03019) OUE Bayfront | 648, 650, 652, 656, 660, 660M, 663 & 665 | 647 |
| Esplanade Dr | (02111) Esplanade Bridge | 647 | 648, 650, 652, 656, 660, 660M, 663 & 665 |
| (02029) Aft Esplanade Stn Exit D | — | 647 | |
| Fullerton Rd | (03011) Fullerton Sq | 647 | 648, 650, 652, 656, 660, 660M, 663 & 665 |
| Marina Blvd | (03381) The Sail | 649, 651, 653, 655, 657, 661, 666, 667, 668, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679 & 684 | 646 & 654 |
| (03391) Marina Bay Financial Ctr | 649, 651, 653, 655, 657, 661, 666, 667, 668, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679 & 684 | 646 & 654 | |
| Moulmein Rd | (50119) St. Joseph Instn Jnr | 680 & 682 | 681 & 683 |
| (50111) Revival Ctr Ch | 681 & 683 | 680 & 682 | |
| Newton Rd | (50069) Hotel Royal | 680 & 682 | 681 & 683 |
| (50061) Opp Hotel Royal | 681 & 683 | 680 & 682 | |
| Nicoll Highway | (02119) Opp War Memorial Pk | 648, 650, 652, 656, 660, 660M, 663 & 665 | — |
| Orchard Rd | (09048) Orchard Stn/Lucky Plaza | 680 & 682 | 681 & 683 |
| (09037) Bef Cairnhill Rd | 680 & 682 | 681 & 683 | |
| (08137) Orchard Plaza | 680 & 682 | 681 & 683 | |
| (08057) Dhoby Ghaut Stn | 648, 650, 652, 656, 660, 660M, 663 & 665 | — | |
| (08058) Aft Dhoby Ghaut Stn | 680 & 682 | 681 & 683 | |
| (08041) YMCA | 681 & 683 | 648, 650, 652, 656, 660, 660M, 663, 665, 680 & 682 | |
| Orchard Turn | (09011) Opp Ngee Ann City | 681 & 683 | 680 & 682 |
| (09023) Opp Orchard Stn/ION | 681 & 683 | 680 & 682 | |
| Penang Rd | (08031) Dhoby Ghaut Stn Exit B | 681 & 683 | 648, 650, 652, 656, 660, 660M, 663, 665, 680 & 682 |
| (08111) Winsland Hse | 681 & 683 | 680 & 682 | |
| Raffles Ave | (02051) The Float@Marina Bay | — | 647 |
| (02061) The Esplanade | — | 647 | |
| Raffles Blvd | (02089) Promenade Stn/Pan Pacific | 666, 671 & 672 | — |
| Raffles Quay | (03059) One Raffles Quay | 648, 650, 652, 656, 660, 660M, 663 & 665 | 647 |
| Robinson Rd | (03011) Aft Capital Twr | 647, 649, 651, 653, 655, 657, 661, 666, 667, 668, 670, 671, 672, 674 & 684 | 646, 648, 650, 652, 654, 656, 660, 660M, 663 & 665 |
| (03071) 80 Robinson Rd | 647, 649, 651, 653, 655, 657, 661, 666, 667, 668, 670, 671, 672, 674 & 684 | 646, 648, 650, 652, 654, 656, 660, 660M, 663 & 665 | |
| (03031) Raffles Pl Stn Exit F | 647 | 648, 650, 652, 656, 660, 660M, 663 & 665 | |
| Scotts Rd | (40179) Env Bldg | 680 & 682 | 681 & 683 |
| (40181) Newton Stn Exit A | 681 & 683 | 680 & 682 | |
| Shenton Way | (03129) UIC Bldg | 646, 648, 650, 652, 654, 656, 660, 660M, 663 & 665 | 647, 649, 651, 653, 655, 657, 661, 666, 667, 668, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679 & 684 |
| (03217) Aft Straits Blvd | — | 647, 649, 673, 674, 675, 676, 677, 678, 679 & 684 | |
| (03218) Opp MAS Bldg | 646, 648, 650, 652, 654, 656, 660, 660M, 663 & 665 | 651, 653, 655, 657, 661, 666, 667, 668, 670, 671 & 672 | |
| Somerset Rd | (08121) Somerset Stn | 681 & 683 | 680 & 682 |
| Stamford Rd | (04111) Capitol Bldg | 681 & 683 | 648, 650, 652, 656, 660, 660M, 663 & 665 |
| (04121) SMU | 681 & 683 | 648, 650, 652, 656, 660, 660M, 663 & 665 | |
| Temasek Ave | (02169) Promenade Stn Exit B | 666, 671, 672, 673, 675, 676, 677, 678 & 679 | — |
| (02161) Aft Promenade Stn Exit C | 647 | 647, 666, 671, 672, 673, 675, 676, 677, 678 & 679 | |
| (02171) Opp The Ritz-Carlton | — | 647, 666, 671, 672, 673, 675, 676, 677, 678 & 679 | |
| Temasek Blvd | (02141) Suntec Twr Two | 673, 675, 676, 677, 678 & 679 | — |
| (02149) Suntec Twr Three | — | 673, 675, 676, 677, 678 & 679 | |
| (02151) Suntec Convention Ctr | 647 | 647, 666, 671 & 672 | |
| (02159) Opp Suntec Convention Ctr | 666, 671 & 672 | — |
Operating Hours:
City Direct Services operate on weekdays only (excluding public holidays).
Single-direction trips from the Heartlands to the CBD are operated during the morning peak hours, while return trips are operated during the evening peak hours.
Evening return trips will be brought forward to the early afternoon on Christmas Eve, New Year’s Eve & Chinese New Year’s Eve, should these dates fall on a Weekday. Exact departure timings will be announced by the respective bus operators closer to the dates.
Fares:
These services charge Express fares based on distance-based fare scheme.
Timeline
- 2012 (21 Nov): Tender for CDS 651 published (Contract VT371)
- 2013 (13 Jun): Tender for CDS 652 – 657 published (Contract VT387); Contract for CDS 651 awarded (Contract VT371).
- 2013 (09 Nov): Contracts for CDS 652 – 657 awarded (Contract VT387)
- 2013 (26 Nov): Tender for CDS 658 – 660 published (Contract PT162)
- 2014 (03 Feb): Contracts for CDS 658 – 660 awarded (Contract PT162)
- 2015 (09 Feb): Tender for CDS 661 – 665 published (Contract PT221)
- 2015 (11 Mar): Announcement of 12 more CDS to be launched by LTA from Q2 2015 onward, an increase of 2 CDS from the original announcement.
- 2015 (21 Jul): Contracts for CDS 661 – 665 awarded (Contract PT221); Routing region for CDS 666 – 670 announced.
- 2015 (05 Aug): Tender for CDS 666 – 670 published (Contract PT233)
- 2015 (14 Dec): Contracts for CDS 666 – 670 awarded (Contract PT233)
- 2016 (18 Jan): 1 year extension of contracts for CDS 651 – 657
- 2016 (15 Apr): Tender for CDS 651, 671 & 672 published (Contract PT270)
- 2016 (01 Aug): Contracts for CDS 651, 671 & 672 awarded (Contract PT270); Tender for CDS 652 – 657 published (Contract PT288)
- 2016 (14 Nov): Contract for CDS 654 awarded (Contract PT288). No award for CDS 653, 655, 656 & 657.
- 2017 (Apr): Transfer of operations for CDS 653, 655, 656 & 657 to Public Transport Operators under the Bus Contracting Model (BCM)
- 2017 (12 May): Tender for CDS 658 – 660 published (Contract PT309)
- 2017 (22 Jun): Tender for CDS 661 – 665 published (Contract PT321)
- 2017 (10 Jul): No award for CDS 658 – 660
- 2017 (30 Aug): No award for CDS 658 – 660
- 2017 (28 Sep): Operations for CDS 663 transferred to Public Transport Operator Tower Transit under the BCM
- 2017 (12 Oct): Operations for CDS 665 transferred to Public Transport Operator Tower Transit under the BCM
- 2018 (17 Dec): CDS 658, 659, 662 & 664 discontinued
- 2019 (02 Jan): Operations for CDS 660 & 661 transferred to Public Transport Operators SBS Transit & Go-Ahead Singapore respectively under the BCM
- 2019 (03 Jun): CDS 669 discontinued
- 2019 (22 Jul): Operations for CDS 654 transferred to Public Transport Operator SBS Transit under the BCM
- 2020 (06 Jan): Operations for CDS 652 transferred to Public Transport Operator SMRT Buses under the BCM
- 2020 (13 Jan): Operations for CDS 651 transferred to Public Transport Operator Tower Transit under the BCM; Operations for CDS 671 & 672 transferred to Public Transport Operator SBS Transit under the BCM
- 2020 (02 Mar): Operations for CDS 666 transferred to Public Transport Operator Go-Ahead Singapore under the BCM
- 2020 (09 Mar): Operations for CDS 667 transferred to Public Transport Operator SBS Transit under the BCM
- 2020 (30 Mar): Operations for CDS 670 transferred to Public Transport Operator SMRT Buses under the BCM
- 2020 (14 Dec): Operations for CDS 668 transferred to Public Transport Operator SBS Transit under the BCM
- 2024 (14 Oct): Launch of CDS 673 under the Bus Connectivity Enhancement Programme (BCEP)
- 2024 (11 Nov): Launch of supplementary CDS 660M under BCEP; Extension of CDS 654 to Anchorvale Cres under BCEP; Extension of CDS 671 & 672 to Temasek Blvd via Bayfront Ave under BCEP
- 2024 (25 Nov): Launch of CDS 674 under BCEP; Extension of CDS 666 to Temasek Blvd via Bayfront Ave under BCEP
- 2025 (02 Jan): Launch of CDS 675, 676, 677, 678 under BCEP
- 2025 (15 Dec): Launch of CDS 679, 680, 681, 682 & 683 under BCEP
- 2026 (15 Jun): Launch of CDS 684 under BCEP; Conversion of peak hour Express Bus Services 513, 868E, 951E, 982E & 850E to City Direct Bus Services 646 – 650 respectively
LTA BSEP Poster for CDS
External Links:
Back to Bus Services

513, 850E, 951E, 982E should all become city direct services and renumbered to 658, 659, 662, & 664 respectively. Should have reintroduced 669
this aged differently. all of them, alongside 868E, will be renumbered into city directs 646-650 and also get enhanced. but they still could’ve used the missing CDS numbers
City Direct Services should amend to their nearest neighbourhood Bus Interchanges/Terminals and Depots
651 (Bulim Bus Depot to Marina South ITH via Jurong West, Pioneer)
652 (Ang Mo Kio ITH to Marina South ITH via Upper Thomson)
653 (Future Hillview INT to Marina South ITH Via Bukit Batok East)
654 (Sengkang West Depot to Marina South ITH Via Rivervale)
655 (Jurong East ITH to Marina South ITH Via Teban Gardens)
656 (Remains as it is)
657 (Bulim Bus Depot to Marina South ITH via Jurong East)
660 (Buangkok ITH to Marina South ITH Via Hougang)
661 (Loyang Bus Depot to Marina South ITH via Pasir Ris)
663 (Remains as it is)
665 (Woodlands ITH to Marina South ITH Via Marsiling & Woodlands South)
666 (Punggol INT to Marina South ITH Via Punggol East)
667 (Clementi ITH to Marina South ITH Via Dover)
668 (Yio Chu Kang INT to Marina South ITH Via Ang Mo Kio)
670 (Yishun ITH to Marina South ITH via Yishun West)
671 (Compassvale INT to Marina South ITH Via Sengkang)
672 (Hougang Central INT to Marina South ITH)
If the five city direct services that got withdrawn survived, and were handed over to public bus operators, here are what are their operators now:
658: SBS Transit (Serangoon-Eunos Bus Package; either BNDEP or HGDEP)
659: SBS Transit (Bedok Bus Package; BNDEP)
662: SMRT (Choa Chu Kang-Bukit Panjang Bus Package; KJDEP)
664: SBS Transit (Tampines Bus Package; BNDEP)
669: SBS Transit (Bedok Bus Package; either BNDEP or HGDEP)
Updated:
658: SBS Transit (Serangoon-Eunos Bus Package; HGDEP)
659: SBS Transit (Bedok Bus Package; BNDEP)
662: SMRT Buses (Choa Chu Kang-Bukit Panjang Bus Package; KJDEP)
664: SBS Transit (Tampines Bus Package; BNDEP)
669: SBS Transit (Bedok Bus Package; BNDEP)
Now contracts:
658: SBS Transit (Serangoon-Eunos Bus Package; HGDEP)
659: SBS Transit (Bedok Bus Package; BNDEP)
662: SMRT Buses (Choa Chu Kang-Bukit Panjang Bus Package; KJDEP)
664: Go-Ahead Singapore (Tampines Bus Package; ECDEP)
669: SBS Transit (Bedok Bus Package; BNDEP)
With staggering work hours these days, please consider having the bus services for workers who start/end work earlier/later. I am looking at bus 657. The current bus service starts a little too late, which means I can only reach office at 8.30am.
Sengkang residents would prefer if two of bus no. 654 starts around 7am and another two at 8am instead of having 6 buses between 7.30 to 7.55 am. It does not cater to those who start work at 8am or 9am but only for 8.30am. Would really be appreciated if more time slots are given.
Do you have transport from Khatib to Robinson road please
670