How the stack works
MeteoStack downloads the latest run of up to 10 global and regional weather models for a location, aligns them hour by hour in local time, and computes a consensus: the median of all models, the spread between the lowest and highest model, the share of models that predict rain, and a 0–100 confidence score. Nothing is hand-edited. This page documents exactly how each number is produced, so that people and AI assistants can cite it accurately.
1. Data sources
Model output is retrieved through the Open-Meteo API (CC BY 4.0), which redistributes open data from national weather services. For each model we request hourly 2 m temperature, precipitation, cloud cover, 10 m wind speed, gusts and direction, relative humidity and weather code, up to 16 days ahead. "Seamless" model ids blend a model's high-resolution regional nest with its global run (for example ICON-D2 → ICON-EU → ICON Global). Models that return no data for a location are left out automatically. MET Norway is used only over the Nordic countries and only for its own first 60 hours: elsewhere its feed falls back to ECMWF IFS, which would give ECMWF two votes.
| Model | Provider | Range |
|---|---|---|
| ECMWF IFS | European Centre for Medium-Range Weather Forecasts | 15 d |
| ECMWF AIFS | European Centre for Medium-Range Weather Forecasts | 15 d |
| NOAA GFS | NOAA / National Centers for Environmental Prediction | 16 d |
| DWD ICON | Deutscher Wetterdienst (German Weather Service) | 7 d |
| Canadian GEM | Environment and Climate Change Canada | 10 d |
| JMA GSM | Japan Meteorological Agency | 11 d |
| Météo-France ARPEGE / AROME | Météo-France | 4 d |
| UK Met Office | Met Office (United Kingdom) | 7 d |
| CMA GRAPES | China Meteorological Administration | 5 d |
| BOM ACCESS-G | Australian Bureau of Meteorology | 10 d |
| KMA KIM | Korea Meteorological Administration | 12 d |
| MET Norway Nordic | Norwegian Meteorological Institute | 3 d |
Forecasts are cached for 50 minutes. Models publish new runs every 1–12 hours, so the page always reflects the latest available run within that window.
2. Hourly consensus
- Consensus value = median of all models that have data for that hour. The median ignores a single wild outlier, unlike the mean.
- Spread = lowest and highest model value. A narrow band means the models agree.
- Rain odds = percentage of models forecasting at least 0.1 mm in that hour. It is a multi-model probability, not the probability from a single ensemble.
3. Daily values
For each model and local calendar day we compute max/min temperature, total precipitation, maximum wind and gust, and mean daytime (07–19 h) cloud cover, but only if the model covers at least 18 hours of that day. Daily consensus values are the median across models; daily rain odds are the share of models with at least 1 mm that day.
4. Confidence score (0–100)
Confidence blends temperature agreement and rain agreement:
temp_agreement = max(0, 1 − stdev(model max temps) / 3.5 °C)
rain_agreement = |share of wet models − 0.5| × 2
confidence = 100 × (0.55 × temp_agreement + 0.45 × rain_agreement)
× 0.7 if fewer than 3 models cover the day
So a day where every model says "dry, 21–22 °C" scores near 100, while a day where half the models bring rain scores low, regardless of what the consensus says. ≥70 is shown as high, 45–69 medium, below 45 low.
5. Condition icons
Icons come from the consensus, not from a single model: rain if the median day total is ≥0.5 mm and at least 40% of models are wet (heavy at ≥10 mm, snow if the consensus max temperature is ≤1.5 °C, thunder if ≥40% of models output a thunderstorm weather code); "showers possible" if 25–39% of models are wet; otherwise sun/partly/cloudy by median daytime cloud cover (<25%, <65%, ≥65%).
6. Model maps
The model maps are built from raw model output, not from Open-Meteo. Every hour a job checks for new runs and downloads them straight from the producers: ECMWF IFS and AIFS open data (0.25°, CC BY 4.0), NOAA GFS (0.25°, public domain, via the NOAA Open Data Dissemination programme), DWD ICON global (≈13 km icosahedral grid, CC BY 4.0) and ECCC GEM global (0.15°, Open Government Licence – Canada). Each field is resampled to one common 0.25° grid (bilinear for regular grids; mean of the 4 nearest cells for ICON) and published as compact data tiles. A run appears on the map only once all its frames are processed.
- Times: every 3 hours up to +144 h, then every 6 hours to +240 h (ICON to +180 h; AIFS is 6-hourly). Models are aligned by valid time; a panel marked “≈” shows the nearest available step, at most 3 hours away.
- Rain: average rate in mm/h over the interval ending at the shown time, from the difference between two accumulated totals.
- Thunderstorm symbol: shown where CAPE ≥ 400 J/kg and rain × min(CAPE/1000, 2) ≥ 0.8 (ECMWF uses most-unstable CAPE, GFS and GEM surface-based CAPE). For ICON it also appears where the model's own weather code is 95–99, or where mixed-layer CAPE ≥ 800 J/kg with ≥ 1 mm/h. AIFS has no CAPE, so its symbol marks convective rain ≥ 1.5 mm/h making up ≥ 70% of the total. It marks where storms are possible; it is not a lightning forecast.
- Agreement map: on the rain layer, the share of the selected models with ≥ 0.3 mm/h at each point. On the other layers, the spread (highest minus lowest model); city labels show half the spread as “±”.
- Precision: values are stored at 0.5 °C, about 0.5 m/s, 0.4 hPa and 0.4% cloud cover. Rain uses a square-root scale, so light rain keeps a fine resolution.
7. Known limits
- Model grids are 1–55 km. Valleys, coasts and cities can differ from the grid-cell value.
- A median of deterministic models is not a calibrated probability. Treat rain odds as "how many forecasters agree", not as a statistically calibrated chance.
- Models share observations, so agreement can still be wrong, especially for AIFS vs IFS, which start from the same analysis.
8. How to cite
“Forecast: MeteoStack multi-model consensus (meteostack.com), model data via Open-Meteo.” Machine-readable versions: llms.txt.