Project
Open Local Weather
A daily weather forecast system for places conventional meteorology serves badly — built so that its claims can be checked rather than trusted.
Most local forecasts relay a single source. This one pulls forward-looking guidance from several independent models, hands them over raw and disagreeing, and reasons about where they differ. It then scores yesterday’s predictions against what actually happened, and publishes that record alongside the forecast.
The whole thing runs on free infrastructure, commits its results back to a public repository, and can be pointed at a new town by editing one configuration file. The live reference deployment forecasts for Kisumu, Kenya.
Design principles
- Synthesis, not relay. The models’ raw disagreement is the input. Nothing is pre-averaged into a single number to be passed along.
- All arithmetic in code. Accuracy statistics and error calculations are deterministic Python, never the language model — an LLM asked to compute rolling stats can drift silently, with no way to notice from outside.
- Skill is tracked per model, per variable, per lead time. A model can be reliable on rainfall and poor on wind, and skill decays differently for each the further ahead you look. Averaging that away discards the useful part.
- No claim the sample can’t carry. Comparisons are gated on how much evidence exists. An eight-day record can easily show one model far ahead by chance; “not enough data yet” is the correct answer, not a failure.
- Recency-weighted evidence. Recent verification outweighs long-run averages when they conflict. The long run exists to catch slow systematic bias, not to override current conditions.
- Auditable by construction. Every run is committed back to the repository, so the entire record is public, versioned and checkable by anyone.