Public data product Release 2026-07-16

ZIP/ZCTA Growing Degree Days

A neutral, reproducible base-50°F GDD table built from NOAA daily temperature observations and U.S. Census ZCTA representative points. Download it once; no account, API key, or per-ZIP requests.

GDD 50°F derived / open
Rows
33,642
Coverage
99.94%
Observed through
2026-07-13
Generated
July 16, 2026
01

Release desk

Take the whole dataset

CSV and Parquet carry the same 20-field contract and row order.

Need a frozen citation target? Open immutable release 2026-07-16.

Use this correctly

ZCTA geography, not a postal boundary

ZIP Codes and ZCTAs are not interchangeable.

USPS ZIP Codes are mail-delivery routes. Census ZIP Code Tabulation Areas are generalized statistical areas. This release uses Census ZCTA codes and representative points for the 50 states and District of Columbia; it is not suitable for address validation or determining USPS delivery coverage.

Each row reports annual heat accumulation from January 1 through the selected station's latest complete TMAX/TMIN observation. 20 ZCTAs in this release are retained with null measurements and an explicit reason instead of being silently omitted.

Reproducible method

One station, chosen from an eight-station fallback chain

daily GDD max(0, (Tmax + Tmin) / 2 − 50°F)
  1. 1

    Start with Census ZCTA representative latitude/longitude coordinates.

  2. 2

    Order the nearest 8 active NOAA GHCN-Daily stations by Haversine distance.

  3. 3

    Select the first candidate with complete, fresh source-year TMAX and TMIN observations.

  4. 4

    Accumulate base-50°F daily GDD from January 1 and publish station, distance, rank, dates, and freshness alongside the value.

A station is fresh when its last complete observation is no more than 7 UTC days old at generation. This data product contains no modeled soil temperature.

Machine-readable contract

Data dictionary

The same definitions are available in schema.json.

FieldType / unitsDefinition
zcta5 string Five-character U.S. Census ZIP Code Tabulation Area code; this is not a USPS delivery-area boundary.
state_fips string Two-character state FIPS code assigned from the county containing the largest share of ZCTA land area.
state_code string USPS-style two-letter state or territory abbreviation for grouping only.
centroid_latitude_degrees numberdecimal degrees Representative latitude from the Census ZCTA Gazetteer.
centroid_longitude_degrees numberdecimal degrees Representative longitude from the Census ZCTA Gazetteer.
gdd_base_f integerdegrees Fahrenheit Base temperature subtracted from each daily mean; fixed at 50°F for this release.
accumulation_start_date stringISO 8601 date Calendar date at which annual GDD accumulation begins, always January 1 of source_year.
observation_start_date string | nullISO 8601 date First NOAA observation date with both TMAX and TMIN at the selected station.
observation_end_date string | nullISO 8601 date Last NOAA observation date with both TMAX and TMIN at the selected station.
days_with_observations integer | nulldays Count of source-year days with both TMAX and TMIN used in the accumulation.
cumulative_gdd_f_degree_days number | nullbase-50°F degree-days Sum of max(0, (TMAX°F + TMIN°F) / 2 - 50°F) over available observation days.
station_id string | null GHCN-Daily station identifier selected for this ZCTA.
station_distance_km number | nullkilometres Haversine distance from the Census ZCTA representative point to the selected station.
fallback_rank integer | null1-based rank Selected station rank by distance; 1 is the nearest candidate and values above 1 are fallbacks.
station_candidate_count integerstations Maximum number of nearest active stations considered by the release pipeline.
freshness_status string fresh, stale, or unavailable relative to freshness_max_lag_days at generation time.
freshness_age_days integer | nulldays Whole UTC days from observation_end_date to release generation; null when data are unavailable.
freshness_max_lag_days integerdays Maximum accepted observation lag used by the release pipeline.
data_available boolean True when a fresh station record produced a GDD value for the ZCTA.
unavailable_reason string | null Machine-readable reason for a missing GDD value: no_recent_station_data or no_station_data.

State summary fields

state-summary.csv uses the separate, machine-readable state summary schema.

FieldType / unitsDefinition
state_fips string Two-character state FIPS code.
state_code string Two-letter state or District of Columbia abbreviation.
total_zctas integerZCTAs Count of public ZCTA rows assigned to the state.
available_zctas integerZCTAs Count of ZCTAs with a fresh GDD50 value.
unavailable_zctas integerZCTAs Count of ZCTAs retained without a fresh GDD50 value.
direct_station_zctas integerZCTAs Available ZCTAs that used the nearest station candidate.
fallback_station_zctas integerZCTAs Available ZCTAs that used candidate rank 2 or greater.
min_gdd_f_degree_days number | nullbase-50°F degree-days Minimum cumulative GDD50 among available ZCTAs; null when none are available.
median_gdd_f_degree_days number | nullbase-50°F degree-days Median cumulative GDD50 among available ZCTAs; null when none are available.
mean_gdd_f_degree_days number | nullbase-50°F degree-days Arithmetic mean cumulative GDD50 among available ZCTAs; null when none are available.
max_gdd_f_degree_days number | nullbase-50°F degree-days Maximum cumulative GDD50 among available ZCTAs; null when none are available.
latest_observation_date string | nullISO 8601 date Latest selected-station observation end date in the state; null when none are available.

Source ledger

Derived here; observed and mapped upstream

Temperature observations NOAA GHCN-Daily, source year 2026 Source file
Geography 2023 U.S. Census ZCTA Gazetteer Source file
State assignment 2020 Census ZCTA5-to-County Relationship File Source file
Project contribution Mapping, GDD computation, quality metadata, schema, QA, documentation, and compilation Data terms

NOAA and Census supplied the underlying government observations and geography. This project did not collect thermometer observations and does not imply endorsement by NOAA, Census, or the U.S. government.

Known edges

What this release cannot tell you

  • ZCTA representative points simplify real within-area microclimates and elevation differences.
  • The nearest fresh station may be distant, especially in sparse networks; inspect station_distance_km and fallback_rank.
  • Missing TMAX or TMIN days are skipped, so days_with_observations may be below elapsed calendar days.
  • GDD50 is a heat-accumulation index, not observed soil temperature, a forecast, or a universal biological threshold.
  • Puerto Rico and other territories are excluded until the station-ingestion country-code boundary is expanded and validated.
  • State assignment for cross-state ZCTAs uses the state containing the largest Census land-area share.

Stable references

Version and citation policy

The canonical latest page resolves a small R2 manifest and moves only after every remote object verifies. Dated R2 prefixes never change; a different byte at an existing version makes publishing fail. Checksums cover every distribution, schema, and metadata file.

Preferred citation WhenToApplyPreEmergent.com (2026-07-16). WhenToApplyPreEmergent ZIP/ZCTA Growing Degree Days (base 50°F) [Data set]. https://whentoapplypreemergent.com/datasets/gdd/2026-07-16/