Soil Moisture Sensor Irrigation Scheduling

Turns a set of soil moisture sensor readings into an irrigation decision — when to irrigate and how much — the way a grower or crop consultant actually uses a probe with sensors at a few depths. Works with any number of sensors at any depths. Field capacity and wilting point are both things you can enter directly from your own sensor calibration or lab data — and if you don't know the wilting point, there's a soil-texture estimate as a fallback, but nothing here requires it.

1. Sensors & Readings

in

The bottom boundary of the deepest sensor's zone. Defaults to the deepest sensor's own depth.

Field capacity

Leave unchecked to enter a reading per sensor — e.g. what each sensor reads a day or two after a saturating rain or irrigation, once drainage has mostly stopped (the standard way to field-calibrate field capacity in place).

%

Permanent wilting point

%

Planning-level estimate (Table 2.3) — use a measured value when you have one.

Sensor placement

2. Available Water & Allowed Depletion

Available water capacity is derived automatically from field capacity and wilting point above — no separate estimate needed.

50% of AWC

3. Scheduling Decision

Irrigation scheduling comes down to comparing two depths: how much water has already been depleted from the profile (SWD), and how much you're willing to let it deplete before stressing the crop (MAD). When SWD reaches MAD, it's time to irrigate.

0.15 in/d

Estimates how many days until SWD catches up to MAD.

85%

Converts the net depth needed into a gross depth to run the system for (see the ELQ calculator).

About this calculator

Each sensor's reading is assumed to represent the soil halfway to its neighboring sensors — the standard "midpoint method" for turning point readings into a profile total (see USU Extension's soil sensor setup guide). The shallowest sensor's zone extends up to the surface; the deepest sensor's zone extends down to the root zone depth you set above.

thickness_i = midpoint(d_(i-1), d_i) to midpoint(d_i, d_(i+1))

Multiplying each sensor's water content by its zone's thickness and summing gives the total water in the profile at that moment — done once for field capacity and once for wilting point, with available water capacity simply the difference:

D_total = sum(theta_i x thickness_i); AWC = FC - PWP

Soil water depletion (SWD) is how much water has already been used from the profile since it was last at field capacity — which is also exactly the depth you'd need to apply to refill it. Management allowed depletion (MAD) is how much of the available water capacity you're willing to let the crop use before it stresses. Irrigation scheduling is simply comparing the two:

SWD = FC - theta_v,current   —   irrigate when SWD ≥ MAD

A technical note on precision: the absolute profile totals (field capacity, current water) depend on exactly how zone thicknesses are assigned, so two reasonable conventions can give slightly different absolute numbers. SWD — the difference that actually drives the schedule — is not sensitive to that choice, as long as it's applied consistently to every reading.

For example: a 2-ft root zone with sensors at 6, 12, and 24 in, reading 32%, 29%, 34% at field capacity and 24%, 27%, 29% right now, with a 50% MAD: SWD works out to about 1.2 in, below the MAD of 2.1 in — still about 0.9 in of room before it's time to irrigate.