by Maurice Y. Michaud (he/him)
The PoliCan MMP simulator does not purport that the results of the general elections that you can run through it would have been exactly as shown. These simulations are based on the assumption that each party would have received the same number of votes as they did in an election held in the first-past-the-post method. It is known, however, that voter behaviour would be different if strategic voting were eliminated, like it would be in a proportional system. PoliCan also recognizes that the proportional single transferable vote system (STV) would achieve better proportionality. However, MMP was selected because it is impossible to develop a simulator of how a past election might have worked under an STV system because voters did not rank candidates during those elections. Both the quota and the transfer value could be calculated, but in the absence of ranked choices beyond the first choice, that transfer value could not be applied.
The consensus in Canada and Québec has been that the number of seats in each assembly should remain the same or only increase a little bit in a PR system. That is not always the case in such systems. In Germany, for instance, there can be “overhang seats” to accommodate overperforming parties in the local round yet achieve near-perfect overall proportionality through the regional rounds. Instead, this simulator is based on the Scottish formula, which achieves much-closer rather than near-perfect proportionality, the underlying idea being that any proportional system would be better than the current FPTP system. Running a few simulations should convince you of that.
The D’Hondt method is at the base of the Scottish formula used for this simulator. Where the Scottish formula differs from D’Hondt is in the starting point, namely in the number of seats attributed to each party.
In the pure D’Hondt method, each party begins with no seat, which gives the initial divider (or denominator) the value of 1. For the Scottish Parliament, people are given two ballots: one to elect their local or “constituency” member by the first-past-the-post system, and one to elect their “additional” or regional member based on party preference from a closed list of candidates. That is why we call such a system “mixed member”: there is a mix of two types of MLAs or MPs, and there is a mix of two counting methods. The D’Hondt method is only applied to the regional ballots but takes into account the seats won by FPTP. So if Party A won 64 FPTP seats and Party B won 31, their initial dividers when entering the first round would be 65 and 32.
Had Québec gone ahead with its proposed reform of 2019, it, too, would have modified D’Hondt to take into account the seats won. However, it would have divided that number by 2 before the +1 required to prevent a division by zero error. So if Party A had won 64 FPTP seats and Party B had won 31, their initial dividers when entering the first round would been 33 (that’s clear) and 17 (not as clear on first glance until one realizes that any remainder would have been rounded to the next whole number before applying the +1.) In addition to suggesting too many regions, the proposed system was designed to minimize instances of minority goverments and would not have been as “compensatory” as the public was told.
The most common alternative to the D’Hondt method is the Sainte-Laguë method, which is used in Germany and New Zealand, among other countries. It functions much like D’Hondt except that the initial denominator is set to 1 (but 0.7 in Norway and 0.6 in Sweden) and then incremented by 2. You will notice that, if you choose a country’s settings instead of customizing the ratio and the threshold, and that country happens to be using the Sainte-Laguë method, the simulator will adapt its calculations accordingly.
To help reach proportionality, it is best that there be more compensatory seats so that the formula can be applied more often. The simulator stops the assignments once the available seats have all been assigned, even if proportionality has not been reached, as that is how systems proposed in Canada would have worked. These systems considered a ratio of 67:33, or thereabouts, and were projected to achieve much-closer proportionality and not allowing overhang seats. The simulator espouses this idea and its default ratio is also 67:33, but that ratio can be adjusted to 50:50, 55:65, or from 60:40 to 75:25. It sets the ratio of 0:100 for countries where all seats are attributed proportionally.
One unintended consequence of applying the D’Hondt formula often is that the quotients for each party could get low enough to allow a marginal party to win a seat during one of the last rounds. Therefore, it is common to set a threshold percentage of votes for the entire jurisdiction — anywhere from 2% to 5% — in order for a party to qualify for compensatory seats. Some countries also set a higher threshold for parties that run together as a coalition, but the simulator does not permit grouping parties as if they were one... at least, not yet.
The simulator’s default setting is 5%, but it can be changed to as low as 2% or as high as 10%. It also offers alternate thresholds, namely winning a given number of local seats without consideration of the percentage of votes in the jurisdiction, or winning a given number of local seats as well as reaching a certain percentage in the jurisdiction, which sets the bar higher.
As an example, let’s take the 2021 federal general election, in which the Liberal Party won a second consecutive minority government, and let’s assume that a party must obtain 5% of the votes nationwide to qualify for regional seats. Banners (or non-parties) and independent candidates are always excluded from consideration. The number of votes will be the numerator for parties that qualify.
LPC | CPC | BQ | NDP | GPC | PPC | IND | Notes | ||
---|---|---|---|---|---|---|---|---|---|
Votes | 32.51% 5,537,638 |
33.70% 5,740,074 |
7.64% 1,301,615 |
17.74% 3,022,328 |
2.33% 396,988 |
4.94% 840,993 |
0.43% 72,828 |
100%* 17,034,243* |
|
Qualified | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ = 4 | |
* Including minor parties and banners not displayed in this table. |
It is worth noting how far the Green Party was from reaching the 5% threshold given that it had surpassed it by 1.54% in the 2019 federal election. But also noteworthy is how the People’s Party came only 0.06% short. If we were to change the threshold to 4.5%, the PPC could have obtained as many as 17 regional seats, mostly at the expense of both the Liberals and the Conservatives.
The results (or the “data”) was the product of FPTP elections. However, since the simulator must not fabricate data, it assumes that each party would have received the same number of votes, even though it has been demonstrated that the electoral system can influence voter behaviour. Still, assuming a 67:33 ratio of local to regional seats, the number of local seats could be projected to have been as follows:
LPC | CPC | BQ | NDP | GPC | PPC | IND | Notes | ||
---|---|---|---|---|---|---|---|---|---|
Real seats | 159 47.04% |
119 35.21% |
32 9.47% |
25 7.40% |
2 0.59% |
0 0.00% |
1 0.30% |
= 338 1 = 0.39% |
|
Local seats | 107 159 × 67% |
80 119 × 67% |
21 32 × 67% |
17 25 × 67% |
1 2 × 67% |
0 0 × 67% |
1 1 × 67% |
= 227 338 × 67% |
|
Regional seats | ? ✓ |
? ✓ |
? ✓ |
? ✓ |
0 ✗ |
0 ✗ |
0 ✗ |
= 111 338 × 33% |
|
The percentage of seats won is under the number of real seats. |
It should be noted that when parties that did not qualify for regional seats have won local seats, or when parties that did qualify overperformed locally, the number of rounds for regional seats is clamped back because the simulator does not allow overhang seats.
The numerator is the number of votes the party received, while the initial divider (or denominator) is set as:
where L is the number of local seats won.
LPC | CPC | BQ | NDP | GPC | PPC | IND | Notes | ||
---|---|---|---|---|---|---|---|---|---|
Qualified | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ = 4 | |
Local seats | 107 | 80 | 21 | 17 | 1 | 0 | 1 | = 227 | |
Numerator | 5,537,638 | 5,740,074 | 1,301,615 | 3,022,328 | 396,988 | 840,993 | 72,828 | ||
Initial divider | 108 | 81 | 22 | 18 | —— | —— | —— |
The divider for the party winning the first seat is incremented by 1 before proceeding to the next round, while the other parties’ dividers do not change. There are as many rounds as there are seats to allocate, with the divider for only the party winning a given round being incremented by 1.
The calculation has to be done for each qualified party, as many times as there are regional seats to allocate. Therefore, the first round would look like this:
Round 1 / 111 |
Party | LPC | CPC | BQ | NDP | GPC | PPC | IND |
---|---|---|---|---|---|---|---|---|
Division | 5,537,638 ÷ 108 | 5,740,074 ÷ 81 | 1,301,615 ÷ 22 | 3,022,328 ÷ 18 | 396,988 ÷ —— | 840,993 ÷ —— | 72,828 ÷ —— | NDP |
Result | 51,274 | 70,865 | 59,164 | 167,907 | —— | —— | —— |
Because the quotient (or result) for the NDP is the highest, it would get the first regional seat, and its divider would then get incremented like this before the next round:
The dividers for the other qualified parties would remain unchanged. The calculation would then be redone 110 times, with the party winning each round having its divider incremented by 1 before the next round, while the others’ would not change.
Round 2 / 111 |
Party | LPC | CPC | BQ | NDP | GPC | PPC | IND | |
---|---|---|---|---|---|---|---|---|---|
Division | 5,537,638 ÷ 108 | 5,740,074 ÷ 81 | 1,301,615 ÷ 22 | 3,022,328 ÷ 19 | 396,988 ÷ —— | 840,993 ÷ —— | 72,828 ÷ —— | NDP | |
Result | 51,274 | 70,865 | 59,164 | 159,070 | —— | —— | —— | ||
p = NDP → Qp + 1 = Qp → 19 + 1 = 20 |
|||||||||
. . . . . |
|||||||||
Round 26 / 111 |
Party | LPC | CPC | BQ | NDP | GPC | PPC | IND | |
Division | 5,537,638 ÷ 108 | 5,740,074 ÷ 81 | 1,301,615 ÷ 22 | 3,022,328 ÷ 43 | 396,988 ÷ —— | 840,993 ÷ —— | 72,828 ÷ —— | CPC | |
Result | 51,274 | 70,865 | 59,164 | 70,287 | —— | —— | —— | ||
p = CPC → Qp + 1 = Qp → 81 + 1 = 82 |
|||||||||
. . . . . |
|||||||||
Round 52 / 111 |
Party | LPC | CPC | BQ | NDP | GPC | PPC | IND | |
Division | 5,537,638 ÷ 108 | 5,740,074 ÷ 98 | 1,301,615 ÷ 22 | 3,022,328 ÷ 52 | 396,988 ÷ —— | 840,993 ÷ —— | 72,828 ÷ —— | BQ | |
Result | 51,274 | 58,572 | 59,164 | 58,122 | —— | —— | —— | ||
p = BQ → Qp + 1 = Qp → 22 + 1 = 23
|
|||||||||
. . . . . |
|||||||||
Round 77 / 111 |
Party | LPC | CPC | BQ | NDP | GPC | PPC | IND | |
Division | 5,537,638 ÷ 108 | 5,740,074 ÷ 112 | 1,301,615 ÷ 26 | 3,022,328 ÷ 59 | 396,988 ÷ —— | 840,993 ÷ —— | 72,828 ÷ —— | LPC | |
Result | 51,274 | 51,251 | 50,062 | 51,226 | —— | —— | —— | ||
p = LPC → Qp + 1 = Qp → 108 + 1 = 109
|
|||||||||
. . . . . |
|||||||||
Round 111 / 111 |
Party | LPC | CPC | BQ | NDP | GPC | PPC | IND | |
Division | 5,537,638 ÷ 120 | 5,740,074 ÷ 124 | 1,301,615 ÷ 29 | 3,022,328 ÷ 66 | 396,988 ÷ —— | 840,993 ÷ —— | 72,828 ÷ —— | CPC | |
Result | 46,147 | 46,291 | 44,883 | 45,793 | —— | —— | —— | ||
p = CPC → final |
|||||||||
Gains | 12 | 44 | 7 | 48 | 0 | 0 | 0 | 111 |
The simulator figures all of this out as soon as you click on the “Simulate” button. Step 4 is more about the simulator showing its work. However, the summary at the beginning of that step reveals how the gap between the vote and seat percentages would be drastically reduced for qualified parties, especially those that underperformed locally, and how voters would almost never end up with the “wrong winner” forming government. In this example, it would read as follows:
Canada | LPC | CPC | BQ | NDP | GPC | PPC | IND | Notes | |
---|---|---|---|---|---|---|---|---|---|
Votes | 5,537,638
32.51% |
5,740,074
33.70% |
1,301,615
7.64% |
3,022,328
17.74% |
396,988
2.33% |
840,993
4.94% |
72,828
0.43% |
= 16,912,464*
≈ 100.00% |
|
Real seats | 159 47.04% |
119 35.21% |
32 9.47% |
25 7.40% |
2 0.59% |
0 0.00% |
0 0.00% |
= 338 1 = 0.30% |
|
Constituency | 107 | 80 | 21 | 17 | 1 | 0 | 1 | = 227 = 67% | |
Compensatory | 12 | 44 | 7 | 48 | 0 | 0 | 0 | = 111 = 33% | |
Simulated seats | 119 35.21% |
124 36.69% |
28 8.28% |
65 19.23% |
1 0.30% |
0 0.00% |
1 0.30% |
= 338 1 = 0.30% |
|
* Only the votes considered for these calculations. The Conservatives, not the Liberals, would have formed a minority government, although a much weaker one than the Liberals formed. And a much stronger NDP would likely have entered into its supply and confidence agreement or a formal coalition with the Liberals very soon after the election to prevent the Conservatives from forming government. |
Indeed, there’s a BUT, because that’s not exactly how a mixed member proportional system would be designed.
In this example, the simulator merely looked at the seats ratio and the threshold for compensation, and applied those settings to the entire jurisdiction. BUT in reality, a jurisdiction would be divided into regions. For example, Alberta might be divided into Greater Calgary, Greater Edmonton, and the rest of the province, while Manitoba might have a region for Greater Winnipeg and another for all points elsewhere. The simulator does its rounds of calculations by region. In the example presented here, it might do a set of x rounds for the first region, another set of y rounds for the next region, and so on, until it has looped through all the regions.
There could be several regional schemes at the federal level. Canada could simply be divided by its provinces and territories, which some would deem an “equal” approach. But a more equitable approach that would lead to fairer regional proportionality would be to cluster some provinces (New Brunswick, Nova Scotia, Prince Edward Island, and Newfoundland and Labrador as Atlantic, Manitoba and Saskatchewan as Prairies, and the territories as North), with Alberta and British Columbia each forming a region but Ontario and Québec being divided into three and two regions. This approach is deemed more equitable for the regions even if it generally reduces overall proportionality. BUT this presentation made it seem as if all of Canada represented only one large region.
There ends the “BUT.” Although the simulator defaults to a regional scheme (except for Prince Edward Island and the Yukon), it still begins by identifying the parties that qualify for regional seats, and then it determines the local and regional seats one region at a time. It was simply easier to explain how the simulator does its calculation without referring right away to the fact that it loops through by regions. And you can still ask it not to apply a regional scheme if you’re curious to see what difference it makes. In fact, not applying a regional scheme — that is, looping through a single, continuous stream of calculations — would almost always achieve near-perfect proportionality. However, given that no PR system proposed in Canada (except PEI) was designed like that, running the simulator in this manner is merely an academic exercise, scarcely better than a cross multiplication, with the only advantage being the ability to set a minimal threshold.
So, with that regional twist in mind, it means that had the Green Party qualified in this election, its regional seats would likely have been in British Columbia rather than in the Prairies or Québec. But like in all MMP systems proposed for Canadian jurisdictions, the simulator stops assigning regional seats once the quota is filled, even if proportionality has not yet been reached. That is why having too many small regions blunts the effectiveness of this exercise, for although it would somewhat diminish the gap between the percentages of votes and seats, it would barely achieve much-closer proportionality.
Still! Wouldn’t that be much better than what the first-past-the-post system gives us?
So go ahead! Go play with the simulator.