Methodology

How the numbers are made

Climify's whole promise is data honesty, so here's exactly how every figure on the site is computed. No black boxes, no AI guesswork — just published models and transparent arithmetic.

The models

We compare seven independent weather models, each run by a different national or international agency, plus a blended reference. Because they use different physics and data, disagreement between them is a genuine signal of forecast uncertainty.

The consensus

For each forecast hour or day, the consensus is simply the average (mean) of every model that has data at that point. Missing values are dropped, not guessed. We also record the spread — the gap between the highest and lowest model — which drives the agreement score.

The agreement score

A 0–100 score describing how tightly the models agree. We take the mean spread across the forecast and map it to a percentage:

score = 100 − clamp( (mean spread ÷ 6°C) × 100 , 0 … 100 )
  • · High — score ≥ 75 (models largely agree)
  • · Moderate — score 45–74 (some disagreement)
  • · Low — score < 45 (models diverge; treat the forecast with caution)

The accuracy leaderboard

This is Climify's signature feature — and the most important thing to understand. Rather than trust a model's reputation, we measure how close each one has actually been for your specific city.

  • Window: the last 30 days.
  • Variable: daily maximum temperature.
  • Predictions: what each model forecast 1, 3 and 5 days ahead (from the Open-Meteo Previous-Runs archive).
  • Truth: what actually happened, from the ERA5 reanalysis archive.
  • Metric: mean absolute error (MAE) — the average size of the miss, in degrees.

The final rank uses a composite that weights nearer-term skill more heavily:

composite = 0.5 · MAE(1-day) + 0.3 · MAE(3-day) + 0.2 · MAE(5-day)

A model needs at least 10 valid comparison days to be ranked; otherwise it's shown as "insufficient data" and excluded. Lower error is better.

Ensemble uncertainty

The ensemble cone runs one model (GFS) roughly 31 times with slightly different starting conditions. For each day we take the daily maximum of every member, then plot the 10th–90th and 25th–75th percentile bands plus the median. A narrow cone means a confident forecast; a wide one means the outcome genuinely could vary.

Climate normals & records

Monthly normals, records and the warming trend come from the ERA5 archive, using the standard 1991–2020 reference period for normals and 1961–1990 as the baseline for the warming comparison. These are pre-computed and baked into each curated city page, so they load instantly and never change between your visits.

Data source & honesty

All data comes from Open-Meteo, which aggregates the official open-data feeds of the agencies above. When a value is missing we show a dash (—), never a guess. If a live request fails, we show an error state rather than stale or invented numbers. There is no AI generating any forecast text or figure on this site.