// Adds dimensions UUID, Author and Topic into GA4
Wednesday, September 23, 2026
29.8 C
Singapore

Pre-purchase HDB BTO flats waiting period returns to pre-pandemic norms

SINGAPORE: In a noteworthy development for prospective homeowners, the waiting period for built-to-order (BTO) flats released by the Housing and Development Board (HDB) in 2023 has reverted to pre-COVID-19 norms, marking a substantial improvement over the last five years.

According to an official statement, approximately 70 per cent of the units launched this year boast waiting periods not exceeding four years. The median waiting period stands at three years and ten months, not only reinstating pre-pandemic levels but surpassing the four-year peak witnessed during the height of the COVID-19 pandemic.

HDB has expressed commitment to sustaining this positive momentum and aims to launch additional units with even shorter waiting periods starting in the upcoming year.

As the demand for residential properties continues in land-scarce Singapore, the reduction in waiting times is expected to have a tangible impact on the accessibility and affordability of housing for Singapore residents.

Hot this week

Elderly couple says cockroaches have been crawling out of HDB chute for 6 months, contractor still hesitant to fix it

An elderly couple says they are willing to pay to replace their faulty HDB garbage chute door, but the contractor they approached has hesitated to begin work over concerns about damaged tiles.

‘We don’t want to give them the bullet’: Why only one DAP minister resigned over the Najib pardon

DAP chief Anthony Loke has resigned as Malaysia's Transport Minister in protest over Najib Razak's conditional pardon, while the party's other ministers remain in Cabinet to prevent a political crisis

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