Forecast error,
at every lead time.

Every NWS revision captured at issuance — analyze forecast variance at 6, 12, and 24 hours across 20 stations.

Which stations run hot vs cold vs the forecast?

Cold bias (under-predicted)Hot bias
KMDW
-5.8°
KOKC
-2.2°
KMSY
-1.4°
KNYC
+2.2°
KDEN
+1.1°
KDFW
+0.9°
View all stations

What you get

Four data products via REST API. Each endpoint returns JSON with station, lead time, and time window parameters.

6h → 72h2.0° → 7.2° MAE

Lead-time variance curves

MAE and bias at 6, 12, 24, 48, and 72 hours before observation. See exactly when the forecast becomes actionable.

Every revisionCaptured at issuance

Revision tracking

Every NWS forecast revision captured at issuance with issuance-to-issuance diffs. Know when forecasts shift and by how much.

ASOS/AWOSGround-truth verified

Verified observations

Forecasts paired with ASOS/AWOS temperature observations. Every data point tagged as verified or preliminary.

<100msResponse time

API access

REST API with API key auth. Free tier: 5 stations, 100 calls/day. Pro: all 20 stations, 10k calls/day.

How it works

01

Capture revisions at issuance

We ingest every NWS forecast update for 20 Kalshi market stations, every 5 minutes. Every revision tracked with issuance timestamp.

02

Compare to verified observations

Each forecast is paired with the actual ASOS/AWOS temperature observation. Verification pairs computed hourly against ground truth.

03

Serve metrics by station, lead time, and bucket

Bias, MAE, std dev, and correction factors delivered via REST API. Filter by station, lead time window, or temperature bucket.

Coverage and methodology

Transparent data pipeline. No black boxes, no proprietary models. Raw NWS forecasts vs. raw observations.

Full methodology
Update cadenceEvery 5 minNWS revisions ingested continuously
Station coverage20 stationsAll major Kalshi temperature markets
Observation sourceASOS / AWOSFAA-certified automated weather sensors
Data window90 daysRolling historical verification data
cURL
curl -s "https://api.deltadaemon.com/api/v1/accuracy/by-station/KBOS?days=90" | jq .data
{
"city_name": "Boston",
"sample_size": 47,
"station_id": "KBOS",
"stats": {
"verification_pairs": 47,
"unique_days": 4,
"mean_error": 1.19,
"std_dev": 3.11,
"mae": 2.52,
"rmse": 3.3,
"abs_error_p50": 2,
"abs_error_p90": 5.8,
"abs_error_p95": 6.5
}
}

Start with the data.

Free tier: 5 stations, 100 calls/day. No credit card required. Read the docs first.