I have included the polls from Angus-Reid, Abacus and Innovative.


The Liberals are clearly in majority territory and there is almost zero uncertainty regarding who would finish 1st and second. Find the detailed projections below the map.

Map:


If you want an interactive version.


Projections:

Proj Canada 13 August 2021 by bryanbreguet on Scribd



Possible outcomes:



Qui dit élections fédérales, dit rôle important pour le Québec. Non seulement la province a un nombre important de sièges (78 sur 38), mais son électorat a prouvé qu'il était volatile. Le Québec est d'autant plus important cette année car il se pourrait fort bien qu'une majorité pour Trudeau passe impérativement par le Québec.


Partons des plus récentes projections ci-dessous:


Et la grande région de Montréal en particulier:



Si vous voulez les projections détaillées:

Projections Canada 2021 10-08-2021 by bryanbreguet on Scribd


Il y a aussi la carte intéractive ici.


Les Libéraux de Trudeau sont actuellement projetés en terrain majoritaire. Les chances que le PLC remportent au moins 170 sièges sont de 70%. Cela semble assez comfortable, non? Pas vraiment. Tel que je l'ai démontré il y a quelques jours, le PLC se doit de conserver deux avances: son avance sur le Bloc au Québec (environ 10 points actuellement) et son avance sur le PCC en Ontario (là aussi environ 10 points). Si le PCC devait grimper en Ontario ou le Bloc au Québec, atteindre le chiffre magique de 170 deviendrait bien plus compliqué.


Le Bloc est en baisse dans les sondages par rapport à son résultat en 2019. Pas de beaucoup (environ 4-5 points) mais, couplé à la progression des Libéraux (en hausse justement de 4-5 points), cela génère des gains importants pour le PLC. Des comtés comme Abitibi--Baie-Jaimes, Rivière-des-Milles-Îles, Thérèse-de-Blainville ou encore Montarville. Le PLC se retrouve à 44 sièges (progression de 9) et le Bloc à 22 (perte de 10). Petite remarque, le modèle part du principe que Ruth Ellen Brosseau se représentera dans Berthier-Maskinongé pour le NPD. Mais cela semble peu probable et je devrai ajuster ce comté manuellement. Ce siège devrait ainsi revenir au Bloc.


Les sondages ne semblent pas s'entendre sur le score du Bloc. Alors que Nanos a toujours ce parti très bas (25% et moins), d'autres l'ont bien au-dessus des 30%. Aussi, il semble assez probable que le Bloc et Blanchet ne puissent pas rivaliser avec la couverture médiatique que reçoit Trudeau hors campagne électorale (merci Covid!). Mais cela devrait changer une fois en élection. Donc partons du principe que les intentions de vote pourraient rapidement se retrouver proches des résultats de 2019. Si l'on regarde ces derniers, on remarque que bien que le Bloc ait connu une bonne élection, reprenant beaucoup de sièges du NPD, il s'est buté sur un PLC efficace sur l'île (Hochelaga) et sur la Rive-Sud (Chateauguay par exemple). Le Bloc a perdu plusieurs luttes serrées, probablement car le PLC avait une meilleure organisation.


