# K9b – hoang2023 (opus-S3 rows 073–264) vs Additional file 1

Sources: /home/claude/drive/supplements/hoang2023_MOESM1.txt and the source /home/claude/suppl_in/hoang2023_MOESM1.docx.
**Warning: the txt is truncated.** In S7 the women's section jumps from poultry to the IV score (women total fish missing), and S8 lacks colon fish and the whole rectal-cancer section. The docx is complete, and the database rows match the docx. Use the docx as the reference.
Method: all 192 rows parsed from the docx tables and compared by script (HR/CI, cases, person-years, category labels, P-trend).

## Discrepancies
| estimate_id | field | in database | in paper | severity |
|---|---|---|---|---|
| studies.csv hoang2023 | includes_processed / red_meat_definition / notes | unclear; notes say exposure red_undefined | All red-meat estimate rows are now red_unprocessed / includes_processed=no (S1: beef, lamb/mutton, pork each "Do not count processed meats"). The study row must follow | major |
| all red-meat rows (S3 and opus-H) | category_set_id, notes | ids end "_red_undefined"; notes say "kept as red_undefined" plus appended Fable override | exposure is red_unprocessed | minor (cosmetic, but misleading) |
| poultry rows 097–108, 145–156, 175–177, 187–189, 199–201, 211–213, 223–225, 235–237, 247–249, 259–261 | exposure_includes_processed | unclear | S1 poultry question: "(Do not count processed meats)" → no. Bradbury codes the same UKB item no | minor |
| S7/S8 poultry and fish sets (175–180, 187–192, 199–204, 211–216) | category_rank vs dose | rank 1 = highest intake (≥2 or >2/wk), rank 3 = lowest | the paper uses the "healthy" category as reference; ordering is noted, but it breaks check 4 (doses rise with rank). Must be inverted or excluded before any dose-response use | major (for dose-response use only) |

## Red meat now coded red_unprocessed
Confirmed correct: S1 shows separate beef, lamb/mutton and pork items, each excluding processed meat, with processed meat a separate item that holds burgers, so R6 (hamburger rule) does not apply. All 48 S3 red-meat rows and the 18 opus-H rows are red_unprocessed/no.

## Checked and confirmed
- S4 (sex-specific, crude m1 and adjusted m5): 48 rows. HR, cases, P-trend correct (e.g. men red ≥3/wk adjusted 1.20 (1.10–1.32), P <0.001; women 1.10 (0.98–1.23), P 0.12).
- S5 (colon/rectal, crude m1 / adjusted m2): 48 rows correct.
- S7/S8 low-PRS column (joint models m6/m3): 48 rows. Cases and person-years correct.
- S9/S10 low-PRS stratum (m7/m4): 48 rows correct.
- Adjustment footnotes: S4 has no household income (m5 OK); S7/S9 add household income without sex (m6/m7 OK); S8/S10 add sex (m3/m4 OK). adj_age=unclear is reasonable (not listed).
- is_main_model: adjusted S4 rows (per sex) and adjusted S5 rows (colon, rectum) = yes; everything else no. Consistent with KODEBOK 4.2.

All 192 rows confirmed numerically.

## Missing estimates
- **S9 and S10, intermediate- and high-PRS columns.** These are within-stratum diet HRs, each with its own 1.00 reference (unlike the S7/S8 joint cells), so the reason for skipping S7/S8 does not apply. The main-text Table 4 equivalents were coded for all tertiles (dose_conversions dc14/dc15 etc. reference prsintermediate/prshigh sets). Missing: 2 sexes × 4 exposures × 3 categories × 2 tertiles (S9) + 2 sites × 4 × 3 × 2 (S10) = **96 rows**.
- S7/S8 intermediate/high joint cells: omission justified (they mix diet and PRS effects). Not counted as missing.

## Paper-internal inconsistencies
- S7/S8 reverse the category order for poultry, fish and milk (healthiest as reference), while S4/S5/S9/S10 use the lowest intake as reference.
- S8 person-years are identical in the colon and rectal sections (whole-cohort person-time). Noted by the extractor.
