What this is
Most weather services use a single model, or an undisclosed blend, and never tell you how accurate it actually is. We do the opposite: every day at 12:00 UTC we score 11 independent global weather models — plus our accuracy-weighted ensemble and AI predictor — against the weather that actually happened at 100 locations across the UK and Ireland.
This API publishes that verification data openly so researchers, journalists, and other forecasters can use and cite it. There is no sign-up and no key. Please just credit hillandglen.com and link back (see the licence below).
Base URL
https://weather-worker.hillandglen.workers.dev/v1
All responses are JSON, served with open CORS (Access-Control-Allow-Origin: *) and edge-cached for one hour. The underlying scores update once per day, so please don't poll faster than hourly.
Endpoints
GET/v1
API index — lists every endpoint, the licence, and usage guidance.
GET/v1/accuracy
The headline leaderboard: one ranked row per model over the 30-day rolling window.
GET/v1/accuracy/history
Historical daily scores. Use ?date=YYYY-MM-DD for one day, ?from=YYYY-MM-DD&to=YYYY-MM-DD for a range (capped at 90 days), and ?detail=full to include the raw forecasts and observations for ML training. With no parameters it returns the index of available dates.
GET/v1/models
Catalogue of the scored models — id, provider, country, grid resolution, and type (nwp, ml, or ensemble).
GET/v1/locations
The 100 UK & Ireland points each forecast is scored against, with coordinates.
Example
curl https://weather-worker.hillandglen.workers.dev/v1/accuracy
{
"window": "30-day rolling",
"metric": "composite = 100 - weighted MAE (temperature, wind, rain occurrence + amount, cloud). Higher is better.",
"higherIsBetter": true,
"updatedAt": "2026-05-30T12:00:00.000Z",
"leaderboard": [
{
"id": "ecmwf_ifs025",
"name": "ECMWF",
"type": "nwp",
"composite": 94.1,
"dataPoints": 30,
"tempMAE_C": 1.12,
"windMAE_kmh": 4.83,
"rainHitRate": 0.871,
"rainMAE_mm": 0.94,
"cloudMAE_pct": 18.4,
"rank": 1
}
/* ... one row per model ... */
],
"license": "CC BY 4.0",
"attribution": "Data: hillandglen.com"
}
Figures above are illustrative of the shape — call the endpoint for current values.
Field reference
| Field | Meaning |
|---|---|
composite | Overall skill score, 0–100. Higher is better. Weighted blend of the error metrics below. |
tempMAE_C | Mean absolute temperature error, °C. |
windMAE_kmh | Mean absolute wind-speed error, km/h. |
rainHitRate | Fraction of rain/no-rain calls that were correct (0–1). |
rainMAE_mm | Mean absolute rainfall-amount error, mm. |
cloudMAE_pct | Mean absolute cloud-cover error, percentage points. |
dataPoints | Number of scored days in the rolling window (max 30). |
Licence — CC BY 4.0
This data is published under the Creative Commons Attribution 4.0 licence. You are free to use it anywhere — commercially or not — provided you credit the source:
- Attribution text: Data: hillandglen.com
- With a link to https://hillandglen.com/ where practical.