“You can’t trust the polls, they always get it wrong.”
I’m sure you’ve heard this before. It’s something I hear in every election campaign. Forget that the polls have done a good job in the vast majority of elections in this country — it’s the few exceptions (and those south of the border) that get all the attention.
But that’s what makes it all the more important that we highlight when the polls do a good job. And, in the 2025 federal election in Canada, the polls did a good job.
They weren’t perfect, of course. The polls rarely are. But they were quite close to the mark in the aggregate both nationally and regionally, and a few pollsters had stellar performances.
In the charts below, I’ve shown the final results from every polling firm that published a national or regional survey conducted at least partially within the last week of the campaign. The election results at the top of the chart and the polling results for each pollster are all rounded off, but the errors are calculated to a tenth of a percentage point, which some pollsters did report. In the national chart, the sample shows the total sample of the poll. In the regional charts, I have shown the sample of decided and leaning voters. For the purposes of this analysis, I have combined the votes for the People’s Party and smaller parties into “others”. I have also included the performance of my Poll Tracker aggregate that was published by the CBC. The column on the right is the cumulative error for each party (and “others”).
At the national level, the 15 pollsters had an average under-estimation of the Conservatives by 2.3 points. The Liberals were also under-estimated by 0.9 points, meaning the average miss on the margin between the two parties was just 1.4 points. The NDP and Greens were over-estimated by 1.9 and 0.7 points, respectively. This is very similar (eerily, even) to what happened in both the 2019 and 2021 elections.
The winner of the pollster sweepstakes was Mainstreet Research, with an astonishing total error of 1.2 points. Mainstreet was withing 0.2 percentage points for all the major parties, with the biggest “error” being a 0.6-point under-estimation for the Greens. It’s one of the lowest errors I’ve encountered in a federal election, so kudos to Mainstreet Research.
Tied for second in the rankings is Liaison Strategies and the Angus Reid Institute, which each had a total error of three points. Liaison had all parties within 0.7 points, while the ARI had them all within 1.3 points. Nanos Research also performed very well with a total error of five points and all parties within 1.5 percentage points.
There was a clear under-estimation of the Conservatives across the board, with every pollster but Mainstreet under-estimating the party’s support. This did not hurt the Liberals, however. Instead, it was the NDP that was over-estimated by nearly every pollster (ARI being the sole exception).
In the end, though, nearly all pollsters did quite well. The biggest problem for those at the bottom of the table was the over-estimation of the NDP, but most pollsters put the gap between the Liberals and Conservatives between two and four points. It ended up at 2.4 points.
We’re really nitpicking when it comes to these results. Two-thirds of pollsters had the Liberals at either 43% or 44%, right on the money, while two-thirds had the Conservatives between 39% and 41%. More than two-thirds put the NDP in single-digits. It was a strong performance and about as good as can be reasonably expected.
The interactive voice response (automated telephone polling) mode of contact had the best performance with an average total error of 5.5 points. Online polls had an average error of 8.9 points, while mixed-mode pollsters had an error of 8.1 points. The Poll Tracker, quite appropriately as an aggregate, was in the middle of the ranking with a total error of 6.5 points.
Some regions easier to poll than others
With Canada’s politics as regionalized as they are, it is important for pollsters to get good regional samples in their national polls. It helps us understand the real dynamics of a race (particularly in Quebec, where gauging support for the Bloc Québécois is so important) and makes it possible to make reliable seat projections.
While the pollsters who did best nationally also had some good regional results, there were some stand outs in each region.
(Note, as Mainstreet Research paywalled its regional numbers, I have opted not to include those results in the charts. However, they are used in the calculation of their total error.)
We’ll start in Ontario, where elections are decided and the samples are the biggest. Despite those larger samples, Ontario was not the best-polled region in this election. The total error per party in the average was 8.1 points, slightly largely than the total error in Alberta, Quebec and Atlantic Canada — and double the error in British Columbia. And the miss, such as it was, turned out to be the most consequential of the election.
The Conservatives were under-estimated by an average of 3.2 points in Ontario. This was the primary cause of the Liberals falling short of their expected majority government. But, here again, it wasn’t the Liberal vote that suffered because of this over-performance. The NDP was over-estimated by 2.5 points.
The ARI and Liaison had the best performances in Ontario with a total error of 4.2 and 4.6 points, respectively. Liaison followed up a strong performance in the Ontario provincial election with a good result here, pegging all parties to within 1.1 percentage points.
The ARI, Mainstreet, Nanos and EKOS Research had all parties within three points in Ontario. Broadly speaking, the IVRs did well in Ontario, while some of the online polls had more issues.
Quebec was polled very well in this campaign. The Liberals were under-estimated by 2.4 points, but all other parties were pegged to within 1.7 points on average. The Bloc was under-estimated by that amount, while the NDP and Conservatives were over-estimated by 1.1 and 0.5 points, respectively. This was the only region in which the Conservatives were under-estimated in the aggregate. As most of the races were Liberal-Bloc fights, the net 0.7-point miss in the margin between the two parties did not have a big impact on seat expectations.
Léger, which had a large-sample Quebec-only poll in the last week, was the closest to the mark with a total error of just 4.6 points. Mainstreet and Nanos also had a good performance, while Pallas joined the top three in keeping its error to within two points per party.
The bottom of the table had a few significant misses, in particular EKOS’s big under-estimation of the Bloc and Forum’s even bigger under-estimation of the Liberals.
The best-polled province in this election was British Columbia. The total average error was just 4.1 points, with the biggest average error being the 1.3-point under-estimation of the Conservatives. But support for the Liberals, NDP and Greens were all accurate to within 0.8 points on average. The Poll Tracker had its best performance here, topping the table.
But a lot of pollsters did well in B.C. Ipsos, Liaison, Nanos, Léger and the ARI all had all parties within two points. That’s impressive considering the smaller samples in British Columbia.
With the exception of Liaison, the IVR polls had more trouble in B.C. while the mixed-modes did well here.
Alberta was more of a mixed bag. The Conservatives were under-estimated by 3.5 points in the province, largely at the expense of the NDP, who were over-estimated by 2.4 points. The polls were right on the money for the Liberals, but the Liberals needed the Conservatives to be a little lower to win their targets in Calgary and Edmonton.
Cardinal Research did the best here with all parties within one point. Liaison and Pollara Strategic Insights had every party within two points.
Note that Nanos combines Alberta, Saskatchewan and Manitoba into one mega-Prairie region, and so it has not been included in the chart above (or in the Prairie chart below).
Atlantic Canada had a total average error of 7.9 points. Like Alberta, it was due to an under-estimation of the Conservatives (by 3.8 points) and an over-estimation of the NDP (by 2.4 points). The Liberals were over-estimated here by 0.9 points, one of only two regions where the Liberals did not beat their polls.
Abacus Data was the winner in Atlantic Canada, getting all parties correct to within one point. Research Co. and Léger had them all within two.
The biggest polling miss came in the Prairies — though this had the fewest implications in the seat count. Most pollsters combine their results for Saskatchewan and Manitoba in their reports, though a few broke them out separately. In the chart below, I’ve combined Saskatchewan and Manitoba results where they were separated.
The total error in the Prairies was 12.4 points on average, roughly 50% more than the next-biggest average error in Ontario. This was largely caused by a significant under-estimation of Conservative support by an average of 6.3 points. The Liberals and NDP were over-estimated by 2.8 and 1.8 points, respectively. This did not have much of an impact on seat expectations, however, though it likely is the reason that Saskatoon and Regina weren’t as competitive as we might have thought.
The Angus Reid Institute was the closest here with all parties within two points. Liaison had all parties within three points, but after that the errors start to accumulate. At the bottom of the table the numbers bear little relation to what actually happened in the region.
Unlike in 2021, there isn’t a clear winner in the regional pollster sweepstakes. Ipsos and Léger were the undisputed champions in that campaign, with Ipsos placing in the top three in five of six regions and Léger placing first in three regions and second in a fourth.
Liaison had four podium finishes, giving it the best average rank of all pollsters at the regional level. It was the only pollster that finished ahead of the Poll Tracker in the regional sweepstakes.
(Because of its mega-Prairie region, Nanos is not included in the chart above. If we exclude Alberta and the Prairies from these calculations, Nanos would be tied at the top of the table with the Poll Tracker.)
It’s interesting that Mainstreet, which did so spectacularly at the national level, is further down on this ranking. They did very well in Ontario and Quebec. Being the biggest provinces, that boosted their national numbers. But they were in the bottom half of pollsters in British Columbia, Alberta and Atlantic Canada. They had the biggest ranking gap between national and regional standings, with the Angus Reid Institute, Pallas and Forum also falling in the table by a fair amount. Pollara, Léger and the Poll Tracker were the regional risers when compared to the national ranking.
All in all, this was a well-polled campaign. There was no major polling error. It was a “normal” polling error — if that — that was largely limited to a few regions of the country. At most, it robbed the Liberals of their expected majority. But there is still a stubborn pattern in the polls of the Conservatives being under-estimated by a couple of points and the NDP being over-estimated by a couple of points. The Liberals, too, have beat their polls in the last few campaigns, which mitigates the under-estimation of the Conservatives as the total error in the margin between the two parties remains modest.
If this kind of error happened in a toss-up election, however, then we would be in for some surprises on election night. This time it left us only with a little drama. The polls suggested a Liberal minority government was a real possibility heading into election day, even if it wasn’t the most likely result. It might not be a bad thing that the less-likely outcome occurs now and then. It keeps us on our toes.
Eric---it seems to me the Election came a week too late for the Liberals, and a week too soon for the Tories?
Eric, would you ever consider making the Poll Tracker min/max scenarios account explicitly for the recent patterns in small polling misses? Has CPC outperformed the polls consistently enough that the model should reflect that? I realize it's a tough call, because pollsters are presumably making changes too, and you would not want to overcorrect.