Guide

County-Level Growing Degree Days API

Daily and cumulative GDD for corn, soybeans, wheat, cotton, and sorghum — for every U.S. county.

One API call returns crop-specific Growing Degree Days for any U.S. county — computed daily from PRISM temperature data using standard base and ceiling temperatures for each crop. Pull season-to-date totals, daily time series, or a national snapshot in a single request.

Source: PRISM Climate Group, Oregon State University  ·  Coverage: 3,100+ U.S. counties  ·  Updated: Daily (1-day provisional lag)

On this page
  1. What are Growing Degree Days?
  2. Crop-specific base and ceiling temperatures
  3. GDD and crop phenology
  4. Use cases
  5. API endpoints & examples
  6. Frequently asked questions
  7. Get started

What are Growing Degree Days?

Plants don't develop on a calendar — they develop in response to heat. A corn plant doesn't reach tasseling in a fixed number of days after planting; it reaches tasseling after accumulating a fixed amount of heat. Growing Degree Days (GDD) — also called heat units or growing degree units (GDU) — measure that heat accumulation in a way that predicts crop development far better than elapsed calendar time.

The daily GDD formula clamps the observed high and low temperatures to crop-specific limits, then computes the average above a base temperature:

daily_GDD = max(0, ( min(tmax, ceiling) + max(tmin, base) ) / 2 − base)

