Back to Utils

Weather forecast

Temperature Forecast

Predict temperature for a date far in the future, based on a weighted blend of three historical windows — instead of the usual 10-14 day forecast horizon.

Goal

Regular weather forecasts become unreliable past a week or two. For longer-term planning (an event three months out, say) there's little better than guessing — even though historical climate data actually holds useful signal.

Temperature Forecast combines three non-overlapping periods — everything older than 40 years, 10 to 40 years back, and the last 10 years — into one weighted forecast per region and calendar day (default 20/35/45%, adjustable). The three individual components are also shown, so you can spot a warming trend yourself.

Status: data is still being filled in

336 regions across 30 countries, added gradually by a long-running background job. Querying a region that isn't computed yet returns a clear status instead of an error.

Try it yourself

Testing tip: addresses in the Netherlands and Germany currently have the best chance of already being available.

Temperature forecast for any date, anywhere in the world

Looking for a reliable long-range weather forecast for a holiday, event or wedding a few months out? Temperature Forecast blends historical climate normals into a grounded temperature prediction — not a guess, but a transparent calculation from decades of weather data. Available as a free, open source weather API for anyone who wants to use it in their own app, dashboard or Home Assistant setup.

Using the API

This page runs on a free, open API — no key, no signup. One GET request, JSON back.

Parameters

  • addressaddress (or use lat and lon for coordinates)
  • datetarget date (YYYY-MM-DD)
  • w_long / w_30 / w_10optional: your own weighting (must sum to 1)

Example

https://climatenormals.vercel.app/api/normal?address=Jena&date=2027-03-15&w_long=0.2&w_30=0.35&w_10=0.45

Example response

{
  "region": "DE-TH",
  "region_meta": { "country": "GM", "admin1": "Thüringen", ... },
  "distance_to_reference_station_km": 0.2,
  "date": "2027-03-15",
  "weights_used": { "p_long": 0.2, "p30": 0.35, "p10": 0.45 },
  "temp": { "p_long": 8.1, "p30": 8.9, "p10": 9.6, "blend": 8.9 }
}

Want to check data-build progress? /api/status