The Fix Was Not a Cleverer Model

2026年8月13日2 次浏览来源:Dev.to阅读原文

I spent four months tuning a custom weather ensemble.

It was worse than guessing.

The fix was not a better ensemble.

It was admitting someone already built the right thing and giving it away for free.

What I built and why it failed The original weather bot counted forecast members.

It pulled raw output from four systems: GFS, AIGEFS, ECMWF IFS, and AIFS.

Up to 164 individual simulations per contract.

The logic was simple.

If at least three of four systems agreed on direction, the bot traded.

If they disagreed, it sat out.

That sounds reasonable.

It was not.

I ran 112 settled trades through the system and scored the model with a Brier score.

The model scored 0.2858.

Predicting the historical base rate, with no model at all, scores 0.2439.

Lower is better.

My model was worse than making no prediction.

The problem was not direction.

Direction was right about 60 percent of the time.

The problem was confidence.

The model spread its probabilities 2.1 to 4.0 times too narrow.

It was certain when it should have been uncertain.

In prediction markets, confidence sizes your bets.

A model that is too confident trades too big on the wrong calls.

The confident wrong calls cost more than the confident right ones made.

There was also a systematic temperature bias at the gridpoint level, peaking around seven degrees Fahrenheit.

The model leaned warm in a way that was not in the data.

It was in the model.

What I should have done first Before building anything, I should have checked whether the thing I was building already existed in better form.

NOAA publishes the National Blend of Models.

It blends dozens of forecast systems and applies statistical post-processing no individual model can match.

It produces calibrated, bias-corrected, station-level probabilistic temperature guidance.

For exactly the stations Kalshi settles on.

For free.

The NBM already does what I was trying to do by hand.

It corrects the biases I was measuring.

It produces uncertainty ranges I was approximating with member counts.

It runs at individual station level, not gridpoint level, which eliminates the seven-degree bias problem entirely.

I spent months tuning a member-counting approach when the right answer was a public product I could have downloaded at any time.

Why member counting was the mistake Counting ensemble members is seductive.

It feels like rigor.

You are comparing 164 independent forecasts.

That has to be better than one.

It is not.

The members are not independent in the way that matters.

They share systematic biases.

If GFS runs warm, all 31 GFS members run warm.

If ECMWF has a marine layer problem at LAX, all 51 ECMWF members have the same problem.

Agreement across members of the same model tells you the model is internally consistent.

It does not tell you the model is right.

The NBM solves this at the source.

It does not count members.

It uses statistical post-processing to calibrate each model against observed outcomes at each station.

The output is not a vote.

It is a calibrated probability distribution with honest uncertainty ranges.

The difference between "164 forecasts agree" and "one calibrated probability distribution" is the difference between confidence and calibration.

My ensemble was confident.

The NBM is calibrated.

In prediction markets, calibrated is what makes money.

Confident is what loses it.

What the rebuild looks like The v2.5 weather bot runs on NBM as the primary source.

NBM weight is 0.75.

Five raw models sit behind it at a combined 0.25 weight as a disagreement check: GFS, AIGEFS, ECMWF IFS, AIFS, and HRRR.

They used to be the model.

Now they are a sanity check on the model.

The bot scans 291 weather series across 20 cities.

The old scanner asked for category "Climate" when the real value was "Climate and Weather." It matched nothing.

A fallback scanned the raw catalogue and every log line looked normal while the bot saw 39 to 63 of 291 series.

That is fixed.

NBM coverage begins at forecast hour

24.

Same-day markets are inside that

分享
Baike.dev

baike.dev helps you discover great languages, frameworks, databases, DevOps and cloud-native tools.

Quick links

About

Contribute

Found a great developer tool? Share it with the community.

Submit a tool
© 2026 baike.dev Developer EncyclopediaUpdated daily · Discover great developer tools