Two new trial sources: LG Seeds + AgriGold plot reports (+2,307 cross-vendor yield trials)

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.
This commit is contained in:
2026-05-26 22:26:24 -04:00
parent db1567f84a
commit b98965a68a
4630 changed files with 449945 additions and 4 deletions
@@ -0,0 +1,53 @@
# Soybean yield trial — Davenport, IA, 2024
- **Source:** AgriGold plot report (cross-vendor head-to-head)
- **Vendor:** AgReliant Genetics / AgriGold
- **Crop:** Soybean
- **State:** IA
- **County:** Scott
- **City:** Davenport
- **Year:** 2024
- **Plot ID:** 142713
- **Cooperator:** Zach Bangert
- **Plot average:** 103.75 BU/Ac
- **Planted:** 2024-05-06
- **Harvested:** 2024-10-04
- **Population:** 140,000 seeds/acre
- **Row width:** 15.0"
- **# Rows:** 10
- **Soil type:** Silty Clay Loam
- **Tillage:** Minimum
- **Previous crop:** Corn
- **Irrigation:** None
- **URL:** https://www.agrigold.com/soybeans/performance/soybean-yield-results/142713
---
## Results (by rank)
| Rank | Brand | Product | Trait | Ck | H20 | Test Wt. | Yield | Adj Yield |
|---|---|---|---|---|---|---|---|---|
| 22 | AgriGold | G2450XF | XTENDFlex | - | 9.1 | 60.5 | 95.6 | 95.6 |
| 1 | AgriGold | G2574XF | XTENDFlex | - | 9.0 | 60.0 | 114.1 | 114.1 |
| 11 | AgriGold | G2601E3 | Enlist E3 | - | 9.4 | 57.9 | 104.4 | 104.4 |
| 19 | AgriGold | 27K10E3 | Enlist E3 | - | 9.1 | 59.4 | 98.1 | 98.1 |
| 4 | Asgrow | AG27XF3 | XTENDFlex | - | 9.3 | 57.5 | 108.7 | 108.7 |
| 19 | Asgrow | AG28XF3 | XTENDFlex | - | 9.1 | 56.8 | 98.1 | 98.1 |
| 3 | Asgrow | AG29XF5 | XTENDFlex | - | 9.4 | 57.1 | 111.0 | 111.0 |
| 13 | Brevant Seeds | B294EE | Enlist E3 | - | 9.6 | 56.7 | 103.3 | 103.3 |
| 5 | AgriGold | G2893E3 | Enlist E3 | - | 9.6 | 56.4 | 108.3 | 108.3 |
| 9 | Alloy | A29E35 | Enlist E3 | - | 9.6 | 58.9 | 105.0 | 105.0 |
| 18 | AgriGold | G2950XF | XTENDFlex | - | 9.8 | 58.0 | 99.8 | 99.8 |
| 9 | Croplan | CP2920E | Enlist E3 | - | 9.6 | 57.4 | 105.0 | 105.0 |
| 17 | NK Brand | NK30-B2E3 | Enlist E3 | - | 9.7 | 56.4 | 101.6 | 101.6 |
| 7 | AgriGold | G3051E3 | Enlist E3 | - | 9.7 | 56.5 | 105.7 | 105.7 |
| 16 | AgriGold | G3144XF | XTENDFlex | - | 10.0 | 56.8 | 102.9 | 102.9 |
| 21 | Asgrow | AG31XF5 | XTENDFlex | - | 9.7 | 56.5 | 95.8 | 95.8 |
| 2 | AgriGold | 31K14E3 | Enlist E3 | - | 9.7 | 56.5 | 113.1 | 113.1 |
| 14 | AgriGold | G3279E3 | Enlist E3 | - | 9.7 | 56.1 | 103.2 | 103.2 |
| 7 | Asgrow | AG33XF3 | XTENDFlex | - | 9.7 | 56.4 | 105.7 | 105.7 |
| 6 | AgriGold | G3334XF | XTENDFlex | - | 9.5 | 56.4 | 107.6 | 107.6 |
| 23 | Alloy | A33E34 | Enlist E3 | - | 9.5 | 56.6 | 92.7 | 92.7 |
| 12 | AgriGold | G3404E3 | Enlist E3 | - | 9.5 | 58.3 | 103.5 | 103.5 |
| 15 | Asgrow | AG35XF5 | XTENDFlex | - | 10.5 | 56.0 | 103.1 | 103.1 |
Top 5 by Yield: G2574XF (AgriGold) 114.1, 31K14E3 (AgriGold) 113.1, AG29XF5 (Asgrow) 111.0, AG27XF3 (Asgrow) 108.7, G2893E3 (AgriGold) 108.3.