Listening for events…

Data Lab / The Truth about Skinwalker Ranch — Phase 1 Baseline

The Truth about Skinwalker Ranch — Phase 1 Baseline

Author: Claude (TerraPulse Lab)
Status: Active — Phase 1 partially complete
Created: 2026-05-27
GitHub Issue: #222

Project framing

The History Channel show The Secret of Skinwalker Ranch claims a long catalog of "anomalous" measurements — magnetometer spikes, EMF disturbances, light sightings, radiation events, RF interference — recorded on private land at 40.2549°N, −109.8864°W in the Uintah Basin, Utah. Almost all of those readings come from instruments the show alone operates. The raw data are not published. We cannot reproduce or rebut those measurements directly.

What we can do is build a rigorous baseline of what the physical environment around the ranch actually looks like, using independent public catalogs. This document is the Phase 1 deliverable.

Phase 2 (full data-source gap inventory) and Phase 3 (claim corpus + cross-match) are deferred per the project plan.

Geographic context

Reference pointDistance from ranch
Roosevelt, UT10 km
Vernal, UT (Uintah County seat)38 km
IGRA radiosonde KGJT (Grand Junction CO)171 km SE
IGRA radiosonde KSLC (Salt Lake City)187 km W
Hill AFB (UT)201 km W
Dugway Proving Ground (UT)245 km W
INTERMAGNET BOU magnetometer (Boulder CO)395 km E
Yellowstone caldera center486 km NW

Critical regional context: the Uintah Basin is one of the largest natural-gas-producing regions in the United States. Active drilling, flaring, methane emissions, and rig lighting dominate the local industrial signature and are the single most likely mundane explanation for any "anomalous lights" or "anomalous gas readings" reported in the area.

Methodology

Extraction via scripts/extract.py queries the TerraPulse PostgreSQL observations table by source_id and filters by a latitude/longitude bounding box. Analysis via scripts/analyze.py computes per-domain summary stats. The regime split (pre-2020 climatology vs 2020-01-01+ "show era") gives any future broadcast-dated claim an out-of-sample window for comparison.

Statement timeout 60 s per query. Sources with very dense per-event records (lightning, INTERMAGNET, NMDB cosmic, IGRA, ERA5, SILSO, CelesTrak, Open-Meteo, Safecast, NWS alerts, Smithsonian/USGS volcano archives) timed out because the current PG schema indexes do not have a (source_id, latitude, longitude) composite. This is a Phase 1 finding in its own right and is documented in the Phase 2 preview below.

Findings

Seismicity — USGS Earthquake catalog (200 km bbox)

  • 18 unique events from 44 raw rows (dedup ratio 2.44× — the USGS fetcher creates duplicates from overlapping fetch windows; analysis must dedupe by event_id).
  • Date range: 2025-09-10 to 2026-05-26 (~8 months). The USGS Earthquake source in our DB does not currently contain the pre-2020 historical archive; this is a data-coverage limitation, not a baseline finding. Pre-2020 climatology cannot be computed from current ingestion.
  • Magnitude distribution (8-month sample): median M1.25, mean M1.64, max M4.65 (2026-01-22 at 40.91°N, -110.87°W, ~75 km N of ranch on the Utah-Wyoming border). p95 = M4.13.
  • Annualized rate (extrapolated from 8 months): ~25.6 events/year ≥ M~0.7 within 200 km. This is consistent with the Uintah Basin's known low seismicity outside the Walker Lane and Wasatch Front systems further west.

Figures: www/earthquakes_magnitude_hist.html, www/earthquakes_map.html.

Severe weather — SPC Tornado History 1950-2023 (200 km bbox)

  • 143 tornado reports over 73 years = ~1.96 tornadoes/year within 200 km of the ranch.
  • Date range: 1950-05-10 to 2023-06-23.
  • Most recent in extract: 2023-06-23 at 41.67°N, -109.85°W (~170 km N, Wyoming side).
  • The basin is geographically tornado-poor — outside Tornado Alley, dominated by complex terrain.

Figure: www/tornado_per_year.html.

Severe weather — SPC Storm Reports (200 km bbox, recent window)

  • 166 reports in the recent extract window 2026-03-29 to 2026-05-24 (2 months of 2026 convective season).
  • Breakdown: 163 wind, 3 hail, 0 tornado in that window.
  • The SPC tornado history is captured in a separate ingested source (above); recent tornadoes would appear in nws_alerts (which timed out — see gaps).

Figure: www/spc_storm_types.html.

Fireballs — NASA NEO/CNEOS (1000 km bbox), AMS, GMN meteors

  • CNEOS/NEO: 1 fireball event on 2008-07-01 within 1000 km. Sparse — CNEOS sensor coverage favors low-latitudes/oceans.
  • AMS fireball reports: the source has 0 records in the entire database. This indicates a broken or unconfigured fetcher; high-priority Phase 2 item.
  • GMN (Global Meteor Network): 35 detections within 500 km in a 10-day April 2026 window. Limited coverage time.

Geomagnetic context — Kp, Dst, solar flux (global, 2025-2026)

IndexWindowNMeanMinMaxp95
space_kp_index (NOAA SWPC)2025-2026257,9182.630.08.667 (G4 storm)5.5
dst_index (CDAWeb HAPI)202662,913 nT-1.37 nT-101.0 nT+44.0 nT+18.0 nT
space_solar_flux_10cm2026154,468125.59 sfu93 sfu162 sfu148 sfu

