// Adds dimensions UUID, Author and Topic into GA4
Tuesday, July 14, 2026
30 C
Singapore

Old Chang Kee’s net profit jumps 42% as F&B chain reports strong first-half 2025 financial results

SINGAPORE: Popular Singapore food chain Old Chang Kee has posted impressive financial results for the first half of its 2025 fiscal year, with net profit soaring by 42% year-on-year (YoY).

The company reported a net profit of $6.2 million for the six months ending 30 Sept, a significant increase from $4.4 million in the same period last year.

The company’s gross profit also saw notable growth, rising 7.9% YoY to reach $36 million, up from $33.3 million in H1 2024.

This performance was driven by a consistent increase in revenue across various business segments, showcasing the brand’s resilience and expansion strategy.

Revenue climbed 3.2% YoY to $52 million, compared to $50.2 million in the first half of 2024. This uptick was mainly attributed to stronger retail and non-retail sales.

Retail sales alone grew by 1.2% YoY to $0.5 million, supported by both new outlets and increased sales from existing locations, though partially offset by revenue losses from closed outlets.

Additionally, non-retail revenue, including services like delivery and catering, rose significantly by 19.3% or approximately $1.0 million.

Earnings per share for the period stood at $0.0512, reflecting the company’s improved profitability and operational efficiency.

- Advertisement -

Hot this week

How Johor gave the ex-PM a new lifeline for freedom

There are many reasons why Najib Razak is still a popular topic in the Johor elections, certainly among political figures from all sides of the political class. And this is probably why it is the c...

Ex-PAP MP Amrin Amin: Resilience cannot mean enduring everything

From Mr Amrin's FB post about bullying and parenting. "But resilience cannot mean enduring everything. Sometimes the lesson is to stand firm. Sometimes it is to walk away, find other friends and si...

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