What This Project Does
"Is It Raining on Trump?" estimates Donald J. Trump's current location using public data sources (primarily his published schedule from Factba.se, supplemented by aircraft tracking when available), then queries weather APIs to determine if it's raining there. A minimalist interface displays a large YES or NO, the rain rate in mm/h, and a link to view the provenance of the location.
Whether a rainy notification brightens your day or prompts you to send thoughts and prayers, we don't judge.
Current Status
This project is live and publicly accessible. The source code is open-source under the AGPL-3.0 license. View the code on GitHub.
Version: 2.15.3
Support This Project
This project is free and ad-free. If you enjoy it, consider supporting its development:
Share This App
Know someone who'd appreciate real-time Trump rain updates? Spread the word:
Feedback & Issues
Found a bug? Have a feature request? The best way to reach me is through GitHub Issues. This keeps discussions public and helps others who might have the same question.
Prefer email? Click here to expand contact form
Data Sources & Methodology
1. Aircraft Tracking: Checks ADS-B feeds (OpenSky โ adsb.fi) for Trumpโs jet. If airborne, we assume no rain until arrival; if grounded, we save the last arrival coordinates to cache.
2. Public Schedule (Factba.se): When grounded or no plane data is available, we fetch Trump's JSON schedule from Factba.se. We pick the most recent event with a valid location and apply a 72-hour linear confidence decay. If no event appears within 72 hours, the location is marked "unknown," but a "last known" fallback is preserved.
2b. Overnight Inference: During overnight hours (9PMโ8AM Eastern), if both the last evening event and the next morning event are in the same region, we infer the overnight location: White House for DC, Mar-a-Lago for Florida, or Bedminster for New Jersey (the "Summer White House"). This fills the gap between events with ~85% accuracy based on historical schedule patterns.
2c. Context-Based Geocoding: When the schedule contains ambiguous location names that aren't in our curated alias list, we use nearby scheduled events to disambiguate. The system fetches multiple geocoding candidates and filters out physically impossible locations (e.g., can't travel DC to Arizona in 2 hours), then picks the result closest to where other recent events occurred. This prevents misresolutions like "Naval Observatory" matching Arizona instead of DC.
3. Weather Data: With coordinates determined, we query Open-Meteo for current hourly precipitation (both rain and snow). Any precipitation rate > 0 mm/h yields "๐ง YES" in the UI; otherwise "โ NO."
4. Thunderstorm Detection: Thunderstorm activity is detected using Open-Meteo weather codes (WMO standard 95-99). Code 95 indicates a moderate thunderstorm, while codes 96, 97, and 99 indicate severe thunderstorms with possible hail. State changes (start, escalation, end) trigger push notifications.
Limitations
This is a best-effort estimate, not real-time surveillance:
- Location accuracy: Derived from public schedule and flight data. Confidence decreases over time since the last known event.
- Weather granularity: Open-Meteo provides hourly data, so brief showers may be missed or delayed.
- In-flight: No weather check while airborne. We report "not raining" until landing.
- Unknown state: If no fresh data exists within 72 hours, the app displays "Unknown" with the last known location.
License & Credits
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
Data source attributions:
- Open-Meteo โ weather data
- OpenStreetMap / Nominatim โ geocoding
- OpenSky Network โ ADS-B flight tracking
- adsb.fi โ backup ADS-B feed
- Factba.se โ public schedule data