Curry Puff Calories: Old Chang Kee vs Hawker Stall Compared
Curry puff is the snack every Singaporean grabs without thinking twice about it — one at the MRT station, one after school, one as a "light" lunch alongside a coffee. But "one curry puff" is not a fixed number, and it's bigger than most people assume: using HPB's own official portion weights, a real hawker-stall curry puff is around 270 to 310 kcal. Grab one from Old Chang Kee or a similar chain, and you're looking at 340 to 370 kcal — bigger still, but the gap is smaller than you'd think.
That gap matters because curry puffs rarely stop at one. Two small hawker puffs and two chain-brand puffs land in very different calorie territory, even though both feel like "just a snack." This guide breaks down curry puff calories by size, filling, and cooking method using HPB Singapore data and known nutrition breakdowns from popular brands, so you know what you're actually eating.
Curry Puff Calories at a Glance
The Full Calorie Breakdown
| Curry Puff Type | Calories (per piece) | Key Difference | Verdict |
|---|---|---|---|
| Baked Curry Puff (small) | ~160–200 kcal | No deep-frying, less oil absorbed | ✅ Best choice |
| Small Hawker Puff (fried, chicken/potato) | ~270–310 kcal | HPB's real default portion, ~78–94g | ✅ Good default |
| Egg & Potato Puff | ~310–350 kcal | Egg adds protein, fat and size on top of the potato base | 👍 Good |
| Mixed Vegetable Puff | ~200–240 kcal | Similar oil, less dense filling | 👍 Good |
| Sardine Curry Puff | ~250–290 kcal | Oily fish + richer curry sauce | ⚠️ Occasional |
| Old Chang Kee-style Chicken Puff | ~340–370 kcal | Bigger than a hawker puff, ~128g vs HPB's ~81g default | ❌ Treat as a full snack |
| Jumbo Curry Puff / Curry Bun | ~400–450 kcal | Extra-large pastry, sometimes double filling | ❌ Occasional treat |
Why Old Chang Kee-Style Puffs Are Bigger — But Not Double the Calories
Independent nutrition breakdowns of a standard Old Chang Kee curry puff put it at roughly 340 to 370 kcal, with about 16 to 20g of fat and 40 to 50g of carbohydrate per piece — for a puff weighing around 120 to 130g. Compare that to a traditional hawker-stall curry puff, which — per HPB's own default portion weights — typically weighs 78 to 94g and lands at 270 to 310 kcal. That's a real hawker portion, not the 50–60g "small snack" size often assumed.
The remaining difference is still mostly about size: a larger puff means more pastry (which absorbs more oil when deep-fried) and a bigger portion of filling. But because a real hawker puff is already a substantial size, the chain-brand version isn't double the calories — it's roughly 10 to 35% more. This is why "just one curry puff" as a snack can mean anything from around 270 kcal to over 360 kcal depending on where you bought it.
Baked vs Fried: Does It Matter?
| Cooking Method | Calories (small puff) | Fat | Notes |
|---|---|---|---|
| Baked | ~160–200 kcal | ~7–9g | ✅ Pastry doesn't absorb frying oil |
| Deep-fried (HPB real portion, chicken/potato) | ~270–310 kcal | ~18–20g | ❌ Oil absorption adds 70–150 kcal |
The gap between baked and fried is meaningful even for a hawker-size puff — around 70 to 150 kcal, once you account for HPB's real, larger portion weights. It becomes more significant still at chain-brand sizes, where a fried large puff can carry substantially more absorbed oil compared to an equivalent baked version.
Which Filling Has the Most Calories?
Official HPB Filling Comparison (Beef, Chicken, Mutton, Potato, Sardine)
The estimates above are useful for comparing everyday puff sizes, but HPB Singapore's food composition database also has lab-verified figures for five specific fillings, measured per 100g of curry puff. HPB also records its own default portion weight for each filling — and a real hawker curry puff is bigger than the 50–60g often assumed: chicken 81g, beef 78g, potato 94g, sardine 80g, and mutton 121g. Applying HPB's own weights, a whole chicken curry puff works out to about 276 kcal (341 × 0.81), a potato one to about 305 kcal (324 × 0.94), and a mutton one — the biggest default portion of the five — to about 369 kcal (305 × 1.21). Beef and mutton curry puff — both less commonly covered in generic calorie guides — are included here for the first time.
| Filling | Calories /100g | Protein | Fat | Carbs | Sodium |
|---|---|---|---|---|---|
| Chicken | 341 kcal | 8.2g | 20.2g | 31.8g | 478mg |
| Beef | 339 kcal | 9.3g | 19.7g | 31.1g | 580mg |
| Potato | 324 kcal | 5.3g | 18.2g | 35.0g | 497mg |
| Sardine | 315 kcal | 9.0g | 18.2g | 29.0g | 391mg |
| Mutton | 305 kcal | 5.6g | 15.8g | 35.1g | 575mg |
Per 100g, mutton curry puff is actually the lightest of the five, while chicken and beef sit almost identically at the top — close enough that filling choice barely moves the needle between them. Sodium tells a different story: beef and mutton curry puff both carry roughly 100–190mg more sodium per 100g than the others, worth noting if you're watching salt intake alongside calories.
Curry Puff vs Other Singapore Snacks
| Snack | Approx. Calories | Verdict |
|---|---|---|
| Popiah (fresh, 1 roll) | ~150–200 kcal | ✅ Lighter, more vegetables |
| Baked curry puff (small) | ~160–200 kcal | ✅ Good everyday snack |
| Small hawker curry puff (fried) | ~270–310 kcal | 👍 Reasonable in moderation |
| Kaya toast + soft-boiled egg | ~250–300 kcal | 👍 More filling, similar calories |
| Sardine curry puff | ~250–290 kcal | ⚠️ Occasional |
| Old Chang Kee-style puff | ~340–370 kcal | ❌ Treat as a meal-sized snack |
| Jumbo curry puff / curry bun | ~400–450 kcal | ❌ Occasional treat |
How to Order Curry Puff Smarter
Frequently Asked Questions
A real hawker-stall curry puff, using HPB's own default portion weights, is approximately 270 to 310 calories depending on filling. A large Old Chang Kee-style curry puff is bigger still and runs 340 to 370 calories, but a traditional hawker puff is already a substantial size — not the small snack it's often assumed to be.
One curry puff at around 270-310 kcal is already a moderate snack on its own, not a light bite. The issue is that most people eat two, or reach for the large chain-brand puffs, pushing a single snack past 550-600 kcal. Curry puffs are also low in fibre and protein relative to their calories, so they don't keep you full for long.
Yes. A baked curry puff of similar size is typically 70 to 150 calories lighter than a deep-fried one, because the pastry does not absorb frying oil. Baked versions also tend to have less saturated fat, though the filling calories stay roughly the same.
Per piece, it comes down to portion weight as much as filling: HPB's own default weights show mutton (121g) and potato (94g) curry puffs running highest per piece, simply because the pastry portion is larger — not because the filling itself is more calorie-dense. Sardine and beef have smaller default portions (around 78-80g), so they land lowest per piece despite being flavourful fillings.
One real hawker curry puff (about 270-310 kcal, per HPB's own portion weights) already uses up a decent chunk of a snack budget. Two small puffs (around 550-600 kcal) is closer to a light meal than a snack. A single large Old Chang Kee-style puff (340-370 kcal) actually comes in lighter than two real hawker puffs combined.
Nutrition data sourced from the Health Promotion Board (HPB) Singapore food composition database and publicly available nutrition breakdowns of popular Singapore snack brands. Calorie values are approximate and vary by stall, brand, filling and portion size. This article is for general wellness information only and does not constitute medical or dietary advice. Consult a registered dietitian for personalised nutrition guidance. Nutrition data referenced in this article is used under licence from the Health Promotion Board (HPB) of Singapore and may not be redistributed, republished, or reused commercially without NutriKaki's prior written permission.