Arte SheetsLearn. Try. Understand.

Agricultural Phenology & Crop Modeling

Capped Growing Degree Days (GDD) Maturity Formula

Calculate USDA / NOAA Modified Capped Growing Degree Days MAX(0, (MIN(T_max, T_upper) + MAX(T_min, T_base))/2 - T_base), Uncapped Bias, Remaining Thermal Units, and Days to Harvest.

Clamp both T_min and T_max before averaging—never after—under NOAA Modified GDD!

Plant development rates track accumulated thermal time rather than calendar dates, yet McMaster and Wilhelm (1997, Agricultural and Forest Meteorology) highlighted a pervasive spreadsheet discrepancy between Simple Uncapped GDD = MAX(0, (T_max + T_min) / 2 - T_base) and the standard USDA/NOAA Corn & Viticulture Modified GDD (50°F / 86°F or 10°C / 30°C): because photosynthesis stalls above Upper Stress Cutoff T_upper (86°F) while daytime warmth still drives growth even when pre-dawn T_min dips below T_base (50°F), Modified GDD clamps EACH daily extreme BEFORE averaging: GDD_cap = MAX(0, (MIN(T_max, T_upper) + MAX(T_min, T_base)) / 2 - T_base)!

Verify on Daily_High T_max = 94.0°F (B2), Daily_Low T_min = 46.0°F (B3), Base_Temp T_base = 50.0°F (B4), Upper_Cutoff T_upper = 86.0°F (B5), Season_To_Date_GDD = 2,160 GDD (B6), and Hybrid_Maturity_Target = 2,700 GDD (B7): Clamped extremes are MIN(94, 86) = 86°F and MAX(46, 50) = 50°F, giving Modified Capped GDD = (86 + 50) / 2 - 50 = 18.00 GDD/day (E2), whereas Simple Uncapped GDD gives (94 + 46) / 2 - 50 = 20.00 GDD/day (over-crediting heat stress by +2.00 GDD in E3!); Remaining Thermal Units to Black Layer equal 2,700 - 2,160 = 540.00 GDD (E4), projecting 540 / 18 = 30.00 days to physiological maturity (E5)!

Crop Phenology Metric (Tmax=94°F, Tmin=46°F, 50°F/86°F Bounds, 2,160/2,700 GDD)FormulaVerified Output
NOAA Modified Capped GDDMAX(0, (MIN(Tmax,Tup) + MAX(Tmin,Tb))/2 - Tb)18.00 GDD / day
Simple Uncapped GDDMAX(0, (T_max + T_min) / 2 - T_base)20.00 GDD / day (+2.0 Bias)
Remaining GDD to MaturityMAX(0, Target_GDD - Season_GDD)540.00 GDD
Projected Days to MaturityRemaining_GDD / Capped_Daily_GDD30.00 days

NOAA Modified Capped Daily GDD Formula

Validate T_max >= T_min and T_upper > T_base (works identically in Celsius 10°C / 30°C or Fahrenheit 50°F / 86°F)!

=LET(t_mx, B2, t_mn, B3, t_bs, B4, t_up, B5, IF(OR(t_mx < t_mn, t_up <= t_bs, B6 < 0, B7 <= 0), "Invalid Thermal Bounds", ROUND(MAX(0, (MIN(t_mx, t_up) + MAX(t_mn, t_bs)) / 2 - t_bs), 2)))

Dormant Frost-Day Guarded Days-to-Maturity Formula

Guard E2 = 0 (cold autumn frost day where T_max <= T_base -> 0.00 GDD) so Projected Days returns "Dormant (0 Daily GDD)" instead of #DIV/0!!

=IF(ISTEXT(E2), E2, IF(B6 >= B7, 0, IF(E2 = 0, "Dormant (0 Daily GDD)", ROUND((B7 - B6) / E2, 2))))

Try the example

Use the original values or change them to test your understanding.

Further reading