Official warnings and forecasts come from the National Hurricane Center. This page independently scores SHIPS-RII's published probabilities against what happened; it supplements NHC guidance and never replaces it.

RII Verification

Did SHIPS-RII's rapid-intensification probabilities actually predict what happened? Scored against best-track outcomes, 2018–2025 backfill plus the live 2026 season — a live number, not a fixed retrospective study, so it grows as pairs accrue. As of Nov 2, 2026, 11:15 AM UTC.

These numbers refresh automatically — every scheduled pipeline cycle re-scores the pool against that cycle's newly-elapsed SHIPS windows, not just once at launch. A refresh only lands if it passes an internal sanity check first; if a cycle's result looks implausible, this page keeps showing the last good numbers rather than a broken update, so "As of" above can lag by more than one cycle on occasion.

Headline pair: 30 kt / 24 h, SHIPS-RII row, pre-registered before backfill ran. Given SHIPS issued a forecast, how skillful was it — not skill across all storm-hours: cycles where SHIPS structurally couldn't run (sub-threshold intensity, center inland) create no pairs and are excluded from this number, not scored as zero. n = 6190 pairs from 351 storms.

Brier Skill Score (vs. sample base rate)
0.135
base rate 7.1%, n=6190
Brier Skill Score (vs. SHIPS climatology)
0.108
SHIPS' own embedded climatology reference
AUC (discrimination)
0.874
95% CI [0.852, 0.894]

SHIPS-RII ranks RI cases well while being systematically over-confident — these answer different questions, not one. Discrimination (AUC 0.874) asks whether RI cases got higher probabilities than non-RI cases; on that question SHIPS-RII does strongly. Calibration (the reliability table below, and the MHW-stratum calibration further down) asks whether a 30% forecast verifies about 30% of the time; on that question SHIPS-RII runs systematically high — real skill in ranking is not the same claim as well-calibrated probabilities, and this page reports both because a forecast can pass one and fail the other.

Reliability

Forecast binnObserved freq.Wilson 95%Block-bootstrap 95%
0.0%–10.0%29550.6%[0.4%, 1.0%][0.3%, 0.9%]
10.0%–20.0%20465.1%[4.2%, 6.1%][3.7%, 6.4%]
20.0%–30.0%63418.0%[15.2%, 21.2%][14.3%, 22.2%]
30.0%–40.0%27525.5%[20.7%, 30.9%][19.2%, 31.8%]
40.0%–50.0%14139.7%[32.0%, 48.0%][28.6%, 50.0%]
50.0%–60.0%4852.1%[38.3%, 65.5%][37.0%, 67.6%]
60.0%–70.0%4146.3%[32.1%, 61.3%][26.9%, 64.6%]
70.0%–80.0%1838.9%[20.3%, 61.4%][14.3%, 64.7%]
80.0%–90.0%1573.3%[48.0%, 89.1%][45.5%, 94.7%]
90.0%–100.0%1782.4%[59.0%, 93.8%][60.0%, 100.0%]

Bins with n < 5 are shown hollow, not dropped — a bin's absence should never be silently invisible.

SHIPS prints each RI probability rounded to a whole percent, and scores here use that printed value. A forecast printed as exactly 10%, 20%, and so on counts in the upper reliability bin, even when the unrounded value was slightly lower.

Murphy decomposition

The Brier score splits into three terms (Murphy, 1973), each asking a different question of the same forecasts:

Reliability
0.003938
How far forecasts sit from observed frequency — lower is better. This is the over-forecasting described above.
Resolution
0.012780
How well forecasts separate high-risk from low-risk cycles — higher is better.
Uncertainty
0.065752
The base rate's own variance — a property of the events, not the forecast.

reliability − resolution + uncertainty = 0.056911 (binned Brier) · raw Brier score = 0.056877. The decomposition groups forecasts into the same 10 bins the reliability table above uses and treats each as its bin mean, which discards within-bin variation, so the binned score sits slightly below the raw one — a 0.06% gap here.

Research fit — not a live metric

Calibration slope (b1) = 1.366, 95% CI [1.158, 1.613]

