// Adds dimensions UUID, Author and Topic into GA4
Monday, August 3, 2026
32.5 C
Singapore

Airport & hotel toilets are on Singaporeans’ best toilets list, while those in MRT stations & coffee shop are the worst

SINGAPORE: Pro-tip: if you have a question about everyday life and you’d really like an honest answer, you can pretty much trust what Reddit users have to say. Over the weekend, when a user on the platform asked others to weigh in on the worst and best public toilets around Singapore, many were eager to share their experiences.

On separate posts on r/askSingapore, u/Future-Travel-2019 first shared a female perspective for their particular picks for best and worst bathrooms “in terms of cleanliness, spaciousness, number of cubicles, lighting, etc”.

Unsurprisingly, Changi Airport and Jewel Changi Airport were on the best toilets list of the post author, who noted that, at Changi, “it’s like some royal palace.” ION Orchard, Suntec City (beside Toys-R-Us), Ngee Ann City, and Marina Bay Sands also made the list.

Unlike other MRT stations, which are on the worst-of list, Stevens MRT is also among the post author’s favourites.

“It’s super clean,” she wrote.

By and large, others agreed with her list, except for Suntec City. Fullerton Hotel, Mandarin Oriental, Capella Sentosa, Shaw Plaza at Balestier, Raffles Hotel, the National Museum, and the recently renovated VivoCity were also commended by commenters.

As for the worst toilets in Singapore, the post author mentioned the following: East Coast Park, Lucky Plaza, Little India MRT, 313 Somerset (small cubicle space, faulty locks for doors), Bukit Panjang MRT, Orchard MRT, Yew Tee MRT, Lot 1, JEM ( dim lights, faulty sinks), Bugis+, Bugis Street, Suntec City (any toilet on the first floor), Wisma Atria (super dim lights), Dhoby Ghaut MRT, and Plaza Singapura (have seen roaches before in some not all).

Other Reddit users seemed only too eager to add their picks.

“You forgot two. Chinatown MRT and Clementi MRT,” wrote one.

“I used to work at a store in Woodlands MRT, and I dreaded going to the toilet there. I would always walk over to Causeway Point to use the toilets there instead. The Woodlands MRT toilets are always so dirty and stuffy,” another added.

“Jurong East MRT. For some reason, there’s always a strong smell before you even reach the toilet entrance, and the floor is forever damp!!! Eww,” a third chimed in.

A male commenter weighed in with, “Almost every coffee shop toilet. I am a guy, so most of the time, I just need to stand in front of the urinal, but some coffee shop toilets are so dirty that I don’t even dare to enter.”

“It’s the smell that takes you out first,” another agreed.

“M. Bishan 284 KPT (the one with the famous kway chap). I avoid that toilet at all costs, even in an emergency,” contributed a commenter.

One, however, added Changi Village Hawker Centre because there are “so many flies.” /TISG

Read also: Singaporean asks why MRT toilets are ‘so filthy’ in one of the richest Asian countries

- Advertisement -

Hot this week

More than half of Singapore’s affluent Gen Z investors look abroad as confidence in financial goals declines: HSBC

The survey found that 55% of affluent Gen Z investors in Singapore prefer investment exposure abroad.

Singapore man struggles with salary comparison after friends secure S$5.5k-S$6k jobs: ‘I can’t help but feel an ache in my chest’

SINGAPORE: A Singaporean man earning S$3,500 a month has admitted he's finding it hard to feel satisfied with his career after seeing many of his friends land jobs paying S$5,500 to S$6,000 a month...

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