De manière plus générale, le Bloc est un peu un parti de gauche (son programme, ses députés) mais avec un électorat de droite (plus masculin, plus agé et avec moins de diplômés universitaires). Sur bien des enjeux, on voit que les électorats Bloc et PCC se rejoignent (ne pas aimer Trudeau par exemple ou si l'on regarde les 2e choix). Je ne dis pas que les électeurs Bloquistes sont tous de droite, je dis juste que ce parti a un électorat qui est plus à droite (et davantage susceptible de voter PCC) que les électorats du PLC ou NPD. Le seul point où les électeurs du Bloc semblent en désaccord complet concerne les changements climatiques. On n'a plus un Bloc qui dominait tout l'est de l'île et qui gagnait même dans Ahuntsic. Non, le Québec a vécu plusieurs ajustements entre 2008 et maintenant et le Bloc actuel n'est pas le Bloc de Duceppes en 2008.


Le défi principal de Blanchet lors de la prochaine élection sera d'essayer de regagner ces électeurs plus à gauche dans les centres urbains et en banlieues. Sur l'île de Montréal, le Bloc devra aussi compter sur un NPD qui ressemble de plus en plus à un Québec Solidaire fédéral. Des comtés comme Hochelaga ou Sherbrooke pourraient bien se retrouver sour le NPD. Mais les comtés en banlieues devraient rester une lutte Bloc vs PLC. Le Bloc devra aussi se méfier d'une possible poussée des Conservateurs avec leur nouveau chef, mais il est trop tôt pour parler des chances que cela arrive. Cela étant dit, une montée du PCC se ferait probablement au détriment du Bloc en régions et pourrait causer des courses à 3 qui favoriseraient le PLC.


Au final, si Blanchet pouvait conserver ses 32 sièges, cela mettrait le PLC aux environs des 170 sièges au total, soit juste au-dessus d'une majorité. Cette dernière reposerait ainsi sur des gains en Alberta (Calgary, Edmonton) et en CB. Une majorité resterait possible mais bien moins probable. De plus, si le Bloc devait réussir à regagner les comtés sur la Rive-Sud (en partie grâce à une meilleure organisation qu'en 2019), alors le Bloc pourrait bien faire des gains et ruiner les chances d'une majorité pour Trudeau.

