Tropical Storm Odalys Model Accuracy: DeepMind vs GFS vs WeatherNext 3
Final advisory
NHC issued its final advisory at 2:00 PM ET Sun, Sep 27.
Tropical Storm Odalys has 45 positions on the best track, which is where the storm actually went, from the operational NHC file. 4 official forecast tracks are drawn. At 48 hours, the average track miss is 44 miles across 23 forecasts. At 48 hours, the official wind forecast averaged 77 mph and where the storm actually went averaged 89 mph. Stored model tracks on these forecast tracks: GFS, GEFS mean, HAFS-A, HAFS-B, HWRF, HMON, NAVGEM, Google DeepMind, WeatherNext 3.
EP162026 · 2026 · Sep 16-27, 2026. Score table. Damage reports.
How to read this. The solid line is where the storm went. A dashed line is where the official forecast said it would go. A smaller path miss is closer. Distances are statute miles. Wind speeds are miles per hour.
The technical details
Path miss on this page is the great-circle distance in statute miles, the same miles as the home card and the score table. The Earth radius is 3,958.7613 miles. The file also keeps that distance in nautical miles. One nautical mile is 1,852 meters, about 1.15 statute miles. A case counts when that forecast and the best track (BEST, lead 0) share the same valid time. Positions are not interpolated. A model track counts even when that cycle has no official forecast yet. Skill against the official forecast (OFCL) still requires the official forecast from the same issue time and lead.
Shown leads are 12, 24, 36, 48, 60, 72, 96, and 120 hours, once a paired fix exists. Sample size is the number of paired cases at that lead. Overall rank still uses 24, 48, 72, and 120 hours. The 96-hour lead is drawn when the deck has a paired fix, and it is not in that rank.
Wind on this page is miles per hour. The file stores maximum wind in knots. One knot is about 1.15 miles per hour. An advisory wind is rounded to the nearest 5 mph. A mean on this page is rounded to the nearest mile per hour. Wind miss is the absolute difference on the paired cases. There is no confidence interval on this map. The daily board’s interval is a 95% percentile bootstrap.
Overall rank is the average of the path rank and the wind rank on this storm. Each rank uses the graded leads at 24, 48, 72, and 120 hours, and each of those leads counts once, however many forecasts it holds. A lower miss is the better rank. A tie shares the average of the places those forecasts occupy. A source is ranked only with at least 3 graded forecasts for path and 3 for wind. Fewer than that says Not enough forecasts yet. A source with no graded path, or no graded wind, is left out of both ranks, and overall shows —.
The best track is the operational NHC b-deck. It is preliminary and revised after the season. HURDAT2 is not loaded. Model lines come from the public a-deck for the same forecast tracks, and only when that file stores them. Google DeepMind is the Weather Lab operational ensemble mean. WeatherNext 3 is that model’s ensemble mean from the same download. ECMWF AIFS, ECMWF HRES, and the ECMWF ENS mean are tropical-cyclone tracks from ECMWF open data. The ECMWF ENS mean is the average of the member centers in the IFS ensemble track file. AI GFS is NOAA’s AIGFS tracker when that file is still posted. The methodology page names the aids that are scored.
The methodology page is the full reference. How we grade says the same rules in plain English.
The best track is the operational NHC b-deck. It is preliminary and is revised after the season. The post-season HURDAT2 track is not loaded.
ECMWF AIFS, ECMWF HRES, ECMWF ENS mean, AI GFS: No graded forecasts yet.
Overall rank
Overall averages each forecast's rank on path and on wind strength. See the separate scores below.
| Place on this list. 1 was closest to the weather that happened. A tie shares this number, and the next place skips ahead. Early read until the longer day count, then proven. | The forecast source this row scores. | Path and wind ranksOverall averages each forecast's rank on path and on wind strength. See the separate scores below. | Track rankPlace on path miss. 1 was closest. On one storm this is that place. Across storms it is the average of those places. Each graded lead counts once. A tie shares the average place. | Intensity rankPlace on wind miss. 1 was closest. On one storm this is that place. Across storms it is the average of those places. Each graded lead counts once. A tie shares the average place. |
|---|---|---|---|---|
| 1 | Google DeepMind | 1 | 1 | 1 |
| 2 | NHC official | 2.5 | 3 | 2 |
| 2 | WeatherNext 3 | 2.5 | 2 | 3 |
| 4 | HMON | 6.5 | 5 | 8 |
| 5 | HAFS-B | 7 | 7 | 7 |
| 6 | HAFS-A | 7.5 | 10 | 5 |
| 7 | GEFS mean | 8 | 6 | 10 |
| 7 | Canadian GEM | 8 | 4 | 12 |
| 7 | NAVGEM | 8 | 12 | 4 |
| 10 | GFS | 8.5 | 11 | 6 |
| 10 | HWRF | 8.5 | 8 | 9 |
| 12 | UKMET | 10 | 9 | 11 |
Track and intensity by model
Each row is one source at one lead that has already verified, including 12, 24, 36, and 48 hours. The count is how many forecasts shared a time with where the storm went. Path miss is statute miles. Wind miss is miles per hour. The rank number is that source's place in the table above, and it still uses 24, 48, 72, and 120 hours.
| Place on this list. 1 was closest to the weather that happened. A tie shares this number, and the next place skips ahead. Early read until the longer day count, then proven. | The forecast source this row scores. | LeadHow many hours ahead this forecast was made. Scored leads are 24, 48, 72, and 120. The technical name is lead. | CasesHow many past forecasts went into this average. A forecast counts only when the best track has a fix at that exact time. The technical name is cases. | Track errorAverage how far the predicted storm path was from where it actually went, in miles. Lower is better. The technical name is track error. | Track skillHow that path miss compares with the official hurricane forecast. Positive means better than the official forecast. Negative means worse. The technical name is track skill. | Intensity errorAverage how far off the predicted wind speed was, in miles per hour. The file stores knots. Lower is better. The technical name is intensity error. | Intensity skillHow that wind miss compares with the official hurricane forecast. Positive means better. Negative means worse. The technical name is intensity skill. |
|---|---|---|---|---|---|---|---|
| 1 | Google DeepMind | 12 h | 29 | 18 mi | Beats the official forecast by 28% | 14 mph | Behind the official forecast by 159% |
| 1 | Google DeepMind | 24 h | 27 | 29 mi | Beats the official forecast by 20% | 14 mph | Behind the official forecast by 20% |
| 1 | Google DeepMind | 36 h | 25 | 34 mi | Beats the official forecast by 21% | 16 mph | Beats the official forecast by 5% |
| 1 | Google DeepMind | 48 h | 23 | 36 mi | Beats the official forecast by 17% | 19 mph | Beats the official forecast by 4% |
| 1 | Google DeepMind | 60 h | 21 | 39 mi | Beats the official forecast by 17% | 21 mph | Beats the official forecast by 16% |
| 1 | Google DeepMind | 72 h | 19 | 43 mi | Beats the official forecast by 6% | 22 mph | Beats the official forecast by 18% |
| 1 | Google DeepMind | 96 h | 15 | 59 mi | Beats the official forecast by 9% | 27 mph | Beats the official forecast by 7% |
| 1 | Google DeepMind | 120 h | 11 | 88 mi | Beats the official forecast by 17% | 35 mph | Behind the official forecast by 1% |
| 2 | WeatherNext 3 | 12 h | 29 | 17 mi | Beats the official forecast by 33% | 13 mph | Behind the official forecast by 142% |
| 2 | WeatherNext 3 | 24 h | 27 | 27 mi | Beats the official forecast by 23% | 13 mph | Behind the official forecast by 9% |
| 2 | WeatherNext 3 | 36 h | 25 | 33 mi | Beats the official forecast by 22% | 17 mph | Beats the official forecast by 1% |
| 2 | WeatherNext 3 | 48 h | 23 | 39 mi | Beats the official forecast by 10% | 19 mph | Beats the official forecast by 3% |
| 2 | WeatherNext 3 | 60 h | 21 | 41 mi | Beats the official forecast by 12% | 22 mph | Beats the official forecast by 12% |
| 2 | WeatherNext 3 | 72 h | 19 | 43 mi | Beats the official forecast by 7% | 26 mph | Beats the official forecast by 3% |
| 2 | WeatherNext 3 | 96 h | 15 | 53 mi | Beats the official forecast by 18% | 34 mph | Behind the official forecast by 17% |
| 2 | WeatherNext 3 | 120 h | 11 | 97 mi | Beats the official forecast by 9% | 40 mph | Behind the official forecast by 15% |
| 2 | NHC official | 12 h | 29 | 26 mi | — | 6 mph | — |
| 2 | NHC official | 24 h | 27 | 36 mi | — | 12 mph | — |
| 2 | NHC official | 36 h | 25 | 42 mi | — | 17 mph | — |
| 2 | NHC official | 48 h | 23 | 44 mi | — | 20 mph | — |
| 2 | NHC official | 60 h | 21 | 46 mi | — | 25 mph | — |
| 2 | NHC official | 72 h | 19 | 46 mi | — | 27 mph | — |
| 2 | NHC official | 96 h | 15 | 64 mi | — | 29 mph | — |
| 2 | NHC official | 120 h | 11 | 106 mi | — | 35 mph | — |
| 4 | HMON | 12 h | 27 | 45 mi | Behind the official forecast by 13% | 13 mph | Behind the official forecast by 299% |
| 4 | HMON | 24 h | 27 | 46 mi | Behind the official forecast by 1% | 20 mph | Behind the official forecast by 91% |
| 4 | HMON | 36 h | 27 | 57 mi | Behind the official forecast by 6% | 26 mph | Behind the official forecast by 82% |
| 4 | HMON | 48 h | 27 | 83 mi | Behind the official forecast by 41% | 32 mph | Behind the official forecast by 82% |
| 4 | HMON | 60 h | 27 | 105 mi | Behind the official forecast by 65% | 33 mph | Behind the official forecast by 59% |
| 4 | HMON | 72 h | 27 | 138 mi | Behind the official forecast by 126% | 33 mph | Behind the official forecast by 59% |
| 4 | HMON | 96 h | 23 | 181 mi | Behind the official forecast by 142% | 32 mph | Behind the official forecast by 63% |
| 4 | HMON | 120 h | 19 | 207 mi | Behind the official forecast by 71% | 33 mph | Behind the official forecast by 32% |
| 5 | HAFS-B | 12 h | 39 | 29 mi | Beats the official forecast by 13% | 15 mph | Behind the official forecast by 204% |
| 5 | HAFS-B | 24 h | 37 | 40 mi | Behind the official forecast by 10% | 19 mph | Behind the official forecast by 99% |
| 5 | HAFS-B | 36 h | 35 | 51 mi | Behind the official forecast by 13% | 24 mph | Behind the official forecast by 83% |
| 5 | HAFS-B | 48 h | 33 | 65 mi | Behind the official forecast by 32% | 27 mph | Behind the official forecast by 78% |
| 5 | HAFS-B | 60 h | 31 | 87 mi | Behind the official forecast by 56% | 29 mph | Behind the official forecast by 59% |
| 5 | HAFS-B | 72 h | 29 | 118 mi | Behind the official forecast by 107% | 31 mph | Behind the official forecast by 67% |
| 5 | HAFS-B | 96 h | 25 | 165 mi | Behind the official forecast by 101% | 33 mph | Behind the official forecast by 62% |
| 5 | HAFS-B | 120 h | 21 | 226 mi | Behind the official forecast by 89% | 38 mph | Behind the official forecast by 42% |
| 6 | HAFS-A | 12 h | 39 | 31 mi | Beats the official forecast by 4% | 14 mph | Behind the official forecast by 209% |
| 6 | HAFS-A | 24 h | 37 | 39 mi | Behind the official forecast by 8% | 18 mph | Behind the official forecast by 84% |
| 6 | HAFS-A | 36 h | 35 | 60 mi | Behind the official forecast by 33% | 20 mph | Behind the official forecast by 60% |
| 6 | HAFS-A | 48 h | 33 | 70 mi | Behind the official forecast by 59% | 21 mph | Behind the official forecast by 35% |
| 6 | HAFS-A | 60 h | 31 | 91 mi | Behind the official forecast by 91% | 24 mph | Behind the official forecast by 28% |
| 6 | HAFS-A | 72 h | 29 | 115 mi | Behind the official forecast by 145% | 26 mph | Behind the official forecast by 29% |
| 6 | HAFS-A | 96 h | 25 | 159 mi | Behind the official forecast by 155% | 31 mph | Behind the official forecast by 43% |
| 6 | HAFS-A | 120 h | 21 | 197 mi | Behind the official forecast by 111% | 35 mph | Behind the official forecast by 36% |
| 7 | Canadian GEM | 12 h | 19 | 52 mi | Behind the official forecast by 93% | 27 mph | Behind the official forecast by 664% |
| 7 | Canadian GEM | 24 h | 18 | 72 mi | Behind the official forecast by 94% | 28 mph | Behind the official forecast by 226% |
| 7 | Canadian GEM | 36 h | 17 | 84 mi | Behind the official forecast by 92% | 32 mph | Behind the official forecast by 170% |
| 7 | Canadian GEM | 48 h | 16 | 104 mi | Behind the official forecast by 124% | 34 mph | Behind the official forecast by 130% |
| 7 | Canadian GEM | 60 h | 15 | 123 mi | Behind the official forecast by 124% | 34 mph | Behind the official forecast by 89% |
| 7 | Canadian GEM | 72 h | 14 | 139 mi | Behind the official forecast by 116% | 37 mph | Behind the official forecast by 77% |
| 7 | Canadian GEM | 96 h | 12 | 124 mi | Beats the official forecast by 13% | 45 mph | Behind the official forecast by 108% |
| 7 | Canadian GEM | 120 h | 10 | 152 mi | Ties the official forecast | 54 mph | Behind the official forecast by 90% |
| 7 | GEFS mean | 12 h | 39 | 34 mi | Behind the official forecast by 14% | 21 mph | Behind the official forecast by 381% |
| 7 | NAVGEM | 12 h | 37 | 47 mi | Behind the official forecast by 72% | 32 mph | Behind the official forecast by 609% |
| 7 | GEFS mean | 24 h | 37 | 49 mi | Behind the official forecast by 26% | 24 mph | Behind the official forecast by 155% |
| 7 | NAVGEM | 24 h | 35 | 65 mi | Behind the official forecast by 84% | 32 mph | Behind the official forecast by 225% |
| 7 | GEFS mean | 36 h | 35 | 65 mi | Behind the official forecast by 38% | 27 mph | Behind the official forecast by 105% |
| 7 | NAVGEM | 36 h | 33 | 101 mi | Behind the official forecast by 131% | 30 mph | Behind the official forecast by 113% |
| 7 | GEFS mean | 48 h | 33 | 87 mi | Behind the official forecast by 71% | 29 mph | Behind the official forecast by 94% |
| 7 | NAVGEM | 48 h | 31 | 137 mi | Behind the official forecast by 183% | 25 mph | Behind the official forecast by 51% |
| 7 | GEFS mean | 60 h | 31 | 110 mi | Behind the official forecast by 84% | 31 mph | Behind the official forecast by 67% |
| 7 | NAVGEM | 60 h | 29 | 159 mi | Behind the official forecast by 195% | 17 mph | Beats the official forecast by 17% |
| 7 | GEFS mean | 72 h | 29 | 132 mi | Behind the official forecast by 112% | 33 mph | Behind the official forecast by 67% |
| 7 | NAVGEM | 72 h | 27 | 185 mi | Behind the official forecast by 216% | 15 mph | Beats the official forecast by 37% |
| 7 | GEFS mean | 96 h | 25 | 170 mi | Behind the official forecast by 99% | 37 mph | Behind the official forecast by 77% |
| 7 | NAVGEM | 96 h | 23 | 235 mi | Behind the official forecast by 192% | 20 mph | Beats the official forecast by 21% |
| 7 | GEFS mean | 120 h | 21 | 194 mi | Behind the official forecast by 65% | 43 mph | Behind the official forecast by 59% |
| 7 | NAVGEM | 120 h | 19 | 297 mi | Behind the official forecast by 143% | 26 mph | Beats the official forecast by 3% |
| 10 | GFS | 12 h | 39 | 36 mi | Behind the official forecast by 14% | 15 mph | Behind the official forecast by 237% |
| 10 | GFS | 24 h | 37 | 49 mi | Behind the official forecast by 25% | 20 mph | Behind the official forecast by 109% |
| 10 | GFS | 36 h | 35 | 72 mi | Behind the official forecast by 50% | 23 mph | Behind the official forecast by 74% |
| 10 | GFS | 48 h | 33 | 108 mi | Behind the official forecast by 114% | 25 mph | Behind the official forecast by 64% |
| 10 | GFS | 60 h | 31 | 148 mi | Behind the official forecast by 162% | 27 mph | Behind the official forecast by 42% |
| 10 | GFS | 72 h | 29 | 183 mi | Behind the official forecast by 210% | 28 mph | Behind the official forecast by 43% |
| 10 | GFS | 96 h | 25 | 253 mi | Behind the official forecast by 196% | 31 mph | Behind the official forecast by 52% |
| 10 | GFS | 120 h | 21 | 300 mi | Behind the official forecast by 129% | 36 mph | Behind the official forecast by 38% |
| 10 | HWRF | 12 h | 27 | 38 mi | Behind the official forecast by 24% | 15 mph | Behind the official forecast by 334% |
| 10 | HWRF | 24 h | 27 | 50 mi | Behind the official forecast by 24% | 21 mph | Behind the official forecast by 98% |
| 10 | HWRF | 36 h | 27 | 71 mi | Behind the official forecast by 41% | 28 mph | Behind the official forecast by 96% |
| 10 | HWRF | 48 h | 27 | 96 mi | Behind the official forecast by 77% | 34 mph | Behind the official forecast by 92% |
| 10 | HWRF | 60 h | 27 | 111 mi | Behind the official forecast by 88% | 36 mph | Behind the official forecast by 73% |
| 10 | HWRF | 72 h | 27 | 142 mi | Behind the official forecast by 142% | 32 mph | Behind the official forecast by 63% |
| 10 | HWRF | 96 h | 23 | 167 mi | Behind the official forecast by 128% | 31 mph | Behind the official forecast by 59% |
| 10 | HWRF | 120 h | 19 | 173 mi | Behind the official forecast by 72% | 31 mph | Behind the official forecast by 22% |
| 12 | UKMET | 12 h | 18 | 41 mi | Behind the official forecast by 9% | 26 mph | Behind the official forecast by 670% |
| 12 | UKMET | 24 h | 17 | 51 mi | Behind the official forecast by 35% | 30 mph | Behind the official forecast by 237% |
| 12 | UKMET | 36 h | 16 | 55 mi | Behind the official forecast by 32% | 32 mph | Behind the official forecast by 151% |
| 12 | UKMET | 48 h | 15 | 85 mi | Behind the official forecast by 89% | 35 mph | Behind the official forecast by 119% |
| 12 | UKMET | 60 h | 14 | 109 mi | Behind the official forecast by 121% | 38 mph | Behind the official forecast by 89% |
| 12 | UKMET | 72 h | 13 | 142 mi | Behind the official forecast by 166% | 38 mph | Behind the official forecast by 93% |
| 12 | UKMET | 96 h | 11 | 198 mi | Behind the official forecast by 99% | 46 mph | Behind the official forecast by 99% |
| 12 | UKMET | 120 h | 9 | 295 mi | Behind the official forecast by 41% | 54 mph | Behind the official forecast by 53% |
ECMWF AIFS, ECMWF HRES, ECMWF ENS mean, AI GFS: No graded forecasts yet.
Track map
The solid line is the best track. Dashed lines are official forecast tracks from a few advisories, from the issue position out through the leads stored in that advisory. Thinner lines are model tracks from NHC’s public a-deck for those same advisories, and only when that file actually contains them. Google DeepMind and WeatherNext 3 are ensemble-mean tracks from Weather Lab, drawn on those same advisories. ECMWF AIFS, ECMWF HRES, and the ECMWF ENS mean are open-data cyclone tracks, drawn the same way. AI GFS is NOAA’s AIGFS tracker, drawn when that file is still posted.
- Actual track (45 positions)
- NHC official Sep 20, 06:00 UTC
- NHC official Sep 22, 18:00 UTC
- NHC official Sep 25, 06:00 UTC
- NHC official Sep 27, 18:00 UTC
- GFS
- GEFS mean
- HAFS-A
- HAFS-B
- HWRF
- HMON
- NAVGEM
- Google DeepMind
- WeatherNext 3
The chart measures how far the track was off in statute miles, the same miles as the home card. It includes 12, 24, 36, 48, 60, 72, 96, and 120 hours when a paired fix exists. The overall rank uses 24, 48, 72, and 120 hours. Positions are not interpolated.
How far the track was off
| LeadHow many hours ahead this forecast was made. This map shows 12, 24, 36, 48, 60, 72, 96, and 120 when a paired fix exists. Overall rank uses 24, 48, 72, and 120. The technical name is lead. | CasesHow many past forecasts went into this average. A forecast counts only when the best track has a fix at that exact time. The technical name is cases. | Track errorAverage how far the predicted storm path was from where it actually went, in statute miles. Lower is better. The technical name is track error. | Intensity errorAverage how far off the predicted wind speed was, in miles per hour, on this page. Lower is better. The file stores knots. The technical name is intensity error. | Forecast max windAverage top wind in the official forecast, in miles per hour, on the paired cases. The file stores knots. The technical name is forecast maximum wind. | Best-track windAverage top wind where the storm actually went, in miles per hour, at the same times. The file stores knots. The technical name is best-track wind. |
|---|---|---|---|---|---|
| 12 h | 29 | 26 mi | 6 mph | 82 mph | 81 mph |
| 24 h | 27 | 36 mi | 12 mph | 81 mph | 83 mph |
| 36 h | 25 | 42 mi | 17 mph | 80 mph | 86 mph |
| 48 h | 23 | 44 mi | 20 mph | 77 mph | 89 mph |
| 60 h | 21 | 46 mi | 25 mph | 73 mph | 92 mph |
| 72 h | 19 | 46 mi | 27 mph | 70 mph | 94 mph |
| 96 h | 15 | 64 mi | 29 mph | 70 mph | 99 mph |
| 120 h | 11 | 106 mi | 35 mph | 66 mph | 100 mph |
Miles are statute miles. Wind is miles per hour. The National Hurricane Center file stores wind in knots. One knot is about 1.15 miles per hour. Nautical miles are in the technical details.
Top wind
- Official forecast maximum wind
- Best-track maximum wind
Source: National Hurricane Center / NOAA. The operational b-deck and the public a-deck are U.S. government works in the public domain. Google DeepMind and WeatherNext 3 ensemble means are experimental forecasts from Google DeepMind Weather Lab. Forecasts older than 48 hours are used under CC BY 4.0. ECMWF AIFS, ECMWF HRES, and ECMWF ENS tracks are ECMWF open data, used under CC BY 4.0. AI GFS tracks are a NOAA AIGFS product. Forecast Scoreboard is not affiliated with NHC, NOAA, Google, or ECMWF.
Get the storm report card
Leave an email address and the storm report card can go there when it is ready.
We store this address for a future storm report card. We do not sell it. No email is sent yet.