Georgia cotton defoliation planner

Every label in the tank, checked against the forecast, one hour at a time.

Labelhand checks typed rules from three EPA labels against the National Weather Service hourly forecast. It shows what the forecast can decide and what still needs a check in the field.

Sources shown in the planner: EPA Pesticide Product Label System and api.weather.gov.

Starting the Tift forecast check...

one forecast, every label

The short route from tank to hour

  1. Pick the field and tank

    Choose one of ten Georgia cotton-county forecast points, then include one, two, or all three labels.

  2. Check the hourly forecast

    Your browser fetches the National Weather Service forecast and passes its periods to the Rust planner.

  3. Read the clause behind the hour

    Every blocked hour and field check names the product, label page, exact quote, and reason.

from the committed ship receipt

Measured

Coverage
98.4%63/64
Strict acting precision
84.6%11/13
Acting recall
100%10/10
Read the full measured table

checked against the airport station

Did the day-ahead forecast hold?

Between Oct 4, 9:19 PM and Oct 20, 6:07 PM Eastern, 2,581 of 3,820 point-hours had both a station observation and a forecast issued about 24 hours earlier. For those, the planner ran on the earlier forecast; where it said forecast-permitted, the label limits an airport weather station can measure were checked against what the station observed.

236 of 370checked tank-mix hours held up (64%).

  • All three in the tank236 held · 134 broke
  • Folex 6 EC alone527 held · 232 broke
  • FreeFall SC alone283 held · 174 broke
  • Super Boll alone480 held · 192 broke

Every broken tank-mix hour broke on wind: the station measured 10.3 mph to 16.1 mph where the labels allow at most 10 mph (6 wind clauses across the three labels). A day-ahead forecast is a plan, not a measurement: re-run the planner close to spray time, and measure wind at the boom as the labels require. See every hour that broke.

6 tank-mix clauses cannot be checked from a station (temperature inversions, rain expected within hours, the night-low tank rule) and are never counted as held. 1270 hours had no observation, no forecast from a day earlier, or no wind reading, and are left out. Stations: Southwest Georgia Regional Airport (KABY), Americus Souther Field Airport (KACJ), Douglas, Douglas Municipal Airport (KDQH), Moultrie, Moultrie Municipal Airport (KMGR), Moody Air Force Base (KVAD). Recompute with python tools/checkback.py --recorded data/nws_recorded on the recording; full detail in eval/results.

Forecast check-back, hours permitted a day ahead and checked against the station
TankHeldBrokeChecked
All three in the tank236134370
Folex 6 EC alone527232759
FreeFall SC alone283174457
Super Boll alone480192672

only code that runs

How it is built

Source

EPA PPLS label PDFs

Three accepted pesticide labels, verified by file hash.

Offline compile

Nemotron 3 Super + Ultra

Strict-schema extraction and typing on Nebius Token Factory.

Second reading

Nemotron Parse 2.0

Page OCR on a Nebius AI Cloud L40S job.

Deterministic gate

EPA modality floor + 3-run vote

PR Notice 2000-5 directives set the floor. Two matching run votes win.

Live input

National Weather Service

The browser fetches the hourly forecast from api.weather.gov.

Browser planner

Rust compiled to WebAssembly

Shipped rules and forecast periods produce 156 hourly states in the browser.

Runtime agent

Nemotron 3.5 Lightning + guard

Token Factory answers from planner tools. A deterministic final-answer guard checks it before display.