// Adds dimensions UUID, Author and Topic into GA4
Thursday, May 7, 2026
26.8 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.

 

- Advertisement -

Hot this week

Malaysian man carried out arson attack for S$2,500, endangering family of seven

For a reward of $2,500, a Malaysian man, wearing an umbrella, mask, hat, and hooded shirt, went to the home of a debtor who was accused of being a fraudster. He locked the door of the HDB flat, pou...

Singapore renovator gets 16 months’ jail for cheating clients of S$40,000+

Contractor who cheated clients out of thousands of dollars to fund his lifestyle gets 16 months jail, S$13K fine

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