// Adds dimensions UUID, Author and Topic into GA4
Saturday, June 20, 2026
30 C
Singapore

Despite million-dollar price trend, public housing in Singapore remains most attainable across APAC

SINGAPORE: Public housing in Singapore remains the most attainable in the Asia-Pacific region, according to the Urban Land Institute’s (ULI) latest report.

ULI’s comprehensive analysis provides valuable insights into the housing markets across Asia-Pacific, emphasizing the diverse challenges and strategies cities face in ensuring home attainability for their residents.

The 2024 Asia Pacific Home Attainability Index highlights that the median price of Housing and Development Board (HDB) units in Singapore is just 4.7 times higher than the median annual household income. This places Singapore at the forefront of housing affordability among major cities in the region.

The report contrasts Singapore’s public housing affordability with that of Shenzhen, which ranks as the least attainable. In Shenzhen, the ratio of median home prices to median annual household income soars to 32 times.

In Singapore, HDB units, which are government-subsidized, form a substantial 90% of the country’s total housing stock. The median price for these units stands at US$461,289, while the median annual household income is US$97,124.

The attainability of public housing in Singapore, however, does not extend to the private housing market. Private homes in the city-state are the most expensive in the region, with an average price of US$1.32 million.

The ULI report indicates that the median private home price in Singapore is 13.5 times higher than the median annual household income, reflecting a significant disparity between the public and private housing sectors.

screenshot 2024 05 22 at 4.41.23 pm
ULI

TISG/

- Advertisement -

Hot this week

Singaporeans discuss why female tenants often get lower room rental rates

On Reddit, a netizen asked: Why are room rentals for females cheaper in sg? Is that how male landlords attract female tenants or is there a greater reason?

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