Most weather apps don't tell you how often they're wrong. We do. Every three hours we snapshot what each of our five forecasts said. Then we check every one of them, hour by hour, against an independent record of what the weather actually did, which comes from none of the five forecasts being marked. The numbers below are the result.
Four numbers per source. Each is colour-coded against what "good" actually means for that measure. They're deliberately different bars, because some things are much harder to forecast than others:
"Our blend" is the forecast the app actually shows you. It weighs the five sources by their proven track record at each measure and each time horizon, and re-weighs itself automatically as the scores evolve, so if one source goes off the boil, the blend leans away from it without anyone touching anything. The tick panel at the top tells you at a glance whether the blend is currently beating the individual forecasts.
Rain is marked against real rain gauges. Each hour, each forecast is checked against the nearest Environment Agency tipping-bucket gauge within 10km (usually a few hundred metres away): did 0.2mm or more fall? A daily health check skips any gauge that looks blocked, stuck or out of line with its neighbours and the radar, and uses the next nearest. Where there is no gauge within 10km, the nearest Met Office station's report marks the rain instead. Gauges can't see drizzle under 0.2mm, so a drizzly hour can count as dry. Rain marking by gauge began on 30 September 2026, so rain covers fewer days than temperature.
Temperature, wind and sky are marked against Met Office observing stations, as a rain gauge measures only rain. We monitor a set of locations spread right across the UK, from the south coast to Edinburgh and Belfast, so the scores reflect performance nationally, not just one corner. The live league table marks things the same way.
These scores compare the forecast data each provider sends us through their API, which is what our blend is built from. Providers' own apps may add things their APIs don't send, so this is a comparison of the feeds rather than of finished apps.
We don't cherry-pick. We don't drop bad runs. We don't weight scores by what makes any one source look better. By default we show every day we've scored since tracking began; you can narrow the window with a ?days=N URL parameter.