Σ₀ Weather Oracle — a Kalshi daily-high edge, grounded in the settlement source
Thesis
Kalshi KXHIGHNY settles on the NWS Daily Climatological Report for Central Park (KNYC). The prediction target and the settlement source are the same external measurement — which makes this the cleanest Σ₀-grounded application we have. It closes the one open red-team gap in the collapse machinery, ANTI-COLLAPSE-HARDENING.md G1 (observation-channel poisoning: the NIS canary trusting an unauthenticated y), by construction — the observation the belief-loop consumes IS the authenticated settlement value.
This is not a new subsystem. It is the Reason+Verify stage of the existing Convergence Core applied to a weather Task, feeding the existing kalshi-suggest / council EV gate.
Loop mapping
| Stage | Mechanism | Status |
|---|---|---|
| Observe | NWS gridpoint forecast (OKX 34,45) + live KNYC ASOS obs | adapters (need egress) |
| Remember | PCSF manifest ranks forecast sources; CSF stores forecast→verification scalar pairs | reuse formats |
| Reason | calibrated bucket distribution — experiments/kalshi_weather_edge.py |
landed |
| Verify | band-robust edge vs live market (net of fees) + NIS canary + online-conformal coverage | landed + open |
| Converge | ConvergenceRecord per market; settle via kalshi-convergence-outcomes.js |
reuse |
Measured calibration (the "reverse-in")
All pulled live 2026-06-30 — replaces earlier assumed numbers with measured ones:
| Fact | Value | Source |
|---|---|---|
| KNYC daily normal high, Jul 1 | 83.8 °F | NCEI 1991–2020 normals |
| Early-July daily-high 90th percentile | ~92 °F (avg ~84) | WeatherSpark |
| Record high (any July) | 106 °F (1936-07-09) | NWS OKX extremes |
| ≥100 °F days, full record | 60 inyrs; ~5 since 2001 | NWS OKX 100-Degree-Days |
| Last°F at Central Park | 2012-07-18 (2019/22/25 stalled at 99) | NWS OKX 100-Degree-Days |
The key finding — the ≥100 °F ceiling. Central Park crossingis a ~once-per-5-years modern event that hasn't happened since 2012 despite repeated heat waves. The naive Gaussian upper tail (which put ≥100 at ~8% on a°F forecast and ~30–50% on a 101–102 °F forecast) is refuted. The probe caps the ≥100 buckets at a forecast-conditional ceiling and piles the excess mass at 98–99, reproducing the observed hard ceiling. Corollary: the market prices the forecast, not climatology — correctly.
Band-robust edge — why point estimates lie
A point-estimate "edge" that flips sign when the day turns out more/less predictable is noise, not signal — that is exactly how the naive model hallucinated a +13¢ edge on the routine day. The probe therefore reports an edge only if it survives the whole calibration band (σ and downshift uncertainty). The band is also the seam where a measured forecast-conditional bias plugs in and collapses the band to a line (see Handoff).
Two-certificate Verify (the Σ₀ tie-in)
- Internal — NIS canary (
surprise.py):
νᵀS⁻¹ν, belief self-consistency with the latest ob. HEURISTIC (trusts its input — G1, closed here by the authenticated NWS feed).
- External — online conformal coverage: distribution-free, finite-sample
coverage under shift (ACI/FACI/SAOCP). arXiv:2606.19642 applies conformal to probabilistic AI weather forecasts. This is the external audit on the NIS — it catches the "calm while wrong" failure the certificate's §4 is built for.
Results (2026-06-30, live)
- Jul(forecast°F):
no certified edge— the market is efficient to
calibration resolution. The point-estimate "NO 94-95 (+11¢)" has worst-case only +3¢ and does not survive the band. Calibration correctly deleted a fabricated edge.
- Jul(forecast°F; market not yet open): robust FADE on ≥100 —
NO 100-101 (≥+27¢) and YES 98-99 (≥+24¢) survive the whole band. The ceiling caps ≥100 at ~8–13% against a forecast-anchored price; the mass is at 98–99. Ready-to-fire when the market opens.
Open handoff (needs network egress — the app server / in-app model)
This sandbox's Bash has no egress (DNS hangs); WebFetch is proxied. So the live legs run on the server that already polls Kalshi:
- Observe adapters — live NWS forecast + Kalshi prices + KNYC obs.
- IEM/MOS forecast-conditional pairing — pull archived NWS/NBM forecast
highs vs settled KNYC highs on 98–102 °F-forecast days; this measures the CEILING_TABLE and downshift and collapses the band to a line. Source: mesonet.agron.iastate.edu (the api/1/mos.json request format needs correcting — the naive form 404'd).
- Wire the band-robust
actionableoutput intokalshi-suggest/ the
council EV gate; settle via kalshi-convergence-outcomes.js; log ConvergenceRecords to data/convergence/weather-edge-records.jsonl.
- Intraday Bayesian update — as KNYC obs accumulate, the
cio_sde Kalman posterior sharpens and the NIS canary fires if reality diverges from the forecast prior.
Honest scope
CEILING_TABLE+ downshift are measured-anchored estimates; the
forecast-conditional bias is inferred, not yet directly paired (handoff itemis the fix — until then, confidence ≤ 0.6 on the records).
- Conformal gives marginal, not conditional, coverage.
- Fees + a liquid market mean the routine day has no edge; the **extreme-forecast
days are where mispricing is likeliest** — thin books, record framing, largest model disagreement.
Sources
Live/measured: NCEI KNYC normals, NWS Central Park 100°F record, WeatherSpark NYC July, NWS forecast OKX 34,45, live Kalshi KXHIGHNY. Method: conformal UQ for AI weather (2606.19642), collapse certificate, G1.