Our school has a brilliant system where all the children bring a menu home each week for the following week. There are 2 choices for main, 2 puds (fresh fruit always one of the options) and two vegetarian options, plus sandwiches or baked potatoe.
You can tick whichever days you want, and whichever choices you want and return it by Thursday so the cook has time to order all the ingredients for the quantity of portions each day. The cost of printing the menus is far outweighed by the savings in food waste.
This enables the school to budget very well on quite precise quantities. There is hardly any waste - often at the 2nd sitting (older kids) the cook will shout out does anyone want seconds, and even packed lunch kids are allowed to rush up and get some if they want. They would rather do this than chuck it. There is a little bit of leeway in portions in case a child forgets their packed lunch etc.
I think this is such a good system and the food is really good , so to support it my kids have school dinners 2 days a week which they choose themselves off the menu and the other 3 days they have a packed lunch. Which I have costed out many times and (I'm not going to list it all here) I KNOW I put together for about £1.50 per day for 2 children. Sometimes less. If I am making pizza I just save a bit and they have that cold the next day. Last week I did rhubarb crumble and custard on sunday, they had a portion cold in their little tubs the next day and love it.
Packed lunches costs the same or only slightly less than a school dinner if you put in all the packaged stuff like walkers crisps, cheese strings, branded yoghurt, cartons of juice etc. We have pots that I put a few lidl crisps or pringles in, a piece of homemade cake, or some yogurt from a big tub, and butchers ham off the bone on to one of lidl's lovely breadbuns. Drink is vimto squash, a £1 bottle lasts ages if you don't make it strong.