Hurricane tracks

Tropical Disturbance Bertha Model Accuracy: DeepMind vs GFS vs WeatherNext 3

Final advisory

NHC issued its final advisory at 8:00 PM ET Thu, Jul 23.

Tropical Disturbance Bertha has 27 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 11 forecasts. At 48 hours, the official wind forecast averaged 44 mph and where the storm actually went averaged 49 mph. Stored model tracks on these forecast tracks: GFS, GEFS mean, Canadian GEM, UKMET, HAFS-A, HAFS-B, HWRF, HMON, NAVGEM, Google DeepMind, WeatherNext 3.

AL022026 · 2026 · Jul 17-24, 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 WeatherNext 3 1 1 1
2 Google DeepMind 2.5 2 3
3 NHC official 3.5 5 2
4 GFS 4 4 4
4 HWRF 4 3 5
6 UKMET 6.5 7 6
7 HAFS-A 8 9 7
8 GEFS mean 9 8 10
8 HMON 9 6 12
10 Canadian GEM 9.5 10 9
10 HAFS-B 9.5 11 8
12 NAVGEM 11.5 12 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 WeatherNext 3 12 h 16 13 mi Beats the official forecast by 48% 4 mph Behind the official forecast by 71%
1 WeatherNext 3 24 h 14 15 mi Beats the official forecast by 31% 5 mph Behind the official forecast by 15%
1 WeatherNext 3 36 h 12 17 mi Beats the official forecast by 30% 5 mph Behind the official forecast by 40%
1 WeatherNext 3 48 h 10 30 mi Beats the official forecast by 31% 3 mph Beats the official forecast by 30%
1 WeatherNext 3 60 h 8 37 mi Beats the official forecast by 39% 3 mph Beats the official forecast by 24%
1 WeatherNext 3 72 h 6 40 mi Beats the official forecast by 48% 3 mph Beats the official forecast by 47%
1 WeatherNext 3 96 h 2 63 mi Beats the official forecast by 32% 5 mph Beats the official forecast by 64%
2 Google DeepMind 12 h 16 14 mi Beats the official forecast by 44% 4 mph Behind the official forecast by 63%
2 Google DeepMind 24 h 14 15 mi Beats the official forecast by 29% 6 mph Behind the official forecast by 27%
2 Google DeepMind 36 h 12 20 mi Beats the official forecast by 20% 5 mph Behind the official forecast by 60%
2 Google DeepMind 48 h 10 31 mi Beats the official forecast by 29% 6 mph Behind the official forecast by 20%
2 Google DeepMind 60 h 6 42 mi Beats the official forecast by 4% 5 mph Behind the official forecast by 60%
2 Google DeepMind 72 h 4 49 mi Beats the official forecast by 9% 5 mph Beats the official forecast by 36%
2 Google DeepMind 96 h 2 70 mi Beats the official forecast by 26% 13 mph Beats the official forecast by 8%
3 NHC official 12 h 17 25 mi — 3 mph —
3 NHC official 24 h 15 25 mi — 5 mph —
3 NHC official 36 h 13 26 mi — 4 mph —
3 NHC official 48 h 11 44 mi — 4 mph —
3 NHC official 60 h 9 68 mi — 3 mph —
3 NHC official 72 h 7 93 mi — 5 mph —
3 NHC official 96 h 3 104 mi — 17 mph —
4 GFS 12 h 21 31 mi Behind the official forecast by 18% 6 mph Behind the official forecast by 95%
4 GFS 24 h 19 38 mi Behind the official forecast by 38% 7 mph Behind the official forecast by 52%
4 GFS 36 h 17 48 mi Behind the official forecast by 80% 8 mph Behind the official forecast by 117%
4 GFS 48 h 15 56 mi Behind the official forecast by 21% 10 mph Behind the official forecast by 83%
4 GFS 60 h 13 60 mi Beats the official forecast by 29% 16 mph Behind the official forecast by 216%
4 GFS 72 h 11 76 mi Beats the official forecast by 24% 19 mph Behind the official forecast by 117%
4 GFS 96 h 7 212 mi Behind the official forecast by 72% 25 mph Behind the official forecast by 16%
4 HWRF 12 h 20 24 mi Beats the official forecast by 20% 7 mph Behind the official forecast by 130%
4 HWRF 24 h 18 32 mi Behind the official forecast by 14% 5 mph Behind the official forecast by 18%
4 HWRF 36 h 16 35 mi Behind the official forecast by 45% 7 mph Behind the official forecast by 75%
4 HWRF 48 h 14 40 mi Behind the official forecast by 5% 9 mph Behind the official forecast by 140%
4 HWRF 60 h 12 47 mi Beats the official forecast by 27% 11 mph Behind the official forecast by 292%
4 HWRF 72 h 10 64 mi Beats the official forecast by 17% 11 mph Behind the official forecast by 113%
4 HWRF 96 h 6 92 mi Beats the official forecast by 7% 14 mph Beats the official forecast by 16%
4 HWRF 120 h 2 106 mi — 5 mph —
6 UKMET 12 h 11 33 mi Behind the official forecast by 56% 8 mph Behind the official forecast by 245%
6 UKMET 24 h 10 47 mi Behind the official forecast by 106% 7 mph Behind the official forecast by 107%
6 UKMET 36 h 9 50 mi Behind the official forecast by 83% 8 mph Behind the official forecast by 93%
6 UKMET 48 h 8 57 mi Behind the official forecast by 37% 9 mph Behind the official forecast by 136%
6 UKMET 60 h 7 72 mi Behind the official forecast by 33% 13 mph Behind the official forecast by 520%
6 UKMET 72 h 6 99 mi Behind the official forecast by 39% 12 mph Behind the official forecast by 140%
6 UKMET 96 h 4 146 mi Behind the official forecast by 108% 4 mph Beats the official forecast by 73%
6 UKMET 120 h 2 208 mi — 3 mph —
7 HAFS-A 12 h 20 53 mi Behind the official forecast by 125% 14 mph Behind the official forecast by 403%
7 HAFS-A 24 h 18 59 mi Behind the official forecast by 139% 11 mph Behind the official forecast by 147%
7 HAFS-A 36 h 16 60 mi Behind the official forecast by 145% 10 mph Behind the official forecast by 185%
7 HAFS-A 48 h 14 74 mi Behind the official forecast by 62% 10 mph Behind the official forecast by 115%
7 HAFS-A 60 h 11 68 mi Beats the official forecast by 2% 11 mph Behind the official forecast by 232%
7 HAFS-A 72 h 9 122 mi Behind the official forecast by 46% 10 mph Behind the official forecast by 113%
7 HAFS-A 96 h 5 256 mi Behind the official forecast by 220% 13 mph Beats the official forecast by 47%
7 HAFS-A 120 h 1 197 mi — 7 mph —
8 HMON 12 h 20 35 mi Behind the official forecast by 47% 8 mph Behind the official forecast by 217%
8 HMON 24 h 18 46 mi Behind the official forecast by 93% 13 mph Behind the official forecast by 217%
8 HMON 36 h 16 48 mi Behind the official forecast by 96% 15 mph Behind the official forecast by 397%
8 HMON 48 h 14 58 mi Behind the official forecast by 35% 24 mph Behind the official forecast by 515%
8 HMON 60 h 12 64 mi Behind the official forecast by 3% 24 mph Behind the official forecast by 736%
8 HMON 72 h 10 61 mi Beats the official forecast by 25% 15 mph Behind the official forecast by 127%
8 HMON 96 h 6 92 mi Beats the official forecast by 9% 21 mph Behind the official forecast by 49%
8 HMON 120 h 2 286 mi — 40 mph —
8 GEFS mean 12 h 21 26 mi Behind the official forecast by 1% 8 mph Behind the official forecast by 220%
8 GEFS mean 24 h 19 33 mi Behind the official forecast by 21% 10 mph Behind the official forecast by 138%
8 GEFS mean 36 h 17 39 mi Behind the official forecast by 44% 13 mph Behind the official forecast by 290%
8 GEFS mean 48 h 15 59 mi Behind the official forecast by 38% 16 mph Behind the official forecast by 283%
8 GEFS mean 60 h 13 89 mi Behind the official forecast by 40% 20 mph Behind the official forecast by 416%
8 GEFS mean 72 h 11 129 mi Behind the official forecast by 76% 23 mph Behind the official forecast by 260%
8 GEFS mean 96 h 7 206 mi Behind the official forecast by 180% 23 mph Behind the official forecast by 2%
10 Canadian GEM 12 h 11 23 mi Behind the official forecast by 10% 9 mph Behind the official forecast by 245%
10 Canadian GEM 24 h 10 37 mi Behind the official forecast by 61% 9 mph Behind the official forecast by 147%
10 Canadian GEM 36 h 9 56 mi Behind the official forecast by 121% 10 mph Behind the official forecast by 140%
10 Canadian GEM 48 h 8 68 mi Behind the official forecast by 74% 14 mph Behind the official forecast by 248%
10 Canadian GEM 60 h 7 92 mi Behind the official forecast by 65% 14 mph Behind the official forecast by 560%
10 Canadian GEM 72 h 6 124 mi Behind the official forecast by 69% 14 mph Behind the official forecast by 227%
10 Canadian GEM 96 h 4 199 mi Behind the official forecast by 198% 11 mph Beats the official forecast by 33%
10 Canadian GEM 120 h 2 235 mi — 11 mph —
10 HAFS-B 12 h 20 51 mi Behind the official forecast by 116% 11 mph Behind the official forecast by 228%
10 HAFS-B 24 h 18 62 mi Behind the official forecast by 146% 10 mph Behind the official forecast by 128%
10 HAFS-B 36 h 16 73 mi Behind the official forecast by 192% 11 mph Behind the official forecast by 232%
10 HAFS-B 48 h 14 73 mi Behind the official forecast by 60% 8 mph Behind the official forecast by 120%
10 HAFS-B 60 h 12 110 mi Behind the official forecast by 52% 13 mph Behind the official forecast by 224%
10 HAFS-B 72 h 10 180 mi Behind the official forecast by 90% 15 mph Behind the official forecast by 133%
10 HAFS-B 96 h 6 448 mi Behind the official forecast by 362% 13 mph Beats the official forecast by 47%
10 HAFS-B 120 h 2 984 mi — 8 mph —
12 NAVGEM 12 h 15 33 mi Behind the official forecast by 42% 11 mph Behind the official forecast by 326%
12 NAVGEM 24 h 13 49 mi Behind the official forecast by 97% 14 mph Behind the official forecast by 220%
12 NAVGEM 36 h 11 74 mi Behind the official forecast by 158% 15 mph Behind the official forecast by 390%
12 NAVGEM 48 h 9 130 mi Behind the official forecast by 172% 16 mph Behind the official forecast by 545%
12 NAVGEM 60 h 7 212 mi Behind the official forecast by 155% 17 mph Behind the official forecast by 410%
12 NAVGEM 72 h 5 330 mi Behind the official forecast by 176% 17 mph Behind the official forecast by 407%
12 NAVGEM 96 h 1 456 mi Behind the official forecast by 269% 8 mph Beats the official forecast by 65%

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.

