Penn Yan, the village at the head of Keuka Lake, has warmed +2.72°F per century since 1970. Steuben County, immediately to its south, has warmed +3.17°F. Seneca County, just to the east, has warmed only +1.85°F. The seven Finger Lakes counties — Yates, Ontario, Seneca, Schuyler, Tompkins, Steuben, Monroe — span a quietly significant 1.3°F gap in modern warming velocity, and the gap is the story.
The headline metric is what we call warming velocity: the linear regression slope of annual mean temperature on year, since 1970, expressed in degrees Fahrenheit per century. It's the climate-journalism standard for capturing modern warming rate. We compute it from NOAA's National Centers for Environmental Information climate-division dataset (nClimDiv), which provides annual mean temperatures by climate division from 1895 to the present.
What we found
At the county level, the Finger Lakes region splits into two distinct climate-trajectory groups since 1970.
The slow-warming group consists of Seneca (+1.85°F/century), Tompkins (+2.04°F), Ontario (+2.52°F), and Yates (+2.72°F). These are the counties closest to the deep central lakes — Cayuga, Seneca, and Keuka — which act as massive thermal sinks. The lakes warm slowly in spring and cool slowly in fall, dampening land-surface temperature trends within 5–10 miles of their shores.
The fast-warming group consists of Monroe (+2.95°F/century), Schuyler (+3.00°F), and Steuben (+3.17°F). Monroe sits on the open Lake Ontario shoreline but the climate division pulls in the Genesee River valley to its south; Schuyler sits at the southern lobes of Seneca and Cayuga where the thermal buffer is weaker; Steuben is hill country, well above the lake-effect zone.
The +3.17°F Steuben figure is striking. That's the same warming velocity as Lubbock, Texas (+3.04°F), and Bakersfield, California (+3.23°F) — places we don't typically think of as climate analogs to upstate New York. Whatever heat-trapping mechanism is operating on the Texas High Plains is operating in upstate Steuben at the same rate.
Why this matters
For residents and prospective movers, a 1.3°F gap over a century compounds. The slow-warming Finger Lakes counties — Yates, Seneca, Ontario, Tompkins — will retain "cool summers" longer. Yates' July average is 71.6°F now; in a "linear-extrapolation" 2050 scenario it would be roughly 72.5°F. In the same scenario, Steuben's July average rises from 70.8°F to 72.8°F — a slightly larger jump, but from a slightly cooler starting point.
These are small numbers in absolute terms. But for migration patterns, real-estate trajectories, and agricultural decision-making (the Finger Lakes wine region runs across many of these county lines), the gap matters. The Finger Lakes Wine Trail crosses the slow-warming counties at its core; whether 2050 still supports cool-climate varietals (Riesling, Pinot Noir) versus warm-climate ones (Cabernet Franc, Merlot) is in part a question of which side of this gap you're on.
The structural picture
The NOAA climate-division dataset is coarse — one annual temperature per division, not per town. The trend at the division level is the trend everywhere within the division, in our data. What the division-level data does capture, more reliably than smaller area methods, is the long-period structural rate of warming, free of single-station drift, urban-heat-island contamination, and measurement-equipment changes that haunt finer-grained datasets.
That structural rate is the one that matters for the questions homeowners actually ask: is this place going to be unrecognizably hotter in 30 years? In the Finger Lakes, the answer is: somewhat, but the lake-belt counties will be the slowest to change.
Methodological notes
We compute warming velocity using ordinary least squares regression of annual mean temperature on year, restricted to 1970-present (the modern warming era). The full methodology page includes the replication SQL, known limitations, and the rationale for choosing 1970 as the start year.
All county-level figures in this article are from NOAA NCEI nClimDiv, attributed to ZIP codes via TIGER polygon intersection and then aggregated to counties via population-weighted averaging across constituent ZCTAs. The replication code is on GitHub.