# K9a control – papier2025 (supplement rows, extractor opus-S1)

Controller: K9a · 30.10.2026 · Source: `drive/supplements/papier2025_SupplData1.txt` (Supp Data 1–6).
The food-group definitions were checked in `papier2025_MOESM1.txt` (Supplementary Methods).
Scope: 50 rows papier2025_006–055 and dose_conversions papier2025_dc02–dc07. Adjustment sets m6, m7 and m8 were also checked.

## Method
- Meat rows in Supp Data 1–5 were parsed by script (`scratchpad/k/pap.py`) and compared field by field with the DB.
- Fields: point, CI, n_cases, p_value and stratum N.
- Units and flags were checked by reading.

## Discrepancies

| estimate_id | field | in database | in paper | severity |
|---|---|---|---|---|
| papier2025_007 | exposure_includes_processed | `no` (inferred from additive means; notes say the definition is "not available") | MOESM1 Suppl. Methods: red meat = "beef, pork, lamb, kidney, liver, burger"; processed = sausage, bacon, ham | **major (flag)**. Burger is included, so under R6 the value is `partial`, as for Bernstein. `red_unprocessed` is otherwise right: processed meat is excluded. |
| papier2025_006, _007, _010, _035, _041, _047 | is_main_model | yes, on calibrated (re-measured-mean) trend rows | Supp Data 3/4 now also give uncalibrated quintile RRs for red+processed (colorectal, proximal, distal, rectum) | **major (rule decision)**. KODEBOK 4.2(b) excludes calibrated models from main. The 001 exception ("only printed estimate is calibrated") no longer strictly holds for red+processed: uncalibrated categorical rows exist, though no uncalibrated trend is printed. For red meat, processed meat and chicken the exception still holds, since only the calibrated trend is printed. Fable should confirm the exception explicitly. |
| papier2025_008, _009 | is_main_model | no / no (oily and non-oily fish) | Only the split fish variables are printed | minor. Documented, but inconsistent with chicken (_010 = yes). |
| studies.csv papier2025 | red_meat_definition / notes | "components defined only in Supplementary Methods" (marked as not available) | MOESM1 is on disk and gives the component lists | minor. studies.csv and notes should be updated. |
| papier2025_035/_041/_047 | p_value | empty (Phet 0.65 only in notes) | Supp Data 4 Phet = 0.65 | minor (no field for Phet). OK. |

**No wrong numbers.** All 50 rows match on point, CI, n_cases, p_value and stratum N.
- Supp Data 1 increments are correct:
  - red meat per 20 g (`per_20g`), processed meat per 10 g (`per_10g`)
  - chicken per 20 g, oily fish and non-oily fish per 10 g
  - red+processed meat per 30 g
- The p values are the exact Supp Data 1 values.

## Flags checked
- **is_calibrated:**
  - Trend rows = yes. Supp Data 1 fn and MOESM1 confirm that the trend uses Oxford WebQ re-measured means per baseline category.
  - Quintile RRs = no. Correct.
  - Supp Data 3/4/5 footnotes do not restate the method. The all-participant trend is identical to the calibrated Supp Data 1 value, so the inference is sound.
- **Adjustment sets:**
  - m6 (stratified only) and m7 (Model 2, no energy/alcohol) match the Supp Data 2 footnote.
  - m8 matches the Supp Data 5 footnote, which omits HRT; adj_hrt = unclear is correct.
- **Subgroups:**
  - good-health and excluding-first-5-years strata = no.
  - Smoking, BMI, deprivation and alcohol strata = no.
  - Stratum N transcribed correctly, incl. the printed "264.632" → 264632.
- **sex** women, **cohort** mws, **outcome** proximal_colon / distal_colon / rectum: correct.
- **Case sums:**
  - Supp Data 3: 12251 / 9664 / 10025. Each matches the n on its trend row.
  - Supp Data 4: proximal 5224, distal 3164, rectum 3352 (sum 11740 of 12251; rest unspecified).
- **dose_conversions dc02–dc07:** no cut points or medians are printed, so g_day_assigned is empty. Correct.

## Missing estimates
None. The Supp Data 1 "Red and processed meat" row, the Supp Data 2 "Fully adjusted" row and the Supp Data 3 all-participant trend are all identical to main-text row 001 and were correctly not duplicated. The other foods are not meat or fish.

## Rows confirmed
All 50 are confirmed on numbers. Apart from _007 (flag) and the main-model rule question above, all flags are confirmed.

## Internal inconsistencies in the paper
- The Supp Data 5 title says "(excluding alcohol)", but the table includes alcohol strata.
- The Supp Data 5 BMI 25+ N is printed as "264.632".
- The Supp Data 5 footnote omits HRT, which is in the other footnotes.
- The Supp Data 3/4 yogurt/fruit category labels are corrupted into dates (Excel). This affects no meat rows.
