Download the entire guide here
Your mee soto noodles contain about 40mg of sodium. The bowl they arrive in contains 2,678mg. That is not a typo, and it is the single most useful thing to understand about eating at a Singapore hawker centre.
Almost every hawker nutrition figure you will find online is an estimate — an app number scaled off a portion size nobody actually weighed. The figures below are not. Every dish on this page was weighed and measured by the Department of Nutrition and Dietetics at KK Women's and Children's Hospital (KKH), a member of the SingHealth group, and published through HealthXchange.
We have compiled all 41 of them into a single table, ranked by sodium, with the KKH serving weight printed against every figure. That last part matters more than it sounds. A sodium number without a serving weight is close to meaningless: a 798g bowl and a 311g plate are not comparable, and most published comparisons quietly ignore this.
- All 41 dishes ranked by sodium, with serving weight and protein
- Why the soup version of a dish usually measures higher than the dry version
- The three changes that reduce sodium without changing what you order
- The full source and method, so you can check any figure yourself
Why the bowl matters more than the noodles
The reason the mee soto figure is so lopsided is that noodles are close to sodium-free. Plain yellow noodles carry almost nothing. The salt is in the broth, the seasoning, the sambal and the sauce — everything you did not consciously order.
This has a practical consequence. Cutting hawker food out of your week is neither realistic nor necessary. Leaving the broth behind is realistic, takes no willpower, and is the single largest reduction available to you at a hawker centre.
The 41-dish hawker board
Ranked by sodium, highest first. Green is under 1,000mg. Orange is a dish that uses your entire daily sodium allowance — 2,000mg, per the Health Promotion Board — in one serving.
| Dish | KKH serving weight | Protein | Sodium | % of daily limit |
|---|---|---|---|---|
| Fishball Noodle - Soup | 798g | 30g | 2,913mg | 146% |
| Mee Soto | 541g | 19g | 2,678mg | 134% |
| Mee Siam | 655g | 28g | 2,659mg | 133% |
| Lor Mee | 540g | 15g | 2,538mg | 127% |
| Prawn Mee - Soup | 574g | 19g | 2,422mg | 121% |
| Kway Chap | 611g | 33g | 2,303mg | 115% |
| Penang Laksa | 569g | 18g | 2,287mg | 114% |
| Ban Mian | 528g | 22g | 2,196mg | 110% |
| Mee Rebus | 571g | 23g | 2,164mg | 108% |
| Roti John | 252.5g | 25g | 2,011mg | 101% |
| Lontong with Sayur Lodeh | 775g | 46g | 1,930mg | 96% |
| Mee Goreng | 309g | 18g | 1,851mg | 93% |
| Wonton Mee - Soup | 545g | 19g | 1,804mg | 90% |
| Minced Pork Noodle (Bak Chor Mee) - Soup | 597g | 18g | 1,740mg | 87% |
| Sup Tulang / Mutton Soup | 934g | 20g | 1,658mg | 83% |
| Nasi Biryani with Chicken | 488g | 39g | 1,656mg | 83% |
| Fishball Noodle - Dry | 327g | 19g | 1,645mg | 82% |
| Laksa Lemak | 540g | 17g | 1,588mg | 79% |
| Beehoon Soto (Mee Hoon Soto) | 902g | 20g | 1,537mg | 77% |
| Wonton Mee - Dry | 330g | 19g | 1,502mg | 75% |
| Minced Pork Noodle (Bak Chor Mee) - Dry | 311g | 20g | 1,491mg | 75% |
| Nasi Goreng | 377g | 21g | 1,467mg | 73% |
| Char Kway Teow | 384g | 23g | 1,459mg | 73% |
| Fried Hokkien Prawn Mee | 442g | 18g | 1,423mg | 71% |
| Sliced Fish Bee Hoon Soup | 686g | 22g | 1,413mg | 71% |
| Mutton Dum Biryani | 859g | 47g | 1,400mg | 70% |
| Mutton Murtabak | 211g | 15g | 1,365mg | 68% |
| Fried Carrot Cake | 295g | 2g | 1,289mg | 64% |
| Chicken Rice (Roasted, with skin) | 382g | 25g | 1,287mg | 64% |
| Fried Rice | 428g | 28g | 1,245mg | 62% |
| Chicken Soup with Chinese Herbs | 534g | 24g | 909mg | 45% |
| Char Siew Rice | 327g | 24g | 880mg | 44% |
| Nasi Lemak | 210g | 13g | 838mg | 42% |
| Porridge with Minced Pork & Century Egg | 512g | 11g | 834mg | 42% |
| Duck Rice - Roasted (with skin) | 410g | 24g | 545mg | 27% |
| Chicken Tandoori | 112g | 19g | 480mg | 24% |
| Beef Rendang | 93g | 24g | 466mg | 23% |
| Fish Tikka | 99g | 23g | 414mg | 21% |
| Duck Rice - skin removed | 350g | 24g | 326mg | 16% |
| Ayam Goreng | 80g | 16g | 228mg | 11% |
| Chicken Tikka | 71g | 24g | 187mg | 9% |
Source: KKH Department of Nutrition and Dietetics via SingHealth HealthXchange. Daily sodium limit of 2,000mg per the Health Promotion Board. Portions vary by stall — treat every figure as ±10%.
Four things the table shows
1. Ten of these 41 dishes exceed the entire daily sodium limit in one serving
Not one meal's worth. One day's worth, in one sitting. Fishball noodle soup at 2,913mg is the highest, followed by mee soto at 2,678mg and mee siam at 2,659mg. Thirty of the 41 dishes clear 1,000mg — half a day — on their own.
2. Soup versions measure higher than dry versions
This runs against what most people assume. Fishball noodle soup measures 2,913mg; the dry version, 1,645mg. Bak chor mee soup is 1,740mg against 1,491mg dry. Wonton mee soup is 1,804mg against 1,502mg.
The reason is volume, not concentration. Per 100g the dry versions are saltier — the sauce is doing the work. But a soup serving weighs far more, and you consume the broth along with it. Which is why the advice is not "order dry" but "order soup and leave the broth."
3. Removing the skin changes the dish more than switching dishes does
KKH measured duck rice twice. Roasted with the skin on: 410g, 545mg of sodium, 24g of protein. With the skin removed: 350g, 326mg of sodium, and the same 24g of protein.
Identical protein, 219mg less sodium, and 9g less fat — for three words at the stall. There is no other single change on this board that costs so little.
4. The highest-protein dishes are usually the highest-sodium ones
If you train, this is the awkward finding. Most dishes here sit between 15g and 20g of protein. The ones that clear 25g — kway chap at 33g, fishball noodle soup at 30g, mutton dum biryani at 47g — tend to bring 1,400mg to 2,900mg of sodium with them.
The exceptions are worth knowing by name: duck rice with the skin removed carries 24g of protein for 326mg of sodium, and chicken soup with Chinese herbs carries 24g for 909mg.
Three things that cost you nothing
Don't finish the broth
The noodles were never the problem. In mee soto the noodles carry roughly 40mg; the bowl carries 2,678mg. You do not have to change what you order — only what you leave behind.
Less gravy, less sauce, skin off
KKH repeats this on nearly every dish they measured. Duck rice shows what it is worth: 545mg down to 326mg, with no loss of protein.
Learn the bottom of the board
Most people can name the dishes they think are bad for them. Very few can name the ones that are not. Duck rice with the skin removed (326mg), porridge with minced pork and century egg (834mg), nasi lemak (838mg) and char siew rice (880mg) are all complete meals under half the daily sodium limit.
Method and sources
All nutritional figures are from the Department of Nutrition and Dietetics at KK Women's and Children's Hospital (KKH), a member of the SingHealth group, published via HealthXchange in the "Best and Worst Singapore Hawker Food" series covering Chinese, Malay and Indian dishes (Ref: S13). The 2,000mg daily sodium limit is the Health Promotion Board's figure for adults.
Serving weights, protein and sodium are transcribed directly from KKH's published tables with no adjustment. Percentage of daily limit is calculated from those figures. This board covers complete one-dish meals plus dishes ordered as the protein element of a meal; per-piece dim sum, snacks, plain breads and shared platters are also measured by KKH but are excluded here so that like is compared with like.
Limits. Portions vary by stall — treat every figure as ±10%. KKH measured one portion of each dish, not an average across stalls. Dishes not listed were not measured in this series; their absence is not a verdict. This page is general information, not medical or dietary advice. If you have high blood pressure, kidney disease, or you are pregnant, your targets come from your doctor.
Frequently asked questions
Which Singapore hawker dish has the most sodium?
Fishball noodle soup. KKH measured a 798g serving at 2,913mg of sodium — 146% of an adult's 2,000mg daily limit in a single bowl. It is also one of the higher-protein dishes on the board at 30g, which is what makes it awkward: the bowl is genuinely filling and genuinely over the line.
How much sodium is in laksa?
It depends which laksa. Laksa lemak, the coconut-based one, was measured at 540g and 1,588mg of sodium — 79% of the daily limit. Penang laksa, the tamarind-based one, was measured at 569g and 2,287mg, which is 114%. Similar bowls, a 699mg difference.
Which hawker dish has the most protein?
Across these 41 dishes, mutton dum biryani leads at 47g of protein, followed by lontong with sayur lodeh at 46g and nasi biryani with chicken at 39g. All three are large servings — the biryani was measured at 859g — so the protein comes with a substantial amount of everything else.
Is chicken rice high in sodium?
Roasted chicken rice with the skin on was measured at 382g and 1,287mg of sodium, or 64% of the daily limit. That places it in the lower half of this board. It also carries 25g of protein, which is more than most noodle dishes here.
Which hawker dish has the lowest sodium?
Of the complete one-dish meals, duck rice with the skin removed is lowest at 326mg — 16% of the daily limit, with 24g of protein. The same dish with the skin on measures 545mg. Among dishes ordered as the protein element of a meal, chicken tikka is lowest at 187mg.
Is soup healthier than dry at a hawker centre?
Not for sodium, and this surprises people. Fishball noodle soup measures 2,913mg against 1,645mg for the dry version. Bak chor mee soup is 1,740mg against 1,491mg dry. Per 100g the dry versions are actually saltier — but you consume far more grams when the broth is included. If you order soup and leave the broth, you get the best of both.
Where do these numbers come from?
Every figure was measured by the Department of Nutrition and Dietetics at KK Women's and Children's Hospital, a member of the SingHealth group, and published through HealthXchange. Nothing here is an app estimate or a scaled guess. The serving weight KKH measured is printed against every dish.
Knowing the numbers is the easy half
This board tells you what is in the dish. It does not tell you what to order on a Tuesday when you have 40 minutes and the queue is long. That is the part people actually get stuck on.
The 7-Day Hawker Shred Plan turns this data into an actual week — a named dish for every meal, protein and calorie targets that hold together across the day, and the exact order to ask for at the stall. The 28-Day Hawker Shred Complete runs the full month with the macro maths done for you.
Compiled by Couz-Nutri — Singapore sports nutrition. Every figure on this page has a named source. If you find one you think is wrong, tell us and we will check it.