// Adds dimensions UUID, Author and Topic into GA4
Friday, July 10, 2026
32.2 C
Singapore

ComfortDelGro’s Q1 2025 operating profit jumps 45.5% YoY to $81.5M

SINGAPORE: ComfortDelGro has recorded its eighth consecutive quarter of improved financial results, thanks largely to stronger earnings from its international operations and tighter cost management in Singapore.

For the first quarter of 2025, the public transport operator posted an operating profit of S$81.5 million — a 45.5 per cent jump compared to the same period last year.

The company’s revenue has also risen by 16.4 per cent year-on-year to nearly S$1.17 billion.

The company pointed to the renewal of its London bus contract as a key factor behind the strong showing. It reported that new contract terms have led to better profit margins, contributing significantly to overall performance.

Back home, ComfortDelGro said efforts to streamline operations and control costs have started to bear fruit, allowing it to maintain profitability despite a more competitive local transport market.

Notably, overseas operations now account for more than half of the group’s total revenue — a first in the company’s history — underlining the growing importance of its international business in cities such as London, Sydney, and Beijing.

- Advertisement -

Hot this week

Why some Singaporeans stopped buying the cheapest option and started saving more

SINGAPORE: If there's one thing many Singaporeans excel at, it's finding clever ways to save money. Recently, many revealed the simple lifestyle changes that quietly ended up saving them a surpri...

Photo of helpers waiting outside maid agency puts treatment of domestic workers under the spotlight

SINGAPORE: A viral photo of several domestic helpers sitting on the floor outside a maid agency has sparked fresh debate over how migrant workers are treated in Singapore, with many netizens callin...

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