Quick Ranked-Choice Elections with Google Forms

Want to run a really quick ranked-choice election, like "which restaurant should we go to" or "where should we ask the city to build a crosswalk" ? See here for an example:
Here's one way to do it:
  1. Create a new Google Form.
  2. In the form description, explain each of the choices.
  3. Add a "multiple choice grid" question.
  4. In the "rows" of the question, add one row for each choice: "Chocolate", "Vanilla", etc.
  5. In the "columns" of the question, add a "rank number" for each choice: "1st", "2nd", etc.
  6. In the "three dots" menu at the bottom-right of the question, turn on "limit to one response per column":
  7. Send out the form and wait for people to vote.
  8. Once the votes are in, go to the "Response" tab of the form and export the ballots to a CSV using the option under the "three dots" menu:
  9. Download ballots.py and pip install pyrankvote.
  10. Adjust NUMBER_OF_SEATS in ballots.py to be the number of candidates you want to elect, e.g. how many flavors are you going to buy?
  11. Unzip the ballot CSV run ballots.py with the CSV on standard input: ./ballots.py < ballots.csv

Popular posts from this blog

Sloppy Graph, Sloppy Design

Maslow's Hierarchy of Engineering Team Needs

Multithreaded Python, extensions, and static data