Listening for events…

Astrophysical Neutrino Eventdex — Scope + Frozen Settings

Status: FROZEN 2026-06-15 (Mike) · Owner: Mike + Claude (engine room) Parent: docs/event-spine-framework.md (the Eventdex framework; this is kind #9 after tc, gst, eq, tor, vol, entry, gw, and uhecr)

This document scopes the astrophysical neutrino kind of the event storehouse: the high-energy neutrinos IceCube has caught arriving from space. A neutrino is a nearly massless, chargeless "ghost particle" that crosses the universe in a straight line through gas, dust, and stars without being deflected or absorbed, which is exactly what makes it a clean messenger: its arrival direction points back at the source that made it. Once roughly per several weeks IceCube (a cubic-kilometre detector frozen into the Antarctic ice at the South Pole) records one with enough energy and a good-enough direction to be flagged a likely astrophysical event, and issues an alert.

This is the third and final cosmic-messenger kind, completing the trio with gravitational waves and ultra-high-energy cosmic rays. It inherits their posture:

  1. Cosmic origin, arrival direction not ground point. The neutrino interacts in the ice at the detector, but the scientific position is the reconstructed sky direction (RA/Dec + an error region) pointing back at the source. Like gw/uhecr, no terrestrial radius sweep.
  2. Catalog-first, catalog-only in practice (v1). The value is the spine: a complete record of the high-energy astrophysical-candidate neutrinos, each with energy, direction, and a "signalness" (the probability it is astrophysical rather than an atmospheric background). The real sweep is the directional multi-messenger cross-match shared with gw/uhecr (does this neutrino's direction + time align with a GW event, a cosmic ray, or a flaring blazar? — exactly how IceCube-170922A was tied to the blazar TXS 0506+056 in 2017). That is the shared deferred v2.

One thing makes this kind different from gw and uhecr: there is no live fetcher yet. gw and uhecr were already ingested; neutrinos need a net-new fetcher (spine load + GCN live edge). So Brick B here is a real build (and needs web access), not just a collapse-and-verify.

The theme

The highest-energy neutrinos the planet's largest detector has caught from beyond the solar system. Each is a singular, named event (the most famous: IceCube-170922A, which pointed at a blazar that was flaring in gamma rays at the same moment, the first time a single neutrino was traced to a likely source; and the PeV-scale "Bert / Ernie / Big Bird" starting events). One kind, one timeline of the ghost particles that arrive pointing straight back at the most violent objects in the cosmos.

The spine (one source, net-new fetcher)

Source Population Floor (PROPOSED) Slots History Status
IceCube alert catalog (IceCat-1) high-energy astrophysical-candidate neutrinos all alerts, tier-flagged 348 2011+ LIVE (icecube_neutrinos)

IceCat-1 is IceCube's first public catalog of its realtime alert neutrinos (published 2023): roughly 275 alert events spanning 2011-2023, combining the realtime alerts issued since 2016 with reprocessed archival events back to 2011. It is the authoritative spine: a published catalog with stable event IDs, reconstructed energy, arrival direction + error, and signalness. (Exact count confirmed at Brick B spine load.) The live edge is the ongoing GCN realtime alert stream, same event shape, same IceCube-YYMMDDA naming.

Slot ID — native alert name, no prefix (FROZEN)

Following the single-source kinds (eq, vol, tor, gw, uhecr use the native catalog id), the slot ID is the IceCube alert name, IceCube-YYMMDDA (e.g. IceCube-170922A), globally unique and stable (the realtime name carried into IceCat-1). Single-source, so no prefix; if a second neutrino observatory (e.g. KM3NeT) is ever added the slot space would source-prefix, like the entry kind.

The floor / population — DECIDED 2026-06-15 (Mike, FROZEN)

Include every IceCat-1 alert, flag the signalness tier, drop nothing (mirroring gw's include-all-flagged). IceCube issues two alert tiers, and per measured-reality ([[feedback_measured_reality_only]]) a lower-confidence alert is still a real detected neutrino, not a fabrication:

  • signalness_tier = "gold" — alerts with >50% signalness (more likely astrophysical than not).
  • signalness_tier = "bronze" — alerts with >30% signalness (the broader net).

Considered and not taken: a gold-only hard floor (higher purity), analogous to a confident-only GW floor. Rejected in favor of include-all-flagged — don't drop real detections; the tier flag preserves the distinction without discarding data.

The sweep — catalog-only v1 (FROZEN), directional multi-messenger is the shared v2

Identical posture to gw and uhecr:

  • Geometry: none. No ground point, no radius. The position is the reconstructed arrival direction (RA/Dec + error region), an extragalactic line of sight.
  • v1: catalog-only. No terrestrial sensor sweep is fired. Each slot accretes the full reconstruction (energy, direction, error, signalness, topology). A single astrophysical neutrino correlates with nothing our ground/space layers record.
  • v2 (deferred, shared cosmic-messenger cross-match): the real multi-messenger question is directional + temporal coincidence with the other messengers (a GW event, a UHECR, or a flaring source). Built once for gw + uhecr + neutrinos together. The neutrino case is the marquee one (TXS 0506+056), so this kind is the strongest motivation for finally building that v2.

Honest expectation (FROZEN): every neutrino slot is catalog-only in v1. The product is the catalog of the ghost particles caught pointing back at the cosmos. The spine is the product.

Measured-reality rule (FROZEN)

A neutrino detection is measured (real Cherenkov light from the particle interacting in the ice). The energy and arrival direction are reconstructed from that measurement, and the signalness is a statistical property of the measured event (its probability of being astrophysical vs an atmospheric background), not a forecast. All of it describes an event that happened. Per the bright line ([[feedback_measured_reality_only]]), the same inference class as eq magnitude / bolide kt / GW masses:

  • IN: the detection (arrival time, detector, topology track/cascade), and the reconstructed energy, arrival direction + error, and signalness / false-alarm-rate as published.
  • OUT: predicted neutrino fluxes, model source catalogs, any forecast of future events. None are in the IceCat-1 / GCN alert data.

Dossier shape

Common header (event_id = IceCube-YYMMDDA, when = arrival time, kind_subtype = topology track/cascade, signalness_tier = gold/bronze). Source-native extras: reconstructed energy_tev, arrival direction ra_deg / dec_deg + error radius, signalness, far (false alarm rate), detector run/event ids. No ground point (cosmic-origin); the empty sensor section follows the gw/uhecr catalog-only pattern. Kind directory: data/event_storehouse/neutrino/. Kind code neutrino.

Data-source notes / gotchas (recorded for the build bricks)

  • Net-new fetcher, two parts. (1) Spine load from the IceCat-1 public data release (IceCube data repository; the exact release URL + file format, CSV/FITS, confirmed at Brick B with web access). (2) Live edge from GCN (NASA's Gamma-ray Coordinates Network, gcn.nasa.gov): IceCube astrophysical alerts are GCN Notice types; the modern interface is the GCN Kafka stream, with the classic notice archive as fallback. The fetcher polls for new IceCube-YYMMDDA alerts.
  • Web access needed at build. Unlike gw/uhecr (already in PG), Brick B/C cannot proceed without fetching from the IceCube repository and GCN. That is a flagged step to confirm with Mike before the build.
  • GCN realtime vs catalog overlap. Realtime alerts issued since 2016 are also in IceCat-1 (reprocessed); collapse on the alert name so a realtime alert and its catalog entry are one slot (the catalog reconstruction preferred, the realtime one provenance) — the same collapse pattern as gw versions and uhecr SD/hybrid.
  • Later enrichment (noted, not v1): the HESE "High-Energy Starting Event" sample (the PeV Bert/Ernie/Big Bird events) and other IceCube public point-source samples could extend the spine, like the Meteoritical Bulletin extends meteorite falls. v1 is IceCat-1 + GCN.

Build bricks

  • Brick A — freeze. THIS DOC (2026-06-15): theme, IceCat-1 spine + GCN live edge (net-new fetcher), the include-all-flagged gold/bronze population (gold-only the stated alternative), native alert-name slot id, catalog-only v1 sweep with the directional cross-match deferred to the shared cosmic-messenger v2, and the measured-reality rule placing reconstructed energy/direction/signalness IN by the eq/bolide/gw precedent.
  • Brick B — net-new fetcher + spine load. DONE 2026-06-15 (web access, Mike-authorized). Source = Harvard Dataverse doi:10.7910/DVN/SCRUCD, summary table IceCube_Gold_Bronze_Tracks.tab (datafile 7502710). scripts/reload_neutrino_spine.py loaded 348 alerts (the updated .tab extends past the published 275-event/2020 catalog through 2023), 2011-05-14 -> 2023-10-14, 126 gold / 222 bronze; metric neutrino_alert, value = energy (TeV); RA/Dec kept in extra (sky coords, geo columns NULL). kind_subtype = the alert stream (gfu/hese/ehe, all tracks) rather than track/cascade (IceCat-1 is the alert-track catalog, so every event is a track; the stream is the meaningful within-catalog split). IceCube-170922A present. New icecube_neutrinos source + IceCubeNeutrinosFetcher (re-polls the .tab, newcomer-skip on alert name) + normalize_icecube_neutrinos + seed + scheduler (weekly). DuckDB archive + audit; fetcher->normalizer path verified end-to-end.
  • Brick C — kind registration, catalog-only. DONE 2026-06-15: src/terrapulse/monitor/ neutrino_sweep.py registers the neutrino kind (NEUTRINO_CONFIG: radius_km=None, sensor_slugs=()), scheduler job (neutrino_sweep every 1800 s) + missing-slot newcomer probe. Catalog-only (no sensor sweep built/fired); build_dossier records the full reconstruction + arrival direction, marks multi_messenger="deferred-v2-directional". Live-edge note: v1 is the batched Dataverse .tab re-poll (the file updates with new alerts); a true realtime GCN Kafka edge is a later enhancement. 5 unit tests; full suite 218.
  • Brick D — dossier backfill. DONE 2026-06-15: neutrino_sweep.backfill_and_store() built 348 dossiers (126 gold / 222 bronze; streams gfu 304 / hese 20 / ehe 24; 0 sensor hits by the catalog-only design). 1-slot-per-event verified (348 files == 348 unique). Marquee card = IceCube-170922A (264 TeV, gold, RA 77.4 Dec 5.8 -> the blazar TXS 0506+056). Nine-kind storehouse census: 139,662 (neutrino 348 + gw 431 + uhecr 109 + entry 25,520 + tor 73,634 + eq 13,840 + tc 13,544 + vol 11,089 + gst 1,147). The neutrino kind is COMPLETE (A+B+C+D), and the cosmic-messenger trio (gw + uhecr + neutrino) is complete.
  • First report: deferred. Engine room, not paper mode. (Though the completed cosmic-messenger trio + the shared directional v2 is a natural future feature-paper.)
Live Feed