Technical whitepaper · Helix (HurricaneFeed Consensus) · v3.0.0
Helix: a learned consensus of public tropical-cyclone guidance
HurricaneFeed Consensus (HFCN). Built only from inputs that exist at advisory time, scored in public against the official forecast, and honest about where it does not win.
1. Abstract
Helix (HFCN) is a gradient-boosted residual model on top of a multi-model consensus of interpolated tropical-cyclone guidance. Version 3 is built exclusively from inputs a member of the public can obtain at advisory time: NHC’s public a-deck (aid_public), ECMWF’s open-data tropical-cyclone track products (IFS control and 50-member ensemble, CC-BY-4.0), interpolated to advisory time the same way NHC builds EMXI, plus two inputs HCCA does not take as raw features — ECMWF control-versus-ensemble along/cross geometry, and SHIPS environmental diagnostics (shear, SST, mid-level RH, ocean heat content, MPI, land distance, RI probability). It is trained on 2018–2023 and evaluated without retuning on the frozen 2024–2025 seasons.
On the homogeneous track sample Helix v3.0.0 is scored against the NHC official forecast (OFCL) and NHC’s corrected consensus (HCCA). At 24 h it is better than OFCL by 1.5 n mi (95% storm-block bootstrap interval 0.3 to 3.0). Helix beat OFCL on 53.7% of cycles by mean 12–72 h track error (n=1195). §5 and §6 report the full tables, including where Helix does not win. Anyone quoting Helix as “better than NHC” is misquoting this paper.
2. Motivation
NHC issues an official forecast and several skillful consensus products (TVCN, HCCA, IVCN). Those are the operational standard. An independent, publicly verified consensus is still worth publishing for three reasons.
- Transparency: most public “spaghetti” pages plot guidance; almost none publish a frozen model, a holdout protocol, confidence intervals, and a running scoreboard against OFCL.
- Accountability: where Helix is worse than OFCL — 12 h intensity, 96–120 h track — the numbers stay on this page.
- Reproducibility: every input is public. Anyone can rebuild the model, the tables, and the live feed from the repository.
Helix is not a dynamical model. It cannot see satellite imagery or reconnaissance beyond what is already collapsed into the guidance and the SHIPS diagnostics. It is a consensus layer with a documented fallback. The live /model page does not lead with the skill table in this paper. It leads with this-cycle uncertainty — the 50-member ECMWF 1σ ellipse versus NHC’s last-year cone — and still scores the center line so a tight swarm cannot hide a miss. That display is specified in §3.5 and §4.4. The skill claim remains this paper.
3. Data
3.1 NHC ATCF
Training and evaluation use NHC ATCF files from https://ftp.nhc.noaa.gov/atcf/: archived a-decks (every objective aid and the official forecast, every advisory cycle) and b-decks (best track), Atlantic and East Pacific, 2018–2025. Storm numbers 01–49 are used for fitting and scoring; invests and internal IDs are parsed, flagged, and excluded. Live forecasts read the public a-deck feed (aid_public) and the operational b-decks.
Preprocessing: wind-radii duplicates of the same technique and forecast hour are collapsed; conflicting lat/lon duplicates are flagged rather than averaged away; missing cycles are logged; technique renames between years are recorded (a-decks with anomalies: 38 of 316; unique points 24846169).
3.2 ECMWF open data
NHC’s public a-deck omits the ECMWF aids (EMX/EMXI/EMX2, EEMN) and the UKMET ensemble mean because of NHC’s redistribution terms. ECMWF itself publishes its tropical-cyclone track products in real time under CC-BY-4.0 at data.ecmwf.int: the IFS control/HRES track (stream=oper, type=tf), all 50 perturbed ensemble members (stream=enfo), and the AIFS machine-learning track, every 6 hours. Helix decodes the BUFR files with ecCodes, writes the control track as EMX and the member mean as EEMN in ATCF form, and persists them, because the open-data archive is only ~3 days deep. Contains modified ECMWF data.
3.3 Interpolation to advisory time
A model run initialised at the advisory’s synoptic time is not available when the advisory is written; the 00Z ECMWF run arrives around 06:30Z. NHC therefore uses the previous run relocated onto the current position: EMXI (6-h-old run, at 06/18Z) and EMX2 (12-h-old run, at 00/12Z). Helix reimplements that interpolator: position offset CARQ − run(lag) applied at every lead; intensity offset ramped linearly to zero at 120 h; the raw track read on its 12-hourly points. Tested against NHC’s own EMXI for 2024–2025 it agrees to a median 6 n mi (the 0.1° ATCF rounding floor) with 2 kt intensity MAE; against EMX2 the median is 12 n mi, indicating NHC’s 12-h version uses a slightly different source track. The same code produces EEMI/EEM2 from the ensemble mean, in the archive (for training) and live (for forecasting), so training and live inputs are constructed identically.
Targets are interpolated best-track latitude, longitude, and intensity at the verifying time. Features at forecast time use CARQ so that no verifying BEST information leaks into the predictors.
3.4 SHIPS environment
Training uses CIRA’s public developmental lsdiag files (Atlantic and East Pacific, 1982–2023; Helix keeps 2018–2023). Predictors: 850–200 hPa shear with the vortex removed (SHDC, kt), daily Reynolds SST, 700–500 hPa RH, ocean heat content, Emanuel MPI, and distance to land. CIRA files for 2024–2025 are not posted, so those holdout years have SHIPS as missing. Training randomly blanks SHIPS on 25% of storms so the booster still has a no-SHIPS path. Live forecasts read NHC’s operational _ships.txt (forecast-track diagnostics, including the 25 kt / 24 h RI probability). Developmental SHIPS is analysed on the best track; operational SHIPS is on the forecast track — the same train/serve difference DSHP itself has.
3.5 Control-versus-ensemble geometry
Archived a-decks already contain both the ECMWF control (EMXI/EMX2) and the ensemble mean (EEMI/EEM2). Helix adds their separation at each lead, decomposed into along-track and cross-track components relative to the control heading, plus the intensity difference. That geometry is present on the frozen holdout. Live, the 50-member open-data spread is also available. It is used as a long-lead shrink gate (extra shrink at 96–120 h when spread or control–mean distance exceeds the training 75th percentile). On /model it is the opening graphic: a cyan 1σ ellipse from member latitude/longitude standard deviation around the ensemble mean (~68% of the 50 perturbed members plus control) at the selected lead (24 / 48 / 72 / 120 h), drawn next to the official 2026 cone. The sidebar reports the same 1σ versus the official radius, along-track and cross-track control–mean geometry, member-intensity σ, and a warning when fewer than 20 of 51 members still carry the storm. Individual ensemble tracks are not stored — only the control, the mean, and the per-lead spread statistics. Full 50-member TIGGE history is not used: NCAR GDEX requires a login Helix does not hold.
4. Method
4.1 Architecture
For each lead in {12, 24, 36, 48, 72, 96, 120} h, Helix fits three histogram gradient-boosting regressors (scikit-learn HistGradientBoostingRegressor, max depth 5, early stopping on a 15% split inside the training years) that predict the residual of an equal-weight consensus of the track members: Δlat, Δlon, Δvmax. The forecast is consensus plus a shrunk predicted residual. The shrink factor per lead is chosen by leave-one-year-out cross-validation within 2018–2023 from {0, 0.25, 0.5, 0.75, 1}; the holdout was not used. Full-strength corrections overshoot, especially beyond 72 h.
| Lead | Track | Intensity |
|---|---|---|
| 12 h | 0.50 | 0.75 |
| 24 h | 0.75 | 0.75 |
| 36 h | 0.75 | 0.75 |
| 48 h | 0.75 | 0.75 |
| 72 h | 0.50 | 0.50 |
| 96 h | 0.50 | 0.50 |
| 120 h | 0.50 | 0.50 |
4.2 Members and features
Track members (member set v2): AVNI, EMXI, EGRI, CMCI, HWFI, HMNI, CTCI, AEMI, NVGI, EEMI, HFAI, HFBI. Intensity members: DSHP, LGEM, HWFI, HMNI, CTCI, AVNI, EMXI, IVDR, HFAI, HFBI. Every slot chain contains only aids that exist at advisory time: the 6-h interpolated aid (XXXI) with the 12-h interpolated aid (XXX2) as fallback. Raw same-cycle model output is never used (see §6). Each member contributes position or intensity, a presence flag, and its deviation from the consensus. Additional features: basin, forecast hour, initial intensity and position, storm motion (u, v from CARQ), day-of-year sine/cosine, member count, member spread (standard deviation of member latitude, longitude, and intensity), a 00/12Z flag (global-model inputs are 12 h old at those cycles), NHC’s own public consensus aids TVCN, HCCA, and IVCN as deviations from the Helix consensus, ECMWF control-versus-ensemble along/cross geometry, and SHIPS environment (shear, SST, RH, OHC, MPI−Vmax, land, RI probability). OFCL is never a predictor: it is issued after the cycle and is the baseline.
4.3 Fallback consensus
If fewer than three track members are present, Helix does not apply the booster and emits an inverse-MAE weighted consensus from the training-year slot errors. 1.2% of holdout rows took this path.
4.4 Cones
Three widths can appear on /model and they are not interchangeable. (1) The NHC cone uses the published 2026 operational 2/3-probability radii — last year’s typical official miss, the same number every storm in that basin — and is on by default. (2) The cyan overlay is this cycle’s ECMWF 1σ ellipse from the open-data members Helix ingested. It is not a historical error circle and is not the same probability as the official cone. (3) The Helix cone is the convex hull of circles whose radii are the 67th percentile of holdout Helix track error at each lead, basin-specific. It remains last year’s typical Helix miss. It is off by default; we have not replaced it with the swarm.
| Basin | Lead | Radius |
|---|---|---|
| AL | 12 h | 25.6 |
| AL | 24 h | 38.6 |
| AL | 36 h | 52.7 |
| AL | 48 h | 69.2 |
| AL | 72 h | 110.8 |
| AL | 96 h | 157.0 |
| AL | 120 h | 223.3 |
| EP | 12 h | 26.5 |
| EP | 24 h | 40.2 |
| EP | 36 h | 51.9 |
| EP | 48 h | 62.6 |
| EP | 72 h | 86.7 |
| EP | 96 h | 119.4 |
| EP | 120 h | 152.2 |
5. Results
Primary tables use a homogeneous sample: a forecast is kept only when Helix and every named baseline produced a verifying value. Numbers are pipeline means, unrounded in any way that changes rank.
| Lead | HFCN | OFCL | TVCN | HCCA |
|---|---|---|---|---|
| 12 h | 21.3 n=1187 | 21.8 n=1187 | 21.9 n=1187 | 21.4 n=1187 |
| 24 h | 32.1 n=1105 | 33.7 n=1105 | 34.5 n=1105 | 32.5 n=1105 |
| 36 h | 43.5 n=1015 | 44.9 n=1015 | 47.8 n=1015 | 43.7 n=1015 |
| 48 h | 55.4 n=921 | 56.2 n=921 | 61.3 n=921 | 55.7 n=921 |
| 72 h | 84.1 n=714 | 84.3 n=714 | 93.7 n=714 | 85.5 n=714 |
| 96 h | 130.2 n=564 | 121.3 n=564 | 137.7 n=564 | 129.7 n=564 |
| 120 h | 190.3 n=418 | 179.8 n=418 | 198.2 n=418 | 194.0 n=418 |
| Lead | n | Track vs OFCL (n mi) | Track vs HCCA (n mi) | n | Intensity vs OFCL (kt) |
|---|---|---|---|---|---|
| 12 h | 1187 | -0.5 [-1.0, -0.0] | -0.1 [-0.5, +0.3] | 974 | +0.6 [+0.3, +0.9] |
| 24 h | 1105 | -1.5 [-3.0, -0.3] | -0.4 [-1.6, +0.8] | 849 | -0.1 [-0.7, +0.5] |
| 36 h | 1015 | -1.3 [-3.7, +0.6] | -0.2 [-1.8, +1.7] | 733 | -0.2 [-1.0, +0.8] |
| 48 h | 921 | -0.8 [-4.0, +2.4] | -0.3 [-2.7, +2.2] | 627 | -0.3 [-1.6, +1.0] |
| 72 h | 714 | -0.3 [-5.4, +5.0] | -1.5 [-6.2, +3.5] | 451 | +0.4 [-1.4, +2.2] |
| 96 h | 564 | +8.9 [-0.4, +19.0] | +0.5 [-9.0, +9.7] | 327 | +0.5 [-1.5, +2.0] |
| 120 h | 418 | +10.5 [-4.3, +25.4] | -3.7 [-15.1, +6.4] | 240 | +0.8 [-1.2, +2.7] |
Reading the intervals: a lead is called significant only when the 95% storm-block bootstrap interval excludes zero. A two-season holdout of ~60 storms cannot resolve differences of one or two nautical miles at 48 h; it can resolve a 24 h result of a couple of nautical miles and it can rule out large losses through 72 h.
Cycle-level result: Helix had a lower mean 12–72 h track error than OFCL on 53.7% of cycles (n=1195).
| Lead | HFCN | OFCL | IVCN | HCCA |
|---|---|---|---|---|
| 12 h | 6.1 n=974 | 5.5 n=974 | 6.2 n=974 | 6.1 n=974 |
| 24 h | 8.4 n=849 | 8.6 n=849 | 8.8 n=849 | 8.3 n=849 |
| 36 h | 10.2 n=733 | 10.4 n=733 | 10.9 n=733 | 10.5 n=733 |
| 48 h | 11.8 n=627 | 12.1 n=627 | 12.6 n=627 | 12.2 n=627 |
| 72 h | 14.4 n=451 | 13.9 n=451 | 14.7 n=451 | 14.5 n=451 |
| 96 h | 15.8 n=327 | 15.2 n=327 | 16.0 n=327 | 16.1 n=327 |
| 120 h | 17.1 n=240 | 16.3 n=240 | 16.0 n=240 | 16.6 n=240 |
Where Helix is weaker: intensity MAE at 12 h is worse than OFCL with an interval that excludes zero; beyond 72 h it trails OFCL. Rapid intensification (best-track 24 h change ≥ 30 kt) is a small sample (n=107); Helix 24 h intensity MAE on those rows is 19.4 kt versus 17.1 kt for OFCL. Major-hurricane initial conditions (vmax ≥ 96 kt) at 48 h: Helix 44.3 n mi vs OFCL 46.4 n mi. Those subsets are too small to rank models with confidence.
| Lead | HFCN | OFCL | TVCN | HCCA |
|---|---|---|---|---|
| 12 h | 23.3 n=1387 | 22.0 n=1195 | 23.8 n=1376 | 23.1 n=1368 |
| 24 h | 35.6 n=1381 | 33.8 n=1112 | 38.6 n=1359 | 35.8 n=1358 |
| 36 h | 47.8 n=1333 | 44.9 n=1019 | 53.7 n=1307 | 48.0 n=1303 |
| 48 h | 60.4 n=1257 | 56.2 n=923 | 68.2 n=1228 | 60.5 n=1227 |
| 72 h | 89.8 n=1058 | 84.6 n=716 | 100.5 n=1019 | 91.2 n=1021 |
| 96 h | 129.6 n=863 | 121.4 n=565 | 137.2 n=822 | 132.6 n=833 |
| 120 h | 174.7 n=675 | 180.0 n=421 | 183.3 n=645 | 182.1 n=650 |
6. Ablations: what the inputs are worth
Variants share the training years, holdout, and CV shrink. v1–full differ by member set (and, for v1, the raw-aid fallback). v3 keeps the v2 members and adds the unique features in §3.4–3.5.
| Lead | v1 (withdrawn) | v1 slots, leak removed | Public a-deck only | v2 | v3 (deployed) | Full (+UKMET ens, not deployable) |
|---|---|---|---|---|---|---|
| 12 h | 19.1 | 21.5 | 22.2 | 21.7 | 21.3 | 21.4 |
| 24 h | 30.1 | 33.6 | 32.2 | 32.2 | 32.1 | 32.0 |
| 36 h | 42.0 | 45.4 | 44.8 | 43.3 | 43.5 | 43.1 |
| 48 h | 53.6 | 57.6 | 56.1 | 55.0 | 55.4 | 56.0 |
| 72 h | 82.4 | 86.2 | 86.3 | 84.0 | 84.1 | 84.8 |
| 96 h | 124.0 | 128.9 | 134.2 | 129.4 | 130.2 | 129.8 |
| 120 h | 187.2 | 184.7 | 198.8 | 192.2 | 190.3 | 188.8 |
| Cycles beating OFCL, 12–72 h | 56.2% | 47.6% | 48.4% | 53.6% | 53.7% | 53.3% |
- v1 (withdrawn): the original release. Its slot chains fell back to raw same-cycle model output at 00/12Z, so half its cycles used ECMWF, UKMET, and CMC runs that had not yet been produced when the advisory was issued. That is a look-ahead leak; the column is kept as the record of what was published.
- v1 slots, leak removed: the same members with interpolated-only chains. The 2–3 n mi advantage disappears; this is what v1 was actually worth.
- Public a-deck only: no ECMWF at all, but with NHC’s TVCN/HCCA/IVCN as features. Level with v2 through 24 h (the NHC aids already carry ECMWF information there), 1–2 n mi worse from 36 to 72 h, and 5–7 n mi worse at 96–120 h. Direct ECMWF input matters most at longer leads.
- v2: public a-deck plus ECMWF open data (control track and ensemble mean), NHC consensus aids as features, CV shrink. The previous production model.
- v3 (deployed): v2 plus ECMWF control-versus-ensemble along/cross geometry (scorable on this holdout) and SHIPS environment (trained 2018–2023; missing on 2024–2025 because CIRA has not posted those years). Long-lead extra shrink when control and ensemble disagree.
- Full: v2 plus the UKMET ensemble mean, which is in the archive but in no public feed. It changes nothing measurable, so nothing deployable is being left on the table.
7. Live verification
Every advisory-cycle run is stored under a cycle-keyed JSON file and is never overwritten. When a verifying best-track fix arrives, the same haversine and absolute-intensity errors used here are applied to that stored forecast and to the OFCL, TVCN, and HCCA values captured from the a-deck. Per-storm and season-to-date JSON live at /model/data/live/verify/ and are rendered on the Helix page. In-season b-decks are operational best tracks, not post-season reanalysis.
/model also reports, for each 2026 storm, whether this cycle’s width (ECMWF 1σ when that cycle stored the swarm, otherwise 48 h mean pairwise distance of the aids Helix used) sat inside the official cone, and separately whether Helix’s center line beat OFCL on the same verifying cycles. Those are different bets; the page reports both, including the tight-versus-split beat rates. Most 2026 cycles predate ECMWF ingest, so those width numbers are guidance spread, not the 50-member swarm.
Two disclosures about the 2026 in-season table. First, forecasts issued before 3 September 2026 were produced by v1 on the public a-deck without ECMWF, and were replayed retrospectively; they are labelled as such. Second, ECMWF open data has no archive, so 2026 cycles before that date cannot be re-run with ECMWF inputs. The in-season Helix-versus-NHC comparison becomes a clean test of v3 only from the v3 deploy date forward.
8. Limitations
- Skill claim. Quote the tables, not a slogan. Anyone calling Helix “better than NHC” is misquoting this paper.
- Long leads. At 96–120 h the point estimates favour OFCL. The CV shrink halves the correction there; the model is still not adding value at those leads.
- Intensity. Residual boosting on DSHP/LGEM/HWFI/HAFS does not systematically beat OFCL intensity. Helix should not be used as an intensity specialist.
- Dependence on upstream feeds. If the NHC a-deck or ECMWF open data is late or missing, Helix degrades to the fallback consensus or cannot run. The live JSON records which members were present.
- Interpolation fidelity. Helix’s EMXI matches NHC’s to the rounding floor; its EMX2 differs by a median 12 n mi. The training archive uses NHC’s versions; live uses Helix’s. That is a small, documented train/serve difference.
- SHIPS coverage. Developmental SHIPS ends in 2023, so the frozen holdout cannot demonstrate a SHIPS intensity edge. Live 2026 cycles do have operational SHIPS. The 25% train dropout exists so missing SHIPS cannot poison the 2024–2025 track score.
- AIFS / WeatherNext. AIFS is ingested and available on /model but is off by default and is not a trained feature (short public history, no ATCF archive). WeatherNext historical tracks are not in a public ATCF feed.
- Rapid intensification, major hurricanes, EP vs AL, land, ET. No special handling; small strata; a single model with a basin flag.
- This-cycle width. ECMWF 1σ is ~68% of members around their mean. The official cone is a historical 2/3 official-error circle. Close in spirit, not the same probability, and not a forecast of Helix’s own error. Individual ensemble tracks are not stored.
- Helix cone renderer. Convex hull of holdout error circles, not NHC’s cartography. Off by default. The cyan live overlay is the 1σ ellipse from this cycle’s ECMWF members, not that cone.
9. Reproducibility
From a clone of Validus-Business-Solutions/hurricane:
- python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt
- python -m hfcn ingest — downloads AL/EP a-decks and b-decks, 2018–2025, plus the current season.
- python -m hfcn ships — downloads CIRA developmental lsdiag (2018–2023 index) and current-season NHC stext.
- python -m hfcn train — derives EEMI/EEM2 from archived EEMN, fits HFCN on 2018–2023 only, selects shrink by leave-one-year-out CV. HFCN_MEMBER_SET=v2|full|public|v1 selects the member set (default v2). HFCN_EDGE_FEATURES=0 reproduces the v2 feature layout.
- python -m hfcn backtest — scores 2024–2025 and writes data/backtest/summary.json.
- python -m hfcn whitepaper — rebuilds every figure and this HTML from that JSON. No hand-edited numbers.
- python -m hfcn ecmwf — fetches ECMWF open-data track BUFR (needs eccodes), writes EMX/EEMN/AIFS aids. Run by live automatically.
- python -m hfcn live and python -m hfcn verify — advisory-cycle forecast and running score.
Tests: python -m pytest tests/ covers the ATCF parser, the NHC-style interpolator, ECMWF BUFR-to-ATCF conversion, verification scoring, error math, and cone construction. Parser tests assert that malformed rows are counted as anomalies, not swallowed.
10. Responsible use and disclaimer
Helix is an experimental research product of Hurricane Feed. It is not a National Hurricane Center forecast, not a warning, and not a substitute for local emergency management. If Helix and OFCL disagree, OFCL wins for any decision that affects safety. Evacuation, marine, and aviation decisions must follow NWS/NHC products at hurricane.noaa.gov and weather.gov.
Live page elements that display a Helix track or intensity also display this disclaimer. Redistributors should keep it attached to the forecast, not the footer only.
11. References
- National Hurricane Center. Definition of the NHC Track Forecast Cone. https://www.nhc.noaa.gov/aboutcone.shtml
- National Hurricane Center. National Hurricane Center Forecast Verification. Annual reports. https://www.nhc.noaa.gov/verification/
- National Hurricane Center. ATCF archive README and a/b-deck files. https://ftp.nhc.noaa.gov/atcf/archive/README
- Naval Research Laboratory. ATCF best track / aids (ab-deck) format. https://science.nrlmry.navy.mil/atcf/docs/database/new/abdeck.txt
- Sampson, C. R., J. A. Knaff, and E. M. Fukada, 2008 (and subsequent NRL/NHC notes). Track Variable Consensus (TVCN) documentation as used in ATCF.
- HFIP / NHC. HCCA — HFIP Corrected Consensus Approach description in HFIP annual reports and NHC verification discussions.
- NHC. Intensity Variable Consensus (IVCN) as documented in NHC verification reports and ATCF technique lists.
- Cangialosi, J. P., et al. NHC official forecast verification papers in Weather and Forecasting.
- NOAA NWS Public Information Statement 26-22 (2026). Experimental tropical cyclone track and error cone graphics.
- ECMWF. Open data: real-time forecasts from IFS and AIFS (CC-BY-4.0). https://www.ecmwf.int/en/forecasts/datasets/open-data — tropical cyclone trajectory products, BUFR template 316082.
- DeMaria, M., M. Mainelli, L. K. Shay, J. A. Knaff, and J. Kaplan, 2005. Further improvements to the Statistical Hurricane Intensity Prediction Scheme (SHIPS). Wea. Forecasting, 20, 531–543. Developmental files: https://rammb-data.cira.colostate.edu/ships/
- Sampson, C. R., et al. ATCF interpolated aids (the “I” and “2” techniques): relocation of the prior model run onto the current initial position.