b98965a68a
Adds the **first non-Syngenta trial coverage** to the corpus:
| Source | Docs | Publisher | URL pattern |
|---|---|---|---|
| lg_plot_reports | 1,304 | LG Seeds (AgReliant) | lgseeds.com/performance/{crop} JSON XHR |
| agrigold_plot_reports | 1,003 | AgriGold (AgReliant) | agrigold.com/{crop}/performance/{crop}-yield-results |
Total trial coverage now: gh_plot_reports (4,299) + agripro_trials (14) +
lg_plot_reports (1,304) + agrigold_plot_reports (1,003) = 6,620 trial docs.
**Both scrapers follow the gh_plot_reports template** — same RateLimitedSession
primitive, same TrialResult/PlotReport dataclass shape, same data_type="trial"
sidecar convention. The trial chunker (`rag/chunk.py:_render_trial_chunk`) is
extended to recognize both new sources; they share `_render_gh_plot_chunk`
since their sidecars are structurally identical (just different brand label).
**LG specifics:**
- POST `/performance/{crop}/GetPlots/` returns sparse listing (id, year, lat/lng)
- GET `/performance/{crop}/GetPlotData/?PlotId=X&IsSilage=Y` returns full detail
with state, cooperator, planting/harvest dates, and **top-5 hybrids** (LG +
competitors). Top-5 is what LG publishes publicly; not the full ranking.
- 4 crops: corn (963), soybeans (287), sorghum (10), silage (50) — first
alfalfa absent because LG doesn't run alfalfa plots; that's variety-only data.
- 301 gotcha: www.lgseeds.com redirects to lgseeds.com which drops POST body,
so the scraper hits the apex host directly.
**AgriGold specifics:**
- Listing: GET `/{crop}/performance/{crop}-yield-results?harvestYear={year}`
(server-rendered HTML, ~1MB; 408 corn plots in 2025 alone)
- Detail: GET `/{crop_url}/performance/{slug}/{plot_id}` returns the **full
ranking** (not just top-5) plus rich plot management metadata: tillage,
previous crop, fungicide, herbicide, insecticide, irrigation, soil type,
row width, population. Most metadata-rich of the three trial sources.
- Soybean URL slug is singular: `/soybeans/performance/soybean-yield-results/`
- Columns: Rank | Brand | Product | Trait | Ck | H20 (moisture) | Test Wt. |
Yield | Adj Yield (check-adjusted)
- 2 crops: corn (849) + soybeans (157)
**Indexer needs no changes** — `rag/index.py` auto-discovers any directory
under corpus/ and routes by data_type. Both new sources flow into the
existing trial collection and surface via `search_trials`.
Years scraped: 2024+2025 (matching gh_plot_reports baseline). 2023 is
available via `--include-2023` on either scraper for future backfill.
968 B
968 B
Silage yield trial — Orland, California, 2025
- Source: LG Seeds plot report (top-5 cross-vendor)
- Vendor: AgReliant Genetics / LG Seeds
- Crop: Silage
- State: California (CA)
- City: Orland
- Year: 2025
- Plot ID: 147070
- Cooperator: Knight Farms
- Planted: 2025-06-09
- Harvested: 2025-09-10
- Plot average: 24683.0 T/Ac
- Coordinates: 39.69428, -122.16688
- URL: https://lgseeds.com/performance/silage#plot-147070
Top 5 results (by yield rank)
| Rank | Brand | Product | Traits | Ton/Acre |
|---|---|---|---|---|
| 1 | LG Seeds | LG58C73 | 3110 | 27325.6 |
| 2 | LG Seeds | LG5701 | VT2PRO | 27211.7 |
| 3 | Unknown | BH8737VT2P | - | 26411.1 |
| 4 | LG Seeds | LG65C30 | VT2RIB | 25633.9 |
| 5 | LG Seeds | LG66C28 | 3110 | 25583.2 |
Top 5 by Ton/Acre: LG58C73 (LG Seeds) 27325.6, LG5701 (LG Seeds) 27211.7, BH8737VT2P (Unknown) 26411.1, LG65C30 (LG Seeds) 25633.9, LG66C28 (LG Seeds) 25583.2.