A special congressional election in Pennsylvania has given President Donald Trump a bloody nose and offers some key lessons for both parties.
The final results aren't in yet - Democrat Conor Lamb clings to a lead of around 500 votes out of more than 200,000, with a few thousand absentee ballots left to count.
But the massive swing against the Republicans - Trump won here with ease in 2016 - means we can learn plenty.
Both parties are closely watching the results to glean any insight into the mood of the electorate with the November mid-terms looming.