Data & methods
Where every number comes from
Sources, definitions and limitations behind the Twin Cities climate record, so any figure on this site can be traced back to the dataset it came from.
Data coverage: Temperature 1873–2025 (153 years) · Precipitation 1871–2025 (155 years) · Snowfall 1885–2025 (141 years) — averages and records use only years with valid observations. A dash means the observation is unavailable; 0 means an observed zero. The current year is preliminary.
Snow seasons (Jul–Jun): 142 complete seasons, beginning 1884–85.
The threaded Twin Cities record
The Twin Cities has no single station running from 1871 to today. The record used here is the threaded series the Minnesota DNR publishes: St. Paul from 1871 to 1890, Minneapolis from 1891 to 1938, and Minneapolis–St. Paul airport (MSP) from 1939 onward.
Threading keeps one continuous series, but station moves and instrument changes can leave small discontinuities — a shift of a few tenths of a degree between one city's record and the next. That is a limitation of the record itself, not of this site.
What each number comes from
Annual and monthly temperatures, precipitation and snowfall come from NOAA ACIS monthly summaries for the threaded record. Current conditions and the short-range forecast come from the National Weather Service. Teleconnection indices come from NOAA CPC, NOAA PSL and NOAA NCEI.
Tables and charts combine stored historical records with live NOAA/NWS observations. The ENSO data from 1950–2025 were checked against NOAA CPC ONI v6; older ENSO labels are unverified approximations. Measurements, incomplete years and trace values are handled differently as described below.
ENSO classification: two different sources
1950–2025 winter-phase rows use the October–December (OND) three-month value in NOAA CPC ONI version 6. This is a late-year snapshot for the coming winter, not a claim that the phase dominated the entire calendar year or met NOAA’s multi-season persistence rule. The growing-season chart uses March–May (MAM) ONI for the same spring instead. NOAA transitioned to RONI for operational monitoring in 2026; historical ONI remains useful for comparisons.
1871–1949: estimates of undocumented provenance, marked with † in the ENSO table. NOAA CPC's ONI record begins in 1950, and Niño 3.4 reconstructions do exist for earlier decades — but the pre-1950 classifications used here were not taken from any one of them, so no specific reconstruction is cited for them. They indicate broad phase and intensity only and carry substantially larger uncertainty than the post-1950 values.
The pre-1950 NAO, AO and PNA classifications shown on the Patterns page rest on the same footing: NOAA's AO and PNA records also begin in 1950, so the earlier phases there are estimates as well.
Every Niño 3.4 and ONI figure on this site is historical climate data on the ONI method — not a current operational index value. RONI removes the tropical-mean sea-surface temperature anomaly, so a RONI value is generally lower than the ONI for the same month and the two are not directly interchangeable.
Intensity describes only the absolute OND index magnitude for that year: weak 0.5–0.9°C, moderate 1.0–1.4°C, strong 1.5–1.9°C and very strong 2.0°C or more. The spring growing-season phase instead uses the MAM index. Neither seasonal snapshot is a complete annual event classification.
The other indices, and why their dates differ
NAO and PNA come from NOAA CPC's monthly files; AO from CPC's monthly index as distributed by NOAA PSL; PDO from NOAA NCEI's ERSSTv5 Pacific Decadal Oscillation index.
Each source is published on its own schedule and with its own lag, so the most recent month differs by index. Every value is therefore labelled with the observation month it actually came from — a value from an earlier month is never presented as if it were the current one.
Snowfall: calendar year vs. snow season
Calendar-year snowfall: the January–December total for a single calendar year.
Snow season: the July 1 – June 30 total, the standard snowfall season. Both are shown because they disagree — 1983 holds the calendar-year record (101.5") while 1983–84 holds the season record (98.6").
A season is only reported when all twelve of its months have observations. An in-progress season is not shown at all rather than being counted as a partial total.
Missing observations
The variables do not all start in the same year: precipitation reaches back to 1871, temperature to 1873, and the snow series to 1885. Frost dates depend on daily data and are only used from years with a complete season.
A missing observation is never treated as zero. Averages, rankings and extremes use only years with values. A dash (—) means unavailable; 0 means no measurable amount; and Trace means precipitation or snow was observed in an amount too small to measure. Traces contribute zero to numeric totals but are labeled separately in monthly and daily displays.
Preliminary data for the current year
The year in progress is not finalized, so it is fetched live from ACIS as a year-to-date summary and marked preliminary wherever it appears. Preliminary years are excluded from normals, rankings, extremes, decadal averages and seasonal snowfall totals, so an unfinished year can never hold a record.
Normals and averages
Normal: the 1991–2020 U.S. Climate Normals period — the current official baseline used for anomalies on the dashboard and trends pages.
Long-term average: the mean over the full period of record shown. Where a page says "average" without "normal", it means this.
Monthly averages on the months pages use only complete months; the count of years behind each one is shown next to it.
This is not a forecast
Teleconnection indices describe broad climate tendencies over weeks and seasons. They cannot say whether it will rain or snow on a given day, so no day-to-day advice is drawn from them here: today's and this week's conditions come from the National Weather Service forecast.
Where this site describes a relationship — for example an ENSO phase and a longer or shorter frost-free window — it is reporting an association seen in this record, not a demonstrated cause, unless a statistical test is shown.
Primary sources
- Minnesota DNR — Minneapolis/St. Paul historical climate listings
The published Twin Cities tables this site's record is cross-checked against.
- NOAA ACIS (Applied Climate Information System)
Daily and monthly observations for the threaded Twin Cities station series, plus the preliminary current-year figures.
- NOAA Climate Prediction Center (CPC)
NOAA CPC ONI version 6, the year-by-year October–December and March–May values used in the site; CPC also publishes the NAO and PNA indices.
- NOAA Physical Sciences Laboratory (PSL)
Monthly Niño 3.4 sea-surface temperature anomalies and the Arctic Oscillation index.
- NOAA NCEI — ERSSTv5 Pacific Decadal Oscillation index
The current monthly Pacific Decadal Oscillation index shown on the dashboard, published within weeks of each month ending.
- National Weather Service (weather.gov)
Current observations and the short-range forecast shown on the dashboard.