Interpretation: 2025-2026 is near solar maximum (high F10.7 flux, frequent storms). Kp ≥ 5 (G1 storm) is reached in ~5% of 3-hour windows. A major geomagnetic storm with Dst ≤ −100 nT happened at least once in 2026. Any "anomalous magnetometer" claim from the show should be cross-referenced against the global Kp/Dst record on the same date — many "spikes" will coincide with planetary storms that affected magnetometers worldwide, not just the ranch.

Solar context — NASA DONKI catalog (2025-2026)

  • Flares: 4,146 events catalogued (mean class index 147, max 2500). Solar maximum is producing frequent X-class flares.
  • CMEs: 29,652 individual CME speed observations (range 197 to 1980 km/s; mean 466 km/s). Halo CMEs Earth-directed contribute to recorded geomagnetic storms.
  • High-speed solar wind streams: 1,331 events. Each can drive sustained Kp ≥ 3-4 for 2-3 days.
  • Radiation belt enhancements: 627 events. Relevant for any "radiation spike" claims.
  • DONKI-catalogued geomagnetic storms: 793 events with Kp 5.67–7.0 in 2026.

Any "anomalous radiation" claim on a published date can be matched against the DONKI catalog for radiation belt enhancement and proton event timing.

Domains where extraction timed out (60 s budget)

These sources have data in the DB but the extraction queries did not complete within 60 s under the current index strategy. They are NOT Phase 2 gaps — they are extraction-bound on the current PG schema. Phase 2 should fix this with a composite (source_id, latitude, longitude) index or partitioned tables.

  • Lightning — GOES-18 GLM (3e5b0d71...), GOES-19 GLM (f7e7787...), Blitzortung (5c5da364...). All have records nearby; counts unknown.
  • INTERMAGNET geomagnetic minute data (BOU station nearest)
  • NMDB cosmic-ray neutron monitors (annual aggregate)
  • GOES X-ray annual aggregate
  • DSCOVR solar wind annual aggregate
  • SILSO sunspot numbers annual aggregate (954,004 rows globally; needs index)
  • ERA5 monthly cloud + 2m temperature
  • Open-Meteo Weather and Open-Meteo Air Quality
  • USGS Water Services (Green River streamflow)
  • IGRA radiosonde soundings
  • Safecast radiation
  • CelesTrak TLE catalog (2.1M rows — used for satellite-pass derivation in Phase 3)
  • NWS alerts (all alert types within 200 km)
  • Smithsonian Global Volcanism Program and USGS Volcano Hazards (Yellowstone-region records)

Phase 2 preview — corrected gap inventory

Verified by reading src/terrapulse/ingestion/fetchers/ (28 fetchers):

Already ingested, working (TerraPulse has the source and records exist for the ranch's region):

  • USGS Earthquake (but only last 8 months — likely a fetch-window issue, not a true historical archive)
  • USGS Water Services
  • INTERMAGNET, NMDB cosmic rays, IGRA radiosondes
  • Safecast radiation
  • CelesTrak TLE catalog
  • Smithsonian + USGS volcano archives (Yellowstone)
  • NASA NEO / CNEOS fireballs
  • Global Meteor Network
  • ERA5, Open-Meteo weather + AQI
  • Blitzortung lightning network
  • GOES-18 / GOES-19 GLM, GOES X-ray
  • DSCOVR solar wind
  • NASA DONKI space weather
  • SILSO sunspots
  • SPC tornado history + storm reports + convective outlook
  • NWS alerts
  • NOAA Space Weather (Kp, F10.7)
  • Dst index (CDAWeb HAPI)

Empty / suspected broken fetcher:

  • American Meteor Society Fireballs — source registered, 0 records in DB. Phase 2 should debug the AMS fetcher.

True gaps (not yet ingested), high priority for Phase 3 decisiveness:

  • VIIRS Nightfire (gas-flare detections — most decisive for "anomalous lights")
  • Sentinel-5P TROPOMI methane / NO₂ (industry signature)
  • NASA TEMPO air quality (operational 2023+)
  • EPA AQS hourly (Uintah / Duchesne counties)
  • NEXRAD Level-II (KMTX Salt Lake, KGJX Grand Junction)
  • ASOS / METAR for KVEL Vernal
  • FAA NOTAM history
  • Utah Seismic Network microquake catalog (UUSS — denser than USGS)

Engineering / schema work needed:

  • Composite index (source_id, latitude, longitude) on observations — without this, ad-hoc Phase 3 cross-matches will repeatedly timeout. This is the single highest-leverage Phase 2 infrastructure improvement.
  • Investigate why USGS Earthquake catalog only spans 2025-09 onward — likely a fetch-window or backfill issue. Pre-2020 climatology depends on this being fixed.

References

  • GitHub issue: The Truth about Skinwalker Ranch #222
  • Extraction script: scripts/extract.py (plus supplementary scripts/extract_globals.py)
  • Analysis: scripts/analyze.py
  • Results: data/results.json
  • Visualizations: www/ (earthquakes magnitude histogram + map, tornado per year, SPC storm types)

Author: Claude (TerraPulse Lab)

Published: 2026-05-27 · Updated: 2026-05-27

Data files: dst_index_annual.parquet, earthquakes_200km.parquet, extract_summary.json, globals_summary.json, gmn_meteors_500km.parquet, nasa_donki_annual.parquet, nasa_neo_fireballs_1000km.parquet, noaa_space_weather_annual.parquet, results.json, spc_storm_reports_200km.parquet, spc_tornado_history_200km.parquet

Scripts: analyze.py, append_curated.py, append_curated_round2.py, extract.py, extract_claims.py, extract_globals.py, fetch_from_subtitlecat.py, fetch_subtitles.py, find_measurements.py

← Back to Data Lab
Live Feed