Preferential Voting Tools (pref_voting) is a Python library that can be used to study different preferential voting methods. In a preferential voting election, each voter submits a ranking of the candidates, and the winners are determined based on the submitted rankings. The rankings may include ties between candidates, or some candidates may be left off the ranking.

The main objective is to create a set of tools that can be used by teachers and researchers to study voting methods. Use the following website to run an election using the preferential voting method Stable Voting:

The library is developed by Wes Holliday ( and Eric Pacuit (

Survey articles about voting methods