Part of my job in the charter world is to manage the supply and provisions so I feel I have some qualification to post useful info here. I used an advanced algorithm that factored out my supply. Many of my contracted trains I worked in were seating well in excess of 1,000 passengers.
For drinks I always estimated that each passenger would consume .75 of a drink in coach whereas first class where it's free would normally drink 2. The reason I never budgeted a full drink in coach is because a substantial amount of PAX on these all day trains would never go to the cafe. Especially if we were running two half day trains.
As far as food I like to have twenty percent more then what I actually need because there are always going to be misordered food, damages, crew, and people wanting extra.
Now when we were running two half day trips in a day that's when the factoring gets really difficult because one of my contracts thought we should serve people a full meal on their three hour trip in first class. Yet coach would almost not buy anything from the commissary. On the morning trips out of 500 coach passengers j sold 100 drinks total. The afternoon trips would sell 250.
The other part that made half day trips unpleasant was we didn't have time to service the train and restock it at the turn. And we have limited storage space because they opened a gift store in the cafe as well.
But the worst case we've ever had provisioning a train was a football special. It was all first class and contained unlimited alcohol. We filled 9 kitchens with a variety of drinks on the 400 seat train. We ran out in forty minutes. We restocked while the pax were at the game. We bought even more that time storing wherever we could find space. We ran out in twenty minutes.
Moral of the story is its a difficult thing to gauge how much will move on a given trip. No two trains are the same.