Methodology

Every answer on this site is assembled from public, citable data at request time — never typed in by hand, never guessed. This page walks through the whole pipeline, in the same order the software runs it, and ends with the limitations that matter.

1 · From your input to a point on the map

A five-digit ZIP code is matched to its Census ZIP Code Tabulation Area(ZCTA) and we use the ZCTA's official interior point from the U.S. Census Bureau's Gazetteer files as the lookup coordinate. A city name is matched against the Census place list (about 32,000 incorporated places and census-designated places), using the place's interior point; identical names are disambiguated by state.

ZCTAs are close to — but not the same as — USPS delivery ZIP codes. PO-box-only and single-building ZIP codes often have no ZCTA polygon at all. When that happens we say so honestly: you may still get a hardiness zone (the USDA ZIP dataset covers many such codes), but there is no geography from which to pick a climate station, so we ask for a neighboring residential ZIP instead of pretending.

2 · Choosing the climate station

Freeze statistics come from the NOAA/NCEI U.S. Climate Normals 1991–2020 (annual/seasonal product, version 1.0.1). From roughly 7,300 U.S. stations with temperature normals, we consider a station usable for windows only when it carries the complete 32°F freeze set: last-spring and first-fall freeze dates at the 10%, 50%, and 90% probability levels plus median growing-season length. We then pick the nearest usable station within 250 km of your lookup point, and we always show its name, ID, and distance. Within about 48 km we consider the match good; beyond about 97 km we flag it prominently as sparse coverage, because a far-away station can misrepresent your microclimate. If no station qualifies within 250 km, we decline to answer and point you to your Cooperative Extension office.

In nearly frost-free climates (for example much of coastal southern California and South Florida), NOAA does not publish freeze dates because a 32°F night doesn't happen in most years. We detect this from the published freeze-occurrence probability and show a freeze-rare explanation rather than fabricating a window.

3 · Reading freeze probabilities (not “the frost date”)

There is no single frost date. The normals publish a probability curve, and we surface three points of it, labeled in plain language: the median (in half of years the last spring freeze has happened by this date), a late 1-in-10 date (one year in ten still freezes after it), and an early date (nine years in ten still see a freeze after it). Fall works mirror-image: the median first freeze, plus the date by which one year in ten has already frozen. The frost-free growing season we report is the published median growing-season length at the 32°F threshold — not our own subtraction.

4 · Crop rules from extension sources

Every crop/method rule in the registry carries its citations: institution, publication title, URL, access date, and the verbatim relative rule (for example, Purdue's “hardy — plant 4–6 weeks before the last spring frost”). Windows are then simple, transparent arithmetic: window = anchor date + cited offset range, where the anchor is the median last-spring freeze (or median first-fall freeze for fall rules).

When authorities disagree, we do three things: keep every source visible on the crop page, choose the latest-starting (most frost-cautious) interval for the calculated window, and say so in the rule text. Point rules (“plant 2 weeks after the last frost”) become a practical 14-day planting span starting at that point; “at least N weeks after” becomes the two weeks following N. Indoor seed-starting windows are derived by subtracting the cited seed-to-transplant lead time from the start of the outdoor window. A window describes when to begin that planting action in a typical year; it is not a last-safe date, and later planting is often possible at the cost of harvest time.

Fall windows exist only where a source states a frost-relative fall rule (for example Purdue's fall table: “plant at least 4–8 weeks before the first fall frost”, with days-to-maturity caveats; or Minnesota's garlic guidance of one to two weeks afterthe first killing frost). We never invent days-to-maturity buffers, and a crop simply lacks a method when no cited source times it — you'll see an honest “not calculated” note instead of filler.

5 · Hardiness zones are context, never input

The USDA Plant Hardiness Zone Map (2023) reports the 1991–2020 average annual extreme minimum winter temperature for your ZIP code. It answers “which perennials survive winter here?” — it does not encode when the last spring frost falls, and two places in the same zone can have frost dates weeks apart. That is why the zone appears as a separate fact on results, and the window arithmetic never reads it. (This separation is enforced by an automated test in the codebase.)

6 · Date arithmetic

All internal math runs on day-of-year values over a fixed 365-day year, matching how the normals publish dates (Feb 29 never appears in the source data). Offsets that cross the new year wrap explicitly — relevant for fall garlic in mild climates where the first freeze lands in December. Displayed dates are approximate by construction; we round nothing to false precision beyond the day.

7 · Data updates & provenance

The datasets bundled into this build were retrieved on 2026-07-25. Each source file's URL, upstream release, retrieval time, byte size, and SHA-256 checksum is recorded in a machine-readable manifest, and a validation suite checks structure, ranges, ordering (e.g., the 10%/50%/90% dates must be properly ordered), coverage, and spot-checked climatology before a build ships. NOAA normals are static until the 2001–2030 release; the USDA map and Census files update on their own cadence. The sources page lists versions; the corrections page explains how to report a problem.

8 · What this site will not tell you

Climate normals summarize 1991–2020. They are not a forecast for this spring; a warm normal period does not prevent a late freeze this year. Your yard's frost pocket, slope, or urban edge can shift reality by days to weeks relative to the station. We therefore never claim “frost-safe” dates, never promise harvest dates, and we keep short-term weather out of the product on purpose — check a forecast before setting out tender transplants. This site also gives no pesticide, food-safety, or plant-medical advice; your county Cooperative Extension office is the authority for those.