Detalhes do pacote

sainte-lague

juliuste5.4kISC3.0.0

Sainte-Laguë method for seat distribution used in multiple parliamentary elections all over the world

distribution, election, highest quotient method, lague

readme (leia-me)

sainte-lague

An implementation of the Sainte-Laguë (also known as Webster or Schepers) method. Parliament seat allocation algorithm used in multiple countries such as Germany, Latvia, New Zealand etc…

Attention: Since some countries (like Latvia or Norway) use a modification of the algorithm instead of this vanilla version, you should check your country's electoral legislature. Furthermore, I don't take any responsibility for the accuracy of the calculated numbers, even though I'm pretty confident with my implementation.

npm version License Contact me

Installation

npm install sainte-lague

Usage

This package is ESM only.

import sainteLague from 'sainte-lague'

const electionResults = { // number of votes per party
    socialists: 130755,
    conservatives: 102068,
    liberals: 34012,
    greens: 31090,
    crazypeople: 11111
}
const seats = 420 // number of seats to be distributed
const opt = { // options, can be null
    draw: false // if a draw would be necessary to determine the seat count (e.g. 11 seats and two parties with 100 votes each), the library will throw an error, unless you set draw: true, in which case it will assert the ambiguous seat(s) randomly
}

const parliament = sainteLague(electionResults, seats, opt)

The parliament variable will look like this:

{
    "socialists": 178,
    "conservatives": 139,
    "liberals": 46,
    "greens": 42,
    "crazypeople": 15
}

Similar Projects

  • hare-niemeyer - Hare-Niemeyer / Hamilton / largest remainder method
  • DHondt – D'Hondt method

Contributing

If you found a bug or want to propose a feature, feel free to visit the issues page.