As I have yet to come across an accurate formula for determining how much yarn I will need, for afghans I usually choose a "no dye lot" yarn. That way I can run to the store and get more if necessary. Thankfully, these yarns have come a long way.
I have in my stash some no dye lot yarn from years ago that in no way matches the same company's color today, even though the label says it should. This was the fear in the back of my head as I went to the store yesterday to get more yarn for the Herrschner's afghan. My trepidation was happily unfounded as I discovered a near perfect match!
Unfortunately, this yarn wasn't found until I went through 3 different stores. It's sad that the economy has gotten to the point where inventories large enough to keep the shelves filled has become a liability to the store. I know that it can be ordered, but that doesn't help if you need the yarn right away. There is also absolutely no way to match the color of a no dye lot yarn until you receive it. If the color is off, you've lost 3 days (or more!) waiting for the wrong yarn and you're back to where you started. Very frustrating!
I am using quite a bit of my own stash for this afghan, so I have not been strictly following the general rule of "buy more yarn than you think you'll need." My afghan is about three quarters finished at this point, and I bought six 7 ounce skeins yesterday. I know I'll have extra yarn, and that's okay as I also know I will not have to go searching for it anymore, at least for this project!