docsadvancedbias-correction
Bias Correction
GET
/api/v1/accuracy/bias-correctionApplies 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
| Name | Type | Required | Description |
|---|---|---|---|
station_id | string | required | ICAO station identifier (or use city) |
city | string | optional | City name or alias (resolves to station) |
forecast_temp | float | optional | Raw NWS forecast (°F) to correct Default: 75 |
forecast_for_date | YYYY-MM-DD | optional | Date the forecast applies to Default: today |
days | integer | optional | Historical window for the bias estimate Default: 90 |
metric | string | optional | high (default) or low — correct a daily-high or daily-low forecast Default: high |
Response Fields
| Field | Type | Description |
|---|---|---|
original_forecast | float | The forecast_temp you passed |
corrected_forecast | float | original_forecast + bias_adjustment |
bias_adjustment | float | Correction applied (°F); negative when NWS runs warm at this station |
expected_range | object | { p10, p25, p50, p75, p90 } of likely observed values |
confidence_interval | object | { lower_bound, upper_bound } |
forecast_range | string | Human-readable range label (e.g. 78-82°F) |
sample_size | integer | Verification pairs behind the estimate |
forecast_for_date | string | Target date used |
data_period_start / data_period_end | string | Historical 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"}}