metar.forecast.<tier>.<icao> carries what a numerical weather model expects, as opposed to what a station measured. Each event carries the forecast maximum and minimum for one station over one local calendar day, and is re-sent whenever newly published forecast hours change it.
Two tiers
High-resolution models only cover their own region, so forecasts are split into two tiers.
Basic forecasts cover all streamed stations, since the underlying global models cover the whole planet. Hires forecasts cover a subset of stations: the US and Toronto under HRRR, several East Asian airports under JMA MSM, and a handful of Central European airports under ICON-D2. Stations outside these regions have no high-resolution model; their
metar.forecast.hires.* channel exists but stays silent, which is not an error.
Temperatures, deltas and coordinates are decimal strings rather than JSON numbers, so no binary float rounding happens in transit.
Timestamps and status
Three timestamps describe the lifecycle of a forecast:run_utc is when the model was initialised, source_available_utc is when the provider published the file, and receipt_time is when metar.ws finished decoding it.
The status field moves through detected, partial and day_complete as forecast hours arrive; corrected means the provider replaced a file that had already been used.
grid_point.distance_km is the distance from the airport to the model grid cell actually used. A 2 km model typically lands within about 1.5 km of the station; a 25 km global model can be as far as 15 km away. Check this value before treating a forecast as strictly local.
Next: Plans & Limits
Compare Sandbox, Starter and Pro, and see how channel limits are counted.
