Quick BC post-mortem

What a night we had on Tuesday. So many close races, including some that will require a recount. As it stands, it seems the BC Liberals have won a minority but they are literally 9 votes away from a majority. On the other hand, nothing guarantees they'll keep Coquitlam-Burke Mountain after the recount.

I just wanted to do a quick comparison of the final projections and the actual (preliminary?) results. Overall, the projections did very well. Sure I projected a Liberal majority but a minority could not have been the most likely scenario, not mathematically. Why? Because there were very few combinations where this could happen. But the final projections did say it was close and it turned out that it really was. Also, some riding polls ultimately causes me to make a couple more mistakes. It's unfortunate but it happens.

Here below are the 10 mistakes made by the final projections. For each one, I tried to provide an explanation.

Explanations
Cariboo North
Former NDP riding where an independent (ex-NDP MLA) caused a split of the left vote in 2013. It means the left got almost 60% of the vote in 2013. Given that Bob Thompson didn't run this time, I adjusted the numbers for the NDP. My bad. I would do it again though as it made complete sense. Maybe this riding just got a different trend over time (becoming more and more liberals). I don't regret my adjustments as the estimations were showing me that.
Columbia River-Revelstoke
Technically the biggest surprise of the night as far as winning probabilities are concerned (Liberals only had 3% chances). But it seems some weird stuff happened there with the NDP candidate literally being accused and convicted of defamation. I'll admit that I simply did not follow enough of this story and it seems very unique. There as well, it can also be because the Liberals got stronger in the interior
Courtenay-Comox
I had the Liberals up by 5. Right now this is a mistake but let's wait for the recount.
Cowichan Valley
This one bugs me. My model was predicting the Green to take it with 36.5% of the vote. Then we got the riding polls from Oracle, including one in this riding showing the Green candidate in third. And all the riding polls on the islands (including the ones from Mainstreet) were showing the Green much lower than expected. So I adjusted. It pisses me off to have missed it because I was spot on before the riding polls. This is really the biggest regret of the night as it would have looked very good for my model to predict the 3 Green seats.
Maple Ridge-Mission
I had a very close race leaning Liberals and it ultimately went NDP (for now) by 120 votes. I don't consider this riding as a "mistake" but the call was technically wrong.
North Vancouver-Lonsdale
Another close race that went the other way. Honestly, looking at the candidates, I'm still surprised the Liberals didn't keep this one.
Skeena
Liberals campaigned hard in the North while Horgan didn't. It probably explained this one.
Surrey-Fleetwood
Another one caused by riding polls. Without the Mainstreet poll in this riding, I had the NDP ahead and it wasn't even a close race. Then the Mainstreet poll showed the Liberals well ahead so my adjustments made this riding a close call leaning Liberals.
Surrey-Panorama
I had a close race, actual results was a relatively easy NDP win. My bad. One of the failures of the night
Vancouver-Fraserview
My bad as well. I had first hand information regarding this riding and the NDP campaign and it didn't look good at all. I would never have projected such an easy win for the NDP. Election Prediction seemed to agree with me.

So, mistakes came mostly for two reasons: a different swing in the Lower Mainland and in the Interior, and some riding polls that were simply off.

For the first part, polls were indeed showing that, albeit with a lot of variation. I knew it was likely that the NDP would do better than expected in the Greater Vancouver. I tried to make adjustments but it was giving me a NDP victory and making this party win almost every close race (which is usually unlikely). Also, the riding polls from Mainstreet (and their numbers for the Lower Mainland) in Delta North and Surrey-Fleetwood were showing the Liberals much higher than expected. I had full confidence in Mainstreet and I thought these polls were indicative of a real effect (maybe incumbents would do better). I'm not throwing Mainstreet under the bus but their riding polls were off, both in the Lower Mainland and on the island. I talked to Quito Maggi (the CEO) and he didn't know why they missed by so much. He suggested that maybe the weights based on the 2011 census were outdated. Surrey is a fast growing city after all.

Bottom line, I thought about boosting the NDP a little bit in the Lower Mainland but also boosting the Liberals incumbents. The net result was a wash compared to my adjusted projections. Therefore I didn't do anything. The riding polls not only made me changed some ridings specifically, they convinced me not to do any other regional adjustments. When I saw that the Liberals were doing better in both Surrey-Fleetwood and Delta North, I thought it could be a significant signal that the NDP would not sweep Surrey as much as they would based on the regional breakdown of provincial polls. Also, notice that the model performed well in Burnaby and Coquitlam. It's really in Surrey and Richmond that it failed. Richmond is where the NDP increased the most! Not sure what happened but the NDP definitely got more popular among Chinese and South East Asian citizens.

I regret maybe not paying more attention to some key ridings in the North or the Interior as I could maybe have avoided the mistake in Skeena at least.

Overall, I'd say that 2 mistakes came from the riding polls (Cowichan-Valley and Surrey-Fleetwood), 3 were simply close races that went the other way (Courtenay-Comox, Maple Ridge-Mission and North Vancouver-Lonsdale) while the other 5 were due to the different regional swing (along with some weird circumstances in Columbia River).

Also, advance turnout did identify Surrey as the potential location of surprises. I wasn't sure if this was indicative of a NDP wave since the NDP was actually pretty stable province-wide. I think that in the future, if I see a region where the turnout is strongly increasing, I'll give a boost to the party that is supposed to increase there.

Overall though, as I said, I'm quite happy with the results. The probabilities also worked since 55% of the candidates projected with chances between 50 and 60% ultimately won (as it should be then!). I'll wait for the final results to do a comparisons of the percentages projected and actual.

Also, the biggest surprises were actually not when I made mistakes. For me the biggest ones were the high NDP vote in Richmond (where they almost won a seat) and in False Creek. In these ridings, I made the right call but it was much closer than expected.