// Adds dimensions UUID, Author and Topic into GA4
Tuesday, May 5, 2026
30.1 C
Singapore

‘This is price gouging,’ diners say as hawkers defend takeaway charge

SINGAPORE: A growing number of Singaporeans online are pushing back against takeaway charges imposed by some hawkers, arguing that such fees are increasingly being used to boost profits rather than simply cover costs.

The issue has gained traction in recent weeks after diners reported being charged up to 30 cents for takeaway packaging. In one case highlighted by Stomp, a customer who visited a coffeeshop in Bidadari said he was billed close to $1 for three takeaway bags.

“I had expected plastic containers, even though 30 cents is on the high side, as it’s usually 20 cents—unless it’s for bigger containers that cost 40 to 50 cents, which I understand,” he said.

“I was shocked when they gave me my food in plastic bags. When I queried it, the stall pointed to a notice stating takeaway costs 30 cents. I replied that such charges are typically for containers—this was the first time I’d encountered this.”

He added that while he did not mind paying for proper packaging, a flat fee for minimal wrapping felt unreasonable. “It doesn’t make sense to charge 30 cents when the food is simply packed in plastic bags,” he said.

The stallholders defended the practice, telling Stomp that packaging charges are now commonplace, regardless of whether bags or containers are used.

When Stomp canvassed opinions on the street, responses were mixed. Some diners felt the charges were justified, while others said such costs should be absorbed by stallholders.

Online, however, sentiment skewed more critical. One commenter argued that even small increases were unjustified given economies of scale, saying, “From a cost accounting perspective, I think even a 10-cent increase is too much to pass to the consumer. You are buying in bulk; your costs for dabao only go up a fraction of a cent per packet. This is just price gouging.”

Another commenter pointed out, “Stalls are now not only profiting from their products, they are now profiting from their containers. Don’t tell me it’s reasonable, as they need to pay for it because it’s not.

“Which stall owner pays 30 cents for a container? They probably buy in bulk from some China online shop at say 5 cents each (could be less) and mark up. If each container earns them 25 cents, it becomes a profit centre. e.g.100 containers a month sold 25 cents profit x 100 daily x 30 days/month = extra SGD750 profit/month from containers.”

Others said they immediately boycott hawkers who try to impose hefty takeaway charges. One netizen said, “The worst is actually stalls who charge the extra fee even when you bring your own container & yes, before you say anything, I do vote with my wallet and boycott these stalls once they hit me with this rubbish.”

“NO. No reason to charge consumer for takeaway box, plastic box, etc. It should be part of their costs,” another commenter said emphatically, “Can use wrapper, plastic bag or styrofoam box , they don’t use than they use plastic box to charge $0.30-0.50, it’s really wastage of plastic box, eat already the plastic box, throw away. Now even box also want make money.”

Hawkers, however, maintain that rising costs leave them little choice. One stallholder noted that, without bulk purchasing, packaging expenses can add up, averaging about 15 cents for styrofoam boxes with cutlery and bags, and up to 25 cents for plastic containers.

Even so, he added that he personally does not believe customers should be charged for simpler packaging, such as food bags or styrofoam boxes.

- Advertisement -

Hot this week

Ex-SIA planes that were smuggled into Iran destroyed in war

A total of 5 former SQ 777-200ERs were smuggled into Iran in 2025.

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