Data Sources

Public government, court, statement, and market sources — each with a defined role in the index

PEPIndex combines four kinds of public sources: threat-detection feeds that define each event (Federal Register executive orders/proclamations, USTR Section 301 notices, and the CNN Truth Social archive), outcome-resolution sources that determine how a threat actually resolved (USITC applied tariff rates, the federal courts via CourtListener and PACER, Congress.gov bill actions, the eCFR, and a grounded Gemini resolver for non-trade outcomes), and economic-impact measurement sources (BLS, FRED, and Yahoo Finance market data). A small set of static calibration constants is disclosed separately and is not treated as a live input. Threat classification and non-trade outcome reconciliation use AI models (Claude, Gemini), described below. No commercial aggregators, licensed market terminals, or third-party scrapers are used; provenance is tracked per event and exposed in the API.

Source taxonomy

Every source and the specific role it plays in building the index.

SourceTypeRole in the indexCadenceAccess basis
Federal Register APIGovernment publicationThreat detection (EOs, proclamations) + outcome resolutionDaily (incremental)Public API
USTR FR notices (Section 301)Government agency noticeThreat detection (Section 301 actions)Daily (via Federal Register)Public API
CNN Truth Social ArchivePublic archiveThreat detection — primary statement feed; feeds the repetition-pattern dimension5-minute cachePublic archive
USITC DataWebGovernment tariff dataOutcome resolution + economic measurement (statutory↔applied gap drives reversal magnitude)Monthly (rolling)Public, JWT registration
CourtListener / PACER PCLFederal court recordsOutcome resolution (CIT / CAFC rulings)6-hourly / on-fallbackPublic API
Congress.gov APIGovernment legislative dataOutcome resolution (bill actions for legislation-linked events)Per bill-linked eventPublic, free key
Gemini (Google Search grounding)AI resolverOutcome resolution for overdue non-trade events (independent reporting weighted above self-reported posts)Per overdue eventAPI key (optional)
eCFRGovernment regulatory textOutcome verification (regulatory diffs for resolved events)Per resolved eventPublic API
BLS Public Data APIGovernment price indicesEconomic-impact measurement (four-group CPI, pass-through)MonthlyPublic, free key
FRED (St. Louis Fed)Government macro seriesEconomic-impact measurement + macro contextDaily / monthlyPublic, free key
Yahoo Finance (yfinance)Market data feedEconomic-impact measurement (market reaction around threat/outcome dates)Every 6h runPublic
Retail pass-through constantsStatic calibrationCalibration only (superseded by live USITC rates each run)Static seedDisclosed constants

Automated pipeline sources

Source ingestion runs every 6 hours. The public composite index is published daily after validation; per-source freshness is exposed live at /api/v1/sources/status (human-readable view: source freshness status). Each source updates on its own official release schedule.

