Add university-extension variety trials: Illinois VT + Iowa ICPT + Ohio OCPT (+123 trial docs)

Independent third-party performance data — land-grant programs that test every
entered brand side-by-side with replication + LSD stats. This is the legitimate
way to get Pioneer / DEKALB / Brevant / Channel performance the corpus can't
scrape directly (data_type=trial, results[] shape; falls through the trial
chunker).

- illinois_vt_trials (30 docs, 1,392 rows) — U of Illinois VT. Per-region XLSX
  (openpyxl), corn + soy + WHEAT, 2024+2025. Rich per-site agronomic metadata;
  corn-following-corn vs -soybean kept distinct.
- iowa_icpt_trials (24 docs, 674 rows) — Iowa State ICPT. ASP.NET GridView
  (viewstate postback for year/district), corn + soy by district x season.
- ohio_ocpt_trials (69 docs, 4,647 rows) — OSU/CFAES OCPT. Report PDF
  (pdfplumber; per-site column groups split by header Yield-token count +
  x-coord footnote bucketing), corn + soy per site, 2024+2025.

91 distinct seed brands across the three; majors confirmed present in the
independent rankings: DEKALB 395, Golden Harvest 249, Channel 241, NK 212,
Xitavo 135, LG 103, Pioneer 88, Asgrow 59. (A brand only appears where it
ENTERED a given program — e.g. Brevant not in Iowa, DEKALB/Channel not in
Illinois — true negatives, not parse gaps.)

- rag/chunk.py: gated `include_region` on _render_gh_plot_chunk; the 3 university
  sources route through it so the region/district is in the embedded chunk +
  labeled "variety trial (cross-vendor, independent third-party)". Existing plot
  sources (gh/lg/agrigold/proharvest) unchanged.
- requirements.txt: openpyxl (Illinois XLSX; scrape-time only).
- sources.json + README/CLAUDE/lessons: registered + attributed; lessons
  trial-data + Pioneer entries updated (Pioneer/DEKALB performance now available
  indirectly via these trials).

