Tutorial 7: Introduction to compensatory systems

In this tutorial we will learn how to define compensatory systems, used to level seats according to a second criterion.

Scotland - Scottish Parliament (Highlands and Islands)

A voter must cast two ballots:

  • First vote: an individual candidate will be chosen for a one-seat constituency, like in UK - General election (Caerfyrddin), winners will be elected by first-past-the-post.

  • Second vote: in order to improve the proportionality at a party level, a second part vote is performed for a region, comprised by several constituencies. The seats will be allocated using the highest averages method with d'Hondt divisors, resuming the already allocate seats.

We will use only the Highlands and Islands region: 8 constituencies and 7 additional members.

  1. Define the constituencies (first vote). Independent candidates can only win 1 seat.

     1name: Scottish Parliament - 2011
     2type: group
     3method: first_past_the_post
     4divisions:
     5
     6- name: Highlands and Islands
     7  type: group
     8  divisions:
     9  - name: mp_highlands_islands
    10      type: group
    11      divisions:
    12      - name: Argyll & Bute
    13        candidates:
    14        - {alliance: SNP, name: Michael William Russell, votes: 13390}
    15        - {alliance: Conservative, name: Jamie McGrigor, votes: 4847}
    16        - {alliance: Labour, name: Mick Rice, votes: 4041}
    17        - {alliance: Liberal Democrat, name: Alison Hay, votes: 3220}
    18        # independent
    19        - {max_seats: 1, name: George Doyle, votes: 542}
    20        - {alliance: Liberal Party (The), name: George Alexander White, votes: 436}
    21      - name: Caithness, Sutherland & Ross
    22      - name: Inverness & Nairn
    23      - name: Moray
    24      - name: Na h-Eileanan an Iar
    25      - name: Orkney Islands
    26      - name: Shetland Islands
    27      - name: Skye, Lochaber & Badenoch
    
  2. Add a compensatory district for the Highlands and Islands region:

     1name: Scottish Parliament - 2011
     2type: group
     3method: first_past_the_post
     4divisions:
     5
     6- name: Highlands and Islands
     7  type: group
     8  divisions:
     9  # regional additional member district
    10  - name: am_highlands_islands
    11    type: compensatory
    12    mode: additional_member
    13    seats: 7
    14    method: highest_averages
    15    method_params:
    16      divisor_f: dhondt
    17    first_vote: "alliance[mp_highlands_islands:-1]"
    18    skip_initial_seats: yes
    19    candidates:
    20    - {name: SNP, votes: 85082}
    21    - {name: Labour, votes: 25884}
    22    - {name: Conservative, votes: 20843}
    23    - {name: Liberal Democrat, votes: 21729}
    24    - {name: Green, votes: 9076}
    25    - {name: Scottish Christian Party, votes: 3541}
    26    - {name: UK Independence Party, votes: 3372}
    27    - {name: All Scotland Pensioners Party, votes: 2770}
    28    - {name: Ban Bankers Bonuses, votes: 1764}
    29    - {name: Liberal Party (The), votes: 1696}
    30    - {name: Socialist Labour Party, votes: 1406}
    31    - {name: British National Party, votes: 1134}
    32    - {name: Scottish Socialist Party, votes: 509}
    33    - {name: Solidarity, votes: 204}
    34  # one-seat constituencies
    35  - name: mp_highlands_islands
    36    type: group
    37    divisions:
    38    - name: Argyll & Bute
    39    - name: Caithness, Sutherland & Ross
    40    - name: Inverness & Nairn
    41    - name: Moray
    42    - name: Na h-Eileanan an Iar
    43    - name: Orkney Islands
    44    - name: Shetland Islands
    45    - name: Skye, Lochaber & Badenoch
    

    The addtional_member adapter will resume a previous allocation using a different method. Setting skip_initial_seats to true, only the new allocated seats will be included in the node result.

    The first vote is taken from leaf nodes from mp_highlands_islands, and transformed to taken the alliance as identifier.

New Zealand - General Elections

The system is really similar to the Scotland’s one, but there are some differences:

  • There is only one compensatory district for all the country.

  • The compensatory district will not resume the previous allocation. A big number of seats are assigned so that the disproportionality will be absorbed. The seats won by constituencies will be subtracted from the result.

  • For a party to participate in the compensatory allocation, it must reach a 5% of the formal votes. That won’t apply to parties that won at least 1 constituency.

 1name: New Zealand General Elections - 2014
 2method: first_past_the_post
 3type: group
 4divisions:
 5# mixed member district
 6- name: compensatory district
 7  type: compensatory
 8  mode: mixed member
 9  method: highest_averages
10  method_params:
11    divisor_f: sainte_lague
12  seats: 120
13  exclude: votes < 5%
14  include: electorate vote.alliance_seats >= 1 => alliance
15  first_vote: alliance[electorate vote:-1]
16  skip_initial_seats: yes
17  candidates:
18  ...
19# constituencies
20- name: electorate vote
21  type: group
22  aggregate: true
23  divisions:
24  ...

The mixed_member adapter allocates again using the second vote, and it subtract the seats won by the first allocation.


Well… as you can see, this is escalating. Take some rest and bring a fresh change of clothes, because we are travelling to Northern Europe, home to complex compensatory systems. Things could happen…