# K10 control – summary (extractors opus-H1 / opus-H2)

Controller K10, 30.10.2026. Reports per study are in this folder. I did not read /home/claude/db/work/, and I did not edit the database.

## Sources used
- **willett1990**: Drive PDF rendered at 200 dpi (pp.1664–1669), every table cell read from the image.
- **chen1998**: Drive PDF, Tables 2–3 rendered (pp.3309–3310).
- **kato1997, sellers1998 (bazyk1998.pdf), fraser1999, flood2003**: Drive PDFs, using the native text layer (pdftotext) plus the historisk txt.
- **giovannucci1994, goldbohm1994, phillips1975**: OCR/text layer only. No PDF was found in Drive.
- **nothlings2009, brink2005, kabat2007**: PMC XML-derived txt. Brink's 492 rows were verified by script against the parsed tables.

## Per-study counts

| study | rows checked | numerically confirmed | critical | major | minor | missing | rows resting on OCR correction without prose support | verdict |
|---|---|---|---|---|---|---|---|---|
| willett1990 | 42 | 42 | 0 | 18 (3 main-dish dose labels shifted: _002–_004; 15 Table 4 case counts empty though printed) | 12 (generic/“inferred” labels Table 3) | 0 | – (PDF read) | fit after label/case fix |
| giovannucci1994 | 41 | 41 | 0 | 0 | 3 | 0 | 7 (_002, _003, _017–_020, _024: CI digits restored by log-symmetry only) | fit; flag the 7 |
| goldbohm1994 | 57 | 57 | 0 | 16 ("fresh meat incl. chicken, excl. processed" coded total_meat: _001–_015, _040) | 12 (both-sex case counts derivable) | 0 | 2 (_021 "5.22"→1.22, _034 "114"→1.14; CI-confirmed) | fit with exposure flag |
| phillips1975 | 16 | 16 (ad/bc recomputed) | 0 | 1 (study-level: case-control, not cohort; design value outside vocabulary) | 17 (RR label is OR; meat-20y includes fish/poultry) | 0 | 0 (all corrections abstract-supported or ad/bc-proven) | not for cohort pooling |
| kato1997 | 20 | 20 | 0 | 0 | 1 (in_cup2016/cup_role contradiction in studies note) | 0 | – | fit (HvL only) |
| chen1998 | 42 | 42 | 0 | 0 | 1 (RR vs OR label) | 0 | – (PDF read) | fit |
| sellers1998 | 48 | 48 | 0 | 12 (_013–_024 red meat incl. hamburger → R6 `partial`, not `no`; same in studies.csv) | 1 (cohorts.csv iwhs note) | 0 | – | fit after R6 flag; stratified only |
| fraser1999 | 8 | 8 | 0 | 6 (_002–_007 is_main_model should be `no`; secondary report conflicting with singh1998) | 3 | 0 | – | secondary; use singh1998 |
| flood2003 | 49 | 49 | 0 | 0 | 6 (_044–_049 empty category_rank in Table 7 grid) | 0 | – | fit |
| nothlings2009 | 41 | 41 | 0 | 0 | 2 (cup_role value outside vocabulary; mec cohort note) | 0 required (optional: HCA tertiles, doneness, meat-fat pattern) | – | fit as secondary MEC source |
| brink2005 | 492 | 492 | 0 | 60 (total fresh meat incl. chicken coded total_meat, same as Goldbohm) | 0 | 0 | – | numerically perfect; secondary NLCS source |
| kabat2007 | 55 | 55 | 0 | 0 | 25 (m2 shared by alcohol and HRT strata with wrong flags; mg_day unit not in vocabulary) | 0 | – | fit |
| **total** | **911** | **911** | **0** | **113** | **83** | **0** | **9** | |

No critical errors. No wrong number, exposure, outcome or sex was found in any of the 911 rows.

## Cross-study points
1. **Fraser 1999 Table 8 vs Singh 1998 Table 4: discrepancy confirmed.** The two tables cover the same AHS-1 subsets with the same 112 and 82 cases, but the estimates differ:
   - red meat ≥1/wk: 1.86 (1.15–3.02) vs 1.90 (1.16–3.11)
   - white meat ≥1/wk: 3.00 (1.45–6.20) vs 3.29 (1.60–6.75)
   - the lower categories and P trends differ too
   - Fraser's legume-stratified 2.68 (1.24–5.78) matches neither Singh Fig 1 (2.54) nor Fig 2 (2.28)

   Fraser gives no covariate list. Fraser's 1.37 (0.85–2.20) is close to Singh's text "further categorization" 1.38 (0.86–2.20), so Fraser probably reports an alternative model run. Use Singh. Fraser rows _002–_007 should not be is_main_model = yes.
2. **Sellers 1998 / Bostick 1994 are the same cohort (IWHS).** Both have cohort_id iwhs, which blocks pooling them together. The two are not interchangeable:
   - Sellers has only family-history-stratified estimates, an aggregate red meat that includes liver and hamburger, and follow-up to 1995 (241 colon cases).
   - Bostick has a main-dish exposure and follow-up to 1990 (212 cases).

   The cohorts.csv iwhs note lists Bostick and Lee but not Sellers.
3. **Nöthlings 2009 / Ollberding 2012 are the same cohort (MEC).** Both have cohort_id mec. Nöthlings is a nested case-control within MEC with blood drawn mostly after diagnosis, so every case is also an Ollberding case. Never pool them; Ollberding is the MEC row. The cohorts.csv mec note lists only Ollberding.
4. Goldbohm 1994 and Brink 2005 are also the same cohort (NLCS, cohort_id nlcs). Both use "fresh meat", which includes chicken and excludes processed meat.

## Recommended database actions (for Fable / rettelogg)
- **willett1990**:
  - relabel _002 to "1–3/mo + 1/wk (merged)", _003 to "2–4/wk", _004 to "5–6/wk"
  - fill processed and fish labels (<1/mo, 1–3/mo, 1/wk, 2–4/wk, ≥5/wk)
  - fill Table 4 n_cases: 25/27/28/26/44; 38/29/39/19/25; 22/26/27/29/46
- **sellers1998**: set exposure_includes_processed = partial on _013–_024 and in studies.csv (R6).
- **fraser1999**: set is_main_model = no on _002–_007.
- **goldbohm1994 and brink2005**: add an explicit flag or note that "fresh meat" (total_meat code) includes poultry and excludes processed. Consider a dedicated vocabulary value such as `fresh_meat_incl_poultry`.
- **giovannucci1994**: mark _002, _003, _017–_020 and _024 as resting on symmetry-only OCR restoration until checked against a PDF image.
- **Metadata**: extend vocabularies or notes for design `case_control` (phillips1975), cup_role `cup2010_superseded` (nothlings2009) and dose_unit `mg_day` (kabat2007). Update the cohorts.csv notes for iwhs and mec.
