Source
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.
one forecast, every label
The short route from tank to hour
Pick the field and tank
Choose one of ten Georgia cotton-county forecast points, then include one, two, or all three labels.
Check the hourly forecast
Your browser fetches the National Weather Service forecast and passes its periods to the Rust planner.
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
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.
| Tank | Held | Broke | Checked |
|---|---|---|---|
| All three in the tank | 236 | 134 | 370 |
| Folex 6 EC alone | 527 | 232 | 759 |
| FreeFall SC alone | 283 | 174 | 457 |
| Super Boll alone | 480 | 192 | 672 |
only code that runs
How it is built
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