Prognosticators consider North Carolina Senate District 48 as "Safe Republican" (although Bitzer rated it only "Lean Republican" at some point late last fall -- I have the print-out but don't ask me for the URL). Trump took 59.36 percent of the district vote in 2016. That's enough to sober anybody up -- ice water to one's tenderest aspirations. But Democrat Brian Caskey has been making a campaign there, and anyone should have seen it coming.
I followed the rise of Caskey starting on December 31, 2019, shortly after the close of candidate filing. He was the frontrunner then, I thought, and has never stopped. He won the Democratic primary in March. In July, he called out Republican incumbent Chuck Edwards for being in Duke Energy's pocket. A scrapper, and that's what it will take to upset this incumbent. If anything, Caskey should do more of that hell-raising with Edwards' record.
There's another factor impacting on Caskey's chances to flip this Senate district: SD48 overlaps with HD113 and HD117 where Democratic candidates have been mounting energetic campaigns -- Sam Edney in the 113th and Josh Remillard in the 117th. Edney especially is rallying the troops. Edney, Remillard, and Kim Bost over in the 96th District (Catawba County) have teamed up for their own "Breaking the Majority" campaign. The energy is noticeable for mobilizing "sometime" voters, new voters, independent voters (who hold the balance of power), and with Caskey assaulting the Senate, there's every promise of culmulative force applied against The Matrix.