
I used to make out a shopping list, just before going to the shops, by looking in the kitchen cupboards, fridge and freezer, and writing down everything we seemed to be short of. That never seemed to work very well, because inevitably there were things I didn't spot - because I'd used up every last little bit, so there was no half empty packet to remind me that I needed to buy some more.
So I decided some time ago to do the following:-
I keep a shopping list on the fridge door, held in place by magnets, and I keep a pencil handy in the recess of the fridge door handle.
As soon as I notice that supplies of something is getting a bit low I write it on the list, and hubby does the same. Then, when we go shopping we stick to the list, and cross things off as we buy them, so we don't miss anything.
Theoretically this method should work like clockwork 
However............
In practice........
1 We often forget to put something vital on the list because we weren't in the kitchen when we realised we needed more. (We keep the loo rolls upstairs, near the loo, for instance)
2 We often put something down that we already have a spare of (didn't notice it at the back of the cupboard/bottom of the freezer)
3 We often buy things not on the list because one of us suddenly says "I think we're running low on ketchup, but I forgot to write it down", so we buy one "just in case". Inevitably when we get home we find there's a stockpile of them in the cupboard from previous similar "just in case's". I've currently got enough packets of rice to plant my own paddy field!
4 The list doesn't account for all those "two for the price of one" or "buy two, second one half price" offers....we don't want two, we don't need two, but we'd be daft to buy just one at full price, or to not buy something at a reduced price this week just because it's not on the list, and then pay full price for it next week!
5 We often forget to take the list with us, so we have to shop by guesswork anyway! 
Has anyone got any bright ideas for a better method 
