README

Meeks-PRF-web

Count votes for a Meek's method RCV / STV election contest entirely in your own browser with a standalone web page.

Table of Contents

Quick start

Visit the tabulation web page which is also linked to from this project's GitHub web pages . Those pages also provide links to other helpful resources.

To start doing a tabulation, just go to the tabulation web page, then click on the "Count Votes" button to tabulate the small, pre-loaded sample contest. Scroll down to view the results.

Data for other sample contests are in the samples directory of this project and are linked to from this project's GitHub web pages.

For your own election contest, you can:

Additional information about how to use the tabulation web page is in the tabulation web page's "Help" panel.

Introduction

With the tabulation web page, you can provide information describing candidates, ballots, and other parameters for a ranked choice voting (RCV) / single transferable vote (STV) election contest. You can then count the votes using the Proportional Representation Foundation's reference rule for Meek's method and various optional extensions to that rule.

The web page can be used as a standalone tool. The vote counting is done entirely client-side in your browser. Other than initially providing the web page resources (HTML, CSS, and Javascript files) the web page is not dependent on any web server and does not communicate across networks with other computers.

The web page uses the Meeks-PRF-js tabulation engine which is also available to developers as an NPM package, meeks-prf-js.

Meek's method is a form of RCV / STV that supports proportional representation in multi-winner elections. It can provide a fairer and more comprehensive transfer of surplus than other forms of STV, including variations of the weighted inclusive Gregory method (WIGM) which also involves transfers of surplus as fractions of a vote. Any form of STV tends to provide fairer results than other traditional election methods and greatly reduces the practical opportunities for tactical voting. However Meek's method tends to accomplish these goals better than other forms of STV. However the trade-off is that Meek's method is more computationally intensive, to the extent that it is typically not practical to count votes with Meek's method without the assistance of a computer for contests with more than a few winners.

The reference rule published by the Proportional Representation Foundation is particularly significant because it ensures that independent but conforming implementations will always produce the same result, provided that any ties are consistently resolved.

Version

This is version 1.0.0 of the Meeks-PRF-web project. It has stable, well tested functionality. Unlike earlier versions, this version is intended for general use.

Features

The tabulation web page provides an easy, self-serve approach to independently tabulate votes using Meek's Method. Some of its noteworthy features include:

Repository structure

The src directory contains the Javascript programs that handle the web page interactions and that do the vote counting.

The docs directory contains the Github web pages. The tabulation web page is in the docs/count-votes subdirectory. Its javascript files are built from the files in the src directory using Webpack and Babel developer tools.

Several sample files are stored in the samples directory.

Browser support

The tabulation web page will work best in a modern, standards-compliant web browser. The following are the supported browsers and their lowest supported version numbers:

Tabulations running in the background are not available with Internet Explorer.

Licensing

This project is licensed under the Apache License, Version 2.0 (the "License"), except for those files that are labeled as being in the public domain. You may not use contents of this repository except in compliance with the License. A copy of the License is in the LICENSE file and may also be obtained at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2016-2019 David Cary; licensed under Apache License, Version 2.0