Preferential Voting implements the procedure for determining the results of a faculty election per the rules laid out in the Faculty Handbook. As the algorithm is publicly available and no files or results are saved by the application, the application is available publicly to anyone who wishes to use it.

The application is available at https://preferentialvoting.lafayette.edu.

The form takes an input file in Comma Separated Value (csv) format. As these elections are commonly balloted through Qualtrics, the input field is labeled ‘Qualtrics Ballot File’, although any csv file formatted in the correct format will suffice.

The input fields labeled ‘Number of Header Rows’, ‘Number of Preceding Columns’, and ‘Number of Trailing Columns’ allow for some flexibility in the formatting of the input file. The ‘Number of Winners’ field controls how many winners will be returned by the application when it processes the ballot. In the case that the application cannot determine the correct number of winners (due to ties), all tied winners will be returned with an error message. In all cases, winners are displayed with information about which part of the algorithm produced them as a winner.

In general, the input file should be laid out such that each row contains a single voter’s ballot, with each column entry corresponding to their preference for that candidate represented by that column. The ‘Number of Header Rows’ field controls how many rows at the top of the file do not represent a voter ballot, but are instead column headers or other metadata. If the number of header rows is 2 or greater, the second row is used to try to parse out the names of the candidates. This is not strictly necessary, but is for convenience of interpreting results. Otherwise, the application simply numbers the candidates as they appear left to right in the columns.

The ‘Number of Preceding Columns’ and ‘Number of Trailing Columns’ fields allow for columns to contain metadata about the voters or other information that is not preference data, at the beginning and end of each row, respectively. Any information in these columns is completely ignored by the application.

All three of the input format controls default to the values that processed the example files that were provided at the time the application was built.