Taking the Senate WAS a bit of a longshot, and last spring and this summer, I was pretty sure the Republicans had no shot. If I look, I can probably find posts I've made to that effect. I think I began to put stock in it when Nate Silver gave them a 58-9% of taking it - and Nate is quite liberal.
What surprises me is the House - past performance and stats strongly pointed to about a 30-40 seat change. And it's gonna be maybe 10.
What USUALLY causes this is when a new party enters the White House - it usually means they BEAT the other one. So such a President creates "coat tails" - members of his party who coast into the House with the benefit of a couple points the new President provided - in a contest they might have narrowly LOST. So what happens is, after two years, these skin of their teeth representatives get voted out.
This shift tends to NOT happen - when the new White House candidate does NOT have coat tails - when it's THEM that wins by the skin of their teeth. Like, say, George Bush. What happens is, there really aren't, or are very few, representatives who benefited from the new President "helping" them win. Hence, there's not a lot of "snap back".
What's strange is, this would strongly suggest that without looking at the 2020 election, you would guess that Biden won in a tight contest. Because in addition to everything else, Biden won - but MORE HOUSE SEATS went to the GOP. So, no "coat tails".