docsadvancedbias-correction

Bias Correction

GET/api/v1/accuracy/bias-correction

Applies a station's historical bias to a raw NWS forecast and returns the corrected value plus an expected range (p10–p90) and confidence interval. Pass the forecast you see and the date it applies to; the bias estimate uses the last `days` of verified pairs. Station is required.

Parameters

NameTypeRequiredDescription
station_idstringrequiredICAO station identifier (or use city)
citystringoptionalCity name or alias (resolves to station)
forecast_tempfloatoptionalRaw NWS forecast (°F) to correct Default: 75
forecast_for_dateYYYY-MM-DDoptionalDate the forecast applies to Default: today
daysintegeroptionalHistorical window for the bias estimate Default: 90
metricstringoptionalhigh (default) or low — correct a daily-high or daily-low forecast Default: high

Response Fields

FieldTypeDescription
original_forecastfloatThe forecast_temp you passed
corrected_forecastfloatoriginal_forecast + bias_adjustment
bias_adjustmentfloatCorrection applied (°F); negative when NWS runs warm at this station
expected_rangeobject{ p10, p25, p50, p75, p90 } of likely observed values
confidence_intervalobject{ lower_bound, upper_bound }
forecast_rangestringHuman-readable range label (e.g. 78-82°F)
sample_sizeintegerVerification pairs behind the estimate
forecast_for_datestringTarget date used
data_period_start / data_period_endstringHistorical window actually used
cURL
curl -s -H "Authorization: Bearer $API_KEY" "https://api.deltadaemon.com/api/v1/accuracy/bias-correction?station_id=KLAX&forecast_temp=78&forecast_for_date=2026-02-21&days=30"
JSON
{
"success": true,
"data": {
"original_forecast": 78,
"corrected_forecast": 79.13,
"bias_adjustment": 1.13,
"expected_range": { "p10": 74.5, "p25": 76.8, "p50": 79.1, "p75": 81.4, "p90": 83.8 },
"confidence_interval": { "lower_bound": 71.42, "upper_bound": 86.83 },
"forecast_range": "78-82°F",
"station_id": "KLAX",
"city_name": "Los Angeles",
"timezone": "America/Los_Angeles",
"sample_size": 20,
"forecast_for_date": "2026-02-21",
"as_of_timestamp": "2026-02-20T23:55:00Z",
"data_period_start": "2026-01-21",
"data_period_end": "2026-02-20",
"historical_accuracy_note": "Based on 20 verification pairs."
},
"metadata": {
"generated_at": "2026-02-20T23:55:00Z",
"local_generated_at": "2026-02-20T15:55:00-08:00",
"days_analyzed": 30,
"total_records": 20,
"station_id": "KLAX",
"station_timezone": "America/Los_Angeles",
"forecast_for_date": "2026-02-21",
"accuracy_metric": "high"
}
}