SHIPS-RII's probabilities are too compressed within the graded regime — it ranks well but does not spread. A slope above 1 means the spread is too narrow, which is distinct from the over-forecasting described above.

Fit date: 2026-08-03 · Population: 2018–2025, 30 kt / 24 h, graded (non-zero, non-null) SHIPS-RII probabilities only, n=3738 / 361 events.

Frozen research fit from a manually re-run script (pipeline/snapshot_calibration.py), not a live, auto-refreshing metric like the numbers above it — see docs/prereg/mhw-residual-2026-07-29.md for the pre-registration and its amendment log.

Marine heatwave stratified analysis

Storm-level split across the full dataset: 239 storms reached MHW category ≥1 somewhere along their track, 105 never did. 8 storms (7 Central Pacific, structurally outside the tracked OISST domain; 1 whose track never resolved to a position on it) are excluded from every MHW comparison below, not silently folded into either side.

Within-season comparison (required, not a sensitivity row)

MHW-active and inactive storms are compared separately within each season, then pooled (Mantel-Haenszel) — a naive pool of all seasons together can't be trusted here, because 2023–2024 were both far more MHW-active and far more RI-active than every other season in this dataset, entangling an MHW effect with a season effect. The within-season method is what makes it possible to ask whether an effect survives once that confound is controlled for.

Risk difference (MHW-active − inactive), pooled
+13.4 pts
95% CI [+3.6 pts, +23.2 pts] · bootstrap cross-check [+2.7 pts, +23.4 pts]
Odds ratio, pooled (secondary)
1.860×
95% CI [1.072, 3.230]

Suggestive, not established. The odds-ratio confidence interval's lower bound sits at 1.072 — barely above 1 — and the positive direction holds in 7 of 9 seasons shown below, not all of them. Two data points is not a trend and eight seasons is not a settled result; this is evidence worth taking seriously, not a confirmed effect. The per-season table below is shown in full every time this result is, on purpose — a pooled number without the breakdown would hide exactly the season-to-season variation that matters for judging how strong this evidence actually is.

Seasonn activeRate activen inactiveRate inactiveΔ
20182147.6%1428.6%+19.0 pts
20192927.6%90.0%+27.6 pts
20203330.3%1811.1%+19.2 pts
20212035.0%1822.2%+12.8 pts
20221926.3%1637.5%-11.2 pts
20233243.8%837.5%+6.3 pts
20242839.3%40.0%+39.3 pts
20251931.6%1233.3%-1.8 pts
20263633.3%40.0%+33.3 pts

8 storm(s) excluded for unmeasurable MHW, 4 for having no resolved 30kt/24h pair —340 storms enter the comparison above.

3 storm(s) awaiting final OISST: resolved, MHW not yet classified, not counted as unmeasurable.

No pair or storm in this dataset (2018-2025 backfill plus 2026 live) has ever had a tracked position coincide with MHW category 3 ("Severe") or 4 ("Extreme") water, even though both levels occur elsewhere in the tracked ocean domain. Every dose-response or MHW-stratum result on this page therefore covers categories 0-2 only and must not be read as extending to extreme marine-heatwave conditions (spec Decision 36).

Reliability by MHW stratum (descriptive)

These panels describe how SHIPS-RII verified in each MHW stratum. They are not the pre-registered test of whether marine heatwaves explain SHIPS-RII errors. That test uses 2018–2025 only, and its results are not published here.

MHW present (storm max category ≥ 1)

n = 4713 pairs / 237 storms

Forecast binnObserved freq.Wilson 95%Block-bootstrap 95%
0.0%–10.0%22240.7%[0.4%, 1.1%][0.3%, 1.1%]
10.0%–20.0%16025.5%[4.5%, 6.7%][3.9%, 7.1%]
20.0%–30.0%46519.6%[16.2%, 23.4%][14.8%, 24.8%]
30.0%–40.0%21825.2%[19.9%, 31.4%][18.4%, 33.0%]
40.0%–50.0%10439.4%[30.6%, 49.0%][26.7%, 52.5%]
50.0%–60.0%3658.3%[42.2%, 72.9%][38.7%, 76.7%]
60.0%–70.0%3141.9%[26.4%, 59.2%][22.6%, 63.6%]
70.0%–80.0%1435.7%[16.3%, 61.2%][7.7%, 69.6%]
80.0%–90.0%977.8%[45.3%, 93.7%][42.9%, 100.0%]
90.0%–100.0%1080.0%[49.0%, 94.3%][25.0%, 100.0%]

