// Adds dimensions UUID, Author and Topic into GA4
Saturday, September 12, 2026
26.4 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

Hot this week

‘My boss literally tells me what to click and type’ : Singapore worker frustrated as boss micromanages his every move

The worker said he shares a computer with his manager, who allegedly monitors his WhatsApp messages and tells him how to reply.

‘Should I just work as a security guard?’ Man asks after job hunting for months and only getting low offers

He said he found security officer positions offering between S$2,600 and S$3,000, plus a “decent salary increment according to rank”.

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