Biproportional apportionment

Biproportional apportionment is a proportional representation method to allocate seats in proportion to two separate characteristics. That is, for two different partitions each part receives the proportional number of seats within the total number of seats. For instance, this method could give proportional results by party and by region, or by party and by gender/ethnicity, or by any other pair of characteristics.
Process.
Suppose that the method is to be used to give proportional results by party and by region.
Each party nominates a candidate list for every region. The voters vote for the parties of their region (and/or for individual candidates, in an open list or local list system).
The results are calculated in two steps:
This can be seen as globally adjusting the voting power of each party's voters by the minimum amount necessary so that the region-by-region results become proportional by party.
Upper apportionment.
In the upper apportionment the seats for each party are computed with a highest averages method (for example the Sainte-Laguë method). This determines how many of all seats each party deserves due to the total of all their votes (that is the sum of the votes for all regional lists of that party). Analogically, the same highest averages method is used to determine how many of all seats each region deserves.
Note, that the results from the upper apportionment are final results for the number of the seats of one party (and analogically for the number of the seats of one region) within the whole voting area, the lower apportionment will only determine in which particular regions the party seats are allocated. Thus, after the upper apportionment is done, the final strength of a party/region within the parliament is definite.
Lower apportionment.
The lower apportionment has to distribute the seats to each regional party list in a way that respects both the apportionment of seats to the party and the apportionment of seats to the regions.
The result is obtained by an iterative process. Initially, for each region a "regional divisor" is chosen using the highest averages method for the votes allocated to each regional party list in this region. For each party a "party divisor" is initialized with 1.
Effectively, the objective of the iterative process is to modify the regional divisors and party divisors so that
The following two correction steps are executed until this objective is satisfied:
Using the Sainte-Laguë method, this iterative process is guaranteed to terminate with appropriate seat numbers for each regional party list.
Specific Example.
Suppose there are three parties A, B and C and three regions I, II and III and that there are 20 seats are to be distributed and that the Sainte-Laguë method is used. The votes for the regional party lists are as follows:
Upper apportionment.
For the upper apportionment, the overall seat number for the parties and the regions are determined.
Since there are 3805 voters and 20 seats, there are 190 (rounded) voters per seat. Thus the results for the distribution of the party seats is:
Using the divisor 190, the results for the distribution of the region seats is:
Lower apportionment.
Initially, regional divisors have to be found to distribute the seats of each region to the regional party lists. In the tables, for each regional party list, there are two cells, the first shows the number of votes and the second the number of seats allocated.
Now, the party divisors are initialized with ones and the number of seats within each party is checked (that is, compared to the number computed in the upper apportionment):
Since not all parties have the correct number of seats, a correction step have to be executed: For parties A and B, the divisors are to be adjusted. The divisor for A has to be raised and the divisor for B has to be lowered:
Now, the divisors for regions I and III have to be modified. Since region I has one seat too much (8 instead of the 7 seats computed in the upper apportionment), its divisor has to be raised; in opposite, the divisor for region III has to be lowered.
Again, the divisors for the parties have to be adjusted:
Now, the numbers of seats for the three parties and the three regions match the numbers computed in the upper apportionment. Thus, the iterative process is completed.
The final seat numbers are:
Usage.
A method of biproportional appointment that was proposed in 2003 by German mathematician Friedrich Pukelsheim is now used for cantonal and municipal elections in some cantons of Switzerland, i.e. Zurich (since 2006), Aargau and Schaffhausen (since 2008), Nidwalden, Zug (since 2013), Schwyz (since 2015) and Valais (since 2017).
Biproportional appointment, based on the total national number of votes per party or coalition, as a primary criterion; and the total population of the oblast (province) — regardless of voting eligibility age or voter turnout — as a secondary criterion, has been used in elections to the Bulgarian National Assembly since the adoption of the 1991 constitution. Under said constitution, all provinces are multi-member constituencies; they may be geographically subdivided into smaller constituencies, as long as these subdivisions have sufficient population to still be multi-member. As of 2020, Sofia (capital) province is subdivided into three constituencies and Plovdiv province in two.
The same system as in Bulgaria is used in Finland, with the exception of Åland, which is a single-member constituency.
Fair majority voting.
"Fair majority voting" is a biproportional apportionment method with single-member regions called "districts", so each district has exactly one representative. It was proposed in 2008 by Michel Balinski (who also invented the single-winner voting system called majority judgment) as a way to eliminate the power of gerrymandering, especially in the United States.