MHW absent (category 0)

n = 1304 pairs / 103 storms

Forecast binnObserved freq.Wilson 95%Block-bootstrap 95%
0.0%–10.0%6330.5%[0.2%, 1.4%][0.0%, 1.3%]
10.0%–20.0%3993.5%[2.1%, 5.8%][1.5%, 6.2%]
20.0%–30.0%15813.3%[8.9%, 19.5%][7.6%, 19.8%]
30.0%–40.0%5626.8%[17.0%, 39.6%][13.2%, 42.9%]
40.0%–50.0%2835.7%[20.7%, 54.2%][10.0%, 57.6%]
50.0%–60.0%1127.3%[9.7%, 56.6%][0.0%, 50.0%]
60.0%–70.0%666.7%[30.0%, 90.3%][0.0%, 100.0%]
70.0%–80.0%450.0%[15.0%, 85.0%][0.0%, 100.0%]
80.0%–90.0%560.0%[23.1%, 88.2%][0.0%, 100.0%]
90.0%–100.0%475.0%[30.1%, 95.4%][0.0%, 100.0%]

Same storm-level strata as the calibration cards and the BSS/AUC sensitivity rows; eras pooled. Bins with n < 5 are shown hollow, not dropped.

No pair or storm in this dataset (2018-2025 backfill plus 2026 live) has ever had a tracked position coincide with MHW category 3 ("Severe") or 4 ("Extreme") water, even though both levels occur elsewhere in the tracked ocean domain. Every dose-response or MHW-stratum result on this page therefore covers categories 0-2 only and must not be read as extending to extreme marine-heatwave conditions (spec Decision 36).

Calibration by MHW stratum (secondary)

Not a BSS/AUC comparison here on purpose — BSS and AUC are base-rate- sensitive and the two strata differ in base rate by construction, so comparing them directly would partly just be re-measuring the split itself. This instead asks the more direct operational question: does SHIPS' own forecast probability track what actually happened, within each stratum?

MHW-active storms
-4.9 pts
observed 7.3% vs. forecast 12.2%, n=4713 · gap CI [-6.2 pts, -3.5 pts]
MHW-inactive storms
-5.9 pts
observed 6.0% vs. forecast 11.9%, n=1304 · gap CI [-8.0 pts, -3.9 pts]

SHIPS over-forecasts in both strata (negative gap, neither confidence interval crosses zero) — the same over-confidence the headline calibration finding above describes, and it shows up whether or not the storm ever crossed a marine heatwave.

No pair or storm in this dataset (2018-2025 backfill plus 2026 live) has ever had a tracked position coincide with MHW category 3 ("Severe") or 4 ("Extreme") water, even though both levels occur elsewhere in the tracked ocean domain. Every dose-response or MHW-stratum result on this page therefore covers categories 0-2 only and must not be read as extending to extreme marine-heatwave conditions (spec Decision 36).

Dose-response: forecast-track intersection with active MHW cells (secondary)

Category itself never exceeds 2 anywhere in this dataset (see the caveat below), so the fraction of a storm's forecast track intersecting an active MHW cell is the only real continuous exposure axis available here — a secondary, supporting look, not a second confirmation of the within-season result above.

Track intersectionnObserved RI freq.Wilson 95%Block-bootstrap 95%
0.0 (none)33816.9%[6.1%, 7.8%][5.4%, 8.4%]
partial12237.2%[5.9%, 8.8%][4.9%, 9.5%]
1.0 (full)8079.5%[7.7%, 11.8%][5.7%, 14.0%]

The trend runs in one direction across all three buckets — more track intersecting active MHW cells lines up with a higher observed RI frequency. Reported as supporting the within-season finding above, not as independent confirmation of it: both are drawn from the same underlying storms and the same MHW classification.

