// Adds dimensions UUID, Author and Topic into GA4
Wednesday, June 10, 2026
29.4 C
Singapore

HDB coffee shops can now opt out of budget meal initiative

SINGAPORE: Housing and Development Board (HDB) coffee shops can now decide whether or not to offer budget meals in exchange for rental or Temporary Occupation Licence (TOL) fee discounts, the board said on Saturday (Jan 10), following operators’ and stallholders’ concerns over rising costs and low take-up rates, and residents’ feedback on uneven quality and portion sizes.

With the change, existing rental coffee shops are no longer required to provide budget meals at tenancy renewal. Privately owned HDB coffee shops can also opt out of offering budget meals.

In addition, HDB standardised the number of meal options to three, down from two to six budget meal options previously: an economy rice option, a halal option and a breakfast item, while the requirement to offer two budget drinks remains the same.

The budget meal initiative was first introduced in 2018 at new HDB coffee shops tendered under the Price-Quality Method (PQM) framework. It was later extended to all HDB rental coffee shops renewing their tenancies in May 2023 and then to privately owned HDB coffee shops sold on the open market from December 2023.

As of Dec 31 last year, 350 HDB rental coffee shops and 48 privately owned HDB coffee shops were providing budget meals. /TISG

Read also: ‘Their margins are paper thin’: KF Seetoh speaks out for hawkers and coffeshops amid ‘ridiculous’ rental hikes, high gas prices, and rising cost of living

- Advertisement -

Hot this week

Ex-NMP calls out Singaporeans who accept local Indians but discriminate against ‘Cecas’

Former Nominated Member of Parliament Calvin Cheng said in a social media post that recent anti-Indian comments on social media, particularly from some Singaporean Chinese users, are often disguise...

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