// Adds dimensions UUID, Author and Topic into GA4
Monday, June 22, 2026
27.7 C
Singapore

Saving Money vs Long Commutes: Could Singaporeans rent in JB and work in SG to cut cost of living?

SINGAPORE: More and more Singaporeans are thinking about renting in Malaysia while still working in Singapore because it’s cheaper.

Renting in Johor Bahru (JB) can save you much more money than renting in Singapore. But Singaporeans struggle to live cross-border, with long trips back and forth every day.

For some people, saving money on rent is worth it. But for others, the tiring journey isn’t worth the hassle. So, is it really a good idea for Singaporeans to rent in Malaysia and work in Singapore?

Struggle of cross-border living for Singaporeans

Dollars and Sense cited young Singaporean couples as an example who might be inclined to this arrangement, as this often happens when they are waiting for their new homes.

Waiting for Build-To-Order (BTO) flats has a three to four years window. Renting in Singapore while they wait is expensive, but renting in JB is cheaper. It sounds good, right?

But here’s the catch: the journey to work is long and tiring.

Imagine waking up super early, getting through immigration, and then travelling to work in Singapore. Travelling alone takes much time and money and is even more complicated for families with kids.

Kids must wake up early just to get to school on time. Plus, they might not get to spend much time with their parents.

Even families with homes in Singapore are considering renting in Malaysia to make some extra money. They can rent out their Singapore homes and stay in a place in JB instead. It seems like a smart financial move.

But again, travelling back and forth can be tough for everyone.

Saving money vs long commutes

PropertyGuru says renting a master bedroom in Singapore can cost between S$1,300 and S$1,800 per month.

Meanwhile, according to HDB’s 4Q2023 Median Rental Statistics, renting a 3-room HDB flat in non-mature locations can range from S$2,600 to S$2,800 per month.

However, a one-bedroom condominium unit in JB can be rented for as low as RM2,100 (S$600) per month, providing substantial savings. However, the daily travel costs from JB to Singapore can increase.

For instance, a round trip by car can cost S$146.80 per month while taking approximately 4 hours each day.

By bus, the expenses can amount to S$52 per person if travelling via SMRT and S$66.80 per person if opting for Causeway Link (CW) buses. By train, the cost would be S$57.20 per person for a month’s commute.

Considering they need to start their day very early, before the sun rises, and their workday ends at 6 pm, they may reach home around 9-10 pm. This leaves them just about 6 hours of rest or sleep each working day.

So when it comes to saving money vs long commutes, renting in Malaysia might save money, but it also means sacrificing a lot of time and energy on long commutes.

For many Singaporeans, the trade-off just isn’t worth it. Saving money is great, but not if it means being exhausted all the time and missing out on family time. /TISG

Read also: Is investing in property near JB’s RTS Link a good idea?

- Advertisement -

Hot this week

Singaporeans react after tourist says locals seem to ‘work a few hours and then sit around all day’

SINGAPORE: A tourist who visited Singapore for about two weeks last year said online that he wanted to move here after sharing his observations of what seemed like a relaxed work culture in the cit...

SG worker says office ‘queen bee’ keeps excluding her from group conversations, asks locals: ‘How should I approach this?’

SINGAPORE: One Singaporean woman says fitting into her workplace has been tougher than expected, claiming that the office “queen bee” has been subtly shutting her out of group conversations. In a...

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