Three dishes come up more than any others, and Singapore's national food database answers them very unevenly. It gives cai fan a clear answer, gives prata an unflattering one, and has no record for mala xiang guo at all. That last gap is not an oversight — it is a fact about the dish, and it is the most useful thing in this article. Every figure here comes from HPB's Singapore Food Insights Database, retrieved on 1 August 2026 (HPB).

Mala, prata and mixed rice dishes arranged on a dining table.
AI-generated editorial illustration. Foods and portions are illustrative, not a prescribed meal plan or measured nutritional analysis.

Lab Analysis and Derived: HPB's two most common data tags. Lab Analysis means the item was sent to a laboratory and measured. Derived means the value was calculated from a recipe (HPB). Both are legitimate; only one is a measurement.

Cai fan: the dish where your order changes the answer

Economy rice is the only one of the three where a different way of ordering produces a materially different plate, and HPB indexes the permutations separately.

Record, as HPB names it Portion Energy Protein Tag
Economic rice, 2 meats 1 plate, 526 g 768 kcal 53.7 g Derived, 2026
Economic rice, 1 vegetable + 1 meat 1 plate, 553 g 697 kcal 34.51 g Derived, 2026

The gap between those two rows is the whole argument: roughly 19 g more protein for roughly 71 kcal more energy, on a plate that weighs slightly less. There is no other single ordering decision in Singapore food that returns that much protein for that little.

Three limits sit on those numbers. Both records are derived, meaning HPB calculated them from a recipe rather than measuring a plate. The database indexes at least twenty economy rice permutations by number of vegetables, meats and fried items, so neither record necessarily describes what you assembled. And a cai fan plate is built by a person with tongs, which is the main reason the same order differs from stall to stall.

That third dimension in HPB's indexing — fried items, counted separately from vegetables and meats — is worth pausing on. HPB treats the number of fried items as material enough to warrant its own set of records, which tells you where the variance in a cai fan plate is thought to sit even without opening those records. At the counter that translates into a simple ordering hierarchy: two braised or steamed meats first, vegetables second, and the fried item as a deliberate addition rather than the default third scoop.

There is one apparent contradiction worth naming. HPB's Healthier Dining Programme identifies economy rice with two non-fried vegetables among its dish categories providing 500 kcal or less (HPB) — a plate that is lower in energy and, by the logic of the table above, considerably lower in protein. Both statements are HPB's and both are correct. They answer different questions. A calorie ceiling and a protein target are separate goals, and at a cai fan counter they point in opposite directions.

Prata: the arithmetic is about volume, not virtue

HPB's record for plain prata is one 141 g piece at 496 kcal and 12.52 g of protein, last checked in 2025 and laboratory-analysed (HPB).

Put next to the cai fan rows from the same database, one plain prata carries about seven-tenths of the energy of a whole 553 g economy rice plate and about a third of its protein. It is also 141 g of food, which is a quarter of the plate's weight — so it costs very little of a limited appetite and returns a large share of a day's energy. On a suppressed appetite, where capacity is the binding constraint rather than willpower, that is an unusually poor exchange rate.

Two caveats. The record is for the plain version; HPB indexes nine prata variants, and an egg, cheese or stuffed prata is a separate record with different numbers. And almost nobody orders one. The figure above describes a single piece, and doubling it is arithmetic you should do consciously rather than by default.

None of that makes prata a food to avoid. It makes it a food to order deliberately, ideally alongside something that carries protein rather than as the whole meal.

Mala: there is no number, and the dish is the reason

HPB's database contains no mala xiang guo record. The nearest entry is mala chicken, published at one serving-spoon scoop of 100 g — 87 kcal and 5.48 g of protein, laboratory-analysed in 2025 (HPB). That is a component, not a bowl. Multiplying a scoop up to the size of an order and presenting the result as HPB's figure would be reconstruction rather than measurement, and the number it produced would be wrong in an unknowable direction.

The deeper point is that a single mala figure could not be right even if someone published one. Mala is the only common Singapore dish whose composition is assembled by the customer: how many items go in the basket, what proportion of them are fried, how much of it is vegetable and how much is meat, whether the tofu is fresh or puffed, and how much oil the wok adds at the end. Two orders from the same stall on the same day can differ more than two different dishes do. Any figure circulating for "a bowl of mala" is describing somebody else's basket.

