Methodology & sources

Every figure on this site comes from published, citable sources — chiefly NOAA's 1991–2020 U.S. Climate Normals (public domain) for frost, freeze, growing-season, and growing-degree-day values, and the USDA Plant Hardiness Zone Map 2023 for zones. Planting windows are computed by counting from the average last and first frost using per-crop offsets synthesized from U.S. Cooperative Extension guides. This page lists the exact sources, the crop-window formula, unit conventions, and current limits — including that the official USDA PHZM data join is still pending.

Data sources

Source Publisher License Retrieved Notes
U.S. Climate Normals 1991–2020, Annual/Seasonal (by-station) NOAA National Centers for Environmental Information (NCEI) Public domain (U.S. Government work) 2026-07-07 Frost/freeze probabilities, growing-season length, growing degree days, and temperature normals per weather station.
2023 ZIP Code Tabulation Area (ZCTA) National Gazetteer U.S. Census Bureau Public domain (U.S. Government work) 2026-07-07 ZIP → coordinates: ZCTA centroids for the nearest-station join.
USDA Plant Hardiness Zone Map 2023 USDA Agricultural Research Service (grids by PRISM Climate Group, Oregon State University) Public-domain USDA data (U.S. Government work) 2026-07-07 Hardiness zone per ZIP, from the static USDA-derived PHZM 2023 JSON (Last-Modified 2023-11-19), matched to each location's ZIP.
2023 Places National Gazetteer U.S. Census Bureau Public domain (U.S. Government work) 2026-07-07 Human-readable place name + state for each location, from the nearest Census place to its ZCTA centroid.
U.S. Cooperative Extension vegetable planting guides Iowa State (PM 819), Oregon State (EC 871), Cornell, U. of Minnesota, Utah State Extension Educational; cited synthesis 2026-07-07 Per-crop frost-tolerance class, start-indoors weeks, sow/transplant offsets, and days-to-maturity ranges. Values vary by cultivar/source, so ranges are used.

How planting windows are computed

Every planting window comes from one well-established, citeable method: count forward or back from the average frost date — the scheduling approach taught by U.S. Cooperative Extension services. The anchor dates are NOAA's median (p50) last spring frost (LSF) and first fall frost (FFF) at the 32°F threshold; the per-crop offsets are a documented synthesis of extension planting guides.

LSF, FFF        = NOAA 1991-2020 normals, 32 °F, p50 (median)
start indoors   = [ LSF − weeks_max×7 ,  LSF − weeks_min×7 ]
plant out       = [ LSF + weeks_lo×7  ,  LSF + weeks_hi×7 ]   (negative weeks = before LSF)
first harvest   = plant-out start + days_to_maturity range
fall planting   = count back from FFF by (days_to_maturity + frost-tolerance buffer)

The NOAA data and its probability grammar

Frost, freeze, growing-season, and growing-degree-day figures are read directly from NOAA's 1991–2020 Annual/Seasonal Climate Normals for the weather station nearest each location that carries a full 30-year record. Nothing is modeled or smoothed: the numbers on a location page are the station's own normals.

Freeze dates are published at three probability levels. For the last spring freeze, p10 is the roughly 90%-safe “plant after” date (the freeze has passed in about 9 years out of 10), p50 is the average/median, and p90 is the optimistic early date; the first fall freeze is the mirror image. Each location page shows the median plus the 90%-safe date so you can choose your risk tolerance.

Missing data is never invented: NOAA's -9999 sentinel and blank cells become a genuine “no value”, and locations that essentially never freeze are flagged frost-free rather than assigned a fabricated date.

Hardiness zones

Hardiness zones come from the USDA Plant Hardiness Zone Map 2023, matched to each location's ZIP. The map is distributed as static, USDA-derived per-ZIP JSON (via phzmapi.org; Last-Modified November 2023, the 2023 edition), so each location's zone is the USDA value for its ZIP — not an estimate. A handful of ZIPs with no PHZM entry fall back to the nearest ZIP that does; none are fabricated.

Because the zone is matched per ZIP rather than per metro area, a dense-urban page and its surrounding suburbs can legitimately read different half-zones — for example a low-desert urban core reading one half-zone warmer than its metro reference. That granularity is the point.

Frost-free locations

Some locations are effectively frost-free — for example Miami never reaches 32°F in the 1991–2020 record (so its freeze dates are null and its season is the full 365 days), and Phoenix has only a vanishing early-January freeze risk. For these, the engine does not fabricate frost-relative planting dates. It flags the location frost-free and notes that the practical limit is summer heat, not cold — warm-season crops can be grown across much of the year, and cool-season crops do best in the mild winter (roughly October–February).

One page per distinct climate (canonicalization)

The site publishes one page per unique (nearest-station, hardiness-zone) cluster, not one page per ZIP. Thousands of ZIPs share a nearest weather station and therefore share identical frost/GDD/season data; those collapse to a single canonical page, and every other ZIP in the cluster resolves to it. A station's territory is split by hardiness half-zone where a valley and a hillside genuinely differ, and a further safety-net merge collapses two adjacent stations whose normals are effectively identical. The result is that every indexed page carries genuinely unique data — the guardrail against thin, duplicated content.

Limits and accuracy

These are planning estimates, not guarantees. Frost dates are 30-year averages; any single year can freeze weeks earlier or later than the median. Planting windows use species-average offsets and days-to-maturity that vary by cultivar, soil, and weather. Microclimates matter — a low spot, a south wall, or an urban core can shift your real frost dates by a week or more from the nearest official station (in dense cities the nearest full-record station is often a warm downtown or airport site). Treat the dates as a starting calendar and adjust to what you observe in your own garden.

Update policy

NOAA's 1991–2020 normals are a static release (the next, 2001–2030, is expected around 2031), so there is no scheduled data refetch — only an annual reachability and checksum check. The planting-calendar dates are year-agnostic (MM/DD), so the yearly rollover is a re-render, not a re-fetch. The USDA PHZM revises on a multi-year cadence and is refreshed on announcement. Corrections reported by readers are checked against the primary source and applied promptly.

PRISM (not used here)

A future scale-up step could fill grid cells far from any weather station using PRISM 800m normals. PRISM is not public domain — Oregon State University asserts copyright and requires prominent attribution (name, URL, and access date) wherever it is used. The sample does not use PRISM (every location maps to a real station), so no attribution is due yet; if grid-cell fill is ever adopted, the required PRISM attribution ships with it on this page and in the footer.

Data: NOAA NCEI U.S. Climate Normals 1991–2020 (public domain) and USDA Plant Hardiness Zone Map 2023. Planting windows synthesized from U.S. Cooperative Extension guides.