// Adds dimensions UUID, Author and Topic into GA4
Sunday, August 23, 2026
29 C
Singapore

Bus and train fares to go up by the maximum 7 per cent: Public Transport Council confirms

The Public Transport Council confirmed today (8 Oct) that bus and train fares will rise by seven per cent – the maximum allowable increase under this year’s fare review exercise – for adult commuters from 28 December 2019 onwards.

Adult commuters – who make about 65 per cent of all public transport trips in Singapore – who use travel cards will pay nine cents more per journey from the end of the year while those who use cash or single-trip tickets will have to pay a hefty 20 cents increase more trip.

That is not all. The cost of monthly concession passes is set to rise by between S$1 and S$5.50 while the price of adult monthly travel passes will go up by a steep S$8.

Students, senior citizens and those with disabilities who hold concession cards will see a 4-cent increase per journey, compared to the seven per cent hike for adult commuters. Full-time polytechnic and diploma students who presently pay adult fares will also qualify for concession cards.

The latest fare increase is based on a fare adjustment formula that was introduced last year. The formula takes factors like energy prices and inflation into account in the formula on how fares should be adjusted. -/TISG

Netizens fume as Khaw Boon Wan claims higher public transport fares are necessary to combat rising subsidies

- Advertisement -

Hot this week

Mum’s retrenchment leaves Singaporean worried about supporting her while saving for his own family

He has set aside savings for his mother, but says they could last only about four months.

My friends were shocked that my wife knows all my finances: ‘A husband should always keep some’

SINGAPORE: Is it really wise for married couples to be completely open about their finances, including how much is sitting in each of their bank accounts. One Singaporean man recently took to Red...

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks