We suffered through this scenario for the first year. After experiencing shortages and waste we decided to let the client decide. We tell the client what, from our experience, specific portions will satisfy a person and have them tell us what quantities they want. We no longer "guess" on what quantities to provide.
It is all based off of portions sizes ounces (pulled meats, sides) and meat pieces (chix, ribs). We provide the client with our advice and once THEY decide the quantities of each they want we put those amounts right into the contract and obtain their signature. This takes the "you didn't bring enough" out of the discussion if food runs out.
One caveat to this, we do add a 10% buffer to all food products just to help out. (but the cost of that 10% buffer is figured into the price we quote for the gig