// Adds dimensions UUID, Author and Topic into GA4
Wednesday, June 10, 2026
28.3 C
Singapore

GCB prices expected to stabilize this year

SINGAPORE: A new report on Singapore’s property market has revealed that the prices of Good Class Bungalows (GCBs) are showing signs of bottoming out in the latter half of 2024, sparking optimism among real estate professionals that the market could stabilize in 2025.

According to the data, the average transaction price for GCBs experienced a quarter-on-quarter decline of 6.6% in the third quarter and 5.4% in the fourth quarter of 2024. While prices continued to fall, the rate of decline has decelerated, signalling a potential recovery.

In terms of price per square foot (psf) by land area, GCBs averaged $1,942 in the fourth quarter, a notable 22% drop from their peak in the second quarter of 2023. Despite this, experts remain optimistic about the market’s prospects for 2025.

They attribute this optimism to strong pent-up demand and the limited availability of GCBs, which remain one of Singapore’s most exclusive and desirable property segments.

Transaction volumes also saw a significant uptick in the second half of 2024. A total of 12 GCBs were sold during this period, with the combined transaction value reaching $376 million, a substantial 61% increase compared to the first half of the year.

The highest single transaction was recorded at $52 million, with the land price per square foot reaching $3,434.

Real estate agents expect these positive trends to continue into 2025, supported by an enduring interest in GCBs and the inherent scarcity of these luxury properties in land-scarce Singapore.

- Advertisement -

Hot this week

Tampines MP dives into dumpster bin to show the mistakes people make in recycling

"I took a closer look inside the Bloobins (recycling bins) to uncover some of the most common recycling mistakes — from tissue paper and styrofoam to food waste and unflattened cardboard boxes," sh...

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