// Adds dimensions UUID, Author and Topic into GA4
Friday, September 4, 2026
28.1 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

Man weighs new job offer with same salary but no WFH—Redditors urge him not to make the switch

SINGAPORE: It seems working from home has become something workers are increasingly reluctant to give up. Recently, a Singaporean took to Reddit to ask whether he should jump ship to a new role o...

Does having an open relationship/marriage last in Singapore in the long run? Netizens share their experiences

On Reddit, a netizen asked: "Has anyone seen an open relationship/marriage succeed long-term in SG?"

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