Support Center

Name is required.
Email address is required.
Invalid email address
Answer is required.
Exceeding max length of 5KB

API forecasts are extremely inaccurate for Peterborough, Canada

Bruce Head May 01, 2019 05:28PM BST

I use a Wordpress plugin that leverages the OWM API and I noticed the forecasts are significantly inaccurate for Peterborough, Canada (as well as other cities in Ontario, Canada). At first I thought it was an issue with the plugin, but after troubleshooting discovered the issue originates with the OWM API.

The current temperature appears to be fairly close, but the forecasts are completely off.

Here's an API call and results for the five-day forecast temps for Peterborough, Canada:[REDACTED]&units=metric

Thu 3°C
Fri 6°C
Sat 4°C
Sun 4°C
Mon 7°C

Each temp is off by a significant amount. Here's the five-day forecast temps for Peterborough, Canada as shown on OWM's own website:

Thu 11.6°C
Fri 10.6°C
Sat 13°C
Sun 16.7°C
Mon 10.2°C

And, for comparison, the Environment Canada five-day forecast for Peterborough, Canada

Thu 13°C
Fri 17°C
Sat 16°C
Sun 17°C
Mon 16°C

I'd be grateful if someone at OWM could look into this issue soon. Thank you.


Up 0 rated Down
Bruce Head May 03, 2019 12:48PM BST
Anyone there?
Up 0 rated Down
Bruce Head May 06, 2019 07:09PM BST
I've had to disable the five-day forecast data from OpenWeatherMap on my website for all Ontario, Canada cities due to the inaccurate information. Hopefully someone will respond to this ticket soon It's been five days since I posted it.
Up 0 rated Down
Pavel Zuykov May 08, 2019 01:34PM BST OpenWeatherMap Agent

Hello Bruce,

Sorry for long responce.

What field did you compare from API and from web site? Was it minimum/maximum one or something else?

Up 0 rated Down
Bruce Head May 10, 2019 10:30PM BST
All the API fields are inaccurate: temp, temp_min, and temp_max.

I can't include screenshots here showing the difference betwen the API data at to the output at, so I'll have to describe it again.

API forecast for 6101645 (Peterborough, Canada). Temps in Celsius

Sat May 11
temp: 2.37
temp_min: 1.38
temp_max: 2.37

Sun May 12
temp: 0.42
temp_min: 0.42
temp_max: 0.42

Mon May 13
temp: 4.45
temp_min: 4.45
temp_max: 4.45

Forecast from Temps in Celsius

Sat May 11
14.1 (high) 5.7 (low)

Sun May 12
15.2 (high) 6.9 (low)

Mon May 13
5.8 (high) 6.2 (low)

The data speak for themselves. The API is completely off.


Up 0 rated Down
Pavel Zuykov May 13, 2019 09:53PM BST OpenWeatherMap Agent

Please, do not confuse min/max parameters in our weather APIs. On site you see data from daily API. and your API request is for 3-hourly forecast.

In Hourly forecast API, Current weather API and 5 day / 3 hour forecast API – temp_min and temp_max are optional parameters mean min / max temperature in the city at the current moment to see deviation from current temp just for your reference. For large cities and megalopolises geographically expanded it might be applicable. In most cases both temp_min and temp_max parameters have the same volume as ‘temp’. Please, use temp_min and temp_max parameters in current weather API optionally.
In 16 Day forecast – min and max mean maximum and minimum temperature in the day.

Up 0 rated Down
Bruce Head May 13, 2019 10:15PM BST
This is quite frustrating, trying to explain inaccuracies in the data while you are trying to convince me I'm using the wrong parameters.

I understand the difference between temp and temp_min and temp_max. That isn't the issue. The issue is that the actual numbers in the API are inaccurate.

I'll provide another example. The current API forecast for Tue May 14 is 6.4 °C, while the OWM website has a forecasted temp of 12.5 °C. That's a difference of more than 7°C.

Here's the relevant data for Tue May 14 from the API at

"dt": 1557802800,
"main": {
"temp": 6.4,
"temp_min": 5.22,
"temp_max": 6.4,
"pressure": 1009.5,
"sea_level": 1009.5,
"grnd_level": 977.39,
"humidity": 98,
"temp_kf": 1.18

Up 0 rated Down
Pavel Zuykov May 13, 2019 10:45PM BST OpenWeatherMap Agent

Hello Bruce.

You show one 3-hour period for Tue May 14. dt 1557802800 means 05/14/2019 @ 3:00am (UTC) So these temperatures are valid only in period 00:00 – 03:00 UTC

But to get daily minimums and maximums, you should collect 8 timestamps of 3-hourly forecast (whole day), and choose minimums and maximums from them.
“temp” value
1557802800 = 6.4
1557813600 = 5.76
1557824400 = 5.95
1557835200 = 6.38
1557846000 = 9.41
1557856800 = 12.51
1557867600 = 12.14
1557878400 = 9.25

That’s it. minimum temperature for this day is 5.76 and maximum is 12.51 as you can see on our site.

Up 0 rated Down
Bruce Head May 13, 2019 11:24PM BST
Thanks for explaining this. I am trying to troubleshoot a third-party developer's plug-in and obviously I'll need to dig deeper into the code to figure out the cause of the incorrect forecasts generated by the plug-in I mistaken assumed the problem was with the API (that there was a single temp for the day, not in three hour increments). I appreciate your patience in pointing me in the right direction.


Post Your Public Answer

Your name (required)
Your email address (required)
Answer (required)
seconds ago
a minute ago
minutes ago
an hour ago
hours ago
a day ago
days ago
Invalid characters found