The ceiling prevents extreme heat days from over-counting (corn's development actually slows above 86°F). The base prevents cold nights from generating negative GDD. The result is a daily value that, accumulated over the season, tells you exactly where the crop is in its development cycle.

R2Data2 computes GDD daily from PRISM county-level temperature data — the same 4 km gridded, area-weighted product used for the precipitation API — and stores separate GDD values for five major crops in every record.

Crop-specific base and ceiling temperatures

Each crop has a different temperature range where development occurs. The base and ceiling values used by R2Data2 match USDA and university extension standards:

CropBase tempCeiling tempAPI field
Corn50°F (10°C)86°F (30°C)gdd_corn
Soybeans50°F (10°C)86°F (30°C)gdd_soybeans
Winter Wheat32°F (0°C)86°F (30°C)gdd_wheat
Cotton60°F (15.6°C)100°F (37.8°C)gdd_cotton
Sorghum50°F (10°C)100°F (37.8°C)gdd_sorghum

Cotton's higher base and ceiling reflect its tropical origin — it develops meaningfully only in warm conditions and isn't slowed by temperatures that cap corn and soybean accumulation. Wheat's low base of 32°F is because it can accumulate heat (vernalize) through winter, which matters for timing the spring growth flush.

GDD and crop phenology

GDD is most valuable as a phenological clock — it tells you what growth stage a crop has reached, independent of planting date variation and calendar noise. The key milestones for corn (accumulated from planting, base 50°F) illustrate this well:

Cumulative GDD (corn)Growth stageAgronomic significance
~100V3 (3-leaf)Seedling establishment complete
~350V6 (6-leaf)Last opportunity for side-dress nitrogen
~800VT (tasseling)Pollen shed begins — heat stress window opens
~1,000R1 (silking)Pollination — most critical period for yield
~1,400R4 (dough)Kernel filling well underway
~1,750R5 (dent)Kernel dent visible, yield largely set
~2,700R6 (maturity)Black layer forms, physiological maturity

A county that has accumulated only 600 corn GDD by July 10 is weeks behind a county at 850 GDD — the first is approaching tasseling while the second is already pollinating. That difference has direct implications for drought vulnerability (the 850-GDD county is in the highest-stress window) and harvest timing (the 600-GDD county faces higher drydown cost).

GDD predicts phenology, not stress. Season-to-date GDD tells you where the crop is in its development cycle. It doesn't directly indicate whether conditions were favorable — a fast-accumulating season can coincide with drought if temperatures are high and rainfall is low. For stress signals, pair GDD with the Crop Stress Index, drought data, and soil moisture.

Use cases

Precision ag: real-time crop stage estimation

Agronomic recommendations are stage-specific: nitrogen timing, fungicide applications, and irrigation scheduling all depend on where the crop is in its growth cycle. With county-level GDD and known planting dates, precision ag platforms can estimate crop stage continuously through the season without waiting for ground scouting reports.

Use the cumulative endpoint with start_date set to estimated planting date for that county. Compare the returned season-to-date total against the phenological milestones above to determine current stage — and flag counties approaching the VT/R1 window during drought or high-VPD conditions.

Crop insurance: season viability and harvest timing

A county that reaches August with insufficient accumulated GDD to reach physiological maturity before the first killing frost has a viable claim basis regardless of whether other stress signals fired. GDD is the agronomic standard for evaluating whether a growing season was sufficient for the planted crop to complete its cycle.

Historical GDD data also supports loss adjustment: if a farmer claims drought stress during the pollination window, the GDD time series confirms whether the county was actually in the R1 stage during the claimed period — or whether pollination had already occurred before the drought developed.

Pest and disease pressure forecasting

Many agricultural pests and pathogens have temperature-driven life cycles that parallel crop development. Corn rootworm emergence, soybean aphid generations, and gray leaf spot pressure in corn all correlate with accumulated GDD. AgTech platforms that track GDD can automate scouting alerts and fungicide timing recommendations without relying on calendar dates.

Commodity analytics: ahead-of-normal vs. behind-normal seasons

An early-season GDD deficit signals a late-developing crop that faces higher frost risk at harvest and may require drydown in the field longer than average. An above-normal GDD accumulation by mid-July is a bullish yield signal if accompanied by adequate moisture — the crop reaches the critical grain-fill period ahead of schedule with lower late-season weather risk.

Use the history endpoint with a prior-year date range to build year-over-year comparisons for any county in your model.

API endpoints

All GDD endpoints require an API key in the X-API-Key header. The free tier provides the last year of history for any county, with 100 requests/day.

Daily time series

Returns daily GDD for all five crops for a single county, newest first. Useful for charting heat accumulation over a season or computing custom rolling windows.

GET /gdd/county/{fips}
# Last 7 days of GDD for Champaign County, IL (FIPS 17019)
curl "https://r2data2.com/gdd/county/17019?limit=7" \
  -H "X-API-Key: agr_your_key_here"
{
  "fips": "17019",
  "records": [
    {
      "fips": "17019",
      "obs_date": "2025-07-10",
      "gdd_corn": 18.4,
      "gdd_soybeans": 18.4,
      "gdd_wheat": 27.2,
      "gdd_cotton": 12.1,
      "gdd_sorghum": 21.9
    }
  ]
}

Use start_date and end_date for a specific date range. limit caps results (default 365). Costs 1 request per record returned.

Season-to-date cumulative

The most useful endpoint for phenology work — returns the summed GDD for all five crops over any date window in a single 1-request call. Set start_date to January 1 of the current year (or to estimated planting date) for a season-to-date total.

GET /gdd/county/{fips}/cumulative
# Season-to-date corn GDD for Champaign County, IL (Jan 1 → today)
curl "https://r2data2.com/gdd/county/17019/cumulative?start_date=2025-01-01" \
  -H "X-API-Key: agr_your_key_here"
{
  "fips": "17019",
  "start_date": "2025-01-01",
  "end_date": "2025-07-10",
  "gdd_corn": 892.3,
  "gdd_soybeans": 892.3,
  "gdd_wheat": 1847.6,
  "gdd_cotton": 411.0,
  "gdd_sorghum": 1023.7
}
892 corn GDD by July 10 puts this county just past tasseling (~800 GDD) and approaching silk (~1,000 GDD) — the highest-stress window for drought and heat impact on yield. A county at 700 corn GDD on the same date is 2–3 weeks behind and hasn't yet reached its critical period.

To compare against a prior year, make a second call with the same start_date / end_date shifted back 365 days. Starter plans and above have multi-year history access for year-over-year comparisons.

National snapshot

Returns daily GDD for all counties on a specific date. Useful for building national heat accumulation maps or identifying geographic divides in seasonal pace — e.g., which counties are a week ahead vs. behind in GDD accumulation.

GET /gdd/snapshot/{obs_date}
Growth plan required. The snapshot endpoint returns up to 3,100 county records per call and costs 1 request per county returned.
# Daily GDD for all counties on July 10, 2025 (sorted by corn GDD descending)
curl https://r2data2.com/gdd/snapshot/2025-07-10 \
  -H "X-API-Key: agr_your_key_here"
{
  "obs_date": "2025-07-10",
  "count": 3142,
  "records": [ /* sorted by gdd_corn descending */ ]
}

See the Data Dictionary for the full field reference and API Docs for interactive request testing.

Frequently asked questions

Where does the temperature data come from?

GDD is computed from PRISM daily maximum and minimum temperatures — the same 4 km gridded dataset used for the precipitation API. PRISM area-weighted county averages for tmax and tmin are the inputs to the GDD formula. This means county GDD values reflect the spatial distribution of temperatures across the county, not just a single weather station.

Why do corn and soybeans have identical GDD values?

They use the same base temperature (50°F) and ceiling temperature (86°F), so the daily formula produces the same result. The crops differ significantly in how much cumulative GDD they need to reach each phenological stage — corn needs roughly 2,700 GDD to reach maturity from planting, while soybeans are more variable and day-length sensitive. The identical daily accumulation values are a feature of the matching temperature parameters, not a data issue.

What start date should I use for the cumulative endpoint?

It depends on your use case. For a true season-to-date total anchored to January 1, use start_date=YYYY-01-01. For a planting-date-anchored accumulation — which is more meaningful for phenological stage estimation — use the county's approximate planting date. USDA NASS crop progress data (available via R2Data2's crop progress endpoint) gives weekly state-level planting progress you can use to estimate county planting dates.

How far back does the historical data go?

GDD is derived from PRISM, which has daily county-level records going back to 1981. The free tier provides the last year; Starter unlocks 5 years, Growth 10 years, and Pro plans have access to the full 40+ year archive — enough to compute GDD normal values, percentile rankings, and return periods for any county.

Why isn't GDD included in the Crop Stress Index?

The Crop Stress Index components were selected based on their correlation with county-level yield deviations from trend (NASS 2001–2024). GDD showed near-zero correlation across all five crops when tested. The reason: GDD accumulation and yield loss are largely independent. A fast-heat season can produce high yields if moisture is adequate, or catastrophic losses if drought coincides with the critical pollination window. GDD tells you when the crop reaches each stage; the stress signals tell you what conditions the crop encountered when it got there.

Can I use GDD for crops beyond the five covered?

The API provides GDD for corn, soybeans, winter wheat, cotton, and sorghum — the five major field crops with well-established base/ceiling temperature standards. If you work with other crops (sunflowers, canola, sugar beets), the daily time series endpoint returns raw temperature data via the precipitation API, from which you can compute custom GDD using your own base temperatures.

Ready to query growing degree days?

Get a free API key in under a minute. No credit card required.
Daily and cumulative GDD for every U.S. county — five crops, PRISM-derived, updated daily.