One of the great recurring fights on the corner of the internet this site and its readers reside in is model wonkery about how high or low the NDP can go. It’s a fight that’s been going on since before this site existed, and it is rearing its head again with the depths the party’s polling is falling to.
I plainly don’t know how many seats I would call the NDP’s floor - part of this exercise is ranking the 25 seats to try and figure it out. Rankings within tiers matter, but they matter less than splits in different tiers. (The redistribution had the NDP lose a seat, as their two Northern Ontario seats got merged into one, but without Virani running in Parkdale and with former NDP MPP Bhutila Karpoche jumping to the Federal race, it sort of counts as a notional 25th seat. For those asking if I will be including Joel Harden’s quixotic run in Ottawa Centre, the answer is simple - absolutely the fuck not.)
I’ll be quoting model outcomes but let’s be real, if we just wanted model outputs ranked that’s a tweet, not a column. Let’s have some fun with this, shall we?
The “Hope To Come In Second” Caucus
25. Nanaimo-Ladysmith (CPC+6.2 over LPC, NDP 15.5% down, in 4th)
24. Similkameen—South Okanagan—West Kootenay (CPC +19.2 over LPC, NDP 23.4% down, in 3rd)
23. North Island-Powell River (CPC+17.8 over LPC, NDP 21.5% down, in 3rd)
22. Courtenay—Alberni (CPC+13 over LPC, NDP 17% down, in 3rd.)
These four are the truest no hopers for the NDP - they have retiring incumbents in two of them, their vote in BC is currently half of what it was in 2021 (~14.5%, down from 29% last time), and these are right trending areas to begin with. Even if the election had been held in December 2024 the NDP weren’t likely winning any of these, let alone with the subsequent stampede of NDP voters to the Liberals.
21. Port Moody-Coquitlam (LPC+10.5 over CPC, NDP 22.5% down, in 3rd.)
If the Liberals had kept Trudeau they’d be winning this. Alas, there is a 27% swing on margin from the NDP to the Liberals in BC as of right now. (The NDP beat the Liberals by 2% last time, that gap is now 25%.) Nothing to be done.
20. Burnaby Central (LPC+16.4% over CPC, NDP 19.2% down, in 3rd.)
This one has to be right below the others, solely because I wouldn’t put it past Jagmeet to turn the campaign into a Save Burnaby Central operation with 10 days left ala Kathleen Wynne in 2018. It won’t work, because unlike in the Don Valley the NDP have legitimate opposition. It seems likely that the Liberal polling in BC is way too high right now (as we’ll see when we get to the more marginal races below), but even then, what you’d see if the Liberal vote falls back and flows to the Conservatives, not the NDP.
The great crisis of Jagmeet’s leadership is that he gave the Liberals everything they wanted, but because he was an asshole about Trudeau and the Liberals at all times, he has no good will from Liberals. May his career end soon.
19. Kapuskasing—Timmins—Mushkegowuk (CPC+2% over LPC, NDP 9.7% down, in 3rd.)
This is probably unfair, but in fairness I’d bet against the model here. I don’t think the NDP keeps this within 10%, because I just gave this seat a standard loss of incumbency hit but it should be more. Both Carol Hughes and Charlie Angus were institutions in their parts of this newly merged riding, and with neither of them running again, it’s going to be a tough night for the NDP here. There was also a 12% PPC vote here last time, which I’d bet flows more strongly to Poilievre than I’m projecting.
18. Skeena-Bulkley Valley (CPC+14)
The NDP are still (narrowly) in second here but there’s a clear dropoff in the chances after this so let’s just do it here. I look forward to Bachrach running for the provincial seat Nathan Cullen lost last year once he loses.
The “How Is This In Play” Caucus
17. Victoria (LPC+11.1%)
I don’t believe friend of this site Will Greaves is actually up 11% in Victoria, but this is what happens when there’s a 27% swing in the polling. The Liberals did underratedly well here last time, managing to get 27% despite a bad night in most of their non-incumbent seats.
It feels insane for the Liberals to be that favoured but they’re polling at 40% right now. Even if that declines (and I think it will!), the NDP have a better chance in some of the messier three-way races on the island than in Victoria.
16. Vancouver-Kingsway (LPC+6.2%)
One of the points that’s been made a lot is the LPC vote getting relatively whiter compared to four years. The polling is pretty unambiguous, as is the BC Conservative performance in Vancouver proper versus Surrey last year. Now, if that’s true, then the Liberals are gonna surge more in a Kingsway than in, say, South Surrey-White Rock.
I don’t have a huge amount of faith in this race but Don Davies is an asshole, so bite me.
15. Esquimalt—Saanich—Sooke (LPC+6.3%)
14. Cowichan—Malahat—Langford (CPC+4.8% over LPC, NDP 6.1% down, in 3rd.)
These two are purely representations of the NDP collapse in BC, and I can make a case for them being lower (they’re only down 6%!), but there’s a reason these seats are in play. Vancouver Island is becoming less hospitable for the NDP, and this is the consequence.
The reason they’re below Kingsway is because here, some voters I’m projecting to vote Liberal might think the NDP are still the right tactical vote. We saw that in Humber River-Black Creek provincially in 2025, where my model (and I think others, but I’m not positive) had the Liberals more competitive than they ended up being, in a seat that projected very similarly.
The “Local Members Will Decide It” Caucus
13. Nunavut (LPC+15.9%)
Do not take this projection seriously. I cannot tell you how unserious this math is. Territorial politics are unique in so many ways, and function in ways that frankly my southern Canadian ass can’t and won’t pretend to get. No matter how you model this seat, the NDP are down, but fuck if I know. It’s here because I have no idea.
12. Taiaiako'n—Parkdale—High Park (LPC+6.3%)
This is another seat where I’m not taking the modelling that seriously. Bhutila Karpoche was an extremely good candidate as an MPP and I’ve given her a considerable candidate quality boost (especially with Virani retiring), but it’s hard to know whether that boost is worth 10% on margin (what I’ve given her), 20%, or something in between. (For what it’s worth, I usually do 4% on margin for incumbent retirements.) That said, the NDP have failed to pick up a 416 seat in both of Singh’s elections, and there’s little reason for me to have faith they can do it now.
11. Elmwood Transcona (CPC+3.6%)
I would bet a small but non-zero amount of money that the CPC are being underpolled in SaskyToba right now and the Liberals are probably a bit high, which would make this even more CPC friendly. The NDP barely won this at the byelection when they were polling much better, the CPC have no other targets in Winnipeg, and at the end of the day I’m pretty sure this is falling, so I’m calling my shot.
10. Churchill—Kewatinook Aski (LPC+2.6%)
This seat flipped because Leger had the NDP at 5% in SaskyToba this week, and probably will flip back if/when next week’s poll comes in stronger for them, but the fact is Ashton’s been there to be beaten for a little while and the other parties just haven’t gotten their shit together. She’s been mired in some hot water over $17k in expenses she had to pay back, which could make her result even weaker than the model. There's also rumours the Liberals are recruiting a star candidate in the seat, but until it’s announced that’s just a rumour.
9. Winnipeg Centre (LPC+0.2%)
I don’t think Leah Gazan loses, and if there’s a place the NDP vote would likely decline less it’s here. That said, the SaskyToba polling is atrocious for the NDP these days.
8. New Westminster-Burnaby-Maillardville (NDP +1.5% over LPC)
Peter Julien shouldn’t be in danger, and subjectively I don’t think he’s in much danger, but the BC polling is so catastrophic that he’s in a tight race. His saving grace could be a slight CPC rise, if that forces the Liberals to spend more time in Jagmeet’s seat instead of banking that one and going big name hunting next door.
7. Edmonton Griesbach (NDP+1.5% over CPC)
I’d bet on the NDP beating this number on election night, because right now there’s a 28% Liberal vote I’m projecting there. Janis Irwin and the Alberta NDP team there are very good and I think it’s quite likely there’s a very good local NDP squeeze operation on that Liberal vote.
6. London-Fanshawe (NDP+2.5% over CPC)
I got burned betting against the London NDP machine in the provincial election, I’m not really that interested in doing it again. I’d take the over on the NDP margin at 2.5%, but it’s worth pointing out Singh is a much worse NDP leader for places like Fanshawe than Marit Stiles was.
The True Safe Seats
5. Hamilton Centre (NDP+8.4% over LPC)
The only thing that gives me pause in including Green in the safe seats convo is Palestine. The government has taken a lot of heat for being insufficiently pro-Israel amongst Jewish voters, so do they get any credit in this kind of urban riding where views on Palestine can be quite important? Probably not, and the decision to hire Marco Mendicino suggests they’re not really trying to win it, but worth floating.
4. Vancouver East (NDP+8.9% over LPC)
If I already don’t think the Liberals are going to do as well as they’re polling in BC, there’s no way I find another 9% of potential swing possible.
3. Windsor West (NDP+11.3% over LPC)
With Sandra Pupatello taking a Senate seat, the Liberal chance of winning this seat collapses.
2. Rosemont-La Petite-Patrie (NDP+12.6% over LPC)
1 Edmonton Strathcona (NDP+24.4% over CPC)
Do I really need commentary on these two?
Doing this exercise, I think the line at which I’d be genuinely shocked if the NDP fell beneath it on election night is 9, even though I only have them projected for 8 right now. (If this were the final mode run before the election I’d tip Gazan back into the lead myself.) That said, counting up to 12 seats for official party status is hard but doable. Maybe they get Nunavut, one of the Vancouver Island vote split disaster seats splits their way, Parkdale finally happens? Maybe?
That the NDP’s floor is at best 9 seats and more like 5 is a completely pathetic state of affairs. If a few things break right for them, they could get 12 seats and hold official party status. Far more likely, they’re going to languish in obscurity.
Man, fuck Jagmeet and fuck everybody who defended his leader. Congrats on killing the NDP. It was entirely within their hands. And they just let him kill their party.
(If you like this work and want to support me, consider a paid subscription. All my work will remain free, but it’s a way to show some support for my work and help stock the Scrimshaw Strategic Booze Reserve as we imminently approach a Canadian election call.)
I love that Edmonton Strathcona remains the safest NDP riding in Canada.
Wab Kinew for leader!!!!