
Ingredients
- 1.5 lbs flank steak, sliced thin against grain
- 2 tbsp soy sauce (marinade)
- 1 tbsp sesame oil (marinade)
- 3 garlic cloves, minced (marinade)
- 1 tsp fresh ginger, grated (marinade)
- 4 cups broccoli florets (fresh or frozen, dried thoroughly)
- 1.5 cups dry brown rice
- 1 tbsp neutral oil (avocado or vegetable) for searing
- 3 tbsp soy sauce (sauce)
- 2 tbsp oyster sauce
- 1 tbsp sesame oil (sauce)
- 1 tbsp honey
- 2 tsp cornstarch
- 0.5 cup beef broth
- 2 garlic cloves, minced (sauce)
- 1 tsp fresh ginger (sauce)
Instructions
- Marinate the beef: combine soy sauce, sesame oil, garlic, and ginger in a bowl. Add flank steak strips. Toss to coat. Marinate 20 minutes at room temperature or up to 4 hours refrigerated. Start brown rice simultaneously: 1.5 cups dry + 3.25 cups water, bring to boil, cover, lowest heat, timer 40 minutes.
- Make the sauce: whisk soy sauce, oyster sauce, sesame oil, honey, cornstarch, beef broth, garlic, and ginger until fully combined. The cornstarch is key โ it gelatinises when the sauce hits a hot pan, creating a stable coating that holds 4 days refrigerated without separating. Set aside in a small jar.
- Blanch broccoli: bring a large pot of salted water to a rolling boil. Add broccoli florets. Cook exactly 2 minutes โ bright green with a slight bite. Drain immediately and transfer to an ice bath (bowl of cold water + ice). This stops the cooking and locks in the green colour. Drain again and dry thoroughly on a clean kitchen towel. Broccoli stored wet gets slimy by day 2.
- Sear the beef: heat a cast iron or stainless steel skillet over high heat until very hot. Add 1 tbsp oil. Remove beef from marinade and pat dry with paper towels โ surface moisture prevents searing and causes steaming instead. Cook in batches (don't crowd the pan โ crowding drops the temperature and causes steaming). Sear 1โ2 minutes per side. Target internal temperature: 160ยฐF (71ยฐC) for stir-fry strips. Rest 3 minutes before portioning.
- Verify temperature: insert thermometer into the thickest strip. Must read 160ยฐF (71ยฐC). Salmonella and E. coli O157:H7 are the relevant bacterial risks in beef. For intact steaks, 145ยฐF with rest is sufficient โ but thinly cut strips expose more internal surface area during slicing, so 160ยฐF is the safer target for this preparation.
- Cool everything: spread beef and broccoli on separate trays. Spread rice on a wide pan. Cool 20 minutes before containerising โ hot food sealed in containers creates condensation that makes rice gummy and broccoli wet.
- Portion into 5 containers: ยพ cup cooked brown rice and 4โ5oz beef strips per container (these can share one compartment). Broccoli in a separate small container or the second compartment. Sauce in one shared jar โ it serves all 5 meals. Label with date. Refrigerate at 40ยฐF (4ยฐC). Per USDA FoodKeeper: cooked beef 4 days, cooked rice 4โ6 days, cooked broccoli 4โ5 days.
- To reheat: add beef to a cold skillet, medium heat, 2 minutes. Add broccoli, 45 seconds. Pour sauce over, toss 30 seconds until it coats everything. Off heat immediately. Total reheat time: 3 minutes 15 seconds. This produces results noticeably better than any microwave method. If microwaving is required: add 2 tbsp water, cover vented, 70% power, 90 seconds.
Instructions
- Marinate the beef: combine soy sauce, sesame oil, garlic, and ginger in a bowl. Add flank steak strips. Toss to coat. Marinate 20 minutes at room temperature or up to 4 hours refrigerated. Start brown rice simultaneously: 1.5 cups dry + 3.25 cups water, bring to boil, cover, lowest heat, timer 40 minutes.
- Make the sauce: whisk soy sauce, oyster sauce, sesame oil, honey, cornstarch, beef broth, garlic, and ginger until fully combined. The cornstarch is key โ it gelatinises when the sauce hits a hot pan, creating a stable coating that holds 4 days refrigerated without separating. Set aside in a small jar.
- Blanch broccoli: bring a large pot of salted water to a rolling boil. Add broccoli florets. Cook exactly 2 minutes โ bright green with a slight bite. Drain immediately and transfer to an ice bath (bowl of cold water + ice). This stops the cooking and locks in the green colour. Drain again and dry thoroughly on a clean kitchen towel. Broccoli stored wet gets slimy by day 2.
- Sear the beef: heat a cast iron or stainless steel skillet over high heat until very hot. Add 1 tbsp oil. Remove beef from marinade and pat dry with paper towels โ surface moisture prevents searing and causes steaming instead. Cook in batches (don't crowd the pan โ crowding drops the temperature and causes steaming). Sear 1โ2 minutes per side. Target internal temperature: 160ยฐF (71ยฐC) for stir-fry strips. Rest 3 minutes before portioning.
- Verify temperature: insert thermometer into the thickest strip. Must read 160ยฐF (71ยฐC). Salmonella and E. coli O157:H7 are the relevant bacterial risks in beef. For intact steaks, 145ยฐF with rest is sufficient โ but thinly cut strips expose more internal surface area during slicing, so 160ยฐF is the safer target for this preparation.
- Cool everything: spread beef and broccoli on separate trays. Spread rice on a wide pan. Cool 20 minutes before containerising โ hot food sealed in containers creates condensation that makes rice gummy and broccoli wet.
- Portion into 5 containers: ยพ cup cooked brown rice and 4โ5oz beef strips per container (these can share one compartment). Broccoli in a separate small container or the second compartment. Sauce in one shared jar โ it serves all 5 meals. Label with date. Refrigerate at 40ยฐF (4ยฐC). Per USDA FoodKeeper: cooked beef 4 days, cooked rice 4โ6 days, cooked broccoli 4โ5 days.
- To reheat: add beef to a cold skillet, medium heat, 2 minutes. Add broccoli, 45 seconds. Pour sauce over, toss 30 seconds until it coats everything. Off heat immediately. Total reheat time: 3 minutes 15 seconds. This produces results noticeably better than any microwave method. If microwaving is required: add 2 tbsp water, cover vented, 70% power, 90 seconds.
Why the Separate Storage Rule Matters
Broccoli stored in contact with soy and oyster sauce loses its green colour within 24 hours โ the acid and salt convert chlorophyll to pheophytin, a khaki compound. Beef stored in sauce loses moisture through osmosis (the high salt concentration outside the muscle draws water out), producing dry, salty day-4 beef. Separate storage maintains both components at day-1 quality through day 4.
The sauce jar serves the whole week. At reheating, add it fresh to a hot skillet โ the cornstarch re-gelatinises immediately and coats everything evenly in 30 seconds. This is the technique that separates good meal prep beef and broccoli from the grey, soggy version.
Variations
The same flank steak preparation supports five sauce profiles: Classic Chinese-American (this recipe), Korean bulgogi-style (gochujang + sesame + soy + a tbsp of pear juice), teriyaki (soy + honey + mirin), garlic-ginger light (soy + lots of garlic + ginger + broth, no oyster sauce), spicy Szechuan (soy + chili oil + Szechuan peppercorn + rice vinegar). Change the jar on Sunday and the meal feels entirely different across the week.


Storage Reference (USDA FoodKeeper)
Cooked beef 4 days at 40ยฐF (4ยฐC), 3 months frozen. Cooked brown rice 4โ6 days. Cooked broccoli 4โ5 days. Sauce (cornstarch-based) 5 days refrigerated. To freeze: portion beef into individual bags, freeze within 48 hours, thaw overnight in refrigerator. Broccoli does not freeze well after blanching โ make fresh if extending to a freezer batch.
Beef Cut Cost Comparison
Flank steak at $7โ$9/lb yields approximately 5oz per serving after cooking loss (20% moisture loss). At $8/lb average for 1.5 lbs: $12 total for 5 servings = $2.40 from beef alone. Add rice ($0.13), broccoli ($0.44), sauce ($0.13): total $3.10 per container. The $2.10 figure uses the lower end of flank steak pricing โ achievable at Walmart or Aldi where it runs $7โ$7.50/lb.
Ground beef 90/10 at $5.99/lb for 1.5 lbs = $8.99 for 5 servings = $1.80 from beef. Total container cost approximately $2.50 with ground beef โ paradoxically slightly more expensive than flank because ground beef has more fat to render off, meaning more weight loss during cooking and fewer net servings per pound.
Freezing This Recipe
Beef freezes well โ portion into individual servings in zip-lock bags, press flat, freeze within 48 hours of cooking. Per USDA FoodKeeper: cooked beef 3 months frozen. Thaw overnight in the refrigerator. Do not freeze blanched broccoli from this recipe โ it becomes mushy after thawing. Make fresh broccoli for any frozen beef portions. The sauce jar also freezes well โ freeze in ice cube trays and transfer to a bag once solid. Each cube = approximately 1 serving of sauce.

