A couple of weeks ago on Twitter, I complained thus:

Weather app developers: if your app says that today’s high is 83° and that the current temp is 88°, your code has a logic problem.

Responses varied from strong agreement to reasons why developers might be doing it “wrong.” Two interesting theories appeared as to why an app might show a high temperature for the day that’s significantly below the actual current temperature:

  • Perhaps the app licenses data from a third party, and a condition of the license is that the data remain unaltered.

  • Maybe the developer wants users to see the predicted temperature, by way of transparency—even if reality has shown it to have been far off.

In my particular case, I know the first theory does not apply, because the app in question, Weather Underground for iOS, is owned and distributed by The Weather Channel, which means it has plenty of its own data—and that data is updated every 15 minutes. As for the second theory, the most evident flaw is that the numbers aren’t labeled as (yesterday’s) predictions; for all the user knows, they were intended as real-time estimates.

Of course, I know nothing about what goes on behind the scenes with people designing weather apps, licensing weather data, or discussing what their users may expect or prefer. All I know is that this…

Today: 72°/83°
Currently: 88°

…it is self-evidently wrong. If it is now 88°F, then ipso facto, today’s high temperature is at least 88°F. This is similarly wrong:

Chance of precipitation: 30%
Current condition: Rain

No. If it’s currently raining, or if it rained this morning, then clearly the chance of rain today is 100%. I took a logic class in college. You can trust me on this.

The thing about weather predictions is that they’re just that: predictions. As conditions change, the predictions have to be updated. In most cases, the more recent a prediction is, the more accurate it is. So, if I want to find out what the weather will be like tomorrow, I’m not going to look at a prediction from last week. I don’t care what someone thought a week ago; that’s now irrelevant. I’m going to look at today’s prediction, obviously!

And yet, for some reason, people who develop weather apps (and websites) seem to imagine that this logic no longer applies after midnight (or some other arbitrary hour, which isn’t specified). What I observe is that most weather apps and websites “lock in” the predicted temperature range and precipitation for a given day at the beginning of the day, even though they were made yesterday and we have better data now. So that’s what those numbers are—yesterday’s guesses.

The question is, as a person seeking out a weather forecast online or in an app, what information do I want to know about today’s weather? Well, I certainly don’t care what anyone thought yesterday about today’s weather. I care what the professionals think now. For example:

  • How much hotter will it get today? Has the temperature peaked?

  • What are the chances it will rain this afternoon, while I’m outside (as opposed to an overall percentage for the day)?

  • Is there any action I need to take now to deal with weather changes that are likely to occur in the next few hours?

Curiously, even when weather apps and websites supply this information—as, indeed, Weather Underground does—they still hang onto yesterday’s predicted high, low, and precipitation, as though that’s in some way useful now.

Not long after I started complaining about weather apps, Adam Engst reviewed Dark Sky 5 for iOS for TidBITS. Although Dark Sky doesn’t have nearly the breadth of features in Weather Underground, it does address my main complaint directly: it always tells you what the prediction is right now, based on the very latest data. If the data changes, the app’s predictions change, exactly as I’d expect them to. So, yay for Dark Sky, which is my new favorite weather app.

But far too many other apps and websites persist with clearly invalid predictions from yesterday without bothering to consider whether that information is useful or what people really want to know. What’s sad is that it’s not a technology problem; it’s merely a failure of logic and design, both of which could be remedied easily. But when the logic and design are wrong, it sure looks like technology is failing us.