Last night vs normal, and frost risk ahead
Each card is one station's most recent overnight low. Colour = how cold (warning ≤4°C, frost ≤2°C, severe ≤0°C). The badge tells you exactly which source the number came from — a grey proxy means it is not yet observed (an early forecast standing in until real data lands).
Frost risk ahead
Forward ensemble probability of an overnight low at/below 2°C. Only dates with non-zero risk are shown.
Realised overnight lows — full history, every source traced
The dark line is the value we trust for each night; each dot is coloured by the source that produced it, so you can see the handover between feeds. The shaded band is the 30-year climatological normal range (5th–95th percentile); dashed lines mark the 4 / 2 / 0°C frost thresholds. Use the range control to zoom from the last 3 months out to years (on long spans the per-night dots drop away and the line shows the seasonal frost cycle). Hover any night for the source, confidence and every competing source value.
Recent nights (provenance)
Cross-PWS shows how many Wunderground stations the town has and how the coldest was treated: cold ✓ real = an extreme cold reading corroborated by near-saturation (a true frost hollow), cold ⚠ suspect = an unsupported cold outlier demoted to the next station, N PWS / 1 PWS = stations in agreement.
Forecasts — every model, overlaid on what actually happened
Recent realised lows (dark) then each deterministic model's forecast low going forward (dashed, one colour per model). The shaded band is the ensemble spread (coldest member → mean). Where models disagree, the spread between the dashed lines is the forecast uncertainty.
Forward table
Stations — where each town's number comes from
Trust-first roster. For the selected town: every Wunderground PWS mapped to it (how far, when it last reported, whether it set tonight's low), the nearest official INMET station, and whether today's value is a real observation or a proxy. A town with no PWS in range is carried by NASA POWER / INMET / a forecast proxy — shown explicitly here.
Forecast skill — the track record
How each model has actually scored against realised lows, by lead time. Bias = average (forecast − realised): positive means the model runs too warm, negative too cold. MAE = average size of the miss. Both should grow with lead time. n is the number of station-nights scored — small n means treat with caution.
Mean absolute error vs lead
Bias vs lead
Detail
Data health — how fresh and complete each feed is
Trust starts with knowing what is live. Lag is days behind today; coverage is how many of the belt's stations the feed reached. A red lag or zero coverage means the blend is leaning on the next source down.
Source precedence
When sources disagree for the same night, the blend keeps the highest-precedence one and flags (never silently overwrites) the disagreement: Wunderground → INMET → ERA5 / Mosaic → NASA POWER → forecast proxy. IMERG is precipitation only and is never used for temperature.
Coffee belt frost monitor
Production-weighted belt frost risk up top, then every town's forecast and realised history. Click any row, map dot or town to drive the panels below.
Lowest observed — last night
Lowest forecast — any model
Forecast grid — whole belt, by region
Colour-banded overnight lows for every town, grouped by region. By model: columns are recent realised nights then forecast days for one model. By day: columns are the models for one date (plus the actual, once observed). Bands: >4 / 2–4 / 1–2 / 0–1 / ≤0°C. Click a town to drive the meteogram below. Filter/search shared with the strip above.
Meteologix model-chart maps — step through the forecast
The scraped Meteologix rendered model-chart images for the coffee belt, one per forecast timestep. Pick a model and parameter, then drag the slider (or press ▶ to play) to step from the run out to the horizon. Images load on demand from the forecast tree — nothing is embedded. When no map index is present this panel hides and the offline SVG belt map below takes over.
Belt map — where is it cold
Each dot is a town — the colder it is, the bigger and redder the dot. The shaded, named areas are the six coffee regions, colour-matched to the exposure table on the right. The coldest towns are labelled with their values. Hover any dot for the town + value; click it to drive the grid above and the meteogram below. Pick the night (last realised, default) or a forecast day — and which model supplies the forecast. Same bands and metric as the grid.
—
Left of now = recent observations (INMET hourly, WU 5-min) plus the ERA5 reanalysis line at the town point — bias-corrected to the night regime, so the ringed daily Tmin sits on the line (daytime carries the same overnight correction). The WU 5-min line follows the town's coldest screened PWS — the same station whose low is the official Tmin — so its ring sits on the line too; right = forecast model curves — Meteologix + Open-Meteo deterministic lines, with the shaded ensemble spread band (ECMWF-ENS + GEFS member p10–p90 + mean) showing how much the models disagree. Show max temp off collapses each line to its per-day overnight-low envelope.
Critical factors — moisture & rainfall
The frost context on the same time axis as the meteogram above, as separate panels: dew point (°C), humidity (%) and rainfall (mm/day). Each panel draws one line per source — INMET, WU and ERA5 (the reanalysis floor, present for every town) — realised (solid) left of now, Open-Meteo daily forecast (dashed) right of now. On a frost night watch the temperature–dew gap close and humidity climb toward saturation. Meteologix carries no moisture, so the forecast side is Open-Meteo only.
Soil moisture — realised & multi-model forecast
Volumetric soil moisture (m³/m³) on the same time axis as the meteogram above. Left of now = ERA5 reanalysis (daily; Open-Meteo 9 km, all towns). Right = Open-Meteo model forecasts — one curve per toggled model, two layers selectable (0–7 cm surface, 7–28 cm sub-surface). Dry soils (<0.1) radiate heat quickly on calm, clear nights — increasing frost risk. WU, INMET, and Meteologix do not provide soil moisture (consumer/agro sensors not in those feeds).
Realised history — all sources, year to date
Per-source daily Tmin (and Tmax when shown) since 1 Jan 2026, over the 30-year climatological p5–p95 band; dashed lines mark the 4 / 2 / 0°C frost thresholds. With ~7-day forecast on, each model's overnight-low forecast issued about a week before each realised day is drawn dashed and model-coloured — so you can see which model tracked the obs — and graded in the table at right.
Forecast skill — ~7-day lead
Data health & realised source — selected town
Which source set tonight's number for the selected town, and how far that station sits from it.