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.
284 lines
5.7 KiB
JSON
284 lines
5.7 KiB
JSON
{
|
|
"source": "agrigold_plot_reports",
|
|
"source_key": "agpr-soybeans-2024-144649",
|
|
"data_type": "trial",
|
|
"vendor": "AgReliant Genetics",
|
|
"brand": "AgriGold",
|
|
"crop": "soybeans",
|
|
"state": "IL",
|
|
"state_abbrev": "il",
|
|
"city": "Princeville",
|
|
"county": "Peoria",
|
|
"year": 2024,
|
|
"plot_id": "144649",
|
|
"cooperator": "River Valley Cooperative",
|
|
"plot_average": 87.63,
|
|
"planted_date": "2024-05-11",
|
|
"harvested_date": "2024-10-01",
|
|
"population_seeds_per_acre": 140000,
|
|
"row_width": "30.0\"",
|
|
"num_rows": 6,
|
|
"soil_type": "Silt Loam",
|
|
"tillage": "Strip Till",
|
|
"previous_crop": "Corn",
|
|
"irrigation": "None",
|
|
"fungicide": "N/A",
|
|
"herbicide": "N/A",
|
|
"insecticide": "N/A",
|
|
"results": [
|
|
{
|
|
"rank": 3,
|
|
"brand": "NK Brand",
|
|
"product": "NK27-W8XF",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 12.1,
|
|
"Test Wt.": 59.1,
|
|
"Yield": 92.3,
|
|
"Adj Yield": 92.3
|
|
}
|
|
},
|
|
{
|
|
"rank": 6,
|
|
"brand": "NK Brand",
|
|
"product": "NK29-Q3XF",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 11.8,
|
|
"Test Wt.": 61.3,
|
|
"Yield": 90.3,
|
|
"Adj Yield": 90.3
|
|
}
|
|
},
|
|
{
|
|
"rank": 18,
|
|
"brand": "NK Brand",
|
|
"product": "NK32-C5XF",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 12.2,
|
|
"Test Wt.": 57.3,
|
|
"Yield": 81.4,
|
|
"Adj Yield": 81.4
|
|
}
|
|
},
|
|
{
|
|
"rank": 14,
|
|
"brand": "NK Brand",
|
|
"product": "NK34-D4XF",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 12.3,
|
|
"Test Wt.": 57.1,
|
|
"Yield": 85.3,
|
|
"Adj Yield": 85.3
|
|
}
|
|
},
|
|
{
|
|
"rank": 17,
|
|
"brand": "AgriGold",
|
|
"product": "G2450XF",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 11.5,
|
|
"Test Wt.": 59.5,
|
|
"Yield": 82.1,
|
|
"Adj Yield": 82.1
|
|
}
|
|
},
|
|
{
|
|
"rank": 19,
|
|
"brand": "AgriGold",
|
|
"product": "G2574XF",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 12.2,
|
|
"Test Wt.": 60.1,
|
|
"Yield": 80.3,
|
|
"Adj Yield": 80.3
|
|
}
|
|
},
|
|
{
|
|
"rank": 16,
|
|
"brand": "AgriGold",
|
|
"product": "G3144XF",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 12.1,
|
|
"Test Wt.": 59.0,
|
|
"Yield": 83.2,
|
|
"Adj Yield": 83.2
|
|
}
|
|
},
|
|
{
|
|
"rank": 11,
|
|
"brand": "AgriGold",
|
|
"product": "G3334XF",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 12.2,
|
|
"Test Wt.": 58.8,
|
|
"Yield": 87.1,
|
|
"Adj Yield": 87.1
|
|
}
|
|
},
|
|
{
|
|
"rank": 2,
|
|
"brand": "AgriGold",
|
|
"product": "G3552XF",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 11.9,
|
|
"Test Wt.": 59.0,
|
|
"Yield": 93.0,
|
|
"Adj Yield": 93.0
|
|
}
|
|
},
|
|
{
|
|
"rank": 10,
|
|
"brand": "Asgrow",
|
|
"product": "AG25XF5",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 11.8,
|
|
"Test Wt.": 58.5,
|
|
"Yield": 88.0,
|
|
"Adj Yield": 88.0
|
|
}
|
|
},
|
|
{
|
|
"rank": 8,
|
|
"brand": "Asgrow",
|
|
"product": "AG26XF4",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 11.6,
|
|
"Test Wt.": 59.8,
|
|
"Yield": 89.3,
|
|
"Adj Yield": 89.3
|
|
}
|
|
},
|
|
{
|
|
"rank": 9,
|
|
"brand": "Asgrow",
|
|
"product": "AG27XF3",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 11.9,
|
|
"Test Wt.": 58.4,
|
|
"Yield": 88.4,
|
|
"Adj Yield": 88.4
|
|
}
|
|
},
|
|
{
|
|
"rank": 15,
|
|
"brand": "Asgrow",
|
|
"product": "AG29XF5",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 11.6,
|
|
"Test Wt.": 57.8,
|
|
"Yield": 84.1,
|
|
"Adj Yield": 84.1
|
|
}
|
|
},
|
|
{
|
|
"rank": 12,
|
|
"brand": "Asgrow",
|
|
"product": "AG30XF4",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 12.1,
|
|
"Test Wt.": 59.6,
|
|
"Yield": 85.9,
|
|
"Adj Yield": 85.9
|
|
}
|
|
},
|
|
{
|
|
"rank": 3,
|
|
"brand": "Asgrow",
|
|
"product": "AG33XF3",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 12.0,
|
|
"Test Wt.": 58.6,
|
|
"Yield": 92.3,
|
|
"Adj Yield": 92.3
|
|
}
|
|
},
|
|
{
|
|
"rank": 5,
|
|
"brand": "Asgrow",
|
|
"product": "AG35XF5",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 12.7,
|
|
"Test Wt.": 58.1,
|
|
"Yield": 92.1,
|
|
"Adj Yield": 92.1
|
|
}
|
|
},
|
|
{
|
|
"rank": 1,
|
|
"brand": "Asgrow",
|
|
"product": "AG36XF4",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 15.2,
|
|
"Test Wt.": 57.9,
|
|
"Yield": 94.5,
|
|
"Adj Yield": 94.5
|
|
}
|
|
},
|
|
{
|
|
"rank": 13,
|
|
"brand": "Asgrow",
|
|
"product": "AG37XF5",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 13.9,
|
|
"Test Wt.": 55.6,
|
|
"Yield": 85.8,
|
|
"Adj Yield": 85.8
|
|
}
|
|
},
|
|
{
|
|
"rank": 7,
|
|
"brand": "Asgrow",
|
|
"product": "AG38XF3",
|
|
"traits": "XTENDFlex",
|
|
"metrics": {
|
|
"Ck": null,
|
|
"H20": 13.0,
|
|
"Test Wt.": 58.9,
|
|
"Yield": 89.5,
|
|
"Adj Yield": 89.5
|
|
}
|
|
}
|
|
],
|
|
"n_results": 19,
|
|
"source_urls": [
|
|
"https://www.agrigold.com/soybeans/performance/soybean-yield-results/144649"
|
|
],
|
|
"fetched_at": "2026-05-27T02:24:58.335308+00:00",
|
|
"scraper_version": "0.1.0"
|
|
}
|