I try to select sizes and grades in what I need to avoid any waste as much as possible, but I also buy at least 10-20% more than I need generally on smaller jobs, as I know I'll always use up the left over at a later date on another project.
Bigger jobs you have more flexibility to mix and match, so I buy just a little extra in case of stuff ups, unknown issues.