What is a thermofront? A maximin curve for summer heat:
for each streak length k, find the warmest k-day window in the season
and report its trough daily low. This is a
Pareto frontier of heat—there was no longer warm streak without
allowing a lower trough temperature during that season.
Where a curve crosses 68°F (20°C),
that’s how many consecutive
tropical nights occurred.
The bold line is the current season (Oct–Sep).
The dashed line (toggle “Last k days”) shows the
trough low over the most recent k days—a snapshot of right now.
More details…
How the Thermofront Works
Pick a number of days—say 7. Now look at every 7-day stretch during
the summer and ask: what was the lowest temperature during that stretch?
The thermofront finds the 7-day stretch where that low was as
high as possible. That is the warmest week of summer, measured by how
cool it got at its coolest.
The Pareto frontier
At k = 1 the thermofront is simply the highest single-day
low of the season. As k grows, the window must include more nights,
inevitably catching a cooler one, so the curve drops.
The thermofront traces every point where you cannot find a longer
hot stretch without accepting a lower trough—the classic shape
of a Pareto frontier.
Tropical nights
A tropical night
is one where the overnight low stays at or above
20 °C (68 °F).
Where the thermofront crosses that threshold, you can read off how many
consecutive tropical nights occurred during the season.
Reading the chart
Each line is one season (Oct–Sep). The bold line is the
current season, updating as new nights are recorded. Hover to see the exact
date range of the warmest k-day window. A small
★ marks a value that is the warmest in the displayed history.
The dashed “Last k days” overlay shows the
minimum daily low over the most recent k days. It is always
at or below the current season’s thermofront, since the thermofront
cherry-picks the best window while “last k” is anchored to today.
Daily lows only
All computations use daily low temperatures—one
value per day, representing the coolest temperature recorded that day (usually
overnight). Hourly data is not used; the
Open-Meteo
historical archive provides the daily minimum.
Seasons & data
A season runs from October 1 through September 30.
The current season’s curve updates throughout the year as new days
are added. When two equally warm streaks exist, the most recent one is
shown—so an ongoing heat wave always appears.
Daily low temperatures come from the
Open-Meteo
historical archive.
Include current season
The current season (Oct–Sep) is often incomplete—summer
may not have arrived yet, so its thermofront only reflects data so far.
Uncheck this box to hide the current season and compare only
complete historical seasons against each other. When unchecked,
the bold “current” line disappears and records are
computed across historical seasons only.
Include today so far
By default, data ends at yesterday—the most recent day with
a final, complete daily low. Check this box to append today’s
observed low so far, computed from hourly
temperatures recorded up to the most recent hour. Because the day
is still in progress, today’s low may drop further; the value
updates each time you reload. This affects both the season curves
and the “Last k days” overlay.