Biproportional Sainte-Laguë

Made Simple

Olli Salmi
2004


The purpose of this page is to make clear to myself how the result is calculated in biproportional elections. The basic idea behind them is that there are regions with electoral districts. The parties get seats in proportion to the votes they get in the whole region, and the districts get as many seats as they are entitled to on the basis of population. There’s a contradiction in this because the row sums (districts) and the column sums (parties) must match the seats allocated in the whole region and they do not do so automatically.

In Sainte-Laguë’s method the vote of each party is divided by a divisor. The result rounded off is the number of seats that the party is entitled to. The method is usually described as an algorithm to find a suitable divisor. For the allocation of seats it’s irrelevant how we get this figure, but in legislation it’s usual, and unnecessary, to describe the exact procedure.

Biproportional Sainte-Laguë is similar, but there are party divisors and district divisors. A party’s vote in a district is divided with the product of these divisors. The quotient is rounded off and the result is the number of seats allocated for the party in that district. There is an algorithm to find suitable divisors, but it’s not as easy as finding Sainte-Laguë’s divisor.

The district divisors are needed because because the rounding may go in the wrong direction, the turnout is different in each district and a district may be entitled to more seats than its population warrants. The party divisors are needed to correct the errors generated by the district divisors.

The method is based on a theorem proved by Balinski and Demange (Hylland 2000). If we assume the divisors and rounding off mentioned above, there is one correct apportionment (except in the case of a tie) and such divisors can be found that the rounded quotients fall within 0.5 of the unrounded quotients.

The principle described by Balinski (2002) is not too difficult. You can find a correct allocation of seats by doing Sainte-Laguë apportionments alternatively on rows and columns until you have the correct row and column sums. After the first round the distribution uses the unrounded quotients of the previous apportionment instead of the votes. The divisors after the first are around 1 and you get the final divisors by multiplying all the divisors that have been used in the process. In practice a computer application would be used, like BAZI by Friedrich Pukelsheim.

To allocate seats according to Sainte-Laguë you can divide the vote for each party by a succession of numbers 0.5, 1.5, 2.5 etc. The quotients are priority numbers, which indicate the order in which seats are assigned. The party with the highest priority number gets the first seat, the party with the second highest priority number gets the second seat, etc. You separate as many of the highest priority numbers as there are seats and and give the seats to the parties which the priority numbers belong to. Here’s a priority table for two parties, A with 6000 votes and B with 5000.


A
B

6000 5000
0.5 12000 10000
1.5 4000 3333.333
2.5 2400 2000
3.5 1714.286 1428.571

This is actually a way of finding a suitable divisor. If you divide A’s vote with 12000, the quotient is 0.5 which gets rounded up and yields one seat. It should be noted that the priority number obtained with this procedure is the upper limit for a divisor. A’s vote can be divided by any other number between 12000 and 4000 to yield one seat. In biproportional Sainte-Laguë you cannot use the highest possible divisor, because if you do, many unrounded quotients will have the fractional part 0.5 and there will be a lot of ties which take the algorithm into a loop.

Here is an example of a biproportional allocation. The data is from a Finnish commission report where another biproportional method was suggested. It’s from a region in eastern Finland with six parties and four districts. The seats are allocated to the districts according to the population using the Largest Remainders Method (Hare-Niemeyer).

First we allocate seats in the whole region. I have just fiddled with the divisor until the total number of seats assigned is correct.

.. SDP Centre Party National Coalition Party Left Alliance Green League Finnish Christian League Total ..
Kymi 56620 38652 42346 10780 9207 9224 166829 14
Mikkeli 30233 33699 19178 3477 5426 6030 98043 7
Kuopio 24678 44868 20178 17704 5841 5681 118950 11
North Karelia 32467 26726 9923 4457 3724 5579 82876 6
Total 143998 143945 91625 36418 24198 26514 466698 38
12500 12 12 7 3 2 2 38 ..

This is the target that we will aim at, the superapportionment.

Next we assign the seats to parties in each district according to Sainte-Laguë. The highest number that distributes 14 seats in Kymi is 56620/4.5=1258.22... for the Social Democratic Party. The next priority number is 42346/3.5=12098.85714 for the Coalition Party. A suitable divisor for biproportional Sainte-Laguë is the average of these two figures, 12340.53968. The priority number for the latest seat assigned is the lowest pij/(hij-0.5) in the row, of course provided that hij>0. For the next seat it’s the highest pij/(hij+0.5) in the row, where pij is the vote for party j in district i, and hij is the number of seats assigned to it. The divisor should be half way between these numbers.

The same is repeated for each district. With a spreadsheet you can often guess the correct range of the divisor and then calculate it more exactly. You can distribute all the seats with the help of priority numbers but I cannot imagine anybody particularly wanting to do it.

.. SDP Centre Party National Coalition Party Left Alliance Green League Finnish Christian League Divisor
Kymi 4,588129973 3,132115855 3,431454465 0,873543644 0,74583448 0,747455155 12340,53968
Mikkeli 2,43053769 2,709271289 1,541677386 0,279457165 0,436068948 0,484628248 12438,4
Kuopio 2,141827966 3,894453606 1,751236872 1,536672164 0,506900443 0,493099557 11521
North Karelia 2,689357543 2,213810013 0,821957523 0,369189225 0,308472218 0,462128491 12072,4

