# K13 – Independent check of thun1992 and wang2020

Controller: independent Opus instance (K13), 2026-10-30. I read the coders' NOTES.md (work/thun1992, work/wang2020) only after this check was complete. They agree with every finding below.

## Result in one line
**0 transcription errors in 136 rows.** Every printed number matches the source. `corrections.csv` contains only a header. The open points are coding judgements (flags), not errors.

| Study | Rows | ok | transcription | flag | misprint-in-paper |
|---|---|---|---|---|---|
| thun1992 | 40 | 10 | 0 | 30 | 0 |
| wang2020 | 96 | 64 | 0 | 32 | 0 |
| **Total** | 136 | 74 | 0 | 62 | 0 |

---

## 1. thun1992 (CPS-II mortality cohort, fatal colon cancer; JNCI 84:1491–1500)

**Method.** I rendered PDF pages 3–6 at 200 dpi:
- p3 = journal p. 1493: Table 1 and Methods;
- p4 = p. 1494: Results and Table 2;
- p5 = p. 1495: Tables 3–4;
- p6 = p. 1496: Tables 5–6.

I read every cell from the images. The text layer prints Q1 as ".0" for several rows. The image shows 1.0, and the database has 1.0, which is correct.

### Answers to the caller's questions
1. **Are any CIs printed for the meat rows in Table 4? No.**
   - The title is "Unadjusted RR* of colon cancer by food groups in CPS-II".
   - The table has five quintile columns with point RRs only (Q1 = 1.0). Its only footnote is "RR compared with lowest consumption quintile".
   - There are no CIs, no case counts, no cut points and no trend tests for any food group, meat or otherwise.
   - The empty ci_low/ci_high, n_cases and dose fields in thun1992_001–020 are therefore correct.
2. **Is there a multivariable red-meat estimate anywhere in the paper? No.** I searched the Abstract, Results, Discussion, Tables 1–6 and Figs. 1–2.
   - The multivariable model (Tables 5–6, Figs. 1–2) contains plants, the total-fat index, exercise, BMI, family history and aspirin. Red meat is not in it.
   - The Abstract says only that no associations were seen "with consumption of red meat or total or saturated fat", with no numbers.
   - Results (p. 1494) describe pork, ham, processed meats, beef, and chicken/fish qualitatively. Individual-food analyses are "not shown but available on request".
   - The Discussion (p. 1497) says beef "was not associated" with colon cancer, with no numbers.
   - The only numerical meat estimates in the paper are the crude Table 4 RRs.

### Field-by-field verification
- **Table 4, rows _001–_020.** All 20 point values match the image:
  - Fatty meats, men: 1.0, 1.12, 1.08, 1.01, 1.21.
  - Fatty meats, women: 1.0, 0.92, 1.06, 0.91, 1.05.
  - Chicken and fish, men: 1.0, 1.25, 1.05, 1.19, 1.00.
  - Chicken and fish, women: 1.0, 0.88, 0.89, 0.80, 0.65.
  - Sex, outcome (colon, mortality), source_table and source_page (1495) are all correct.
- **Tables 5–6, rows _021–_040.** All 20 values match:
  - Case counts: men 124/116/131/112/128 = 611; women 124/99/93/114/109 = 539. Both sums equal the paper's totals.
  - All unadjusted RRs, adjusted RRs and 95% CIs match.
  - "NS" trend is on the adjusted Q5 rows only.
  - Page 1496 is correct.
  - All adjusted CIs contain the point estimate and are log-symmetric within rounding.
- **adjustments.csv.**
  - m1 (matched on exact age, race and sex; no covariates) is correct.
  - m2 flags match Methods (p. 1493) and the Table 5/6 footnote: plants (fruit/veg = yes; fiber = unclear, a defensible choice), fat index, exercise, BMI, family history and aspirin.
  - m2 has no energy, smoking or alcohol adjustment. The Discussion confirms there was no energy control.
- **studies.csv.**
  - Analytic cohort 764,343, with 1150 cases (611 men, 539 women) and 5746 controls (Table 2, Methods).
  - Follow-up 1 Sep 1982 – 31 Aug 1988 (6 y, max).
  - FFQ: 32 foods, frequency in days/week, no portions.
  - Red-meat definition matches Table 1. cases_colon = 1150.
  - All correct.
- **cohorts.csv.** cps2_mortality (parent of cps2) is correct, with a "never pool" note.

### Flags (correct as printed; coding judgement)
- **_001–_005 and _011–_015 (10 rows): "Fatty meats" coded `red_total`.**
  - The group includes liver (organ meat), ham, bacon, smoked meats and frankfurters/sausage, and has no lamb item.
  - It is a mixed red+processed+organ index, not "red meat". `includes_processed = yes` is correct.
  - These are crude estimates. `is_main_model = yes` is defensible because they are the only model for this exposure. Any adjusted-only analysis must filter on `adjustment_set_id = thun1992_m1`.
