Chapter 1
It's not you. It's the White House.
Congress is angrier than it used to be — a lot angrier. But the average hides the mechanism: anger belongs to whichever party just lost the presidency, and each hand-over ratchets the floor a little higher.
Chapter 2
The seismograph
Week by week, 2011 to 2026. Hover over any point; the red fill marks weeks above the local baseline, and the diamonds are the 40 biggest spikes. Notice how the blue and red lines are braided together until 2017 — and then split apart.
The biggest spikes
Anger in that week relative to the surrounding three months. Four of the top five are government shutdowns. Congress's most reliable source of anger is Congress.
Three kinds of spike
- Self-inflicted. Shutdowns, debt ceilings, sequesters, collapsing spending bills. 13 of the 40 spikes.
Whoever gets blamed does the yelling:
#SchumerShutdownand#RepublicanShutdowntrended in the same week. - Presidential actions. Travel ban, family separation, Helsinki, executive orders, the tax bill. About 10.
- Violence and tragedy. Orlando, Dallas & Baton Rouge, George Floyd, January 6, Ukraine. These are the only weeks where the two party lines converge — briefly, everyone is angry about the same thing.
Chapter 3
Anger keeps office hours
We expected anger to follow the calendar: election season, campaign mode, the final stretch. It mostly doesn't. What it follows is the clock, the recess schedule, and the news. Every curve here is compared only within its own year, so the 2025 line isn't shouting over the 2012 one.
Chapter 4
The anger forecast
Suppose a member of Congress is about to tweet. How well can you predict it'll be angry? Overall, 29% of tweets are. Knowing the party alone tells you nothing. Knowing the party and who's president tells you a lot. Knowing the person makes it nearly certain.
Chapter 5
Nobody unites from opposition
Anger is one emotion; we scored eleven. Sorting tweets into two registers — civic unity (positive, and explicitly about working across the aisle) and polarizing (angry or disgusted, and aimed at the other party) — shows the same flip as Chapter 1, in both directions at once. The party in power tweets unity. The party out of power tweets at the other side.
Chapter 6
Two networks, one Congress
Every tweet that begins RT @ is an endorsement — you chose to amplify it. Every tweet that begins
.@ uses the old Twitter trick for addressing someone in front of everyone. Within a party that's usually praise;
across the aisle it is a call-out — 53% of those are angry, twice the rate of an ordinary mention. Same members, same positions on the map,
two completely different Congresses.
Two islands. The few threads between them — in gold — are the calmest tweets in the whole network: bipartisan bills, tributes, disasters.
Here the lines across the aisle are the whole point — and almost every one runs straight to a party leader.
The lightning rods
Most .@-addressed by the other party, with the mean anger of those tweets.
The bridges
Most retweeted by the other party. Thomas Massie and John McCain appear on both lists — the only people both sides retweet and yell at.
Appendix
How we measured anger
- Data. 5.1M tweets from Congressional accounts (the HopHacks
congress-tweets-unifieddataset). We kept tweets by members of the House and Senate, sent while they were in office, from 2011 onward — dropping executive-branch accounts, pre-election personal tweets and a few hundred pre-2011 rows: 4.83M tweets, 902 members, 2011 to 2026-08. - Anger score.
cardiffnlp/twitter-roberta-base-emotion-multilabel-latest, a RoBERTa model trained on tweets, gives each tweet a probability of expressing anger (0–1). Throughout the site, mean anger is the average of that probability, and a tweet counts as angry when the probability is above 0.5 — that is what every "% angry" means. We compared two emotion models on a 2,000-tweet sample and kept the one whose top-scored tweets were actually angry (the older 4-class TweetEval model rated "when we fight, we win!" as rage). Scores are model estimates spot-checked by hand, not human labels; a separate sentiment model's negative score correlates 0.80 with them. - Time. Hours are in each member's home-state time zone; timestamps are UTC as Twitter records them. Hour and month effects are computed within a single year and shown as deviation from that year's mean, so the steep 2011→2026 trend can't masquerade as a daily or seasonal pattern. Election cycles are shown separately, never pooled.
- Networks. Retweets are tweets in Twitter's own
RT @user:form (99.7% of all RTs); their anger score is that of the content amplified. Almost no retweets survive in the 2023–24 part of the collection (under 2% of tweets, against 11–19% in every other year), so those two years are excluded from the retweet network. Call-outs are tweets that start with.@useror contain it after a space. Across the aisle, 53% of.@tweets are angry versus 27% of ordinary cross-party mentions and 25% of replies; within a party,.@is barely angrier than a normal mention (28% vs 25%) — so we read it as a call-out only when it crosses the aisle. Edges need at least three tweets to be drawn. - Uniting vs. dividing. A tweet is civic-uniting if it is positive (joy, optimism, love or trust above 0.5 and neither anger nor disgust above 0.5) and contains explicit cross-party language (bipartisan, across the aisle, both parties, common ground, work/come together, unity). It is polarizing if anger or disgust is above 0.5 and it names the other party or its leaders. Gratitude tweets ("thank you", "proud to") are counted separately and not as unity. Emotional distance is the Euclidean distance between the two parties' mean 11-emotion vectors in a year.
- Spikes. Weekly mean anger minus a centred 13-week rolling median; the top 40 local maxima at least three weeks apart, labelled by hand from the words and hashtags over-represented in that week's angry tweets compared with the surrounding twelve weeks.