How it works
Every date on this site comes from public data and a rule you can check. Here are both.
Frost dates
Frost dates are from the NOAA U.S. Climate Normals for 1991–2020, which give the probability of a 32°F freeze at each weather station. We use:
- Typical last spring frost: the date after which there's a 50% chance of another freeze.
- 9-in-10 safe date: the date after which there's only a 10% chance.
- Typical first fall frost: the date by which there's a 50% chance of the first freeze.
Most stations are at airports. Airports in valley bottoms can run colder than nearby hillsides, and city centers can run warmer. Your own garden may differ by a week or more.
Planting dates
Each crop gets the later of two dates:
- A regional date for when the soil is usually ready, taken from Oregon State University Extension's March, April and May garden calendars, its Central Oregon vegetable calendar, and its soil temperature guidance. Washington areas use the closest matching Oregon region.
- A frost check against your local typical last frost: hardy early crops up to 6 weeks before it, frost-tolerant transplants up to 4 weeks before, warm-season transplants not before it, and warm-season seeds a week after it.
Seed-starting dates count back from the outdoor date (for example, tomatoes 6–8 weeks ahead). Fall planting dates count back from your typical first fall frost, capped at October 15 because fall crops need daylight to grow, not just mild weather. Warm-season crops are flagged when planting at the window's start leaves too few days before fall frost for a typical variety to produce.
Regional dates used
| Region | Hardy early crops | Cool transplants | Warm seeds | Warm transplants | Garlic |
|---|---|---|---|---|---|
| Coast | Mar 25 | Apr 1 | May 15 | May 20 | Oct 1 – Nov 15 |
| West-side valleys | Mar 1 | Mar 15 | May 10 | May 10 | Oct 1 – Nov 15 |
| Columbia Basin and low eastern valleys | Mar 20 | Apr 1 | Apr 25 | May 1 | Oct 1 – Nov 1 |
| Inland Northwest | Apr 1 | Apr 15 | May 15 | May 20 | Sep 25 – Oct 31 |
| High desert and mountains | Apr 20 | Apr 15 | May 25 | May 25 | Oct 15 – Nov 15 |
Station data
| Area | NOAA station | Last frost (50%) | Last frost (10%) | First frost (50%) | First frost (10%) |
|---|---|---|---|---|---|
| Portland, OR | Portland International Airport (USW00024229) | Mar 13 | Apr 1 | Nov 19 | Oct 29 |
| Gresham, OR | Portland-Troutdale Airport (USW00024242) | Mar 16 | Apr 12 | Nov 20 | Oct 30 |
| Wilsonville and Canby, OR | Aurora State Airport (USW00094281) | Mar 16 | Apr 7 | Nov 14 | Oct 27 |
| Salem, OR | Salem McNary Field (USW00024232) | Apr 3 | Apr 27 | Nov 1 | Oct 16 |
| Eugene, OR | Eugene Mahlon Sweet Airport (USW00024221) | Apr 11 | May 9 | Oct 23 | Oct 6 |
| Roseburg, OR | Roseburg Regional Airport (USW00024231) | Mar 19 | Apr 13 | Nov 20 | Oct 27 |
| Medford, OR | Medford Rogue Valley Airport (USW00024225) | Apr 8 | Apr 30 | Oct 29 | Oct 14 |
| Astoria, OR | Astoria Regional Airport (USW00094224) | Mar 26 | Apr 18 | Nov 11 | Oct 22 |
| Coos Bay and North Bend, OR | North Bend Regional Airport (USW00024284) | Feb 21 | Mar 25 | Dec 9 | Nov 12 |
| Bend and Redmond, OR | Redmond Roberts Field (USW00024230) | Jun 9 | Jun 26 | Sep 14 | Sep 1 |
| Klamath Falls, OR | Klamath Falls Airport (USW00094236) | Jun 9 | Jun 26 | Sep 18 | Sep 4 |
| Burns, OR | Burns Municipal Airport (USW00094185) | Jun 11 | Jun 28 | Sep 6 | Aug 21 |
| Baker City, OR | Baker City Municipal Airport (USW00024130) | May 25 | Jun 16 | Sep 15 | Sep 2 |
| Pendleton, OR | Pendleton Airport (USW00024155) | Apr 26 | May 10 | Oct 16 | Oct 1 |
| The Dalles, OR | The Dalles Municipal Airport (Dallesport, WA) (USW00024219) | Apr 11 | Apr 28 | Oct 26 | Oct 9 |
| Seattle and Tacoma, WA | Seattle-Tacoma International Airport (USW00024233) | Mar 2 | Mar 23 | Nov 23 | Nov 6 |
| Everett, WA | Everett Paine Field (USW00024222) | Mar 9 | Mar 29 | Nov 17 | Oct 31 |
| Bellingham, WA | Bellingham International Airport (USW00024217) | Mar 31 | Apr 18 | Oct 30 | Oct 12 |
| Olympia, WA | Olympia Airport (USW00024227) | Apr 29 | May 15 | Oct 14 | Sep 28 |
| Vancouver, WA | Vancouver Pearson Field (USW00094298) | Mar 29 | Apr 18 | Nov 9 | Oct 22 |
| Aberdeen and Hoquiam, WA | Hoquiam Bowerman Airport (USW00094225) | Mar 30 | Apr 25 | Nov 14 | Oct 22 |
| Forks, WA | Quillayute Airport (USW00094240) | Apr 20 | May 10 | Oct 26 | Oct 2 |
| Yakima, WA | Yakima Air Terminal (USW00024243) | May 8 | May 27 | Oct 4 | Sep 23 |
| Wenatchee, WA | Wenatchee Pangborn Airport (USW00094239) | Apr 8 | Apr 23 | Oct 24 | Oct 12 |
| Tri-Cities (Pasco, Kennewick, Richland), WA | Pasco Tri-Cities Airport (USW00024163) | Apr 27 | May 10 | Oct 11 | Sep 28 |
| Walla Walla, WA | Walla Walla Regional Airport (USW00024160) | Mar 27 | Apr 22 | Oct 31 | Oct 15 |
| Moses Lake, WA | Moses Lake Grant County Airport (USW00024110) | Apr 27 | May 11 | Oct 8 | Sep 29 |
| Ellensburg, WA | Ellensburg Bowers Field (USW00024220) | Apr 28 | May 12 | Oct 7 | Sep 26 |
| Spokane, WA | Spokane International Airport (USW00024157) | Apr 26 | May 10 | Oct 12 | Sep 29 |
| Omak and Okanogan, WA | Omak Airport (USW00094197) | Apr 30 | May 15 | Oct 7 | Sep 23 |
Spotted something that looks wrong? Email info@rainlinegarden.org.