// Adds dimensions UUID, Author and Topic into GA4
Tuesday, December 16, 2025
25 C
Singapore

CBD office rents hit five-year high; premium office rents to keep rising through 2027: Savills

SINGAPORE: Grade A office rents in Singapore’s Central Business District (CBD) climbed to a five-year high in the third quarter (Q3), with Savills Singapore expecting premium office rents to keep rising through 2027 amid a limited supply of Grade A spaces, Singapore Business Review reported.

Savills’ executive director Alan Cheong said premium office rents are likely to continue rising by 2% to 3% annually over the next two years, supported by sustained occupancy levels and a tight pipeline of new developments.

CBD’s Grade A office rents rose 0.8% quarter-on-quarter (QoQ) to S$9.93 per square foot (psf) as new office supply was limited and occupancy stayed high, while concerns over interest rates began to ease. Year-on-year (YoY), Grade A office rents grew at the fastest pace since the fourth quarter (Q4) of 2022, up 2.1%.

The increase was led by Grade AAA office rents, which climbed 1.0% to S$13.19 psf, the highest since early 2015. Meanwhile, Grade AA and A spaces gained 0.7% and 0.8% to S$10.85 psf and S$8.81 psf, respectively. Marina Bay recorded a ten-year high, with rents rising 1.1% to S$13.17 psf. /TISG

See also  Office rents outside Singapore’s CBD to grow faster as CBD rents rise and vacancy dips, says Cushman & Wakefield

Read also: Office rents outside Singapore’s CBD to grow faster as CBD rents rise and vacancy dips, says Cushman & Wakefield

- Advertisement -

Hot this week

LTA reports high rail reliability, launches real-time MRT and LRT train status webpage

SINGAPORE: Rail reliability across Singapore’s MRT network continues to...

Ringgit opens higher against US dollar on improved sentiment; gains seen to likely ease

KUALA LUMPUR: The ringgit opened slightly higher against the...

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); } });
// //