Listening for events…

Dex-backfill backlog — paper-data standardization campaign

Living list. Every follow-up backfill/extension deferred while building the campaign's dexes ([[project_paper_dex_repoint_campaign]]). We build each dex to fit the paper's data, take what exists now, and record here what still needs filling so a paper can fully repoint later. Nothing here blocks the build track; these are done before (or alongside) the final repoint of the papers that depend on them.

Status: open = not started · partial = some done · done = complete (leave a dated note).

Earthquake magnitude-band Eventdexes (eq_mag_*, built ee9ed95 2026-07-07)

# Backfill Why / which paper Status
EQ-1 Historical + global micro-catalog backfill of the sub-M3 tiers (fetch ComCat at lower magnitude floors and older dates; the live feed only reaches ~4 months back, US-dense). Any paper needing deep/global micro-seismicity; deepens eq_mag_lt1/1_2/2_3. open
EQ-2 Targeted ComCat backfill of the April-2026 Cascadia swarm box+window — 9 of the paper's 23 swarm events were never ingested by the live feed. cascadia-swarm-apr2026 (+ reno-earthquake-swarm) can't fully repoint until these 9 land in observations. open
EQ-3 Register + associate the other seismic networks (EMSC 33,847 · ISC 3,242 · GFZ 1,760, already ingested) to earthquake events. kermadec-doublet cross-network magnitude agreement (its T3). open
EQ-4 Pre-1973 earthquakes: the eq spine starts 1973; the earthquake-lights paper spans 104 years. earthquake-lights-104-years temporal gap. open

Aircraft MovingPlatformDex (aircraft, built 2026-07-07)

# Backfill Why / which paper Status
AIR-1 Stand up a live standing ADS-B feed (vs the one-day captured window this dex organizes). Ongoing/future aircraft papers; a durable platform source. open
AIR-2 Add OpenSky as a second source (the paper has poll_opensky.py; skinwalker uses OpenSky over the ranch). skinwalker-ranch-seven-layers aircraft layer; cross-source confirmation. open
AIR-3 Wider space/time coverage beyond the experiment's US-Northeast, April-2026 window. Any aircraft paper outside that window. open

Safecast radiation dexes (safecast_fixed_sensor + safecast_mobile_survey, built 2026-07-07)

# Backfill Why / which paper Status
SC-1 Include non-geolocated Safecast readings (dropped from both dexes: no lat/lon). Completeness of the radiation record. open
SC-2 Handle part-fixed / part-mobile devices (a relocated sensor) — currently each device is classified by its whole-history spread, so a moved sensor may land wrong. Any paper leaning on a boundary device. open
SC-3 Re-tune the 0.5 km fixed/mobile threshold if a paper depends on the ~12 fuzzy-band devices (0.2–0.5 km). Sensitivity for a specific paper. open

Geophysical-index Yeardex (sunspot_number + geomagnetic_dst + solar_wind + solar_xray_flux, built 2026-07-07)

# Backfill Why / which paper Status
SW-1 Kp is not ingested DONE 2026-07-07: fetched GFZ Niemegk definitive Kp/ap (reload_gfz_kp_spine.py, source gfz_kp, metrics kp_index+ap_index, 1932+) and built the kp_index sibling kind of the geophysical-index Yeardex. sky-anomalies, skinwalker (Kp layers). done
SW-2 Deep backfill of the two minute channels: solar_wind (DSCOVR reaches ~2016; ingested window ~9 mo) and solar_xray_flux (GOES record runs decades; ingested ~3.6 mo). Any solar paper needing pre-2025 wind / pre-2026 X-ray. open
SW-3 Merge kyoto_dst_realtime as the live edge of geomagnetic_dst (used alongside dst_index in gst); v1 uses dst_index only. Current-year Dst freshness. open
SW-4 Pre-1963 Dst / pre-1818 sunspot historical reconstructions. A paper needing deeper time than the ingested series. open
SW-5 DSCOVR solar-wind feed lag — INVESTIGATE. dscovr_solar_wind observations end 2026-06-30 even though the fetcher's last_fetched_at is current (checked 2026-07-07). Source/fetcher issue, not a dex issue (the solar_wind dex faithfully mirrors observations), but it starves the live-edge refresh. Mike's call 2026-07-07: address AFTER the paper-dex campaign completes. solar_wind dex freshness; any solar paper using recent wind. open (deferred to post-campaign)

