Masaleh Polo (مساله پلو) — Persian Spiced Rice with Saffron Meatballs and Barberries
Masaleh Polo is a celebratory Persian rice layered with aromatic spices, saffron, and jeweled barberries. The fluffy basmati and tender meatballs echo classic festive flavors often served at family gatherings and special nights.

Printable Recipe Card
Servings: 6 · Total: 105 min · Difficulty: medium
Ingredients (quick list)
- 500 g Basmati rice (rinsed until water runs mostly clear)
- 2500 ml Water (for parboiling)
- 18 g Fine salt (12 g for boiling water + 6 g for meat mixture)
- 60 ml Vegetable oil (for pot and layering)
- 120 g Plain yogurt (for yogurt tahdig base)
- 1 Egg yolk (for crisp tahdig)
- 1 tsp Ground saffron (bloomed in hot water)
- 60 ml Hot water (for blooming saffron)
- 600 g Ground lamb (80–85% lean)
- 200 g Onion (grated and squeezed very dry)
- 12 g Garlic (finely grated (about 3 cloves))
- 2 tsp Ground turmeric (divided between meatballs and rice layers)
+ 8 more in the full ingredients section below.
Steps (summary)
- Bloom the saffron by grinding it finely, then mixing 1 tsp saffron with 60 ml hot water in a small cup. Let it steep for 10 min…
- Rinse the basmati rice in several changes of water until the water runs mostly clear, then soak it in cool water for 20 minutes…
- Make the meatball mixture by combining ground lamb, grated onion (squeezed dry), grated garlic, 6 g salt, black pepper, 1 tsp t…
- Shape the mixture into 24 meatballs, about 25 g each, and place them on a plate. Chill them for 10 minutes to firm up; this sho…
- Heat 30 ml vegetable oil in a wide skillet over medium-high heat, then brown the meatballs in batches for 6–8 minutes total, tu…
- Bring 2500 ml water to a rolling boil in a large pot and dissolve 12 g salt in it. Add the drained rice and boil for 6–8 minute…
+ 7 more steps in the full instructions section below.
Cultural Background
Spiced rice dishes like Masaleh Polo reflect Persian love of layered fragrance—saffron, warm spices, and tart zereshk—often associated with hospitality and celebratory tables. The jeweled topping and tahdig make it a centerpiece dish meant for sharing.
Equipment
💡 Tips
- Squeeze the grated onion until very dry; excess onion juice makes meatballs crumble and steam rather than brown.
- Keep barberries on low heat and stir constantly; 30 seconds too long can turn them bitter and dark.
- For extra aroma, reserve 1 cup (160 g) of rice, mix it with 15 ml saffron water, and mound it on top before serving.
⚠️ Common Mistakes
❌ Overboiling the rice until fully soft before steaming.
✅ Fix: Drain when the grain is tender outside but still firm in the center (6–8 minutes), then finish by steaming to keep it fluffy.
❌ Cooking barberries too long or over high heat.
✅ Fix: Use low heat and sauté for only 60–90 seconds, then remove immediately to preserve their bright color and tartness.
❌ Meatballs breaking apart in the pan.
✅ Fix: Squeeze onion dry, knead until tacky, chill briefly, and brown in batches without overcrowding.
🧊 How to Store
Cool leftovers within 2 hours, then refrigerate in an airtight container for up to 3 days. Reheat covered with 30 ml water in a pot on low for 12–15 minutes, or microwave covered in 60-second bursts until hot; keep barberries separate for best color.
📅 Make Ahead
Form and brown the meatballs up to 24 hours ahead and refrigerate tightly covered. You can also rinse and soak the rice earlier the same day; drain well and parboil just before steaming for best texture.
🍽️ Pairs Well With
- Mast-o-khiar
- Shirazi salad
- torshi
- fresh herbs (sabzi khordan)
- pickled garlic (sir torshi).
Regional Variations
- Tehran-style: uses a stronger saffron finish and often includes a small handful of slivered pistachios or almonds on top (omit for nut-free).
- Khorasan-inspired: adds a pinch of ground cloves (0.25 tsp) and increases barberries for a more tart, jeweled profile.
- Chicken version: replaces lamb with ground chicken thigh and adds 1 tbsp (15 ml) extra oil for moisture.
Ingredients
- 1⅛ lbBasmati rice (rinsed until water runs mostly clear)
- 10.5 cupWater (for parboiling)
- 18 gFine salt (12 g for boiling water + 6 g for meat mixture)
- ¼ cupVegetable oil (for pot and layering)
- 4¼ ozPlain yogurt (for yogurt tahdig base)
- 1Egg yolk (for crisp tahdig)
- 1 tspGround saffron (bloomed in hot water)
- ¼ cupHot water (for blooming saffron)
- 1⅓ lbGround lamb (80–85% lean)
- 7.1 ozOnion (grated and squeezed very dry)
- 12 gGarlic (finely grated (about 3 cloves))
- 2 tspGround turmeric (divided between meatballs and rice layers)
- 1½ tspGround cinnamon (warm, sweet aroma)
- 1 tspGround cardamom (preferably freshly ground)
- 1½ tspGround cumin (earthy backbone)
- 1 tspBlack pepper (freshly ground)
- 1.1 ozUnsalted butter (for sautéing zereshk)
- 2.8 ozDried barberries (zereshk) (rinsed quickly and drained well)
- 10 gSugar (balances the tartness)
- 2 tspRose water (optional, traditional fragrance)
🔄 Substitutions
- Ground lamb→ Ground chicken thigh
- Dried barberries (zereshk)→ Dried cranberries
- Rose water→ Orange blossom water
Instructions
- 1
Bloom the saffron by grinding it finely, then mixing 1 tsp saffron with 60 ml hot water in a small cup. Let it steep for 10 minutes so the color fully releases, then set it aside for layering and finishing.
- 2
Rinse the basmati rice in several changes of water until the water runs mostly clear, then soak it in cool water for 20 minutes. Drain the rice well; this soak helps the grains elongate and stay fluffy during steaming.
- 3
Make the meatball mixture by combining ground lamb, grated onion (squeezed dry), grated garlic, 6 g salt, black pepper, 1 tsp turmeric, 1 tsp cumin, 1 tsp cinnamon, and 0.5 tsp cardamom in a bowl. Knead for 2–3 minutes until the mixture becomes tacky and cohesive, which prevents cracking during browning.
- 4
Shape the mixture into 24 meatballs, about 25 g each, and place them on a plate. Chill them for 10 minutes to firm up; this short rest makes them easier to brown without falling apart.
- 5
Heat 30 ml vegetable oil in a wide skillet over medium-high heat, then brown the meatballs in batches for 6–8 minutes total, turning gently to color all sides. They do not need to be fully cooked through at this stage, because they will finish cooking while the rice steams; transfer them to a tray.
- 6
Bring 2500 ml water to a rolling boil in a large pot and dissolve 12 g salt in it. Add the drained rice and boil for 6–8 minutes until the grains are tender on the outside but still firm in the center, then drain immediately in a colander and rinse quickly with 250 ml cool water to stop cooking.
- 7
If using yogurt tahdig, whisk 120 g yogurt with 1 egg yolk and 15 ml vegetable oil in a bowl until smooth. Stir in 120 g of the parboiled rice so the grains are coated; this mixture creates a crisp, golden base.
- 8
In a nonstick pot, add the remaining 45 ml vegetable oil and spread it evenly over the bottom. Press the yogurt-rice mixture into the base in an even layer; if skipping tahdig, simply oil the pot well and proceed with plain rice.
- 9
Mix the remaining spices in a small bowl: 1 tsp turmeric, 0.5 tsp cumin, 0.5 tsp cinnamon, and 0.5 tsp cardamom. Layer one-third of the plain parboiled rice over the base, sprinkle one-third of the spice mix, then nestle half the meatballs on top; repeat with another third of rice, spices, and the remaining meatballs, finishing with the last third of rice and spices.
- 10
Use the handle of a wooden spoon to poke 5–6 steam holes down through the rice to the bottom of the pot. Drizzle 45 ml of the bloomed saffron water over the top; if the rice seems dry, drizzle up to 120 ml water around the edges to encourage steady steam.
- 11
Cover the lid with a clean kitchen towel and place it tightly on the pot to catch condensation. Steam over medium heat for 10 minutes until you see strong steam, then reduce to low and continue steaming for 45 minutes so the meatballs finish cooking and the rice becomes fully fluffy.
- 12
While the rice steams, sauté the barberries by melting 30 g butter in a small pan over low heat. Add 80 g barberries and 10 g sugar and cook for 60–90 seconds, stirring constantly; add 10 ml rose water in the last 10 seconds, then remove from heat to prevent scorching.
- 13
Rest the pot off the heat for 5 minutes before unmolding, which helps the tahdig release cleanly. Spoon the rice and meatballs onto a platter, top with the warm barberries, and drizzle the remaining 15 ml saffron water over the brightest parts for a festive finish.
🪪 Recipe Passport
Cultural Background
Spiced rice dishes like Masaleh Polo reflect Persian love of layered fragrance—saffron, warm spices, and tart zereshk—often associated with hospitality and celebratory tables. The jeweled topping and tahdig make it a centerpiece dish meant for sharing.
Regional Variations
Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.
Nutrition per serving
Pairs well with
If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.
Does your family make this differently?
Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.
You Might Also Like

Kabab Vijeh (کباب ویژه) — Royal Persian Mixed Grill Platter
Persian · Kebabs · 70 min

Bulgar Kabab (کباب بلغار) — Persian Rolled Saffron Fillets
Persian · Kebabs · 37 min

Jujeh Kabab (جوجه کباب) — Saffron-Turmeric Chicken with Rustic Tomato Sauce
Persian · Kebabs · 45 min

Nigerian Jollof Rice (Jollof Rice) — Smoky Party-Style Tomato Rice
West african · Rice Dishes · 80 min

Nasi Kandar (Nasi Kandar) — Penang Mamak Curry Rice Plate
Malaysian · Rice Dishes · 110 min

Sac Kavurma (Saç Kavurma) — Thin-Sliced Turkish Meat Sautéed with Onions
Turkish · Main Courses · 38 min

Turkish Shish Kebab (Şiş Kebap) — Charcoal-Grilled Marinated Lamb Skewers
Turkish · Kebabs · 37 min

Kabuli Pulao (قابلی پلو) — Afghan Aromatic Lamb Rice with Carrots and Raisins
Afghan · Rice Dishes · 130 min
Reviews
Cooked this recipe?
Tap the stars to rate it — that's all it takes. A few words are welcome but optional.
No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.