Ag Weather-Yield Risk Reference Data avatar

Ag Weather-Yield Risk Reference Data

Pricing

from $4.00 / 1,000 weather snapshot returneds

Go to Apify Store
Ag Weather-Yield Risk Reference Data

Ag Weather-Yield Risk Reference Data

Real NOAA daily weather station data and USDA county crop-yield history, plus standard derived indices (GDD, rainfall deficit) — a public-data reference layer, not yield prediction or satellite-based underwriting scoring.

Pricing

from $4.00 / 1,000 weather snapshot returneds

Rating

0.0

(0)

Developer

joseph fadero

joseph fadero

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

A public-data reference layer — not yield prediction, not satellite imagery, not underwriting-grade risk scoring. The parametric insurance market (agriculture-driven) is projected to reach $29.3B by 2029, with a documented uninsured-loss gap ($9.4B of 2024 US crop/rangeland losses were uninsured). The PRD for this actor was explicit that this is the lowest-confidence idea in the whole build program, and that real commercial value in this space (satellite imagery, ML yield prediction) is beyond scraping scope — this is deliberately scoped to real weather-station data, real historical yield statistics, and the standard, well-documented derived indices computed from them.

Phase 1 — the go/no-go decision, and what it actually found

The PRD required a go/no-go decision before any further build: shelve this actor rather than force a weak version if clean, free sources couldn't be confirmed for even one well-documented market. Both real sources needed for the US market were confirmed live:

SourceVerdictWhat was actually found
NOAA GHCN-Daily (weather)✅ GoReal, free, keyless per-station daily CSV files — no signup, no token, no rate limit hit. Confirmed live: 80 years of daily data for a major agricultural station (Des Moines, IA), current through essentially today. Genuine US federal public-domain data.
USDA NASS Quick Stats (yield)✅ Go, via a different path than expectedThe documented query API (quickstats.nass.usda.gov) needs a free but email-delivered key — and that domain was unreachable entirely during this build's research (a real connectivity issue, not necessarily permanent, but not depended on). The real fix: NASS also publishes a fresh, complete, keyless bulk data file every single day — confirmed live, 23.8 million real rows, every crop/county/year back to the 1920s in places. Used instead of the API, avoiding any key/signup requirement for this actor at all.

A source seriously considered and ruled out: Open-Meteo's historical weather API is genuinely keyless and returns real, clean data — but its free tier's terms of use explicitly restrict it to non-commercial use, and this actor is a commercial product. NOAA's own data has no such restriction (genuine public domain), so it was used instead — a real terms-of-use check, not an oversight.

The real tradeoff: no API keys needed, but yield_history is slow

Avoiding NASS's key-signup friction means every yield_history call streams and filters a fresh ~1.1GB government file server-side (never held fully in memory — piped through gunzip and read line-by-line). Confirmed live this takes roughly 1-4 minutes depending on network conditions. Results are cached in a named key-value store per day+state+county+commodity, so repeat queries against the same day's file are fast (confirmed live: 66 seconds cold, 1.3 seconds cached, same correct 160-record result both times). weather_snapshot and index_calculation modes are fast (a few seconds) — this cost is specific to yield_history.

Coverage: 5 real, individually-verified counties — not global geocoding

Per the PRD's own recommended v1 scope ("at least one well-documented market"), this covers 5 major US agricultural counties across the corn/soybean/wheat belt, each with an independently-verified NOAA station AND confirmed-matching USDA state/county name strings:

Region keyCountyNOAA stationPrimary crops
story_county_iaStory County, IADes Moines Intl AirportCorn, soybeans
champaign_county_ilChampaign County, ILChampaign/Urbana WillardCorn, soybeans
sangamon_county_ilSangamon County, ILSpringfieldCorn, soybeans
lancaster_county_neLancaster County, NELincoln AirportCorn, soybeans
sedgwick_county_ksSedgwick County, KSWichitaWinter wheat

Not exhaustive geocoding — adding a county means adding one verified station+county-name pair to src/data/regions.ts, the same pattern used for these 5, not a structural rebuild.

Modes

ModeBehavior
weather_snapshotReal NOAA daily precipitation/TMAX/TMIN for a date range — one record per day per metric
yield_historyReal USDA county-level annual yield for a crop, every year on record, both GRAIN and SILAGE practices where NASS reports both separately
index_calculationA derived index computed from real weather data: growing_degree_days (base 10°C, the standard corn/soybean convention), cumulative_precipitation, or rainfall_deficit (actual vs. the same station's own 10-year historical average for the same calendar period — a real, defensible baseline computed from data already being fetched, not a separate unverified "normals" product)

All three index formulas were verified against manually-computed test cases before shipping (e.g. a single day's GDD hand-calculated from its own TMAX/TMIN and compared to the function's output).

Output schema

{
"region": "string",
"cropType": "string | null",
"dataType": "weather | yield_history | derived_index",
"value": "number | null",
"unit": "string",
"periodStart": "string",
"periodEnd": "string",
"historicalPercentile": "number | null",
"sourceUrl": "string",
"checkedAt": "ISO timestamp",
"status": "success | failed",
"errorMessage": "string | null"
}

historicalPercentile is populated for yield_history (a year's rank among all years on record for that county/crop/practice) and null elsewhere — not computed for weather data, where a single day's rank against decades of daily values would be a different, unverified calculation this build didn't attempt.

What this is not

Not yield prediction. Not satellite-based analysis. Not an underwriting-grade risk score. Every figure here is either raw government data or a standard, named, documented formula (GDD base-10°C accumulation; deficit vs. own-station historical average) — never a proprietary model. If you need actual yield forecasting, the PRD's own research points to Agrograph, EarthDaily, and Munich Re as the real competitors in that different, harder problem.

Pricing

EventPrice
Run started£0.05
Reading success£0.06
Fetch failedfree

Setup note

No browser needed — both real sources (NOAA, USDA NASS) work over plain HTTP. yield_history mode needs a generous timeout (this actor defaults to 600s) to comfortably cover the real, uncached ~1-4 minute bulk-file streaming cost.

n8n integration

  • Workflow A (trigger): scheduled run pulling current-season weather/index data for a tracked set of regions.
  • Workflow B (processing): report current-season index values against historicalPercentile context — useful signal for ag-fintech buyers layering their own risk models on top of this reference data, not a replacement for one.