// Adds dimensions UUID, Author and Topic into GA4
Tuesday, September 22, 2026
27.2 C
Singapore

HDB resale prices continued to climb upwards in Feb

SINGAPORE: HDB resale prices experienced a 0.5% month-on-month (MoM) increase in February, according to data from 99-SRX, marking a continuous upward trend. This marks a substantial 6.4% rise in prices year-on-year.

The report indicates that both mature and non-mature estates contributed to the overall surge, with mature estates witnessing a 0.5% MoM increase and non-mature estates following closely with a 0.3% MoM rise.

Across various room types, the 4 Room category led the price surge, boasting a significant 9.6% MoM increase. In contrast, 5 Room prices experienced a slight dip of 0.4% MoM. Meanwhile, 3 Room and Executive categories saw respective increases of 0.9% and 0.7% MoM.

Despite the positive price trend, the HDB resale market experienced a dip in sales volume in February, with 2,134 units transacted, marking an 18.8% MoM decrease.

However, a noteworthy 15.4% YoY increase in resale volume was observed in February 2024.

The 4 Room category dominated the market, representing 42.5% of the resale transactions in February, followed by 3 Room (24.9%), 5 Room (23.1%), and Executive (6.4%).

In terms of the distribution by estate, non-mature estates accounted for the majority of transactions at 64.3%, leaving the remaining 35.7% attributed to mature estates.

Hot this week

Man caught on camera stealing speaker from shop at Bukit Batok; owner appeals for help with finding him

A TikTok video shows a man taking a speaker from a shop. The owner of the shop is now asking the public for help.

Couple spends up to S$100k on wedding, expects guests to help cover S$300-a-head costs

SINGAPORE: At its core, giving an ang bao at a wedding is a way for guests to wish the couple good fortune, longevity, and prosperity.   The practice used to be about the sentiment

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