Validation: all 123 chunk via rag.chunk.chunks_from_trial (0 errors), 0
out-of-range yields, 0 dup keys. Public land-grant data; attribution recorded in
each tos_note. CI rebuilds the index from the committed corpus.
This commit is contained in:
2026-06-10 08:35:50 -04:00
parent 0bac06b7b6
commit 54094a0d43
255 changed files with 105410 additions and 13 deletions
@@ -0,0 +1,440 @@
{
"source": "iowa_icpt_trials",
"source_key": "icpt-soybeans-2025-north-early",
"data_type": "trial",
"vendor": "Iowa State University",
"brand_aggregator": "Iowa Crop Performance Tests publishes",
"brand": "Iowa Crop Performance Tests",
"crop": "soybeans",
"state": "IA",
"state_abbrev": "ia",
"year": 2025,
"region": "District North",
"district": "North",
"season": "Early Season",
"cooperator_sites": [
"Sutherland",
"Pocahontas",
"Corwith",
"Marble Rock",
"Oelwein"
],
"experiment_mean_yield": 64,
"results": [
{
"rank": 1,
"brand": "Nutech/G2 Genetics",
"product": "22N04E",
"traits": "E3",
"metrics": {
"MG": 2.2,
"Yield": 68.3,
"WestYield": 65.4,
"EastYield": 67.3,
"Sutherland": 72.6,
"Pocahontas": 67.1,
"Corwith": 56.4,
"Marble Rock": 74.1,
"Oelwein": 71.4
}
},
{
"rank": 2,
"brand": "Nutech/G2 Genetics",
"product": "21N09E",
"traits": "E3",
"metrics": {
"MG": 2.1,
"Yield": 67.9,
"WestYield": 65,
"EastYield": 66.9,
"Sutherland": 68.3,
"Pocahontas": 71.7,
"Corwith": 55.1,
"Marble Rock": 74.8,
"Oelwein": 70.8
}
},
{
"rank": 3,
"brand": "LOYAL BRAND",
"product": "L2130E",
"traits": "E3",
"metrics": {
"MG": 2.1,
"Yield": 66.8,
"WestYield": 65.5,
"EastYield": 65.4,
"Sutherland": 67.8,
"Pocahontas": 70,
"Corwith": 58.7,
"Marble Rock": 74.7,
"Oelwein": 62.7
}
},
{
"rank": 4,
"brand": "Viking/Blue River",
"product": "2022N",
"traits": "Conv",
"metrics": {
"MG": 2,
"Yield": 66.7,
"WestYield": 65.6,
"EastYield": 64.7,
"Sutherland": 69.1,
"Pocahontas": 71.5,
"Corwith": 56.3,
"Marble Rock": 71.6,
"Oelwein": 66.3
}
},
{
"rank": 5,
"brand": "Golden Harvest",
"product": "GH2292E3",
"traits": "E3",
"metrics": {
"MG": 2.2,
"Yield": 66.5,
"WestYield": 65.8,
"EastYield": 63.6,
"Sutherland": 70.1,
"Pocahontas": 71.9,
"Corwith": 55.3,
"Marble Rock": 71.4,
"Oelwein": 64.2
}
},
{
"rank": 6,
"brand": "Pioneer",
"product": "P21A53E",
"traits": "E3",
"metrics": {
"MG": 2.1,
"Yield": 66.4,
"WestYield": 64,
"EastYield": 63.6,
"Sutherland": 73.2,
"Pocahontas": 67.3,
"Corwith": 51.4,
"Marble Rock": 73.9,
"Oelwein": 65.5
}
},
{
"rank": 7,
"brand": "Asgrow",
"product": "AG22XF5",
"traits": "RR2XF",
"metrics": {
"MG": 2.2,
"Yield": 65.4,
"WestYield": 66.1,
"EastYield": 63.4,
"Sutherland": 69.4,
"Pocahontas": 69.1,
"Corwith": 60,
"Marble Rock": 64.7,
"Oelwein": 65.7
}
},
{
"rank": 8,
"brand": "LOYAL BRAND",
"product": "L2070E",
"traits": "E3",
"metrics": {
"MG": 2,
"Yield": 64.6,
"WestYield": 63.9,
"EastYield": 60.7,
"Sutherland": 68.8,
"Pocahontas": 72.5,
"Corwith": 50.4,
"Marble Rock": 74.1,
"Oelwein": 57.6
}
},
{
"rank": 9,
"brand": "Renk",
"product": "G2090E",
"traits": "E3",
"metrics": {
"MG": 2,
"Yield": 64.4,
"WestYield": 62.5,
"EastYield": 61.9,
"Sutherland": 69.5,
"Pocahontas": 66.7,
"Corwith": 51.4,
"Marble Rock": 72,
"Oelwein": 62.3
}
},
{
"rank": 10,
"brand": "Asgrow",
"product": "AG22XF6",
"traits": "RR2XF",
"metrics": {
"MG": 2.2,
"Yield": 64.3,
"WestYield": 64.9,
"EastYield": 61.5,
"Sutherland": 69.9,
"Pocahontas": 67.8,
"Corwith": 57,
"Marble Rock": 66.1,
"Oelwein": 61.5
}
},
{
"rank": 11,
"brand": "Golden Harvest",
"product": "GH2004XF",
"traits": "RR2XF",
"metrics": {
"MG": 2,
"Yield": 64.2,
"WestYield": 61.9,
"EastYield": 62.6,
"Sutherland": 64.8,
"Pocahontas": 68.8,
"Corwith": 52.2,
"Marble Rock": 69.4,
"Oelwein": 66.1
}
},
{
"rank": 12,
"brand": "P3 Genetics",
"product": "2520E",
"traits": "E3",
"metrics": {
"MG": 2,
"Yield": 64,
"WestYield": 60.6,
"EastYield": 61.8,
"Sutherland": 66.9,
"Pocahontas": 67.6,
"Corwith": 47.3,
"Marble Rock": 77.4,
"Oelwein": 60.6
}
},
{
"rank": 13,
"brand": "Cornelius",
"product": "CB20XF39",
"traits": "RR2XF",
"metrics": {
"MG": 2,
"Yield": 63.9,
"WestYield": 63.3,
"EastYield": 59.6,
"Sutherland": 73.2,
"Pocahontas": 67.8,
"Corwith": 49,
"Marble Rock": 70.3,
"Oelwein": 59.5
}
},
{
"rank": 14,
"brand": "Xitavo",
"product": "XO 1776E",
"traits": "E3",
"metrics": {
"MG": 1.7,
"Yield": 63.8,
"WestYield": 63.5,
"EastYield": 60.2,
"Sutherland": 70,
"Pocahontas": 69.2,
"Corwith": 51.4,
"Marble Rock": 67.9,
"Oelwein": 61.3
}
},
{
"rank": 15,
"brand": "Xitavo",
"product": "XO 2206E",
"traits": "E3",
"metrics": {
"MG": 2.2,
"Yield": 63.6,
"WestYield": 60.9,
"EastYield": 62.9,
"Sutherland": 64.9,
"Pocahontas": 63.6,
"Corwith": 54.2,
"Marble Rock": 74.3,
"Oelwein": 60.1
}
},
{
"rank": 16,
"brand": "Cornelius",
"product": "CB19C30",
"traits": "Conv",
"metrics": {
"MG": 1.9,
"Yield": 63.6,
"WestYield": 60.6,
"EastYield": 62.9,
"Sutherland": 65.9,
"Pocahontas": 64.8,
"Corwith": 51,
"Marble Rock": 73.8,
"Oelwein": 63.9
}
},
{
"rank": 17,
"brand": "P3 Genetics",
"product": "2419E",
"traits": "E3",
"metrics": {
"MG": 1.9,
"Yield": 63.6,
"WestYield": 61.1,
"EastYield": 61.8,
"Sutherland": 68.3,
"Pocahontas": 64.9,
"Corwith": 50,
"Marble Rock": 72.2,
"Oelwein": 63.4
}
},
{
"rank": 18,
"brand": "Xitavo",
"product": "XO 2075E",
"traits": "E3",
"metrics": {
"MG": 2,
"Yield": 63.2,
"WestYield": 62.7,
"EastYield": 59.9,
"Sutherland": 69.7,
"Pocahontas": 67.6,
"Corwith": 50.8,
"Marble Rock": 67,
"Oelwein": 62
}
},
{
"rank": 19,
"brand": "Dyna-Gro",
"product": "S20EN46",
"traits": "E3",
"metrics": {
"MG": 2,
"Yield": 63.1,
"WestYield": 61.4,
"EastYield": 59.5,
"Sutherland": 68.4,
"Pocahontas": 68.2,
"Corwith": 47.7,
"Marble Rock": 70.6,
"Oelwein": 60.2
}
},
{
"rank": 20,
"brand": "Xitavo",
"product": "XO 1986E",
"traits": "E3",
"metrics": {
"MG": 1.9,
"Yield": 62.6,
"WestYield": 60.3,
"EastYield": 60.4,
"Sutherland": 66.6,
"Pocahontas": 64.8,
"Corwith": 49.6,
"Marble Rock": 63.4,
"Oelwein": 68.2
}
},
{
"rank": 21,
"brand": "Pioneer",
"product": "P18A73E",
"traits": "E3",
"metrics": {
"MG": 1.8,
"Yield": 61.8,
"WestYield": 59.4,
"EastYield": 59,
"Sutherland": 65.8,
"Pocahontas": 67.6,
"Corwith": 44.8,
"Marble Rock": 68.6,
"Oelwein": 63.6
}
},
{
"rank": 22,
"brand": "Renk",
"product": "RS194NXF",
"traits": "RR2XF",
"metrics": {
"MG": 1.9,
"Yield": 61.2,
"WestYield": 60,
"EastYield": 56.7,
"Sutherland": 71,
"Pocahontas": 65.3,
"Corwith": 43.9,
"Marble Rock": 65.7,
"Oelwein": 60.6
}
},
{
"rank": 23,
"brand": "P3 Genetics",
"product": "2218E",
"traits": "E3",
"metrics": {
"MG": 1.8,
"Yield": 59.1,
"WestYield": 57.6,
"EastYield": 55,
"Sutherland": 64.1,
"Pocahontas": 67.3,
"Corwith": 41.3,
"Marble Rock": 60.7,
"Oelwein": 63.1
}
},
{
"rank": 24,
"brand": "LOYAL BRAND",
"product": "L2160E",
"traits": "E3",
"metrics": {
"MG": 2.1,
"Yield": 56.9,
"WestYield": 57,
"EastYield": 53.7,
"Sutherland": 62.2,
"Pocahontas": 61.2,
"Corwith": 47.8,
"Marble Rock": 60.6,
"Oelwein": 52.6
}
}
],
"n_results": 24,
"source_urls": [
"https://www.croptesting.iastate.edu/Soybean/SoybeanDistrict2.aspx"
],
"tos_note": "Footer 'Copyright (c) ...ISU...All rights reserved' (no automation clause, no robots.txt); public ICPT data; low request rate; attribute Iowa Crop Performance Tests / ISU.",
"fetched_at": "2026-06-10T12:13:08.985631+00:00",
"scraper_version": "0.1.0"
}