WSPR spot census (wspr_spot_census month-grain Yeardex, built 2026-07-07)

# Backfill Why / which paper Status
WS-1 Re-fetch the 2013-02 raw partition. The month is a genuine backfill gap — a 561-byte empty parquet, while Jan-2013 and Mar-2013 hold millions of spots. Run python scripts/wspr_raw_backfill.py --month 2013-02, then rebuild the census. Any early-2013 slice of wspr-solar-cycle-bug; a one-month hole in the census. open
WS-2 Wire the census live-edge refresh to the scheduler. refresh_and_store() exists (rebuilds the provisional tail month), but is unwired. Gated on WS-3: the raw itself is ~3 mo stale (last partition 2026-04, through Apr 5). Census freshness. open
WS-3 Bring the raw + daily-aggregate stores current (last raw partition 2026-04 partial through Apr 5; daily/ stops 2026-03). The wspr_raw_backfill.py / daily backfill are manual, not cron-wired. Census + event-Eventdex freshness; the 2026-04 slot is the only raw-backed (no-aggregate) one until daily/ catches up. open

WSPR event-window Eventdex (wspr_event_window spine-parquet, built 2026-07-07)

# Backfill Why / which paper Status
WS-4 Re-carve the 4 pending 2026 slots once WS-3 brings the raw current. The aircraft capture (2026-04-12/13, 3 corridor slots) and the precursor tornado-season window (2026-04-09..19, 1 slot) fall AFTER the raw archive's current end (2026-04-05), so they are built as metadata + carve pointer with working_surface="pending_raw_backfill" and no aggregate. After WS-3, re-run build_wspr_event_windows.py to carve them. NOTE: the aircraft slots need a corridor-grain carve (per station-pair, 2-min bins, band 20m), not the tornado bbox carve; extend the build for the corridor geography at re-carve time. wspr-aircraft-detection, wspr-tornado-precursor can't fully repoint until these carve. open (gated on WS-3)
WS-5 Wire the event-window live-edge / no refresh needed. The tornado/aircraft windows are fixed historical event windows (static); the dex needs a rebuild only when a NEW event paper is shipped or WS-4 lands. No scheduler job by design (unlike the census). Documented so a future audit doesn't flag it as an unwired refresh. n/a (design note). done (by design)

NUFORC (nuforc dex — source-quality regression, found 2026-07-08)

# Backfill Why / which paper Status
NF-1 Re-ingest NUFORC at full geocoding precision. The current nuforc source (metric=ufo_sighting, 80,332 rows) carries COARSE coordinates: 3,311 distinct latitudes / 3,557 distinct longitudes, many sightings collapsed to city-centroid coords (e.g. 40.0, -89.0). The published nuforc-cross-correlation snapshot had 18,420 distinct lats / 19,454 lons (per-report geocoding), so NUFORC was re-ingested at lower precision at some point. Surfaced when flipping sky-anomalies' source #1 onto the nuforc dex; the flip is correct (verified metric↔source), but re-running adopts the degraded coords, so the fine snapshot was preserved instead. Fix = re-fetch/re-geocode NUFORC at full precision, then the flip can adopt live data. sky-anomalies (attribution cascade, spatial matching); earthquake-lights-104-years (also reads nuforc). open

How to work this list

When a dex is built, append its deferred items here (the scope doc's "Deferred" section is the source). When a backfill is done, mark it done with the date + commit. Before the final repoint of any paper, check this list for the dexes it depends on and clear the blocking rows first.

Live Feed