So the guidance has to be structural rather than numeric, and for once that is more actionable than a calorie count would be:

  • Weight the basket towards the protein items — sliced meat, prawns, fresh tofu, egg — and treat the fried items as the thing there is least of.
  • Fried beancurd skin, fried fish skin, luncheon meat and instant noodles are the swing items. They absorb the most oil and contribute the least protein per gram of basket weight.
  • The oil is added at the end, not chosen by you. Asking for less is the only point at which that variable is available.
  • Weight is the unit you are paying in and eating in. A lighter basket of denser items is a different meal from a heavier basket of the same price.

Read the tags, and read the blanks

Two habits make HPB's database far more useful and prevent the errors that circulate most.

Check whether a figure was measured. Of the four records in this article, prata and mala chicken are Lab Analysis; both economy rice records are Derived from recipes (HPB). Derived values are calculations, and they inherit whatever the recipe assumed.

A blank is not a zero. HPB defines its conventions explicitly: a dash means there is no data for that nutrient, the word trace means it is present below the testing limit, and a 0 means it is not present. Several hawker records carry a dash for sugar. Reading that as a sugar-free dish reverses the meaning.

Check the year. Every record carries the year it was last checked, and the four here span 2025 and 2026. A dish measured three years ago is being described as it was then, which is a limitation rather than an error, and it is stated on the record so that you can weigh it.

HPB also publishes a sodium figure per portion alongside the energy and protein for each of these records. That is a separate question from the one this article is about, and anyone for whom it is relevant should raise it with their own doctor rather than with a nutrition table.

And HPB's own disclaimer applies to all of it: the board states it makes no guarantee the data is error-free. These are national reference values, not a description of the stall in front of you. No published study has sampled several outlets of the same dish, so how much the same order varies between stalls has not been measured.

One further boundary. Every number here comes from HPB. A separate peer-reviewed laboratory analysis of Singapore dishes, which our ranking of hawker dishes by protein per calorie is built on, reports materially different figures for some of the same dishes. Both are verified; they use different portion definitions and different samples. Use one set or the other and never combine them in the same calculation.

What to do with all three

The target these figures serve is roughly 1.2 to 1.6 g of protein per kilogram of body weight per day during active weight loss (Leidy 2015) — about 85 to 145 g daily for a 70 to 90 kg person. Read against that number, the three dishes sort themselves.

Cai fan is the workhorse. Ordered with two meats it can supply a third to nearly two-thirds of a day's protein in one plate, and the ordering decision is available every single time.

Prata is a side, not a meal. Its cost is in energy and its return in protein is small, and both facts are easier to accept when the figure is in front of you.

Mala is a construction, not a dish. Nobody can tell you what it contains, and you are the only person who can change it.

For the same question at an ordinary hawker stall, see eating at a hawker centre on a small appetite, and for a full day of ordering, hawker dishes ranked by protein per calorie.

At GetLean, our philosophy is that the medication is the catalyst and what you keep is the result. Knowing what a plate actually contains, and knowing when nobody does, is a large part of holding onto it.

Figures describe the specific database records named, at HPB's stated portion weights and years. Anyone with a medical condition affecting diet should speak to a doctor or dietitian.

Common questions

How many calories are in mala xiang guo?

There is no mala xiang guo record in HPB's database. The closest entry is mala chicken at a 100 g serving-spoon scoop, 87 kcal and 5.48 g of protein (HPB) — a component rather than a bowl, and scaling it up to an order would be invention rather than measurement.

Is cai fan a good choice?

It is the dish where your ordering changes the answer most. In HPB's recipe-derived records, a plate with two meats carries 53.7 g of protein for 768 kcal, against 34.51 g for 697 kcal with one vegetable and one meat (HPB).

How much protein is in a prata?

HPB's record for one plain prata, a 141 g piece last checked in 2025, is 496 kcal and 12.52 g of protein (HPB). HPB indexes nine prata variants, so a stuffed or egg version is a different record with different numbers.

Why does the sugar column say nothing for some dishes?

Because HPB has no data for it. HPB distinguishes a dash, meaning no data, from the word trace and from a zero, which means the nutrient is not present (HPB). A blank is not a zero.

Are these figures what my stall serves?

No. They are database records at HPB's stated portion weights, and HPB itself makes no guarantee the data is error-free. No published study has sampled several stalls of the same dish, so the amount dishes vary between stalls is unmeasured.