chrissoria/trump-truth-social
Trump Truth Social Posts Archive Public posts ("Truths") by Donald J. Trump on Truth Social, enriched with market data, geopolitical event indicators, and LLM-based post classifications. Collected for academic research purposes. Fields Post metadata Field Type Description date string Post date (YYYY-MM-DD) time string Post time in UTC (HH:MM:SS) time_eastern string Post time in US Eastern (HH:MM:SS, DST-aware) day_of_week string Day… See the full description on the dataset page: https://huggingface.co/datasets/chrissoria/trump-truth-social.
Trump Truth Social Posts Archive
Public posts ("Truths") by Donald J. Trump on Truth Social, enriched with market data, geopolitical event indicators, and LLM-based post classifications. Collected for academic research purposes.
Dataset Description
- Source: CNN/Stiles Truth Social Archive (live-updating public archive)
- Posts: ~32,000+ (growing)
- Date range: February 2022 – present
- Update frequency: Daily (Truth Social), weekly (all other sources)
- Maintainer: Chris Soria (UC Berkeley)
Fields
Post metadata
Engagement
Media
Post classification (5-model ensemble)
LLM-classified post categories using a 5-model unanimous-vote ensemble (Llama 4 Maverick, Qwen3-32B, Claude 3 Haiku, GPT-4o-mini, Gemini 2.0 Flash). Multi-label: a post can belong to multiple categories. Available for posts with text since Nov 5, 2024 (election day onwards). Values: 1 = present, 0 = not present.
Market data (18 tickers)
Each ticker has 7 columns following the pattern {ticker}_{metric}. Daily open/close prices are available for all posts. Intraday prices (1hr before through 1hr after) use the highest available resolution: 1-minute (last ~7 days), 5-minute (last ~60 days), or hourly (last ~2 years). Weekend/holiday posts use the most recent trading day. The sp500_resolution column indicates the intraday data resolution.
Metrics per ticker:
Tickers:
GDELT geopolitical events (daily)
Daily aggregates of US-involved events from the GDELT Project via BigQuery. Each row gets the event counts for its post date. Based on CAMEO event coding of global news coverage.
Note: GDELT daily exports are typically available with a ~1 day lag. Posts from the most recent day may have null GDELT columns until the next daily update backfills them.
Raw counts:
Derived:
Available for: military, sanctions, threat, protest, force_posture, diplomatic (pct); military, sanctions, threat, protest, material_conflict (zscore and delta); goldstein_avg, avg_tone (delta).
Intended Use
This dataset is intended for academic research in political science, computational social science, NLP, finance, and related fields. Example use cases:
- Analyzing the relationship between presidential social media activity and market movements
- Studying the timing and framing of aggressive policy announcements
- Discourse analysis and political communication research
- Event-driven analysis correlating posts with GDELT geopolitical indicators
- Accessibility research using AI-generated image descriptions
Fair Use Notice
This dataset is compiled from publicly available posts by a public figure for academic research purposes under fair use (17 U.S.C. § 107). The data consists of factual records of public political speech. Source data is from the CNN/Stiles public archive. Market data sourced from Yahoo Finance via yfinance. Geopolitical data from the GDELT Project. Multiple peer-reviewed publications have established precedent for academic use of Truth Social data (see ICWSM 2023, arXiv:2411.01330).
Citation
If you use this dataset in your research, please cite this dataset and the underlying data sources:
This dataset
@misc{soria2026trump_truth_social,
title={Trump Truth Social Posts Archive},
author={Soria, Christopher},
year={2026},
publisher={HuggingFace},
url={https://huggingface.co/datasets/chrissoria/trump-truth-social}
}Source data: Truth Social posts
The raw post data is sourced from Matt Stiles' CNN Truth Social archive:
@misc{stiles2024truthsocial,
title={Trump Truth Social Archive},
author={Stiles, Matt},
year={2024},
publisher={CNN},
url={https://github.com/stiles/trump-truth-social-archive}
}Market data: Yahoo Finance
Stock and ETF price data is sourced from Yahoo Finance via the yfinance Python library:
@software{yfinance,
title={yfinance: Download market data from Yahoo! Finance API},
author={Aroussi, Ran},
url={https://github.com/ranaroussi/yfinance},
license={Apache-2.0}
}Geopolitical events: GDELT Project
Daily geopolitical event aggregates are sourced from the GDELT Project:
@article{leetaru2013gdelt,
title={GDELT: Global Data on Events, Location and Tone, 1979--2012},
author={Leetaru, Kalev and Schrodt, Philip A.},
journal={ISA Annual Convention},
year={2013},
url={https://www.gdeltproject.org/}
}LLM classification and image descriptions
Post classifications were generated using cat-stack with a 5-model ensemble (Llama 4 Maverick, Qwen3-32B, Claude 3 Haiku, GPT-4o-mini, Gemini 2.0 Flash). Image descriptions were generated using Qwen2.5-VL-72B.
@software{soria2026catstack,
title={cat-stack: Domain-agnostic text, image, and PDF classification engine powered by LLMs},
author={Soria, Christopher},
year={2026},
url={https://github.com/chrissoria/cat-stack}
}Part of the cat-pol ecosystem
This dataset is part of the cat-pol political text analysis toolkit. Install with:
pip install "cat-pol[sources]"from cat_pol.sources import fetch_trump_truths
df = fetch_trump_truths(since="2024-01-01")