Back to Dashboard

Methodology

Overview

The Political Temperature Index (PTI) is a daily measurement of US political tension on a 0-100 scale. It combines data from multiple sources to provide an objective snapshot of the political climate.

Data Sources

News Articles

We analyze 250+ articles daily from sources across the political spectrum using GDELT, NewsData.io, and Google News RSS.

Social Media

Posts from 8 politically-relevant subreddits (4 left-leaning, 3 right-leaning, 1 centrist) are analyzed for sentiment and toxicity.

Congressional Votes

Party-line voting patterns in the House and Senate are tracked via the Congress.gov API.

Sub-Indices

The final temperature is calculated from four sub-indices:

Rhetoric Heat (35%)

Measures toxicity and inflammatory language in news headlines and social posts using Google's Perspective API and GDELT tone scores.

rhetoric = (mean_toxicity × 0.4) + (mean_inflammatory × 0.4) + (gdelt_neg_tone × 0.2)

Coverage Polarization (30%)

Measures how differently left vs right media cover the same stories, including "blindspot" stories covered by only one side.

polarization = coverage_skew + (blindspot_count / clusters × 0.3)

Volume Signal (15%)

Detects unusual spikes in political content compared to the 30-day rolling average.

volume = sigmoid((today_count / rolling_30d_avg) - 1)

Legislative Friction (20%)

Tracks party-line voting in Congress. Higher scores indicate more partisan voting.

friction = mean(party_line_scores)

Temperature Scale

Frozen

0-14

Cool

15-29

Mild

30-44

Warm

45-59

Hot

60-74

Boiling

75-89

Meltdown

90-100

Source Balance

We monitor the left/right distribution of our news sources to ensure balanced coverage. If the ratio exceeds 70/30 in either direction, an alert is logged for transparency. Our source bias ratings are based on Media Bias/Fact Check and AllSides data.

Limitations

  • The index measures tension, not correctness or validity of political positions
  • Social media data is limited to Reddit; Twitter/X data is not included
  • Sentiment analysis has inherent limitations with sarcasm and context
  • Historical data begins from the launch date