722 pair(s) excluded for unmeasurable MHW position.

57 pair(s) awaiting final OISST: not yet classified, not counted as unmeasurable.

No pair or storm in this dataset (2018-2025 backfill plus 2026 live) has ever had a tracked position coincide with MHW category 3 ("Severe") or 4 ("Extreme") water, even though both levels occur elsewhere in the tracked ocean domain. Every dose-response or MHW-stratum result on this page therefore covers categories 0-2 only and must not be read as extending to extreme marine-heatwave conditions (spec Decision 36).

For 2026 live records, track_fraction_intersecting is a snapshot at capture time, not a stable measurement: NHC retroactively inserted/revised operational b-deck fixes for a completed storm (EP052026/Elida) after its verification record was archived, changing track_fraction_intersecting (0.833 -> 0.75 in one case) without changing category or peak_anomaly_c. 2018-2025 HURDAT2 backfill is unaffected -- it is a final, post-season record with no equivalent revision path. This dose-response axis therefore mixes a stable historical measurement with a mutable live one (spec Decision 41).

Sensitivity analysis

Every row below is a reported delta from the primary number above, not an alternate view — the headline is always the primary pool.

Variantn (pairs/storms)BSS (sample)AUC
dissipated excluded5443 / 3230.1440.864
et included7299 / 3550.1370.891
landfall excluded4725 / 3060.1830.885
2018–2025 only. Live-season records carry no landfall data, so they are left out of this row rather than counted either way. Computed over the 5243 pairs where landfall is known; 947 live-season pairs are excluded. Compare this row with the 2018–2025 row, not the primary pool.
era 2018 20255243 / 3060.1350.870
era operational truth947 / 450.1310.899
basin al2993 / 1660.0760.847
basin ep3000 / 1760.1550.882
model version 2018 20191384 / 760.1590.865
model version 2020 20253859 / 2300.1270.872

The model-version rows (2018–2019 vs. 2020–2025) test a documented candidate SHIPS-RII predictor revision — sourced from secondary literature, not a primary read. A large delta there is suggestive of version-mixing, not proof.

MHW stratum, BSS/AUC (sensitivity only — see the calibration section above for the primary MHW comparison)

Stratumn (pairs/storms)Base rateBSS (sample)AUCAUC 95%
mhw active storms4713 / 2377.3%0.1300.868[0.843, 0.890]
mhw inactive storms1304 / 1036.0%0.0910.885[0.816, 0.932]

Base rate shown deliberately next to BSS/AUC here — the two strata differ in base rate by construction, so a naive BSS/AUC comparison between them would partly just remeasure that difference. Read alongside the base rate, not instead of it.

SHIPS cycle coverage

Coverage is the share of a storm's 6-hourly best-track positions, while it was a tropical or subtropical cyclone, for which a SHIPS forecast cycle was captured. It is shown for context only; no score above filters on it.

2018 to 2025 (backfill), all seasons pooled: 91.1% (5619 of 6166 fixes, 317 storms). This is a lower bound: it was rebuilt from the scored records, and a cycle whose SHIPS file produced no scored pair leaves no record.

SeasonCovered / fixesCoverage (lower bound)
2018862 / 103583.3%
2019627 / 67692.8%
2020874 / 92994.1%
2021701 / 73195.9%
2022612 / 68889.0%
2023787 / 86890.7%
2024574 / 61293.8%
2025582 / 62792.8%

2026 (live), named storms pooled: 97.4% (797 of 818 fixes, 35 storms). Live coverage runs lower because the site's pipeline, which runs a few times a day, doesn't capture every SHIPS cycle.

What these numbers can and can't support: this is a student research tool. Reliability and skill scores here reflect 351 distinct storms, not 6190 independent observations — SHIPS cycles every 6 hours, so pairs from one storm are correlated, and the block-bootstrap intervals above account for that. The MHW within-season result is suggestive, not established — treat it as evidence worth taking seriously, not a confirmed effect. Where a sensitivity row's n is small, treat its delta as suggestive, not conclusive.