Fun & games

Movie Night Consensus Picker

Everyone ranks the films, vetoes count: Borda, approval, runoff and Condorcet decide.

Ballots (required)
Ballots
#NameRanking, best firstVeto (optional)
1
2
3
4

Empty = half of the candidates, rounded up.

Ties are broken by a seeded random order of the candidates. Empty = derived from the inputs.

Try an example: Five friends, four films, one veto · Methods disagree (classic three-way split)

How it works

List the candidate films (or restaurants, games, holiday spots), then let each person rank them and veto the ones they cannot stand. The picker runs four voting methods — Borda count, approval, instant-runoff and Condorcet/Schulze — shows each winner and why, and breaks ties fairly with a seed.

  • Each ballot is a ranking, best first; films a person leaves out count as tied below all films they ranked. Names are matched case-insensitively; unknown names are reported and skipped.
  • Vetoes: in “remove” mode every film vetoed by at least one person is struck before any counting (if that would remove all films, vetoes are ignored and a warning is shown).
  • Borda: with n films, 1st place earns n−1 points, 2nd n−2, … ; unranked films share the remaining points equally. Approval: each voter approves their top N films; most approvals wins. Instant-runoff (IRV): count first preferences, eliminate the film with the fewest, transfer those ballots to their next choice, repeat until one film has a majority of the ballots still in play.
  • Condorcet/Schulze: for every pair, count how many voters prefer each. A Condorcet winner beats every other film head-to-head. The Schulze method (strongest paths) always finds a winner and agrees with the Condorcet winner when one exists.
  • Ties are broken with a random order of the films drawn from the seed (sfc32 seeded with SHA-256), shown in the result, so the outcome is reproducible and nobody can claim favouritism. The recommendation is the Schulze winner.

For scripts and AI agents

  • JSON API: POST https://movienightconsensuspicker.usefulweb.site/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://movienightconsensuspicker.usefulweb.site/mcp · tool name movie_night_consensus_picker
Example request
curl -s -X POST https://movienightconsensuspicker.usefulweb.site/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{"candidates":["Dune: Part Two","Paddington 2","Alien","Amélie"],"ballots":[{"voter":"Ana","ranking":"Dune: Part Two > Alien > Amélie > Paddington 2"},{"voter":"Ben","ranking":"Paddington 2 > Amélie > Dune: Part Two","veto":"Alien"},{"voter":"Cleo","ranking":"Amélie > Paddington 2 > Dune: Part Two > Alien"},{"voter":"Dev","ranking":"Dune: Part Two > Paddington 2 > Amélie > Alien"},{"voter":"Eli","ranking":"Paddington 2 > Dune: Part Two > Amélie > Alien"}],"vetoMode":"remove"}'

Related tools

  • Chore Roulette – Spin a fair chore rota: random but balanced by effort, with a “not again” rule.
  • Tournament Bracket Maker – Single or double elimination or round robin: seeded brackets, byes, results and downloads.
Feedback