- **_021–_040 (20 rows): `total_fat` is outside KODEBOK R1 and outside the controlled vocabulary.** They were coded on the caller's instruction. Keep or drop as the caller decides.
- **effect_measure = OR on all 40 rows.** The paper prints "RR" but states that "odds ratios [were used] to estimate relative risks". OR is technically accurate. Change to RR only if "as published" should govern this field.
- **Not extracted, correctly.** "Dairy and eggs" (Table 4) is not a meat. No other meat × colon estimates exist.

---

## 2. wang2020 (NHS + NHS2 + HPFS by refined subsite; Gastroenterology 2020, NIH ms)

**Method.**
- Main Table 4: I rendered PDF page 27 (ms p. 27, rotated) at 200 dpi and read every red-meat cell from the image.
- Suppl Table 4: I parsed it cell by cell from `wang2020_suppl.docx` with python-docx, de-duplicating merged cells.
- I compared every row by script on point, ci_low, ci_high, p_trend, n_cases, exposure and subgroup.
- Case counts came from Table 4's header (n=474/633/250/1357/221/750/971/202/528/730) and Suppl Table 1 (younger-onset 901/88/108/50/68/206/53/176; older-onset 2389/386/525/200/153/544/149/352).

### Results
- **_001–_030 (Table 4): 30/30 match.** That is 3 exposures × 10 columns on point, CI, Ptrend and n.
  - source_page "ms p. 27" is correct.
  - The heterogeneity p-values in the notes also match:
    - within main subsites: total red 0.19/0.72/0.15; processed 0.18/0.64/0.23; unprocessed 0.19/0.87/0.27;
    - overall/linear: 0.46/0.82, 0.12/0.04, 0.31/0.96.
- **_031–_096 (Suppl Table 4): 66/66 match**, including the uneven decimals as printed (e.g. "0.9-1.08", "1-1.33"). The contrast-test P values in the notes match too.
- **Case counts.**
  - Single-subsite n match Suppl Table 1 exactly. Younger + older equals the Table 4 n for every subsite (e.g. 88+386 = 474).
  - The overall-column n in the supplement (246/274/229; 1111/697/501) are not printed. They are correct sums of the subsites.
  - ALL CRC: 901 + 2389 = 3290 = 3058 located cases + 232 unlocated (Results).
- **Other fields.**
  - Exposure, outcome mapping (rectum overall includes rectosigmoid, as in the paper), sex = all (diet was not sex-stratified), HR, model labels and source tables are all correct.
  - `is_main_model = yes` only on the 9 overall main-subsite rows of Table 4. This is correct, because the paper has no whole-population CRC estimate.
- **adjustments.csv.** m1 and m2 match the Table 4 and Suppl Table 4 footnotes and the Methods: no energy term, no dietary co-adjustment, stratified by age, cohort/sex and calendar time.
- **studies.csv.**
  - 45,351 men + 178,016 women = 223,367; median follow-up 23 y.
  - Cases: 3058 located; colon 2328 = 1357 + 971; rectum 730.
  - Outcome ascertainment is self-report confirmed by medical-record review.
  - Diet: FFQ, cumulative averages, `diet_repeated = yes`.
  - All correct.

### Serving-size question
**No serving size is defined anywhere** in the main text, Table 1 (mean servings/week), Table 4, the Supplementary Methods or Suppl Tables 1–4. The paper does not list the food items in total, processed or unprocessed red meat either. Methods say only that the increment was "chosen based on the literature". Any conversion to g/day needs an external portion assumption with `portion_source` ≠ paper. dose_conversions wang2020_dc01 already says this correctly.

### Flags
- **_021–_030 and _075–_096 (32 rows): `red_unprocessed` with `exposure_includes_processed = unclear`.** This is correct by the paper alone, since no items are listed. If hamburger is counted as unprocessed in these FFQs, as in Bernstein 2015, the R6 hamburger rule would make it `partial`. That is a harmonisation decision for Fable, not an error.
- **Cross-cutting: `dose_unit = per_3_servings_week` is not in the KODEBOK vocabulary** or in the listed additions. Add it to NOTES_all/KODEBOK.
- **Cross-cutting: the supplement's overall-column n_cases are derived sums**, not printed figures, and are documented in the notes. They are correct.
- **Paper inconsistency (not a row error).** The Abstract says "inverse associations… increased, from cecum to rectum, for… processed red meat". Table 4 shows positive HRs rising from 0.96 (cecum) to 1.23 (descending) and 1.21 (rectum). The Results text is consistent with the table, so the database correctly follows the table.

### Missing estimates
None. Neither study reports any other meat, poultry or fish × colorectal estimate. Wang has no sex- or cohort-specific meat estimates and no quintile estimates. Thun's individual-food and saturated-fat results are "not shown".

## Verdict
- **thun1992: fit for use as transcribed.** It is suitable only for crude, frequency-quintile HvL or sensitivity analyses. It has no CIs, no case counts per quintile, no doses and no adjusted meat estimate, so it cannot enter dose-response or adjusted pooling without external assumptions.
- **wang2020: fit for use.** All 96 numbers are verified. For per-100 g analyses it needs an external serving-size assumption. It must never be pooled with nhs, hpfs or nhs_hpfs rows.
