donnietrump.com

Methodology

How DONNIE TRUMP collects, classifies, and presents coverage.

What this archive is

DONNIE TRUMP is a searchable historical repository of published journalism that is critical, adverse, or negative in subject matter regarding Donald Trump during his two presidential terms (January 20, 2017 – January 20, 2021 and January 20, 2025 – present).

It does not write original political accusations. It does not present generated opinions as facts. Every headline remains the exact published headline of the original publisher, with full attribution.

What is included

Coverage centered on criticism, adverse economic developments, legal setbacks, investigations, ethics concerns, policy backlash, negative polling, documented negative consequences of policy, fact checks identifying false or misleading claims, and similar materially critical or adverse reporting.

Inclusion reflects the nature of the published coverage. It is not an independent determination that every claim inside an article is true.

What is not included

  • Routine neutral process stories without critical framing
  • Positive or celebratory coverage
  • Full-text copyrighted articles (we store metadata, headline, URL, and short neutral summaries only)
  • Content behind paywalls that we cannot access via permitted means

How articles are discovered

Primary discovery uses GDELT and optional RSS/Atom feeds from recognized publishers. Queries are restricted to the relevant presidential periods and broken into manageable time windows. We respect robots.txt and publisher terms. We do not evade paywalls or bypass technical protections.

Classification

A two-stage system is used. Stage one discovers broad Trump-related coverage. Stage two determines whether the item qualifies as critical/adverse coverage. Classification examines headline, description, available metadata, and source tone signals. Possible results: QUALIFY, DO_NOT_QUALIFY, REVIEW.

When an Anthropic API key is present, an optional LLM classifier may be used. The prompt is politically neutral and asks only whether the article itself constitutes materially critical or adverse coverage. It never asks the model whether Trump is good, bad, successful, or likable.

Without an LLM key, the system falls back to GDELT tone scores plus transparent keyword and metadata rules. Low-confidence items go to REVIEW for human inspection in the admin interface.

Deduplication

Syndication creates massive duplication. We deduplicate on canonical URL, normalized headline, publisher, and publication timestamp, with similarity matching. One underlying news event may produce many distinct publisher articles; these are grouped into story clusters so the interface can show “Covered by N outlets.”

The master archive count primarily counts unique qualifying articles, not scraper duplicates.

Data sources for metrics

  • CNN Poll of Polls — Job approval figures are taken from CNN’s published Poll of Polls. If the page structure changes or data is unavailable, the site displays “CNN DATA TEMPORARILY UNAVAILABLE” rather than substituting another pollster. Manual override is available in admin.
  • National Debt — U.S. Treasury Fiscal Data “Debt to the Penny” dataset. Updated on business days. We do not invent a continuous fake clock.
  • Gasoline — U.S. Energy Information Administration national average retail price for regular gasoline (generally weekly).
  • Grocery prices — Bureau of Labor Statistics CPI-U Food at Home index. This is an index, not the exact dollar cost of a universal basket.

Article types

News, Analysis, Opinion, Editorial, Polling, Fact Check, Investigation, and Legal are distinguished visually throughout the site so readers can see the nature of each item at a glance.

Known limitations

  • GDELT coverage is strong but not exhaustive of every local outlet.
  • Paywalled content may appear only as metadata.
  • Classification is probabilistic; REVIEW queue exists for edge cases.
  • Historical backfill of multi-year periods requires significant compute and time.
  • CNN Poll of Polls does not offer a stable public API; ingestion is conservative.