My latest projections (done before the latest Abacus and Angus-Reid polls but adding them doesn't change much) showed Trudeau and the Liberals in majority territory, I also mentioned that this majority was far from guaranteed. Many things would need to go right (or stay right) for the LPC to get over 169 seats. The chances were about 66%, not bad but an early summer eleciton 9during a potential 4th wave) does have some risks for Trudeau.


I then wondered which variable was the most important. Is it the lead the Liberals have over the Bloc in Quebec? Or maybe it's the lead they have over the CPC in Ontario. Or maybe the key is actually in Alberta and BC. The beauty of running simulations is that I can then use the data to answer such questions. So I used the results of the simulations (specifically the number of seats won by the Liberals) and looked at the correlations with multiple variables. I used a Logit regression to do so. Here below is the result.


If you don't know what a regression is (even less a logit regression), just know that it measures correlations while holding the other variables constant. So we get marginal effects. A logit is just a specific form of regression used when the dependent variable (the one we are trying to explain) is binary (1 for a majority, 0 otherwise). Using the results, we can estimate marginal probabilities (what happens to the chances of a majority if the Bloc gains 2 points over the Liberals in Quebec?) as well as doing some nice little graphs.


For the logit regression, I included the following variables: the gap (in voting intentions in %) between the LPC and Bloc in Quebec, the gaps between the LPC and CPC (as well as LPC and NDP) in Ontario, Alberta and BC. I didn't include the country-wide numbers as they were irrelevant (I tried at first), which makes sense.


So, what is the single most important factor? In magnitude, it's the LPC-CPC gap in Ontario, followed closely by the lead of the Liberals over the Bloc. The two are very similar and the LPC-Bloc gap is actually more significantly statistically. I'm not saying that the lead of the Liberals over the NDP in BC isn't important, just not as much.


It makes sense really and you can simply use the model to run some simple simulations (you can try with the simulator yourself although the current numbers in it aren't the most up to date, but you can change them). Using my model with the most updated numbers, I get that a swing of 10 points (-5 and +5) from the LPC to the Bloc would cause the Liberals to lose 11 seats. A same swing between Liberals and Conservatives in Ontario would cost Trudeau 17 seats.


Both simulations show that the Liberals need to keep those two leads if they want to win a majority. If they were to lose either of them (note: at this point, their lead in Ontario is a lot more solid than their lead over the Bloc as Quebec is always unpredictable), their chances of a majority would essentially become 50-50 at best.


Graphically, let's represent the probabilities of a Liberal majority as a function of the lead of the Liberals over the Bloc in Quebec and over the CPC in Ontario:


The current leads are, respectively, about 10-11 points over the Bloc and about 9-10 points over the Tories in Ontario. Both would indicate about a 60-70% chances of a majority, which matches (obviously) my latest projections. But what this graph shows is that the chances are more sensitive to a drop of this lead in Ontario (steeper slope). All those seats in the 905 would come back into play if O'Toole could gain a little bit over the Liberals compared to 2019. Side note, but this is why I don't think the Tories really have no chance of winning a plurality or that they were soooo far from it in 2019. The fact is that you can easily have 10-20 seats flipping in Ontario and doing so would bring the Liberals not only below 170, but much closer to the Conservatives.

Alright, let's do this again. And by this, I mean making projections for a federal election. I haven't been particularly successful for federal elections (compared to provincial ones) but I decided I had time to cover the upcoming federal election. If you have any questions, just follow and ask me on Twitter.


My model in 2019 performed okay (making 38 mistakes using the actual percentages of votes from the election) but was underestimating the Liberals. This was mostly due to an incredible vote efficiency from the party of the Prime Minister. Not only did they win most of the close races they were involved in (something like 15 out of 20 but don't quote me on this), they also reinforced their urban vote, which allowed them to continue winning not only the entire city of Toronto, but seats like Halifax or many in urban centers in the West.


Since then, I have updated the model with demographics (age, gender, income and education) in the hope of capturing any shift of the electorate (beyond the top race numbers).


Anyway, here are the first projections of this (currently non-official) 2021 election.

LPC: 181 seats

CPC: 103

NDP: 30

Bloc: 22

Green: 2



You can see an interactive version of the map here. Performance is okay (and it varies with your computer and internet connection) but isn't the best, so allow 1-2 seconds after zooming in or out. Sorry but this is the best mapping software I found and that I can use easily.


The Liberals have been polling well over the last year, fully benefitting from a Covid bump like many other incumbents. However, the current lead is significantly less than it was in spring of 2020. It's still enough to currently be projected with a majority but the number of seats (181) might be giving a false sense of how safe this majority is. The seat total for the LPC is only that high because the Bloc is polling, in average, at only 28%. But this party has been polling all over the map, from being as low as 22% to as high as 37%. The Bloc is also a party that would likely benefit from a campaign (more exposure). I'm not saying the polls are wrong, I'm saying Quebec is unpredictable and I'm not sure the Liberals are really ahead there by over 10 points.


This is important because if that's not the case, then the Liberals are barely above the 169 needed for a majority. Yes they'd make gains in Atlantic, the Prairies and especially BC (really good polling numbers!), but they'd also also lose some urban seats to the rising NDP (Davenport in Toronrot, etc). Without Quebec, the Liberals are right on the edge of a majority.


Maybe the most important element is that the Conservatives don't really have a shot at forming the next government, at least not right now. I have their chances at 2% of winning a plurality (which might not be good enough for Erin O'Toole to become PM) and their chances of a majority at a solid 0%. Campaigns matter but right now, even with a massive polling error, there is no path to 170 for the Tories. This is incredibly important as it creates a completely different dynamic from 2015 or 2019. Trudeau cannot, in particular, scare progressive voters into switching from the Green or NDP to the Liberals to prevent a CPC government. Coupled with the popularity of Singh (by far the most liked leader in the country) and the rising NDP numbers and we might have all the ingredients for a mini orange wave. I'm not talking of the NDP reaching 35% and forming the government (not yet?) but the NDP having the clear momentum for the first half of the campaign and eating both the Liberals (in Ontario) and the Tories (BC).


Anyway, I don't intent on doing an overly long analysis right now. So please find the detailed projections here and see you next time.



Projections Canada 2021 5-08-2021 by bryanbreguet on Scribd

I just uploaded the version 2.0 of the 2021 simulator. The big change is the addition of demographic variables. I have also made some modifications for situations such as Sloan running as an independent or JWR not running again. But those are details really.


Why adding demographic variables?

Some of you might actually be surprised that the previous model wasn't using any demographic variables. That's understandable. But you need to realize that adding such variables isn't trivial. Yes it makes sense on paper to want to be able to calibrate the model based on the gender gap or the evolution of the voting intentions of the 18-34 years old, but it's quite a lot more complicated in practice. And most models out there don't use any (308/CBC) or don't disclose much of what they do (338/Lean Tossup).


The main challenge is that we don't have results by demographics, only by ridings. We don't actually know how women voted in 2019, or how the 18-34 voted. Yes we have polls but polls are not perfectly accurate. Also, most polls only include gender and age and nothing else. Very few pollsters include information about education or income. Literally none will include breakdown by home ownership even though it is an important predictor of the vote.


Given that my model (like every single one out there I believe) used the past election results as the base and apply the swing observed in the polls since then, we really need to find a way to get the results broken down by demographics. Thankfully, the Canadian Election study (CES) can help us there. This massive survey actually has a post-election component when they ask people how they voted. It's still not perfect as people can still lie or misremember, but it's an improvement. More importantly, I can get the results by income, education or any other variable I want. I ultimately limited myself to age, gender, education and income as we get this info in some polls. It's useless for me to add variables that are never included in any polls, it won't be useful for projections.


Because even such a survey isn't 100% accurate, I decided to set up my demographic adjustments as differentials. I'm not using the actual levels for (say) the Liberals among (say) men and women, I'm using the differential. For 2019, Canada-wide, the Liberals got 34% of the vote but were at 35% among women and 33% among men, so differentials of +1 and -1. Doing so allows me to use polls and the CES even though they aren't 100% accurate (in the post-election CES, the Liberals were overestimated). Surprisingly, I discovered that polls were pretty good at estimating such differentials. I guess that while polls can make mistakes (over or underestimating a party, probably due to turnout), they are better at estimating the relative levels. That is a very important piece of good news as it means polls can be reliable to use such variables for predictions.


I also use the data from the census where we get detailed breakdowns for each demographics (for instance what percentage of voters in Rosemont are aged 18-34). Notice, however, that the census doesn't give us joint distributions, only marginals ones. It's a potentially serious limitation but there isn't much that I can do about it.


How is it done?

A very quick summary would be:

1) The province-wide percentages that you enter will determine how many votes a party will get

If you believe the Liberals are up in one province by (say) 4 points, then input them at 46% in Ontario.

2) The demographic adjustments will influence who and where those voters are.