SourceDataAuthOfficial cadence
Federal Register API v1
PUBLIC
Executive Orders, Presidential Proclamations, tariff schedules, presidential memoranda. Primary source for EO event classification. None (public API) Daily (incremental)
CNN Truth Social Archive
PUBLIC
All presidential Truth Social posts with engagement metadata. Used for real-time statement detection and threat classification. None 5-minute cache
USITC DataWeb API v2
PUBLIC
Applied tariff rates at HS-2 × country level (11 countries: CN, MX, CA, JP, KR, VN, TW, DE, GB, FR, IT). Duties collected ÷ customs value = effective applied rate. Core input to Reversal Magnitude scoring. JWT (public registration) Monthly (rolling 3-month window)
BLS Public Data API v2
PUBLIC
Import Price Index (EIUIR), PPI final demand (WPUFD4), manufacturing/retail employment (CEU30, CEU42). Four-group CPI proxies: Apparel, Household Furnishings, Food at Home, Medical Commodities, Services, Core Commodities. BLS_API_KEY (free registration) Monthly (lookback to 2017)
FRED API (St. Louis Fed)
PUBLIC
CPI (CPIAUCSL), core CPI (CPILFESL), S&P 500 (SP500), VIX (VIXCLS), goods trade balance (BOPGSTB), imports (IMPGS), PPI all commodities, nominal broad dollar index, 10Y/2Y Treasury yields. FRED_API_KEY (free registration) Daily / monthly (series-specific)
CourtListener API v4
PUBLIC
U.S. Court of International Trade (CIT) and Court of Appeals for the Federal Circuit (CAFC) rulings affecting tariff validity and trade policy legality. Primary automated court ingest. COURTLISTENER_API_KEY (free) 6-hourly (within daily budget)
PACER PCL (Case Locator)
PUBLIC
Automated fallback for CIT (citdc) and CAFC (cafc) cases not yet mirrored in CourtListener RECAP. REST API: auth via pacer.login.uscourts.gov/services/cso-authnextGenCSO token; case search via pcl.uscourts.gov/pcl-public-api/rest/cases/find. Triggered automatically when CourtListener raises errors on all courts. PACER_USERNAME + PACER_PASSWORD On CourtListener error (automated fallback)
yfinance (Yahoo Finance)
PUBLIC
SPY, VIX, and sector ETFs (XLP, XLI, XLY, EEM) daily closes around threat/outcome dates. Market impact signal only — not used in behavioral scoring. None Every 6-hour pipeline run
eCFR API v1
PUBLIC
Electronic Code of Federal Regulations — point-in-time snapshots for regulatory outcome verification against resolved events. None Per resolved event (10/run)
Congress.gov API v3
PUBLIC
Authoritative congressional bill actions and enactment status. Reconciles the outcome of monitoring events tied to legislation (e.g. the SAVE Act): bill death → abandoned, passage/enactment → full_implementation. No-ops when the key is unset. CONGRESS_API_KEY (free) Per bill-linked event (10/run)
Gemini API (Google Search grounding)
AI
Foreign-policy / domestic outcome reconciliation (v25). For overdue, still-pending non-trade events the Federal Register / court / Congress resolvers can't reach, determines whether the threatened action was carried out, de-escalated, or abandoned — weighting independent reporting above the president's own posts (records outcome_evidence_source = gemini_websearch vs self_reported). Claude remains the threat classifier. No-ops when the key is unset. GEMINI_API_KEY Per overdue non-trade event (10/run)

Analysis & classification layer

Two AI models sit between ingestion and scoring. They interpret public-source text into structured events and outcomes; they are not themselves data sources.

ModelRoleNotes
Anthropic Claude Threat classifier. Tags each ingested statement against the four PEPI criteria and as new_threat, action_claim, deescalation, or reiteration; extracts domain, severity, entities, deadline, and statutory authority with a confidence score. Events below 0.70 confidence are flagged for human review before they are confirmed.
Google Gemini (grounded) Non-trade outcome resolver. Reconciles overdue foreign-policy / domestic outcomes the documentary resolvers can't reach, weighting independent reporting above self-reported posts. Added alongside Claude (v25); confidence < 0.70 leaves the event monitoring.

Calibration data (static seed)

These datasets are loaded once during initialization and are not automatically refreshed.

SourceDataUsed for
Retail price pass-through constants Published, freely-citable aggregate constants: retail pass-through (24%), CPI contribution (+0.76pp), consumer incidence (43%). The underlying retail-scanner replication package (≈359,104 products across five major U.S. retailers) was used only to verify methodology alignment — these are disclosed static constants, not a live or proprietary government input. Economic-impact calibration for trade events; superseded by live USITC applied rates each pipeline run.
First-term trade-war rate references First-term trade events: Section 232 (March 2018), Section 301 China tariff lists, Phase One deal terms, Canada/Mexico exemption timeline. Historical event calibration for TACO-2018-* events.

Manual verification references

These sources have no public API. They are used for manual event verification and calibration audits — not for automated ingest.

SourceScopeHow used
Atlantic Council Trump Tariff Tracker Second-term (2025+) tariff events, court ruling timeline, statutory authority (IEEPA, Section 232, Section 301, Section 122) Verify event dates, confirm court rulings, cross-check statutory authority
First-term trade-war rate reference First-term (2018–2021) Section 232/301 events; Phase One deal terms Source authority for first-term calibration events
Federal Register (historical) Full presidential documents since 1994 Manual verification of seed events predating our 2025-01-20 automated ingest start date
USTR Press Releases Official tariff-action announcements; Section 301/232 investigations Cross-check announced rates and dates. The formal USTR actions behind them now auto-ingest as Federal Register notices; the press page remains a manual reference.
Yale Budget Lab — Tariff Tracker Monthly effective tariff rate, customs revenue, PCE goods/durables price deviation Independent cross-validation of our USITC applied rates and BEA PCE series; pass-through range for the economic-impact calibration
PACER (full docket system) All federal court dockets in real time (CIT, CAFC, and others) Manual spot-checks of high-stakes tariff dockets (distinct from the automated PACER PCL case-locator fallback above)

What we do not use