blissgarden.

Methodology & data sources

Every page on BlissGarden is computed from public climate and geographic data — no hand-entered dates. This page explains where the numbers come from, how we join them to each city, and the approximations involved.

01

Hardiness zones (USDA / PRISM)

USDA Plant Hardiness Zones come from the 2023 revision published by the PRISM Climate Group at Oregon State University, based on 1991–2020 climate normals and distributed as a zone per ZIP code.

Approximation:we assign each city the zone of the nearest ZIP-code centroid to the city’s center point. This is accurate at city granularity but is not the official parcel-level map.
02

Frost dates (NOAA 1991–2020 Climate Normals)

Average frost dates come from the NOAA NCEI U.S. Climate Normals, 1991–2020. For each weather station these give the probability of the last spring freeze and first fall freeze at several temperature thresholds (28°F, 32°F, and 36°F) and probability levels (10%, 50%, and 90%). The 50% probability at 32°F is the “average” frost date most gardeners use.

Station join: we attach each city to the nearest station — by great-circle (haversine) distance — that lies within 50 km and has a complete set of 32°F freeze normals. If no qualifying station is within 50 km, the city is not published: a hollow page is worse than none.
03

Nearby weather stations

Where a city has more than one qualifying station within 50 km, each place page lists the three nearest stations with complete 32°F normals — with their distance, elevation, and each station’s own last-spring and first-fall frost dates. The headline dates always come from the closest station.

When those stations disagree by more than a few days, that spread is real local microclimate variation — elevation, large bodies of water, and urban heat all shift frost dates within a single metro — not measurement error. Most sites hide this behind one interpolated number; we show it so you can judge which station best matches your own yard.

04

Cities & ZIP codes (U.S. Census)

City names, locations, and ZIP-area centroids come from the U.S. Census Bureau Gazetteer files, and population from the American Community Survey 5-year estimates.

Approximation: we treat each ZIP Code Tabulation Area (ZCTA) as equivalent to a ZIP code. ZCTAs line up closely with USPS ZIP codes but not perfectly, and some PO-box-only ZIPs have no ZCTA at all — those lookups resolve to the nearest published city.
05

Planting windows (crop offsets)

Planting dates are computed by shifting each city’s frost dates by crop-specific offsets — for example, “start tomatoes indoors 6–8 weeks before the last spring frost.” These offsets follow standard university-extension guidance and are the same everywhere; only the frost dates change from city to city.

06

Why some cities aren't listed

A city is published only when it has an assigned hardiness zone, a weather station within 50 km with complete 32°F freeze normals, and a population of at least 10,000. Cities that miss any of these are skipped rather than shown with incomplete data.

07

API & data access

Everything on these pages is available programmatically. The frost dates, hardiness zones, and crop planting windows are served as free, keyless JSON under /api/v1, and every place page offers a per-place CSV export. See the API documentation for endpoints, response shapes, and live examples.

08

Attribution & license

Hardiness zones: USDA-ARS and the PRISM Climate Group, Oregon State University. Free to use with attribution; this is a derived display, not the official map.
Frost normals: NOAA National Centers for Environmental Information — U.S. government work, public domain.
Places, ZCTAs, and population: U.S. Census Bureau — public domain.