The average packed lunch for a school-age child costs $2-$4 when bought from a school canteen or deli. Make it at home and you're looking at $1-$1.50 per child - half the cost with better nutrition and zero surprise ingredients. These eight ideas rotate well across a school week and lean heavily on leftovers, which cuts both cost and prep time.
It has to survive 3-4 hours without refrigeration (or in a cold bag), and the child has to actually eat it. Nutritionally perfect lunches that come home untouched don't feed anyone. Start with foods you already know your child will eat, and make small additions over time rather than wholesale changes.
Two slices of bread, a smear of peanut butter, half a banana sliced inside. Add an apple and a small handful of crackers to round it out. ~480 kcal, 14g protein. Takes 90 seconds to make and travels well. Use natural peanut butter (no added sugar) if your school allows nuts - it has better macros and often costs less per serving than branded PB.
Leftover rice from dinner, half a can of tuna in spring water, a drizzle of olive oil, diced cucumber, and a squeeze of lemon if you have it. Packed cold in a container with a small fork. ~380 kcal, 22g protein. This works best Monday through Wednesday when the leftover rice is fresh.
Cold pasta + olive oil + whatever veg and protein is leftover from the previous night. Corn, diced carrot, chickpeas, shredded chicken - all work. Season with salt and a splash of vinegar. ~420 kcal, 14-20g protein depending on protein added. Make a larger portion of dinner pasta on purpose to ensure there's enough for the next day's lunches.
Hard-boil eggs in bulk during the Sunday batch cook session - 6 eggs takes 10 minutes and they keep all week in the fridge. Slice onto bread with a thin scraping of butter and a square of cheddar. ~400 kcal, 18g protein. Simple, filling, and zero morning prep beyond slicing. See the Sunday batch cook guide for how to fit egg-boiling into a weekly prep routine.
One flour tortilla, sliced leftover roast chicken, diced cucumber, a smear of plain yogurt or mayo, lettuce if available. Wrap tightly and cut in half. ~380 kcal, 24g protein. Kids generally like the hand-held format. This depends on having leftover chicken - plan it after the chicken thigh batch cook or the whole chicken strategy.
A portion of hummus (shop-bought is fine at this scale - around $0.30 per child from a standard tub), one small pitta or pitta strips, carrot sticks, and a small handful of cherry tomatoes. ~320 kcal, 9g protein. Lower protein than the other options but works well as a lighter day or combined with a boiled egg.
Leftover soup - particularly the lentil and vegetable soup - travels brilliantly in a wide-mouth thermos flask. Reheat in the morning, pour in, close tightly. Pack some crusty bread or crackers alongside. ~320 kcal, 18g protein. This is the cheapest lunch option on the list and one of the most nutritious. A thermos flask costs $8-$12 and pays for itself within two weeks.
Two flour tortillas with grated cheese and optionally some leftover chicken or beans, cooked in a dry pan for 2 minutes per side, wrapped in foil and refrigerated overnight. Kids eat them cold or at room temperature without complaint. ~450 kcal, 16–22g protein. One of the few options that actually tastes good the next day without reheating.
The highest-leverage habit for school lunches is making them immediately after dinner the night before, not in the morning rush. It takes 5 minutes when everything is already out. In the morning it feels like a 15-minute task you don't have time for.
Most of these lunches are built around planning dinners that intentionally produce leftovers. For the full system, including a 7-day family meal plan under $75, see our complete family meal planning guide.
For parents tracking their own calories or macros alongside the kids' lunches, the free weekly macro meal planner builds a complete day of recipes around your targets without any manual calculation.