How we predict the daily high temperature
A daily high looks like a simple number. Forecasting it precisely enough to publish a call, hours ahead, and then be graded against the official observation, is a narrower problem than a weather app suggests, and the reason we publish roughly one call a day rather than dozens.
What a call actually is
Every call names one city, one date, one temperature, and a direction: whether the day's high finishes above that number, or at or below it. Nothing else. There is no range, no hedge, and no wording that can be reinterpreted after the fact.
It is published before the day resolves. Once it is on the record it cannot be edited - the record is append-only, so a correction can only ever be a new entry, never a quiet change to an old one.
Where the forecast comes from
The underlying model blends several independent numerical weather models rather than trusting one. That matters because forecast models disagree, and the disagreement is informative: when they cluster tightly, confidence is high; when they scatter, the honest answer is that the day is uncertain and no call is worth publishing.
It is also anchored to the specific station a day's high is officially recorded at. A city's "temperature" is not one number - it varies across a metro area, so a forecast that is right about the city and wrong about the station is still a miss. Modelling the exact number that gets recorded, rather than the general weather, is most of the work.
Why there are so few calls
A call is only published when the model's expected high sits far enough from the threshold to be meaningful. If the model expects 88°F and the question is whether the day clears 88°F, that is a coin flip dressed up as a prediction, and publishing it would pad the record without telling anyone anything.
That filter is why the volume is roughly one a day and sometimes fewer. A thin record of calls that were worth making is more useful than a thick one padded with near-certainties and coin flips.
How grading works
Each call is settled against the official recorded high for that station, not our own reading, and not a rounded figure from a consumer weather app. We do not grade ourselves by hand, and there is no category for "close enough".
Results are appended whether they went our way or not. A miss is published in the same place, at the same size, on the same day it resolves.
Why the record is hash-chained
Every entry stores the SHA-256 hash of the entry before it. Change any past call and every hash after it stops matching, which makes silent edits detectable rather than merely forbidden.
The weather record runs on its own chain, separate from the sports ledger. That is deliberate: a shared chain would mean neither could be verified without the other, and the weather record could not stand on its own.
What a hit rate does and does not prove
A hit rate over a small number of calls is a weak signal. At twenty calls, a genuinely skilled forecaster and a lucky one look similar. The number becomes meaningful slowly, which is exactly why the whole record is published rather than a highlight reel.
It also matters which calls were made. A record built only on easy days would look excellent and mean nothing. Because every published call is kept and the dates are on the record, the difficulty of the sample is inspectable rather than something you have to take on trust.
To date: 8 correct and 13 missed from 21 graded calls - a 38.1% hit rate.
What it is not
These are forecasts, published for the record. They are not advice, and they are not a substitute for an official weather service warning. If severe weather is forecast where you are, follow your local meteorological authority.
The live record, with filters by city, result and date, is on the weather predictions page. The sports record sits on the ledger.