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.