Per-lead scores (0 to 100) use the same formulas as the VeriSky app, with the
error caps tuned for this board, on hourly forecast/observation pairs over the last 30 days:
- Temperature: RMSE mapped to a 0 to 100 scale with a 6.5 °C cap.
score = (1 − RMSE/6.5)·100, floored at 0.
- Wind: normalized RMSE, where the cap scales with local wind climate
(
max(14 km/h, 60% of mean observed wind)), so windy coasts are judged
on relative error rather than raw km/h.
- Rain: F1 of rain/no-rain calls at a 0.1 mm/h threshold with a
0.1 mm deadband (drizzle right at the threshold is a coin flip, not skill).
Rain is only scored when the window had a genuine rain signal
(≥ 3 rain-event hours totalling ≥ 1 mm), since otherwise every model
would ace a dry month.
The headline Skill number is a soft horizon-adjusted score. First,
each model gets its 1/d-weighted score over the lead days it actually serves.
Then that score is multiplied by 0.75 + 0.25·C, where
C is the share of the full 1/d-weighted 7-day horizon it covers.
Tomorrow counts 7× as much as next week, which is roughly how much people lean
on each, while accurate longer-range forecasts still add points. A perfect
D-1-only model can score about 85 instead of being treated as a failed 7-day
model; a perfect D-1…D-7 model can reach 100. Per-metric columns use the same
weighting.
Rain W–L and form dots are next-day (D-1) only, since "did it rain the next
day" is the question most people care about. A win is a correct daily rain/no-rain
call at 0.1 mm; a form dot fills when that day's next-day skill ≥ 70.
The ▲▼ movement column compares today's ranking with the same table computed
a week ago (the window minus its last 7 days).
Public-model forecasts come from Open-Meteo's
previous runs archive
(what each model actually said 1 to 7 days earlier). The reference series is
best_match with
past_days=30: Open-Meteo picks the single highest-resolution
model for the location (see "Data Sources" in their docs), and for past
hours serves that model's most recent, observation-fed runs. It is one
consistent series per location, not an agglomeration of forecasts, but it
is an analysis rather than a station record, so at short leads it can
slightly flatter models related to the one that provides it. The most
recent (incomplete) day is
always excluded. Preset cities add aggregate-only stored scores for commercial
providers; their forecast values never reach this page. Data is cached locally
for ~6 hours.