Tool for conducting roller coaster polls inspired by Mitch Hawker's "Best Roller Coaster Poll". Ballots rank certain coasters, and pairwise matchups of coasters are assigned a "Win", "Loss", or "Tie" depending on their ranking. Once all ballots and W-L-T's are tallied up, roller coasters are ranked by order of win percentage. The method is not dissimilar to how a ranked pairs election is conducted.
To run an election where:
- The minimum number of a riders a coaster needs in order to be ranked is
10
- The default ballot is named
generic ballot.txt
- The folder containing submitted ballots is named
ballots
- The resulting output file should be named
Coaster Poll 20XX
Simply run:
python tabulator.py -m 10 -b "generic ballot.txt" -f ballots -o "Coaster Poll 20XX"
And output will be saved to Coaster Poll 20XX.xlsx
Alternatively, the command line argument defaults are:
-m 9
-b blankballot2019.txt
-f ballots2019
-o "Poll Results.xlsx"
Additional command line flags include:
-c
sets fill color of certain cells to reflect the make (manufacturer) of the coaster-d wood/steel
specifies what set of designers to reference (default:wood
)-i
includes sensitive voter data in a spreadsheet in the output file;-ii
includes more-r
bothers rcdb.com with requests to fill in coaster details-v
prints data as it's processed;-vv
prints even more
The script requires with Python 3 and openpyxl.
Scraping data from rcdb.com with the -r
flag requires lxml and beautifulsoup4.
Poll designed and hosted by ElloCoaster. Check out our Wood Coaster Poll!