Potluck Coverage Planner
A potluck goes wrong in a specific way: five people offer to bring pudding, nobody offers a starter, and the person who could have made one has already been given something else. That is a matching problem, and it has an exact answer. This assigns each guest a single dish so that every course is covered where that is possible at all — and where it is not, it names the set of courses with too few willing cooks between them, which is the only thing that can be fixed.
What this generator does
Treats every dish a course needs as a slot and every guest as someone who can fill one slot from their own list, then finds an assignment filling as many slots as any assignment could. Where slots are left over, it identifies a set of courses whose willing cooks are outnumbered by the dishes wanted.
How to use this tool
- List your guests, one per line, with the courses each is willing to bring.
- List the courses and how many dishes of each you want.
- Press Work it out.
- If anything is short, read which courses ran out of cooks.
Understanding the controls
- Guests
- One per line as a name, a colon, and the courses they are willing to bring, separated by commas. Someone happy to bring anything should be listed against every course.
- Courses
- One per line as a course name, a colon, and how many dishes of it you want. Two puddings and one starter is a perfectly normal answer.
Common use cases
- Assigning dishes for a potluck or bring-a-plate supper
- Making sure the awkward course gets covered before the easy ones fill up
- Finding out early that a menu cannot be covered by the guests you have
- Working out whether one more cook would fix a shortfall
- Sharing out courses for a shared Christmas or Thanksgiving meal
How this generator works
Assigning dishes greedily fails in an obvious way: give a flexible guest the starter and the guest who could only have made a starter is left with nothing. The fix is to allow a placement to be displaced, provided the guest displaced has somewhere else to go, and to follow that chain as far as it runs. Doing this for every guest produces an assignment filling as many slots as any assignment possibly could. When slots remain, the reason is always a set of courses wanting more dishes than the guests willing to bring any of them can supply, and that set is reported. Before display every dish is checked against what its cook actually offered, no guest is allowed two, and any stated shortfall is traced back to the courses and cooks that cause it.
Randomness and fairness
Nothing here is random. The same guests and courses give the same assignment, arrived at by matching rather than by drawing names.
For how randomness is produced across the whole site, see how Generate Random works.
Limitations and good to know
- Each guest brings one dish. Someone bringing two should be listed twice, under two names you will recognise.
- Dietary requirements are yours to encode in what each guest is willing to bring; the tool does not know what is in a dish.
- Where several assignments cover everything equally well, one of them is chosen — it is a valid answer rather than the only one.
- Quantities are counted in dishes, not portions. How much food a dish should be is the party quantity planner's question.
Privacy and your data
Names and courses stay in your browser. Nothing is uploaded, stored, or included in analytics — only that a plan was produced.
Related generators
- Party Quantity PlannerWorks out how much to buy for a party in whole packs, guaranteeing coverage and reporting the leftover honestly.
- Party Turnout CalculatorTurns an invitation list and an acceptance rate into the full distribution of who turns up, with the risk of overflowing the room.
- Dinner Party Menu Prompt GeneratorA planning constraint for a dinner-party menu, distinct from a specific three-course combination.
- Three Course Meal GeneratorA full starter, main and dessert combination, distinct from the site's single-dish meal-idea tool.