In FitArchive’s recipe estimates at a regular size, a bowl of Vietnamese noodle soup is about 390 to 750 kcal with 16 to 51 g of protein, a rice plate about 480 to 780 kcal, a filled bánh mì about 420 to 530 kcal, a pack of xôi about 310 to 500 kcal, and a meat congee about 360 to 530 kcal. Drinks range from 32 to 39 kcal for a black coffee with sugar to 281 to 322 kcal for a cup of milk tea. Beef phở is one of the leanest full meals (418 kcal, 38 g protein); braised pork belly with rice is one of the heaviest (782 kcal, 20 g protein).
Every number below is an estimate for a stated recipe weight, not a lab measurement of the bowl in front of you. Restaurant portions vary, and the sections after the tables explain by how much and why.
Vietnamese food calories at a glance
These ranges cover all 263 dishes in FitArchive’s catalogue, grouped by type, at the regular size.
| Type (dishes in data) | Regular serving | kcal range | Middle value | Protein (g) |
|---|---|---|---|---|
| Noodle soups, per bowl (33) | 532 to 838 g | 390 to 754 | 550 | 16 to 51 |
| Dry noodle plates (22) | 237 to 643 g | 417 to 682 | about 560 | 16 to 40 |
| Rice plates (34) | 323 to 614 g | 481 to 782 | about 600 | 12 to 46 |
| Bánh mì, one sandwich (11) | 137 to 218 g | 418 to 526 | 469 | 14 to 29 |
| Xôi, one pack (12) | 235 to 306 g | 306 to 502 | about 370 | 4 to 25 |
| Cháo with meat or seafood (10) | 358 to 534 g | 362 to 531 | about 405 | 19 to 30 |
| Coffee drinks (11) | 68 to 210 g | 32 to 158 | 113 | 0 to 6 |
| Milk teas (6) | 310 to 375 g | 281 to 322 | about 300 | 1 to 7 |
| Sinh tố, smoothies (9) | 230 to 320 g | 197 to 356 | 248 | 5 to 8 |
| Chè (16) | 155 to 280 g | 180 to 357 | about 285 | 1 to 11 |

