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.
Live health-check — the exact Fathom CSVs, every raw point
A faithful local replica of the Fathom page built straight from the export CSVs (frost_monitor / _inmet_native / _wu_5min / _forecast_hourly / _realised_* / _climatology). The meteogram plots every raw observation on a true time axis — line breaks are genuine data gaps, not smoothing — so we can confirm whether a missing point is absent in the data or just dropped by Fathom's renderer. Click any table row or map dot to drive every panel.
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 (ringed markers = ERA5's official daily Tmin/Tmax); right = Meteologix model curves. 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: dew point (°C, left) and humidity (%, right) as hourly realised lines (INMET + WU) left of now, Open-Meteo daily forecast right of now; rainfall (mm) as daily bars along the base. 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
Why a feed looks the way it does, and exactly which source produced tonight's number and how far away it is. WU has real holes (some towns 100% blank, others not yet pulled); INMET is continuous but often tens of km away; ERA5/POWER are gridded points at the town.