Soilclock

How the soil estimate works

Most towns have no soil sensor. We estimate soil temperature from air temperature with a simple model, fitted and tested against USDA soil sensors. Here is the model, its error, and where it goes wrong.

The model in one paragraph

Shallow soil follows the air, but slowly: it smooths out day-to-night swings and lags a few days behind warm and cold spells. It also runs a little warmer than the air in fall, as stored summer heat comes back out, and close to the air in spring. Our estimate captures exactly those three things. Each day, the soil value moves a fixed fraction of the way toward that day's mean air temperature; a seasonal offset is then added. Under snow and frozen ground, shallow soil stays near 32°F however cold the air gets, so air below freezing is treated as 32°F.

The formula

For each day t, with daily mean air temperature A (the average of the high and low), and day of year d:

  • lagt = lagt−1 + k × (max(At, 32) − lagt−1)
  • soilt = lagt + a + c·cos(2πd/365.25) + s·sin(2πd/365.25)
Depthkacs
2 inches0.30.249-1.3293-0.2726
4 inches0.2251.6705-1.5297-0.314

A k of 0.3 means the 2-inch soil closes about 30% of the gap to the air each day; 4-inch soil, at 0.225, responds more slowly, as it should.

How it was fitted

We used the USDA Natural Resources Conservation Service's Soil Climate Analysis Network (SCAN): 190 active stations in the lower 48 states that measure soil temperature at 2 and 4 inches and air temperature at the same site. Daily data from 2016–2021 was used to choose the parameters (k and the freezing floor by grid search, the seasonal offset by least squares). Sensor readings were cleaned first: values outside 5–110°F, flat-lined sensors and one-day spikes were dropped.

How well it works

We then tested it on 2022–2025, years the fit never saw.

TestAverage errorBiasWithin 3°FSpring 55°F date, median miss
2 in, sensor's own air temperature3.3°F-0.1°F58%3 days
4 in, sensor's own air temperature3.3°F-0.1°F58%5 days
2 in, nearest airport station (as on city pages)4.3°F+2.1°F50%6 days
4 in, nearest airport station4.3°F+2.2°F50%7 days

The last two rows are the honest test of what you see on a city page: the model driven by the nearest airport weather station (within 40 km), compared with a SCAN sensor's soil. That was possible at 82 sensor sites. The estimate runs about 2.1°F warmer than those sensors, and crosses 55°F in spring about 9 days earlier on average. Part of that is real: airports and towns are warmer than the open rural ground where sensors sit, and so are most lawns near buildings and pavement. We have not removed it.

What to take from this: on a single day, expect the estimate to be within 3 to 4°F of a careful measurement in open lawn. Trends, the dates of thresholds, and comparisons with the same date in other years are more reliable than any single value.

From soil estimates to lawn dates

For every city we run the model over daily weather since late 2004 from its airport station (272 stations, from the Regional Climate Centers' ACIS service) and record, year by year, when each threshold was crossed. A threshold counts as crossed when the 5-day average (7-day for 4-inch thresholds) reaches it:

  • Crabgrass pre-emergent opens: 2-inch soil reaches 50°F, from February on.
  • Crabgrass window closes: 2-inch soil reaches 55°F after at least 250 growing degree days (base 32°F) have built up, so a brief early warm spell does not count.
  • Cool-season seeding: from when 4-inch soil falls below 70°F (not before mid-August) until it falls below 55°F; 50°F is the hard stop.
  • Warm-season seeding: 4-inch soil reaches 65°F.
  • Fall pre-emergent for annual bluegrass: before 4-inch soil falls below 70°F.
  • Late-fall feeding: between 4-inch soil at 50°F and 40°F. Warm-season dormancy: 4-inch soil below 55°F.
  • Freezes: the last spring and first fall day with an observed low of 32°F or colder.

“Typical” is the median year from 2005 to last year; “early” and “late” are the 10th and 90th percentile years. This year's status compares the same thresholds with this year's estimates. “Normal for the date” is the average of our estimate for that date (±3 days) over the same years; the air normals are NOAA's official 1991–2020 normals for the station.

Forecast

The dashed part of each chart runs the National Weather Service 7-day forecast highs and lows for the city through the same model. Forecast soil values inherit the forecast's own error, which grows with each day.

When a page is held back

A city page is published for search engines only when its station has at least 15 years of usable daily data and has reported within the last 4 days. If a station stops reporting, its page stays online with a notice but is marked “noindex” and drops out of the sitemap until data returns. Cities that would share a weather station with a larger neighbor do not get their own page, because they would only repeat the same numbers.

Known limits

  • The model knows nothing about your soil type, moisture, shade, mulch or irrigation. Wet soil and shaded soil warm more slowly in spring.
  • Long, deep snow cover keeps soil warmer than the model assumes in very cold places.
  • Thresholds are rules of thumb from extension research; varieties and products differ. Always follow the label.

Model last fitted on 2026-11-03. The code that fits and tests it reruns on demand, so these numbers will change if the data does.