WWalaoWheyCalculator
← Back to blog
Local Food

The Cai Png Protein Guide: How To Order Like You Mean It

4 September 2026·6 min read·By The Walao Whey Kaki

Cai png is the most-eaten lunch in Singapore and the most wasted protein opportunity in Singapore. Same price, same queue, same "two meat one veg" — and depending on which two things you point at, you walk away with 12g of protein or 35g.

Nobody teaches you this. So here's the whole thing, ranked.

First, understand the tray layout

Cai png stalls are laid out the same way almost everywhere, and it's not an accident:

  • Front row — vegetables, eggs, tofu. Cheap, fast-moving.
  • Middle — the mixed dishes. Meat stretched with vegetables, sauce or batter.
  • Back — the whole cuts. Chicken thigh, fish fillet, char siew. Priciest.

The protein tracks that layout almost perfectly. The back row is where your protein lives, the middle row is where it hides, and the front row is where people think they're being healthy while getting 3g.

The ranking

Rough protein per typical spoonful or piece. Portions vary by auntie, obviously.

The third column is the one to watch if calories matter to you: protein per 100 calories. Above 8 is lean, below 4 means you're paying a lot of calories for not much protein. Steamed beats fried on this column almost every time — same protein, half the oil.

Point at these (15g+)

Dish Protein Cal Per 100 kcal
Steamed or braised chicken thigh ~20g ~200 10.0
Steamed fish ~18g ~150 12.0
Curry chicken (take the meat, not just gravy) ~18g ~280 6.4
Char siew ~15g ~180 8.3
Sambal fish or fried fish fillet ~15g ~230 6.5

Solid middle (8–14g)

Dish Protein Cal Per 100 kcal
Minced pork with tofu ~14g ~200 7.0
Braised pork belly ~12g ~350 3.4
Sweet and sour pork ~12g ~280 4.3
Tau kwa / braised tofu ~10g ~120 8.3
Fried chicken wing ~9g ~160 5.6

The quiet winner

Dish Protein Cal Per 100 kcal
Braised egg (lor nng) ~6g ~80 7.5

Six grams for maybe fifty cents, and it doesn't count as one of your "meats" at most stalls. This is the single best-value item on the entire tray. More on this below.

Looks like meat, isn't really (under 6g)

Dish Protein Cal Per 100 kcal
Ngoh hiang ~6g ~150 4.0
Long beans with minced meat ~5g ~110 4.5
Otah ~4g ~60 6.7
Luncheon meat (1 slice) ~4g ~95 4.2
Spring roll ~3g ~110 2.7
Chap chye ~3g ~90 3.3
Cabbage, sambal brinjal, stir-fried greens ~1–2g ~60 2.5

That last group is the trap. Long beans with minced meat reads as a meat dish. It's a vegetable dish with a garnish. Ngoh hiang and spring rolls are mostly flour. Sweet and sour pork is decent meat wearing a thick batter coat.

The maths that decides your lunch

A bad two-meat-one-veg: spring roll, long beans with minced meat, cabbage, rice. Feels like a full plate. Comes to roughly 12g of protein for about 540 calories — and around 5g of that protein is the rice.

A good one: steamed chicken thigh, tau kwa, stir-fried greens, rice. Same price bracket, same queue. Roughly 33g for about 640 calories.

Twenty-one grams of difference, for pointing at different trays. Do that five lunches a week and it's over 100g of protein a week — the difference between hitting your target and permanently wondering why you're not.

Four auntie-level cheat codes

1. Add the braised egg. Always. At most stalls the egg is a cheap add-on rather than one of your two meats. Six grams for small change. If you take one thing from this article, take the egg.

2. Ask for the meat, not the gravy. Curry chicken and braised dishes sit in a lot of sauce. If you just point, you often get a ladle that's two-thirds gravy. "Auntie, more chicken please" costs nothing and can double what's actually on your plate.

3. Steamed beats fried, for protein per dollar. Battered and fried dishes — sweet and sour pork, fried wontons, cereal-style anything — charge you meat prices for a coating of flour. The same money on steamed fish or braised chicken gets you noticeably more protein.

4. Take less rice. Most stalls will give you less rice if you ask, and some charge the same either way. A bowl of white rice is only about 5g of protein for a lot of the plate. Trading rice space for a third dish is usually the better deal.

What a 35g plate actually looks like

Order this and you're done for lunch:

  • Steamed chicken thigh (~20g)
  • Tau kwa or braised tofu (~10g)
  • Braised egg (~6g)
  • Any green vegetable (~2g)
  • Normal rice

That's roughly 38g for about 720 calories — a third of a typical daily target, from a standard cai png stall, for standard cai png money. No chicken breast, no meal prep, no protein shake.

Want it leaner? Halve the rice and drop the pork belly if it's on there. Cutting the rice alone takes you to roughly 38g for 590 calories — same protein, a full point better on the density column. Rice is where most of the calories on a cai png plate quietly live.

The honest caveat

Cai png is not health food and this isn't a "cai png is secretly clean eating" post. A lot of it is oily, most of it is salty, and the vegetables have usually seen more oil than you'd cook with at home.

But it's what people actually eat, five days a week, and it's entirely possible to eat it well. Ordering better costs nothing and takes no willpower. That's a rare combination.

Not sure what your daily number is? Work it out here. Want the protein in every other local dish? We tabled 116 of them.

Protein figures are approximate and vary by stall and portion. Educational only, not medical advice.

#cai png#economic rice#hawker#singapore#high protein

Kaypoh already? Good.

Work out exactly how much protein you need with our free calculator. No sign up, no nonsense.

Try the calculator →