Reference. Airport boards are scored against the station’s METAR reports
for temperature and wind; Tarifa uses its local AEMET station. Elsewhere the
reference is Open-Meteo’s best_match analysis: for each past hour, the
latest run of the highest-resolution model for the location, after assimilation of
station, radar and satellite observations. Rain is verified against archived radar
(OPERA in Europe, MRMS in the contiguous US) where covered, and against the analysis
elsewhere.
Boards without a station (searched places and a few presets) are checked
against that analysis instead of measured weather, so treat their ranking as a
rough guide. The analysis can miss local effects such as sea breezes, showers and
hills, and it can favour the model it is built from and its relatives, especially
for the next day or two.
Forecasts at lead days 1 to 7 are paired hour by hour with the reference over
the last 30 days and scored 0 to 100 per metric and lead day, with the VeriSky
app’s code.
- Temperature and wind: 0.7 × Accuracy + 0.3 × Extremes
(open a row for the split). Accuracy is the hit rate within ±2 °C, or within
max(5 km/h, 20% of the observed speed) for wind. Extremes is the symmetric
extremal dependence index
(SEDI), rescaled as
(SEDI + 1)/2, on a 2×2 table of event hours, so misses and false alarms both
count. Events follow the location’s trailing 90-day climatology: wind at or
above its approximate 90th percentile (minimum 20 km/h); temperature
departing from the mean for that hour of day by more than the approximate 90th
percentile of such departures (minimum 3 °C), warm and cold pooled. With
fewer than 8 event or 8 non-event hours, Accuracy takes the full weight.
- Rain: Heidke skill score of the hourly wet/dry table,
HSS = 2·ETS/(1 + ETS), floored at 0
(Hogan et al. 2010).
An hour is wet at ≥ 0.2 mm; observed hours between 0 and 0.2 mm are not
judged, and a forecast in that range is a dry call. Forecast and observed wet
hours are paired one to one within ±2 h
(neighbourhood verification), so a
timing error of up to 2 h still scores a hit while spreading one shower over
extra hours adds false alarms. Rain is scored only when the window holds ≥ 3 wet
hours totalling ≥ 1 mm, and only for a model with ≥ 8 observed wet hours in
its own sample.
- Sharpness (diagnostic, not scored): the standard deviation of the
forecast series over that of the observed series. 1.0× reproduces the observed
variability; lower values indicate smoothing.
Skill: per lead day, the unweighted mean of the metrics that have a score, so
a model without a rain score is ranked on temperature and wind alone. Lead days are
averaged with weight 1/d (day 1 counts 7× day 7), then multiplied by 0.75 + 0.25·c,
where c is the share of that weight within the model’s horizon: a perfect
next-day-only model reaches about 85, a perfect 7-day model 100.
Skill by lead time shows the score per lead day; read a column for the
ranking at that lead. Its last column weights the lead days the same way as Skill,
so it matches the table. Brightness bands are fixed, and lower for rain, whose
scores run lower. Blank cells are lead days a model does not forecast. The curves
view colours up to four models and greys the rest.
Rain W–L and form dots use lead day 1 only: a win is a correct daily
rain/no-rain call, a bright dot a day with day-1 skill ≥ 70. ▲▼ compares today’s
rank with the rank a week earlier.
Grid: the spacing of the grid that makes a model’s forecast for tomorrow
at this place. Regional models hand over to coarser grids after a day or two (ICON
near Amsterdam: 2.2 km, then 7 km, then 11 km), and IFS, AIFS and
AIGFS are scored on their public 0.25° grids, about 28 km. Commercial providers
do not publish a grid.
Airport boards (✈): places with an airport are shown only there. Gaps in the
METAR record, and scores from before a station was connected, fall back to the
analysis. The Compare charts and the charts in an open row use the analysis
throughout, so they can differ slightly from the standings, and some airports have
a shorter history.
Searched locations are scored in your browser from public data, with four
simplifications: forecasts from the
previous-runs archive,
the analysis as reference for every variable, event thresholds from the 30 scored
days, and rain as the F1 score of an exact-hour table (wet at ≥ 0.2 mm, hours with
the forecast or the observation between 0 and 0.2 mm excluded). Their scores are
not directly comparable with the preset boards.
Why not RMSE? RMSE is minimised by the conditional mean, so it rewards
forecasts smoothed toward an average and penalises a sharp forecast with a small
timing error twice
(Ben Bouallègue et al. 2024).
Scoring only hours with an observed event would instead reward over-forecasting
(Lerch et al. 2017), hence the full
contingency tables. This board ranked by RMSE until August 2026; the expanded row
shows each model’s former rank, and the long-term trends
page still uses it.
Data: preset boards score one archived run per model and day from Open-Meteo’s
single-runs archive, its initialisation cycling through 00, 06, 12 and 18 UTC so that
each lead day samples the full diurnal cycle. Public models in Compare come from the
previous-runs archive; commercial models use the stored run nearest 06:00 local on
the issue day. An analysis reference can favour related models at short leads.
The latest, incomplete day is excluded. Public data is cached for about 6 hours,
commercial summaries for 15 minutes.