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

Singapore imposes the highest stamp duty on foreign home buyers among 30 cities in the world: Study

SINGAPORE: Singapore imposes the highest stamp duty on foreign property buyers, according to a study of 30 cities worldwide by real estate consultancy Savills, after the Government, last month, doubled the additional buyer’s stamp duty (ABSD) that foreigners must pay.

The study found the stamp duty for foreign buyers in Singapore is more than double that of Hong Kong, which ranked second. The stamp duty payable by foreigners buying property in Hong Kong is 31.3% of the house price.

Cape Town, in South Africa, ranked third, with stamp duty accounting for 13.5%.

Despite the high stamp duties, a Savills representative stated that Singapore remains attractive to ultra-high-net-worth individuals as foreigners accounted for 5% to 7% of total property sales in the first quarter of this year alone.

Savills previously said that while Singapore’s doubling of Foreigner Stamp Duty will benefit other property markets, the regional hubs of Dubai and Singapore are still forecast to lead global prime residential price growth in 2023 as both cities will continue to benefit from sustained inflows of high-net-worth individuals.

 

Hot this week

Singapore bus commuters now face fines up to S$500 for loud audio and feet on seats; more serious offences can cost up to S$5K...

New rules target passenger nuisance behaviour on buses and at interchanges, while bus staff gain added powers to deal with such bad commuters

Plumber, 65, sneaks into Telok Kurau house to assault & steal from helper who broke up with him

From a Shin MIn Daily News story.Chua Kok Poi, 65, pleaded guilty on Sept 18 to five charges, including housebreaking, voluntarily causing hurt, and theft.

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