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 Oct 26, 2026, 4:10 PM 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 = 6168 pairs from 350 storms.

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

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%29330.6%[0.4%, 1.0%][0.3%, 1.0%]
10.0%–20.0%20465.1%[4.2%, 6.1%][3.7%, 6.5%]
20.0%–30.0%63418.0%[15.2%, 21.2%][14.1%, 22.2%]
30.0%–40.0%27525.5%[20.7%, 30.9%][19.4%, 32.0%]
40.0%–50.0%14139.7%[32.0%, 48.0%][28.9%, 51.2%]
50.0%–60.0%4852.1%[38.3%, 65.5%][35.4%, 68.2%]
60.0%–70.0%4146.3%[32.1%, 61.3%][28.6%, 64.9%]
70.0%–80.0%1838.9%[20.3%, 61.4%][14.8%, 66.7%]
80.0%–90.0%1573.3%[48.0%, 89.1%][44.4%, 94.7%]
90.0%–100.0%1782.4%[59.0%, 93.8%][57.1%, 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.003954
How far forecasts sit from observed frequency — lower is better. This is the over-forecasting described above.
Resolution
0.012807
How well forecasts separate high-risk from low-risk cycles — higher is better.
Uncertainty
0.065969
The base rate's own variance — a property of the events, not the forecast.

reliability − resolution + uncertainty = 0.057115 (binned Brier) · raw Brier score = 0.057080. 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: 237 storms reached MHW category ≥1 somewhere along their track, 106 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
+12.0 pts
95% CI [+2.1 pts, +22.0 pts] · bootstrap cross-check [+0.9 pts, +22.4 pts]
Odds ratio, pooled (secondary)
1.770×
95% CI [1.023, 3.061]

Suggestive, not established. The odds-ratio confidence interval's lower bound sits at 1.023 — 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
20263429.4%520.0%+9.4 pts

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

4 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 = 4645 pairs / 235 storms

Forecast binnObserved freq.Wilson 95%Block-bootstrap 95%
0.0%–10.0%22070.7%[0.4%, 1.1%][0.3%, 1.1%]
10.0%–20.0%15725.5%[4.5%, 6.8%][4.0%, 7.3%]
20.0%–30.0%45619.5%[16.1%, 23.4%][14.7%, 24.6%]
30.0%–40.0%21324.4%[19.1%, 30.6%][17.4%, 32.5%]
40.0%–50.0%9938.4%[29.4%, 48.2%][25.5%, 51.7%]
50.0%–60.0%3658.3%[42.2%, 72.9%][39.1%, 76.3%]
60.0%–70.0%2941.4%[25.5%, 59.3%][20.7%, 65.0%]
70.0%–80.0%1435.7%[16.3%, 61.2%][8.3%, 70.0%]
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 = 1345 pairs / 104 storms

Forecast binnObserved freq.Wilson 95%Block-bootstrap 95%
0.0%–10.0%6440.5%[0.2%, 1.4%][0.0%, 1.3%]
10.0%–20.0%4143.4%[2.0%, 5.6%][1.5%, 6.0%]
20.0%–30.0%16513.9%[9.5%, 20.0%][8.2%, 20.3%]
30.0%–40.0%5728.1%[18.1%, 40.8%][13.7%, 44.2%]
40.0%–50.0%3339.4%[24.7%, 56.3%][15.8%, 57.6%]
50.0%–60.0%1127.3%[9.7%, 56.6%][0.0%, 50.0%]
60.0%–70.0%862.5%[30.6%, 86.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.2% vs. forecast 12.1%, n=4645 · gap CI [-6.2 pts, -3.5 pts]
MHW-inactive storms
-5.8 pts
observed 6.3% vs. forecast 12.1%, n=1345 · gap CI [-7.9 pts, -3.8 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)33516.9%[6.1%, 7.8%][5.4%, 8.4%]
partial12167.2%[5.9%, 8.8%][5.0%, 9.5%]
1.0 (full)8069.6%[7.7%, 11.8%][5.5%, 13.9%]

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.

73 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 excluded5429 / 3220.1440.864
et included7276 / 3540.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; 925 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 truth925 / 440.1290.896
basin al2993 / 1660.0760.847
basin ep2983 / 1760.1540.881
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 storms4645 / 2357.2%0.1250.866[0.840, 0.889]
mhw inactive storms1345 / 1046.3%0.1140.891[0.828, 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.5% (784 of 804 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 350 distinct storms, not 6168 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.