A cup of milk tea is more than three quarters of a bowl of phở.
Calorie table: 60 common Vietnamese dishes
All values are FitArchive recipe estimates at the regular size, rounded to whole kcal and grams.
Noodle soups: phở, bún, hủ tiếu and mì
| Dish | Serving | kcal | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Phở bò (beef phở) | 785 g bowl | 418 | 38 | 57 | 4 |
| Phở bò tái (rare beef phở) | 785 g bowl | 390 | 33 | 57 | 3 |
| Phở gà (chicken phở) | 755 g bowl | 539 | 38 | 66 | 12 |
| Bún bò Huế | 815 g bowl | 571 | 42 | 61 | 17 |
| Bún riêu (crab noodle soup) | 820 g bowl | 563 | 33 | 71 | 16 |
| Bún mọc (pork meatball noodle soup) | 745 g bowl | 613 | 34 | 65 | 23 |
| Bún cá (fish noodle soup) | 741 g bowl | 545 | 35 | 65 | 16 |
| Bún măng vịt (duck and bamboo shoot noodle soup) | 773 g bowl | 680 | 32 | 65 | 31 |
| Hủ tiếu Nam Vang (pork and shrimp noodle soup) | 775 g bowl | 542 | 36 | 67 | 13 |
| Mì hoành thánh (wonton noodle soup) | 690 g bowl | 611 | 39 | 72 | 18 |
| Mì Quảng gà (chicken Mì Quảng) | 532 g bowl | 622 | 41 | 63 | 22 |
More detail on the phở variants is in phở calories and protein.
Dry noodles and rice rolls
| Dish | Serving | kcal | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Bún chả (grilled pork with vermicelli) | 382 g serving | 538 | 30 | 63 | 17 |
| Bún thịt nướng (grilled pork vermicelli bowl) | 407 g bowl | 614 | 32 | 65 | 25 |
| Bún bò Nam Bộ (stir-fried beef vermicelli) | 340 g bowl | 482 | 31 | 54 | 16 |
| Bún đậu (vermicelli with fried tofu) | 395 g serving | 571 | 40 | 50 | 26 |
| Mì xào bò (stir-fried noodles with beef) | 365 g plate | 560 | 29 | 62 | 21 |
| Phở xào bò (stir-fried phở with beef) | 378 g plate | 526 | 27 | 62 | 18 |
| Bánh cuốn (steamed rice rolls) | 325 g plate | 508 | 20 | 61 | 20 |
Rice plates: cơm tấm, cơm gà and more
| Dish | Serving | kcal | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Cơm tấm sườn (broken rice with grilled pork chop) | 395 g plate | 626 | 36 | 70 | 21 |
| Cơm tấm sườn trứng (with pork chop and fried egg) | 450 g plate | 741 | 42 | 70 | 31 |
| Cơm tấm gà nướng (broken rice with grilled chicken) | 360 g plate | 547 | 31 | 64 | 17 |
| Cơm gà (chicken rice) | 518 g plate | 655 | 39 | 64 | 26 |
| Cơm gà xối mỡ (fried chicken rice) | 398 g plate | 692 | 46 | 71 | 23 |
| Cơm bò lúc lắc (shaking beef with rice) | 435 g plate | 634 | 43 | 63 | 22 |
| Cơm chiên Dương Châu (Yangzhou fried rice) | 437 g plate | 697 | 35 | 71 | 30 |
| Cơm thịt kho trứng (rice with braised pork and egg) | 404 g plate | 782 | 20 | 65 | 48 |
| Cơm bình dân (everyday rice plate with meat, vegetables and soup) | 614 g plate | 610 | 34 | 85 | 13 |
Sticky rice and porridge: xôi and cháo
| Dish | Serving | kcal | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Xôi xéo (sticky rice with mung bean and fried shallots) | 235 g pack | 309 | 7 | 47 | 11 |
| Xôi gà (sticky rice with chicken) | 253 g pack | 361 | 21 | 38 | 13 |
| Xôi mặn (savoury sticky rice) | 288 g pack | 498 | 22 | 39 | 28 |
| Cháo gà (chicken rice porridge) | 393 g bowl | 372 | 26 | 42 | 10 |
| Cháo lòng (pork offal rice porridge) | 510 g bowl | 426 | 19 | 49 | 16 |
| Cháo trắng (plain rice porridge) | 455 g bowl | 197 | 4 | 43 | 1 |
Bánh mì
| Dish | Serving | kcal | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Bánh mì thịt (pork bánh mì) | 210 g sandwich | 526 | 25 | 50 | 25 |
| Bánh mì trứng (egg bánh mì) | 218 g sandwich | 464 | 23 | 48 | 20 |
| Bánh mì thịt nướng (grilled pork bánh mì) | 208 g sandwich | 418 | 28 | 54 | 10 |
| Bánh mì pate (pâté bánh mì) | 188 g sandwich | 482 | 17 | 50 | 24 |
| Bánh mì chảo (skillet bánh mì with eggs, pâté and sausage) | 288 g serving | 657 | 30 | 50 | 37 |
The fillings are compared in more detail in bánh mì calories and protein.
Snacks, rolls and pancakes
| Dish | Serving | kcal | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Gỏi cuốn (fresh spring roll) | 1 roll, 98 g | 147 | 9 | 21 | 3 |
| Chả giò (fried spring roll) | 1 roll, 52 g | 174 | 7 | 10 | 12 |
| Nem nướng (grilled pork sausage rolls) | 265 g serving | 529 | 33 | 39 | 26 |
| Bánh xèo (Vietnamese crispy pancake) | 250 g pancake | 586 | 16 | 50 | 37 |
| Bánh khọt (mini crispy pancakes with shrimp) | 188 g serving | 497 | 14 | 51 | 27 |
| Bánh bao (steamed pork bun) | 1 bun, 133 g | 444 | 20 | 54 | 16 |
| Bánh tráng trộn (rice paper salad) | 113 g bag | 312 | 9 | 38 | 14 |
Home dishes (without rice)
| Dish | Serving | kcal | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Thịt kho trứng (braised pork belly and eggs) | 218 g serving | 634 | 17 | 11 | 58 |
| Cá kho tộ (caramelized braised fish) | 160 g serving | 337 | 24 | 10 | 22 |
| Gà kho gừng (ginger braised chicken) | 153 g serving | 302 | 31 | 10 | 15 |
| Bò kho (Vietnamese beef stew) | 440 g bowl | 483 | 42 | 14 | 28 |
| Thịt luộc (boiled pork with fish sauce) | 110 g plate | 263 | 26 | 0 | 17 |
| Trứng chiên (Vietnamese omelette) | 116 g serving | 216 | 13 | 1 | 18 |
| Canh chua cá (sweet and sour fish soup) | 208 g bowl | 148 | 14 | 14 | 4 |
| Rau muống xào tỏi (stir-fried water spinach with garlic) | 220 g plate | 139 | 5 | 10 | 10 |
Drinks and chè
| Dish | Serving | kcal | Protein (g) | Carbs (g) | Fat (g) |
|---|---|---|---|---|---|
| Cà phê đen đá (iced black coffee with sugar) | 70 g glass | 39 | 0 | 10 | 0 |
| Cà phê sữa đá (iced milk coffee) | 90 g glass | 97 | 3 | 16 | 3 |
| Bạc xỉu (iced milk with a little coffee) | 160 g glass | 158 | 6 | 21 | 6 |
| Trà sữa trân châu (milk tea with tapioca pearls) | 375 g glass | 322 | 1 | 63 | 8 |
| Sinh tố bơ (avocado smoothie) | 240 g glass | 356 | 8 | 40 | 21 |
| Sinh tố xoài (mango smoothie) | 230 g glass | 221 | 6 | 40 | 5 |
| Chè ba màu (three-colour bean dessert) | 160 g glass | 301 | 7 | 51 | 9 |
How were these estimates made?
Each dish is a recipe built from weighed parts, and each part uses ingredient data from USDA FoodData Central. The regular beef phở, for example, is 200 g of cooked rice noodles, 80 g of cooked beef and 450 g of beef broth, plus onion, scallions and bean sprouts: 785 g in all. A cơm tấm sườn is 200 g of cooked rice, a 120 g grilled pork chop, fish sauce dip with sugar, a little oil, cucumber and carrot.
The table shows the regular size. In FitArchive a small portion is the regular recipe × 0.75 and a large one × 1.3, so a beef phở is about 315 kcal small and about 545 kcal large. Gram weights include the broth, which is why a 785 g bowl of phở has fewer calories than a 450 g plate of cơm tấm.
Why your bowl may not match the table
A recipe estimate describes one plausible bowl. The real one can differ because of:
- Broth fat. A clear broth and one with a layer of fat or bone marrow look similar but are not.
- Meat amount and cut. Rare beef phở is 390 kcal; well-done brisket phở with the same noodles is 467 kcal in the data.
- Noodles or rice. Shops differ in how much they serve, and extra noodles or a rice refill are common.
- Cooking oil and fried toppings. Fried shallots, mỡ hành (scallion oil) and chả giò add up quickly.
- Sauces and sugar. Nước chấm, hoisin, condensed milk and syrup carry calories that are easy to forget.
Measured data show how large that gap can be. In a study of non-chain restaurants in three US cities, researchers measured meals by bomb calorimetry. Eleven beef phở meals averaged 854 kcal (standard deviation 350) in bowls averaging 1,324 g, much larger than the 785 g bowl here, and pork vermicelli plates averaged 936 kcal. An earlier Boston study found that samples of the same meal type varied with an average standard deviation of 271 kcal, and in a subset analysis the meals held 19% more energy than national food database values for equivalent items. Those were US restaurants, so the numbers do not transfer directly to a street stall in Hà Nội or Sài Gòn, but they are a good reason to adjust for portion size rather than trust any table to the last calorie.
Which Vietnamese dishes have the most protein per calorie?
Protein per 100 kcal is protein (g) × 100 ÷ kcal, calculated from the rounded values in the data. These are the top 10 of all 263 dishes:
| Dish | Serving | kcal | Protein (g) | Protein per 100 kcal |
|---|---|---|---|---|
| Canh cua rau đay (crab and jute leaf soup) | 465 g bowl | 104 | 15 | 14.4 |
| Cá chiên (pan-fried fish) | 172 g serving | 302 | 40 | 13.2 |
| Tôm rim (caramelized shrimp) | 149 g serving | 249 | 28 | 11.2 |
| Gà luộc (boiled chicken) | 170 g serving | 321 | 35 | 10.9 |
| Canh bầu nấu tôm (bottle gourd and shrimp soup) | 570 g bowl | 223 | 24 | 10.8 |
| Thịt xiên nướng (grilled pork skewer) | 1 skewer, 55 g | 105 | 11 | 10.5 |
| Gà kho gừng (ginger braised chicken) | 153 g serving | 302 | 31 | 10.3 |
| Bò lúc lắc (shaking beef) | 330 g serving | 419 | 43 | 10.3 |
| Lẩu hải sản (seafood hotpot, one serving) | 950 g serving | 714 | 73 | 10.2 |
| Bò xào cải làn (beef with Chinese broccoli) | 221 g plate | 249 | 25 | 10.0 |
Most of these are home dishes eaten with rice, which adds calories but little protein. Among noodle soups, rice plates and porridges, beef phở leads (9.1 g per 100 kcal), followed by the rare beef and rare-and-flank versions (8.5), well-done brisket phở (8.1), bún bò with pork knuckle and shrimp porridge (7.9 each), and beef porridge (7.6). The highest totals per serving are one person’s share of hotpot (54 to 73 g) and Vietnamese steak and eggs (bò bít tết, 54 g).
How much you need per day depends on you. A meta-analysis of protein supplementation with resistance training found no further gain in fat-free mass beyond about 1.6 g per kg of body weight per day; how much protein per day to build muscle covers the range and its limits.
Low-calorie Vietnamese food: lighter swaps
These example swaps compare similar dishes from the data. They are not meal recommendations.
| Instead of | kcal | Try | kcal | Difference |
|---|---|---|---|---|
| Cơm thịt kho trứng | 782 | Cơm cá kho (rice with braised fish) | 481 | 301 less |
| Bánh mì chảo | 657 | Bánh mì thịt nướng | 418 | 239 less |
| Trà sữa trân châu | 322 | Trà chanh (iced lime tea) | 104 | 218 less |
| Bún thịt nướng chả giò | 659 | Bún bò Nam Bộ | 482 | 177 less |
| Sinh tố bơ | 356 | Sinh tố dâu (strawberry smoothie) | 197 | 159 less |
| Xôi mặn | 498 | Xôi gà | 361 | 137 less |
| Phở bò chín | 467 | Phở bò tái | 390 | 77 less |
| Cà phê sữa đá | 97 | Cà phê đen đá | 39 | 58 less |
Other lighter picks in the data include gỏi cuốn (147 kcal per roll), cháo cá (362 kcal, 27 g protein), cháo gà (372 kcal) and a bowl of canh chua cá (148 kcal). “Lighter” here only means fewer calories for the stated portion; it says nothing about whether a dish suits your diet.
Drinks that add up: trà sữa, cà phê sữa and sinh tố
Drinks are the easiest calories to miss. The regular trà sữa trân châu recipe assumes 25 g of sugar, 25 g of creamer powder and 25 g of dry tapioca pearls in a 375 g cup, which comes to 322 kcal with 1 g of protein: more than three quarters of a bowl of beef phở. All six milk teas in the data land between 281 and 322 kcal.
A cà phê sữa đá is 60 g of coffee with 30 g of condensed milk, 97 kcal, so two a day add about 194 kcal. Bạc xỉu is 158 kcal. Sinh tố bơ uses 100 g of avocado, 30 g of condensed milk, 100 g of whole milk and 10 g of sugar for 356 kcal; fruit smoothies in the data run 197 to 296 kcal.
Liquid calories may also be less filling. In a small crossover study, 15 adults ate fewer other calories when given jelly beans, but not when given the same carbohydrate energy as soda, over four weeks each. That was one short study with sweetened soft drinks, so treat it as limited evidence, but it is a fair reason to log drinks as carefully as meals.
How to estimate a dish that is not in the table
- Find the closest dish with the same base and cooking method. A noodle soup with a different topping is closer to another noodle soup than to a stir-fry.
- Compare the portion with the stated grams. If your bowl is clearly bigger or smaller, choose large (× 1.3) or small (× 0.75).
- Adjust the main part. Half the noodles or rice, or a refill, changes the total more than most toppings.
- Add extras separately. In the data, adding a fried egg turns a 626 kcal cơm tấm sườn into a 741 kcal plate.
- Note that it is an estimate, so you know later which entries were firm and which were guesses.
Common mistakes when counting Vietnamese food calories
- Assuming soup means light. Bún măng vịt (680 kcal) and herbal duck noodle soup (754 kcal) are heavier than many rice plates.
- Counting rolls as one item. One chả giò is 174 kcal; four are 696 kcal.
- Logging a home dish without the rice. The home dishes above exclude rice; a plate of rice with braised pork and egg is 782 kcal.
- Forgetting drinks and chè. A trà sữa plus a chè ba màu adds 623 kcal.
- Treating the numbers as exact. Whole numbers look precise, but the restaurant data above show swings of hundreds of calories for the same dish.
Logging Vietnamese dishes in FitArchive
Choosing an app to log these dishes? See how to pick a calorie counter for Vietnamese food.
FitArchive is a free, private training and food log that works in the browser. Its food log includes about 263 Vietnamese dishes built from the same weighed recipes as this table. You can log sized dishes small, regular or large, set one main part such as noodles or rice to less (× 0.5) or more (× 1.5), and add USDA foods or your own foods for the rest. It shows daily calories and protein against optional targets you set yourself, and it keeps your data on the device unless you sign in to sync. To see food and workouts side by side, read how to log food and workouts together or try the demo with sample data.