23°N 27°N 31°N 35°N 127°W 110°W 93°W 75°W
Map of Tropical Disturbance Bertha. The best track, where the storm actually went, has 27 positions. 4 official forecast tracks are drawn. Model lines: GFS, GEFS mean, Canadian GEM, UKMET, HAFS-A, HAFS-B, HWRF, HMON, NAVGEM, Google DeepMind, WeatherNext 3. Latitude and longitude, scaled by the cosine of the mid-latitude so a degree of longitude is not stretched.
  • Actual track (27 positions)
  • NHC official Jul 19, 12:00 UTC
  • NHC official Jul 20, 12:00 UTC
  • NHC official Jul 21, 12:00 UTC
  • NHC official Jul 22, 12:00 UTC
  • GFS
  • GEFS mean
  • Canadian GEM
  • UKMET
  • 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

25 mi 12 h 25 mi 24 h 26 mi 36 h 44 mi 48 h 68 mi 60 h 93 mi 72 h 104 mi 96 h
Average official track miss in miles by how far ahead. 12 hours 25 miles over 17 forecasts. 24 hours 25 miles over 15 forecasts. 36 hours 26 miles over 13 forecasts. 48 hours 44 miles over 11 forecasts. 60 hours 68 miles over 9 forecasts. 72 hours 93 miles over 7 forecasts. 96 hours 104 miles over 3 forecasts.
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 17 25 mi 3 mph 45 mph 45 mph
24 h 15 25 mi 5 mph 45 mph 46 mph
36 h 13 26 mi 4 mph 46 mph 48 mph
48 h 11 44 mi 4 mph 44 mph 49 mph
60 h 9 68 mi 3 mph 45 mph 47 mph
72 h 7 93 mi 5 mph 46 mph 44 mph
96 h 3 104 mi 17 mph 58 mph 40 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

12 h 24 h 36 h 48 h 60 h 72 h 96 h
Top wind, official forecast versus where the storm went. At 12 hours the forecast averaged 45 mph and where the storm actually went averaged 45 mph. At 24 hours the forecast averaged 45 mph and where the storm actually went averaged 46 mph. At 36 hours the forecast averaged 46 mph and where the storm actually went averaged 48 mph. At 48 hours the forecast averaged 44 mph and where the storm actually went averaged 49 mph. At 60 hours the forecast averaged 45 mph and where the storm actually went averaged 47 mph. At 72 hours the forecast averaged 46 mph and where the storm actually went averaged 44 mph. At 96 hours the forecast averaged 58 mph and where the storm actually went averaged 40 mph.
  • 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.