If you believe this swing is mostly concentrated among women and educated voters, then increase their differentials.


I decided to take a two-steps approach. The first step is the same as it has always been: we use polls (or we guess) the province-wide percentages for each party. Let's say, for instance, that the Liberals are up 5 points in Ontario since 2019. Once we input this, it has to be that the average swing adds up to 5 points. It doesn't matter if the swing is coming from the Liberals doing better among women or among older people, it has to be 5 points. That's what we told the model to do!


The demographic variables are only used to allocate those 5 points across ridings. If you believe the Liberals are up by 5 mostly thanks to an increase among women voters, then the model will need to increase the Liberals more in ridings with more women. That makes sense right?


The model first applies the province-wide swings (currently uniformly but regional adjustments could come later). It then apply the demographic adjustments, one by one (since I don't have the joint distribution). If the adjustments don't sum to zero, the model takes the necessary steps to insure the final, net average swing is consistent with the provincial one. See the following example to understand the last part.


Let's imagine that you believe that the Liberals are up 4 points among women. That's the only change. In every other demographics, they are stable compared to 2019. If you only enter '+4' in the simulator for LPC-women, the model will increase the Liberals by "share of voters that are women * 4 points" in every riding. In average this is obviously 2 points (ridings don't vary that much in term of the men to women ratio and the average share is obviously almost 50%; Let's assume it's 50% for the sake of illustration). But, and this is important, if you didn't increase the Liberals by 2 points province wide (i.e: overall, they are still at 42%), then the model will apply a uniform swing of minus 2 everywhere. That is logical. The model ahs to do this to keep the province-wide swing consistent with the province-wide numbers you entered. So, overall the Liberals remain at 42% but their vote is now skewing towards women, meaning the riding numbers have changed (some have increased, some have decreased).


What you need to do if you really believe the one change is Liberals +4 among women and everything else is the same is to enter Liberals at +2 province-wide (so Liberals at 44% in Ontario) and +4 among women. This will work and achieve your objectives. [Note: before some smartass on Reddit notices the error and declares me as illiterate with numbers, yes the true correct way would be the following: increase the Liberals by 2 points in the province, then put LPC-women at +2 and LPC-Men at -2. This is consistent with the Liberals being at 42% among men, 46% among women, thus 44 overall. But it's getting complicated and, for all intents and purposes, simply putting women at +4 will do the exact same job.]


The most important numbers remain the province-wide percentages, not the demographic ones. I spent a lot of time thinking about it and it is the best solution in my opinion. Why? Well because the key numbers you need to get right in order to be accurate with your seat projections are the province-wide percentages. In 2019, if you knew that the Liberals would be at 42% in Ontario and the NDP only at 17% (so a much bigger gap than what the polls showed), I can guarantee you that any model would have given you mostly the right results. You wouldn't have needed to look at whether the Liberals were doing better or worse among the 18-34 or if they increased their lead among the university educated. No, get the province-wide percentages right and you are 95% there. This is just a fact. You can spin your model as being super sophisticated and what not but the sad truth is: whoever guesses the province-wide percentages best will have the best seat projections. Yes your model would have been even more accurate if you took into account that the Liberals were gaining more among the 55+ and the university educated, but the improvements are very marginal compared to having the correct province-wide percentages. Not even close.


Keeping that in mind, I wanted to keep having my model mostly be dependent on those province-wide percentages. The demographic variables provide adjustments but nothing else. When you are using the simulator, I'd suggest that you first enter the percentages by provinces (based on polls or what you believe will happen). Then you scroll down and you make adjustments based on demographics (i.e: you think one party is doing better or worse among some demo). Or just play with the demographic adjustments and see if you can make a party's vote more or less efficient (if you are a Conservative looking to make gains in the GTA, I suspect that improving your score with university educated might help).


What if I don't do the math right?

What happens if you enter the Liberals at 38% (drop of 4 points province-wide) but your only change in the demographic adjustments is LPC-women at +4? Well, this is clearly inconsistent but I also don't expect you to do a ton of math before using the simulator. That kind of defeats the purpose. If the LPC is up by 4 among women, this party should be up by 2 province-wide, not down by 4. That's an inconsistency gap of 6 points (+2 vs -4).


The model will first apply -4 in every riding. Then it'll apply +4 * share of women in every riding, resulting in a net average adjustment of +2. The model will thus apply another uniform swing of -2 everywhere. At the end, the objective is 1) to have the Liberals down by 4 overall and 2) to have the LPC electorate now skewing more towards women. As long as both objectives are reached, I'm happy. All of this done in a simulator that can be used without a ph.d in stats.


What does it mean? It means you don't have to do math before using the simulator. The model allows you to be inconsistent and will take care of it. Just remember that the actual, final provincial swing (and therefore average net swing) is given by the province-wide numbers you enter. As it should be.


At the end of the day, enter the province-wide numbers and then play with the demographic adjustments to see if gaining among the 18-34 would (for instance) make the NDP vote more or less efficient. And don't worry if your demographic adjustments don't sum to zero or don't average out to the provincial swing, it's all fine. If you enter numbers based on a polling average, those inconsistency should not be present anyway (in theory). Either way, the model will take care of this.


What if I leave all the adjustments at zero?

In this case, the model is assuming the composition of the electorate for each party won't have changed since 2019. The CPC, for instance, was at 33% in Ontario but at 37% among men and 29% among women (so +4 and -4 differentials). If you enter the CPC at 35% province-wide and don't change anything else, then the CPC is still at +4 among men, so 39%. The demographic adjustments are really just that, adjustments. And they are relative. In this case, the model increases the CPC by 4 points everywhere with no special adjustment for ridings with more women for instance. remember, first step decides how many votes a party receives, the demographic adjustments will change who those voters are. And everything is done with 2019 as the base. So if you leave the adjustments at zero, you are assuming the CPC voters will continue to skew older, more male with fewer university degree (but higher income!) while the NDP vote will keep skewing young and female. Leaving the numbers at zero doesn't mean you believe there is no gender (or education, etc) gap, just that the gap for this party is the same as it was in 2019.


What else?

The model currently uses a simple uniform swing model. I'll likely add regional effects soon but I was more focused on the demographic variables. Adding regional coefficients doesn't make a big difference anyway.


I'll also refine the demographic estimates from 2019 over the next few weeks. I'd like, in particular, to have different ones for Quebec and the ROC. But polls rarely provide such breakdowns.

The 2019 federal election wasn't particularly exciting with very little vision offered. That was particularly the case with the main two parties that had quite boring platforms. As a result, the campaign was mostly marked by scandals and tangentially related topics such as SNC-Lavalin or Doug Ford.


Polls don't usually allow us to measure the impact of one variable or event on the voting intentions. They can show us that, for instance, people didn't like Doug Ford, but they almost never provide any measure of how much it impacted the voting intentions.


Using the CES (Canadian Election Study) of 2019, I decided to try to answer some of those questions. This is the first post in a series. Today's topic: did Doug Ford cost Andrew Scheer the job of PM? And did SNC-Lavalin cost Trudeau his majority? I use the online sample that contained all the information I needed. I estimated the regressions below . My two variables of interest were, naturally, "premiergood" which is equal to 1 if the respondent expressed satisfaction with their provincial government (either "very satisfied" or "satisfied) and "sncgood" which measured the handling of the SNC-Lavalin story (again, either "Very well" or "well").


I naturally needed to control for many other variables susceptible to influence voting intentions. I included the usual (age, gender, having children, education, income), the satisfaction with the federal government as well as the ratings given to the LPC, CPC, NDP and Green and their respective leaders. There is also one variable measuring the left-right orientation of the respondent (self identified). I believe this is, overall, a pretty standard and robust specification. Would it pass peer-review for publications? Likely not. But as a simple test for a blog post? Sure, that'll do.


I estimated the regression for Ontario only, here is the table in Stata.


As you can see, for the Liberals, a few variables mattered. Income and university education are both significantly correlated with voting Liberals. Being satisfied with the federal government is by far the strongest impact (a whopping 18.5 percentage points!; Yes I'm aware I should be using a Logit or Probit here given my dependent variable, but I want to be able to have easily interpretable coefficients), so was giving a high rating to the Liberal party.


Being satisfied with the government of Doug Ford is associated with a 6 points drop in voting intentions for the Liberals. On the other hand, people who thought Trudeau handled the SNC-Lavalin story well were voting for him 6 points more.


Estimating the same regression for the Conservatives gave the following results:



Being satisfied with the Ford government increased voting intentions for the CPC by 12 points! the SNC-Lavalin affair had the same impact as for the Liberals (just in the opposite direction obviously).

The variable cps19_lr_scale_bef measures the left-right orientation. So right-wing people were more likely to vote CPC. Interestingly, this is not a significant variable for the Liberals or NDP (note: I tweeted yesterday that it was significant for the NDP and not the other two. That was indeed the case with a different regression specification, a simpler one)


Finally, here is for the NDP:



Interesting to see the negative and significant impact of being university educated. You'd think the NDP would do better among this demographic but it really seems that Trudeau is too strong among this group. As for being satisfied with the Ford government, the effect was -6 points and -5 points for SNC (the impact of this variable is very consistent across parties).


So, both stories mattered. What would have happened if the Ford government wasn't that unpopular? Looking across the provinces, the percentage of people satisfied was only 27%! Compared to an average of 54% in the other provinces. Had the Ford government been as popular as the other provincial governments, the coefficients above indicate that the results in Ontario could have been (actual results in bracket):


LPC: 40% (41.3)

CPC: 36.5% (33.1)

NDP: 15.2%


Essentially, the Conservatives would have been 3.4 pts higher, taken from the Liberals and NDP. What impact in terms of seats? Hard to say but a quick look with my model would indicate that it could have cost the Liberals between 5 and 10 seats. Not enough to win the GTA or for Scheer to become Premier, but not insignificant either. The impact could be higher if the people not satisfied with Ford were concentrated in the GTA. The CES dataset doesn't allow me to look into that. But it does partially explain why the Tories increased everywhere in Canada except in Quebec (unique situation) and Ontario where they literally did worse, in percentages, than in 2015.


On the other hand, only 15% thought that Trudeau handled SNC-Lavalin well. That likely cost him as much as 5 points! It is quite massive and likely cost him a majority.


Both those estimates are very, very rough and should be taken with a large grain of salt. But I believe they showed that both had a significant impact on the vote in Ontario. Does it mean that Trudeau can now get a majority if people have forgotten SNC-Lavalin? Or that O'Toole can expect gains in Ontario now that Ford is, surprisingly, popular? I wouldn't say so, this is one causal link too far for such a basic analysis.

The BC elections was technically on Saturday October 24th. But with over half a millions of mail-in ballots (representing almost a third of the total votes) not counted for at least another week (don't ask why, BC law is weird), I thought I could try to update the 'projections'.


The final projections did very well. Let's face it, it wasn't a hard election to predict. The biggest surprise was the Green winning a third seat in West Vancouver. Otherwise everything was pretty much as expected with maybe the exception that the BC NDP won the popular vote by 'only' 10 points. This is significantly below the projected 49% in my final numbers. It's possible the polls were overestimating the NDP (and underestimating the Green) but I believe this is mostly due to the mail-in ballots not being counted. I actually believe that once they are, the polls will prove to have been accurate for the NDP but to have overestimated the BC Liberals (most likely due to many Liberal voters staying home).


Update: Election BC has released the number of mail-in ballots per riding and it seems there were, in total, over 644k ballots! Way more than we thought. Looking at my estimates below, you can likely add 1-3 ridings flipping NDP. Langara is now flipping based on my method 3. Fraser-Nicola and Kamloops-North Thomson are very close, so is Surrey South. So best case scenario is now 62 for the NDP but average scenario is still 'only' 59.


Here a quick summary:


- All evidence point to mail-in ballots being very favourable to the NDP.

- The exact magnitude of the impact depends on many assumptions, but it's safe to bet the NDP will ultimately flip a few more seats and finish with more than 55 seats.

- The best estimate is for the NDP to finish with 59 seats, the Liberals with only 25 and the Green to keep the 3 from election night.

- Abbotsford-Mission, Surrey-White Rock and Vernon-Monashee are likely to flip while Vancouver Langara, Fraser-Nicola and Kamloops-North Thomson are more uncertain (the last two mostly because of the relatively low number of mail-in ballots).




1. Estimating the mail-in ballots


We know that Elections BC has received 525,000 mail-in ballots (out of 724,000 requested). Given that 546.877 voted on election day and 670,324 voted in advance (plus 85,000 absentee ballots), the mail-in ballots represent almost 30% of the total. This is a significant number and more than enough to change the popular vote province-wide as well as flipping some seats.


You probably heard that those ballots will help the BC NDP. How do we know that? Mostly because some polls gave us this indication. Specifically, Ipsos and Insights West both had numbers broken for mail-in, advance and election day. Mainstreet and Angus-Reid only had the early (mail-in + advance) vs same day but it's still providing us with some info.


First, let's compare the early votes to the election day one. Early being the mail-in and advance votes.


As you can see, they mostly all agree (well Ipsos a little bit less). The early vote is likely more favourable to the NDP than the votes on e-day. The issue for us is naturally that the advance votes were counted but not the mail-in, so 'early' isn't super useful to us.


Let's look at the mail-in ballots:


So the NDP is projected between 54 and 59% in those mail-in ballots, an almost 30-points lead over the Liberals!


Maybe a better approach is to compare the ratio of (the voting intentions of) mail-in to election day (advance + same day). Doing a ratio can potentially eliminate the error of some pollsters (a poll might have been over or underestimating one party but as long as the bias is the same, doing a ratio will work).


Using a few assumptions, I also estimated this ratio for Mainstreet and Angus-Reid. What is remarkable is how similar those ratios are across firms. So, all in all, I am quite confident ins saying that the NDP will increase its share of votes once we count the mail-in ballots. By how much? My best estimates is that the NDP will finish around 48%, the Liberals around 32-33% and the Green at 15-16%.


2. How many seats will flip?


Method 1: use the newly estimated shares of votes, plug them in the model and see what happens. This is the least sophisticated method but let's start here.


Doing so gives us the following:

BC NDP: 61 seats

BC Liberals: 24

BC Green: 2


Let's improve those with some of the results we already have. For instance the model was clearly underestimating the Green in West Vancouver. The model was also overestimating the NDP in Cariboo-North (or the Interior in general). Skeena also went better for the Liberals than expected. So if we fix those errors (as well as Columbia River-Rivelstoke), a better projection would be:


BC NDP: 59

BC Liberals: 25

BC Green: 3


Compared to the current results, Vancouver Langara is now NDP (well it was already NDP in my original projections), so is Fraser Nicola. Vernon also flipped so did Kamloops-North Thompson. Abbotsford-Mission didn't flip, neither did Surrey-White Rock.


Method 2: apply the province-wide swing to each riding


The swing caused by mail-in ballots is about +3% for the NDP, -2-3% for the Liberals. If we do this in every riding (using the current results as base), we get 6 ridings to flip Liberals to NDP (Vancouver Langara, Kamloops-North Thompson, Fraser-Nicola, Abbotsford Mission, Surrey-White Rock and Vernon), so:

NDP: 61

Liberals: 23

Green: 3


Similar results as the first method. The caveat is that the swing caused by mail-in ballots won't be uniform, especially since some ridings have a much higher share of mail-in ballots.


Method 3: Use the estimated ratio and apply it to every riding, taking into account how many mail-in ballots there are.


From the ratios above, we know the mail-in ballots should be, in average, more favourable to the NDP. Specifically, if the NDP was at 10%, it should be at 10%*1.24=12.4% in the mail in ballots. Assuming the percentage of returned mail-in ballots is the same in every riding as it is at the provincial level (so 525k/724k=72%), we can thus estimate the swing in every riding.


Let's use Abbotsford Mission as our example. The current results are 38.3% for the NDP and 39.3% for the Liberals. That's out of 17,983 votes in total. We also know there were 8,119 mail-in ballot requests in this riding. If 72% returned their ballots, it means an extra 5,846 votes to count.


Since the NDP was at 38.3% with the advance+same day results, this party should be at 38.3%*1.24=47.5% in the mail-in ballots. Given there are 5,846 of them, that's an extra 2,776 votes for the NDP. Doing similar calculations for the Liberals, we get an extra 1,677votes. Given that the Liberal candidate had a lead of 188 votes, the mail-in ballots easily allow the NDP candidates to win with an overall score of 40.6% of the vote compared to 36.7%. So we have NDP climbing by 2 points and the Liberals dropping by 3 for a total swing of 5, very similar to the other method (it was expected).


Using this method, we get the following seats to flip: Abbotsford Mission, Vernon-Monashee, Surrey-White Rock and Vancouver Langara.


Fraser-Nicola is not flipping and the Liberals kept the seat with 40.6% versus 40.1%! Mostly due to a low number of mail-in ballots. Kamloops-North Thomson would also remain Liberals by the smallest margin (less than 1%). We get a few 'odd' results with this method as we would expect Fraser-Nicola, where the BC Lib have a lead of 3%, to flip before Vancouver Langara (lead of 5%). But the mail-in ballots represent 38% in Langara but only 14% in Fraser-Nicola. So the seat doesn't flip.


Edit: Surrey South might also flip given the really high number of mail-in ballots. Unlikely but not impossible.


Overall, the results would be:


NDP: 59 seats

Liberals: 25

Green: 3


I believe this is the most realistic results. While the NDP might flip 1 or 2 more, we also need to remember that I have so far only looked at ridings that could flip from Liberals to NDP. The polls really don't seem to indicate this as a possibility but we can't ignore a few odd ridings out there. While it's reasonable to assume the overall mail-in ballots will help the NDP, we can't exclude that some ridings will see mail-in ballots more favourable to the Liberals. Richmond-South Centre for instance could well flip NDP to Liberals. Similarly, Michael Lee in Vancouver Langara has so far done better than projected. So it's not unreasonable to expect him to also do better among the mail-in ballots and ultimately saving his seats. So we could have Langara remaining red but Fraser-Nicola flipping, thus cancelling each other out. That's why 59-25-3 is the most likely scenario.


Conclusion


It's almost guaranteed that the mail-in ballots will advantage the NDP over the Liberals. We can expect this party to increase its popular votes by anywhere from 1 to 4% while the Liberals will likely end up below 33%. The Green should move much.


Regarding seats, there are really 6 ridings to watch: Vancouver Langara, Surrey-White Rock, Abbotsford Mission, Fraser-Nicola, Vernon-Monashee and Kamloops-North Thomson. The NDP should be able to flip anywhere from 3 to 6 of those.