The allocation isn't correct. The Coalition Party has one seat too many and the Christians need one more seat. We have do the same thing as above vertically, for the parties, but this time using the quotients from the previous round instead of votes. Now the suitable divisor is the average of the lowest [bij/(hij-0.5) and the highest bij/(hij+0.5)] in the column, where bij is the unrounded quotient. Nothing needs to be done with the parties that already have the correct number of seats. The divisors are near 1 because the unrounded quotients are nearly correct.

One can view this operation as a return of a proportion of the vote to the underrepresented parties.

.. SDP Centre Party National Coalition Party Left Alliance Green League Finnish Christian League
Kymi 4,588129973 3,132115855 3,126216655 0,873543644 0,74583448 0,764481843
Mikkeli 2,43053769 2,709271289 1,404540719 0,279457165 0,436068948 0,495667859
Kuopio 2,141827966 3,894453606 1,595459281 1,536672164 0,506900443 0,504332141
North Karelia 2,689357543 2,213810013 0,748842021 0,369189225 0,308472218 0,472655568
Divisor 1 1 1,097638086 1 1 0,977727805

The allocation is still wrong, we have to do the districts again. Mikkeli has only 6 seats and needs one seat from Kuopio. Again we use the unrounded quotients from the previous round and adjust them with the divisors. This can be viewed as a transfer of votes from overrepresented districts to underrepresented ones.

.. SDP Centre Party National Coalition Party Left Alliance Green League Finnish Christian League Divisor
Kymi 4,588129973 3,132115855 3,126216655 0,873543644 0,74583448 0,764481843 1
Mikkeli 2,475655529 2,759563233 1,430613074 0,284644702 0,444163654 0,504868894 0,981775397
Kuopio 2,118036939 3,85119474 1,577737216 1,519603095 0,501269887 0,498730113 1,011232584
North Karelia 2,689357543 2,213810013 0,748842021 0,369189225 0,308472218 0,472655568 1

Now we have the correct result. The sum of the rounded quotients correspond to the superappointment, both for the parties and for the districts. The final divisors are calculated by multiplying all the divisors used in the process within each party and each district. The party divisors are the ones we got at round 2. The district divisor for Mikkeli is 0.981775397*12438=12211.7151, and the divisor for Kuopio is 1.011232584*11521=11650.4106. The other two are unchanged from the first round.


SDP
Centre Party
National Coalition Party
Left Alliance
Green League
Finnish Christian League
.. 1 1 1,097638086 1 1 0,977727805
12340,53968 4,588130 3,132116 3,126217 0,873544 0,745834 0,764482
12211,7151 2,475656 2,759563 1,430613 0,284645 0,444164 0,504869
11650,4106 2,118037 3,851195 1,577737 1,519603 0,501270 0,498730
12072,4 2,689358 2,213810 0,748842 0,369189 0,308472 0,472656

The following is the final apportionment.


SDP
Centre Party
National Coalition Party
Left Alliance
Green League
Finnish Christian League
Total
Kymi
5 3 3 1 1 1 14
Mikkeli
2 3 1 0 0 1 7
Kuopio
2 4 2 2 1 0 11
North Karelia
3 2 1 0 0 0 6
Total
12
12
7
3
2
2
38

This example is fairly easy. Hylland’s Bosnia-Herzegovina example took 7 rounds horizontally and 6 rounds vertically to complete.

I am not sure what to do in case of a tie. It seems that the unrounded quotients have the fractional part that is exactly 0.5. Moreover, there has to be at least four of them (Hylland, footnote 30).

Hylland’s procedure is different. It creates ties and uses them to transfer seats. It doesn’t directly generate party and district divisors. 


Balinski, Michel (2002) «Une «dose» de proportionnelle: Le système électoral mexicain.» Pour la Science, Avril 2002, 58-59.
Balinski, Michel Louis – Gabrielle Demange (1989a) «An axiomatic approach to proportionality between matrices.» Mathematics of Operations Research 14:700-719.
Balinski, Michel Louis – Gabrielle Demange (1989b) «Algorithms for proportional matrices in reals and integers.» Mathematical Programming 45:193-210.
BAZI
: Calculation of Allocations by Apportionment Methods in the Internet
http://www.math.uni-augsburg.de/stochastik/bazi/welcome.html (Accessed 21/7/2004)
Hylland, Aanund (2000) Proportionality in two dimensions.
http://www.oekonomi.uio.no/seminar/torsdag-v02/hylland-paper.doc (link dead)
Hylland, Aanund (2002) Proportionality in two dimensions.
http://www.oekonomi.uio.no/seminar/torsdag-v02/hylland-notes.doc (link dead)
Statisisches Amt des Kantons Zürich: Neues Zürcher Zuteilungsverfahren
http://www.statistik.zh.ch/wahlen/pukelsheim/ (Accessed 21/7/2004)