.. pref_voting documentation master file, created by
sphinx-quickstart on Fri Jul 8 15:41:42 2022.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Introduction
=======================================
Preferential Voting Tools (``pref_voting``) is a Python library that can be used to study and run elections with different preferential voting methods (graded voting methods and cardinal voting methods are also included for comparison). 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, and some candidates may be left off the ranking.
The main objective is to create a set of tools that can be used by researchers to study voting methods, teachers to present topics in voting theory, and election administrators to run elections. Use the following website to run an election using the preferential voting method Stable Voting: https://stablevoting.org/
The library is developed by Wes Holliday (http://wesholliday.net) and Eric Pacuit (https://pacuit.org).
**Survey articles about voting methods**
- E. Pacuit (2019). `Voting methods `_, Stanford Encyclopedia of Philosophy.
- W. Zwicker (2016). `Introduction to the theory of voting `_, Handbook of Computational Social Choice.
How to cite
------------------------
If you would like to acknowledge our work in a scientific paper,
please use the following citation:
Wesley H. Holliday and Eric Pacuit (2025). pref_voting: The Preferential Voting Tools package for Python. Journal of Open Source Software, 10(105), 7020. https://doi.org/10.21105/joss.07020
**Bibtex**:
.. code-block:: bibtex
@article{HollidayPacuit2025,
author = {Wesley H. Holliday and Eric Pacuit},
title = {pref_voting: The Preferential Voting Tools package for Python},
journal = {Journal of Open Source Software},
year = {2025},
publisher = {The Open Journal},
volume = {10},
number = {105},
pages = {7020},
doi = {10.21105/joss.07020}
}
Related resources
------------------------
- VoteKit (https://votekit.readthedocs.io/) - A Python package developed by the MGGG Redistricting Lab (https://mggg.org/) designed to facilitate the study of different election methods.
- prefsampling (https://comsoc-community.github.io/prefsampling/) - A Python library for sampling from preference profiles with respect to different probability models.
- PrefLib (https://www.preflib.org/) - A database of election data.
- Mapel (https://github.com/szufix/mapel) - Mapel (Map of Elections) is a Python package that can be used to simulate elections.
- https://voting.ml/ - An online tool to study *maximal lotteries* (a Condorcet consistent probabilistic voting method).
- abcvoting (https://abcvoting.readthedocs.io/) - Python library of approval based committee voting rules.
- Votelib (https://github.com/simberaj/votelib) - Another Python package that implements a number of voting methods (includes multiwinner methods and some grading systems such as Approval Voting and Majority Judgement).
See [https://comsoc-community.org/tools](https://comsoc-community.org/tools) for an overivew of tools for computational social choice.
Contents
-----------------
.. toctree::
:maxdepth: 2
self
installation
.. toctree::
:maxdepth: 2
:caption: Elections
edata_overview
ballots
profiles
profiles_with_ties
pairwise_profiles
grade_profiles
utility_profiles
spatial_profiles
weighted_majority_graphs
io
.. toctree::
:maxdepth: 2
:caption: Generating Elections
generate_profiles
generate_weighted_majority_graphs
generate_utility_profiles
generate_spatial_profiles
.. toctree::
:maxdepth: 2
:caption: Collective Decision Procedures
collective_decision_procedures
scoring_methods
iterative_methods
c1_methods
margin_based_methods
combined_methods
other_methods
probabilistic_methods
stochastic_methods
utility_methods
grade_methods
.. toctree::
:maxdepth: 2
:caption: Axioms
axioms_overview
dominance_axioms
invariance_axioms
monotonicity_axioms
strategic_axioms
variable_voter_axioms
variable_candidate_axioms
swf_axioms
.. toctree::
:maxdepth: 2
:caption: Analysis
analysis_overview
Index
----------------------
* :ref:`genindex`