The polls predicted that Lorne Doerkson’s B.C. Conservatives would win the provincial election yesterday, so it wasn’t much of a surprise when the party came out on top, forming the first B.C. government under a Conservative banner since Simon Fraser Tolmie’s victory in 1928.
But the scale of the Conservative win was a little bigger than expected — thanks in large part to the party’s storming of Metro Vancouver.
All counting has not completed, with a few polls still outstanding in Fraser-Nicola, Langford-Highlands, North Island, Prince George-North Cariboo, Salmon Arm-Shuswap and Vancouver-South Granville. And the mail-in ballots won’t be counted for another two weeks. But, with Elections BC reporting 99.57% of polls, the Conservatives sit with 48.1% of the vote and 64 seats, the biggest victory by any party in British Columbia since Gordon Campbell’s B.C. Liberals swept 77 of 79 seats in the 2001 election.
The New Democrats took just 37.4% of the vote and 27 seats and David Eby announced his resignation. It was a wholly unnecessary own-goal as the NDP had a majority government and two years left in its mandate. That the NDP lost this election, and lost it so badly, makes this one of the all-time strategic blunders in Canadian political history.
The Greens won 11% of the vote and secured two seats, up from the last election in vote share though still below the party’s levels of support in 2017 and 2020.
CentreBC and OneBC took 1.6% and 1.5% of the vote, respectively. Only a single OneBC candidate cleared double-digits (in Kelowna-Lake Country-Coldstream with 11%), while leader Dallas Brodie took only 4% in her own riding of Vancouver-Quilchena. CentreBC’s Elenore Sturko in Surrey South and Andrew Weaver in Oak Bay-Gordon Head each got 10% of the vote, the only CentreBC candidates to reach that level.
The Conservatives were able to flip seats throughout the province, though primarily in Metro Vancouver. They gained 15 seats from the NDP in the area, including four in Surrey (sweeping the city), three in Vancouver and two in both Burnaby and Coquitlam. Flips were rarer elsewhere, with only one in the Fraser Valley and one in the B.C. Interior. Another four seats changed hands on Vancouver Island from the NDP to the Conservatives, though one also went the other way. The NDP was able to win Courtenay-Comox from the Conservatives, their lone gain of the night.
It was the shift in Metro Vancouver that proved decisive, as the NDP dropped 11.6 points from the last election. Most of that went to the Conservatives, who were up six points, but the Greens also made their biggest gain in Metro Vancouver with a four-point increase.
The shifts were more modest in the rest of the province, though the NDP still lost 3.1 points in the Interior and North and fell 4.7 points on Vancouver Island. The Conservatives were up 4.3 points in the Interior and North and 2.8 points on Vancouver Island, while the Greens were up less than two points in both regions.
The Green results are a little interesting, in that they made strong gains in the southern portion of Vancouver Island, finishing within 10 points of the NDP in the two Victoria ridings. Where they were projected to clear 20% of the vote in Victoria, Saanich and parts of Vancouver, they did, but they failed to hit 20% where they were projected to in Vancouver Island ridings further north and in Kootenay Central. The Greens’ gains were more concentrated and less broad-based than they could’ve been.
We have to wait for the mail ballots to be counted to have an official final tally. I have not seen data from Elections BC about how many mail ballots are still outstanding, but in the 2024 election the total of mail (and telephone-assisted) ballots was around 84,000. The NDP did very well in these votes, winning them by a margin of 22 percentage points over the Conservatives. But, on average, that represented a raw-vote advantage of only 206 votes per riding. That was in an election in which the NDP beat the Conservatives by a little less than two points overall. In an election where they lost to the Conservatives by nearly 11 points, the mail-in ballots are unlikely to be as lopsided toward them.
Nevertheless, we should keep an eye on the results in Ladysmith-Oceanside (Conservative lead = 89 votes), Kelowna Centre (132 votes), Cowichan Valley (150 votes) and Burnaby South-Metrotown (NDP lead = 66 votes). When we know how many mail ballots are to be counted in each riding we’ll have a better idea, but for now these look like the prime candidates for potential flips.
Pollsters under-estimated Conservatives, but caught the trend
The final tally of mail ballots will also have an impact on the total popular vote, so we can only rate the pollsters on the preliminary count. But the overall portrait is unlikely to shift dramatically.
So, how did the pollsters do?
On the whole, pollsters under-estimated the Conservatives and over-estimated the NDP. They were pretty close for the Greens, though not surprisingly most pollsters over-estimated the party since it did not have candidates in 20 ridings. The polls did a good job in capturing the trend and giving us an idea of what the outcome would probably be — a Conservative majority — but the errors were a little bigger than usual.
The best performer was Pallas Data with a total error of 5.8 points. Pallas under-estimated the Conservatives by about three points and over-estimated the NDP by about two, but was within one point for both the Greens and the other parties. The Writ’s projection ranks tied for second on this list, in part because of the adjustments made to take into account the number of candidates. Pollara Strategic Insights is also tied for second using its projected vote, which also took into account the number of candidates. (Prior to the results being known, I asked Pollara which set of numbers they wanted to be graded on, and they chose the projected vote.) Also tied for second was Forum’s last-minute poll.
Beyond this group, we have decent performances from Léger, Ipsos and Research Co., while the Innovative Research Group, the Angus Reid Institute and Mainstreet Research finished at the bottom of the pack (Mainstreet’s six-point over-estimation of the Greens was the biggest error of the night). Liaison Strategies did not put out a poll in the final week, but the poll conducted a little over two weeks before election day is included in these rankings because Liaison put out a poll during the campaign, which is my standard practice for any pollsters active during a writ period.
Why the Conservatives over-performed the polls and the NDP under-performed by such a significant amount is an interesting question. The mail-in votes might narrow the margins a little, but this could be a sign of the lack of enthusiasm on the NDP side for its voters to bother to cast a ballot in an election that the party had royally screwed up. Indeed, turnout sits at only 48.1% at the moment. It’s likely that a lot of New Democrats stayed home. (Oddly, the lower turnout means the Conservatives are winning a big majority with about 50,000 fewer votes than in 2024.)
I am pleased with how the projection model performed. It was effective in estimating the Greens and adjusting for the party’s lack of candidates. These adjustments also ensured that the Conservative vote projection was closer to the mark, though it’s clear that a lot of Green voters in ridings without Green candidates did not vote for the NDP, as the NDP did not over-perform its polls as expected.
The seat projection gave 59 seats to the Conservatives, five fewer than the party won, and 32 to the NDP, five more. But the result of 64 and 27, respectively, is well-within the confidence intervals. The Median Projection, which had fewer seats for the Conservatives, expected the NDP to beat its polls even beyond what the baseline vote projection did, based on how the polls have somewhat under-estimated the NDP in the last few elections. That did not happen. Nevertheless, The Writ was higher than some other projections for the Conservatives, so I think the result is acceptable (especially if the mail ballots flip a few seats to the NDP).
The seat-by-seat projection did quite well, surpassing the performance in the Quebec election. Only nine wrong calls were made for an accuracy rating of 90.3%. And in every one of those nine calls, the projection classified the seat as a toss. In the Quebec election, the model made correct calls or only missed in tosses in 94.5% of ridings. In the B.C. election, when including the tosses as “correct”, the model was 93 for 93, or 100%.
That’s actually a bit unusual — not a single Edge, Lean, Close, Likely or Safe call was wrong. It’s another argument for simplifying the classifications. I will have more to say on this soon, but I have developed a new way of calculating the probability of each party winning each seat, which will reduce the size of the confidence intervals and be a little more “confident” at the riding-level when it comes to classifying the race. It would’ve improved the projection in Quebec and I suspect it would have done the same thing in British Columbia. I’ll role out the adjustments to the model in the coming weeks.


