I've been in the catering business for 20+ years, no matter how the food was sold, you can not run out of food, period.
In the end, all the guests that are at the event are your captive audience. If you sell food by the peice, the client is going to go the least expensive way to save money. all the guests are going to see it as you as the one that is running out of food, invited guests never see thier host as the one that didn't order enough food. It is not good to sell food by the peice or pound or each platter, because the client is always going to go the least expensive way. You will run out of food, period. It is always best to sell banquets "per person". Then you use your experience and proven formulas to calculate quantities. Every event is differant, you need to have experience in calculating quatities. I've been doing it for years with much success, but in my early days I had to learn from my mistakes. There is no book that you can buy that will define every event. It's called "the school of hard knocks".
And, it is always better to have left-overs then to run out. Because the if you cater a banquet for 100 people and run out of food, then you have 100 people dissapointed who are not going to come back for a new event. It's better Always price by the head, and then make "enough" food.