Grocery shopping is sort of a constant work-in-progress for me. Just when I think I've found a method that works for us, or I've found a set list of items that keeps us well within our food budget, something changes. Either prices go up, or our needs have changed or whatever. But, regardless of the reason, I am continually changing how I shop for groceries.
One thing that seems to be a good constant is using cash only. On the day of the shopping trip, I go to the ATM and get out my max allowance for that shopping trip. This keeps me from over spending. If there is any money left over, I either get a "treat" or just hold on to the cash to use for something fun later - Starbucks, ice cream, whatever.
I used to shop once per week for groceries. But, we always seemed to need something in the middle of the week when I did this. Making subsequent trips to the store for a forgotten or needed item often caused me to overspend - this was before the cash system. I've also tried having one "big" shopping trip per month and then once weekly small trips after that. This worked well initially, but it began to give us the illusion that we had more food to consume early in the month than we actually did. Or, I would forget about something I had purchased and it would be in my freezer for months. So, after several months of trying this, we stopped.
It wasn't until a few months ago that I started following our "new" shopping method. Daniel came up with this and I think he's brilliant. ;) Rather than shopping for groceries weekly or even every other week, I go once every 10 days - give or take a day or two. I divide my monthly food budget by 3 and stick to the cash available when I go to the store.
I like this method because I plan 3-4 dinners and make sure I purchase everything I need for them. I also regularly purchase things like a canister of oatmeal, yogurt, fruit, bread, eggs, cheese, peanut butter, etc. to have on hand for breakfast and lunch. Sometimes, toward the end of the month, things may look a bit bare, but we've always had enough and this method prevents us from holding on to unused food in the cupboards for too long.
I mentioned that I plan 3-4 dinners for my 10 day shopping trip. I always make enough to have at least 2, sometimes 3, dinners out of it, plus at least one lunch for Daniel. We often alternate every other night with dishes until they are nearly complete and then I'll bring another dinner menu into the mix and if necessary, I'll add a 4th dinner menu. Usually this gets us through the 10 day stretch. Sometimes we have excess, sometimes we don't.
Anyway, budgeting is an ongoing process and, as a result, so is grocery shopping. At present, the system mentioned above works for us, but it is certain to change eventually. :)