# K9c – kontroll av zouiouich2025, supplementrader (opus-S5, zouiouich2025_238–2863)

Kontrollør: K9c (uavhengig) · 2026-10-30 · Kilde: `/home/claude/drive/supplements/zouiouich2025_suppl.txt` (Suppl. Tables 1–10), main text `/home/claude/drive/post2015/zouiouich2025.txt` for definisjoner og Fig 1/2-totaler.
Database ikke endret. NOTES.md lest først etter egen kontroll.

## Metode
1. Egen parser (`parse.py`, kopiert hit) leste alle celler i S1, S2, S3, S8, S9, S10 (9 kjøttkolonner × sted × gruppe) og S4/S5 (9 kjøtt × 13 steder × Q1–Q5 + P trend). 3 159 HR-celler + 117 p-trend-celler; tellinger kontrollert mot tabellstrukturen (S1/S2/S8/S10-blokk 117 hver, S9 4 × 36, S3 117, S4/S5 702 hver).
2. `compare.py` koblet hver av de 2 626 radene til nøyaktig én celle (tabell, sted, kjøttkolonne, kjønn/stratum, kvintil) og sammenlignet felt for felt: point, ci_low, ci_high, p_trend (bare på Q5), n_cases (S8/S9), exposure, exposure_includes_processed, outcome + subsite-subgroup, sex, subgroup (BMI/rase/lag), contrast_type, dose_unit, category_rank, category_label (substitusjonsretning), model_label (substitusjon/addisjon), adjustment_set_id, is_main_model, is_calibrated, effect_measure, is_mutually_adjusted_processed.
3. `skip.py` sammenlignet alle 326 hoppede celler med rad 001–237 (og S10-Overall mot S1-Overall); 50 tilfeldige av dem er listet under.
4. Lest manuelt: fotnoter til S1–S5 og S8–S10, Methods (substitusjon/addisjon, lag-perioder, stratifiseringer), Table 1 (kvintilmedianer), Fig 1/2 (casetall per sted), stikkprøver av rå celler (S1 cecum kvinner, S8 transverse <25, S5 fisk Q5 hepatic, S9 rectal NH-White).

## Resultat i tall
| | Antall |
|---|---|
| Rader kontrollert | 2 626 |
| Rader som matcher én celle | 2 626 (ingen dobbeltkobling, ingen uten celle) |
| Tallavvik (point/CI/p_trend/n_cases) | **0** |
| Feil eksponering/utfall/kjønn/stratum | **0** |
| Feil kontrasttype/modell/justeringssett/flagg/dose_unit | **0** |
| Celler uten rad (mulig manglende) | 326, alle forklart av duplikatregelen (se under) – **0 reelt manglende** |
| Avvik: critical / major / minor | 0 / 0 / 0 |

## Avvikstabell
estimate_id | felt | i databasen | i artikkelen | alvorlighet
---|---|---|---|---
(ingen) | | | |

## Kontroll ved lesing
- **S1 = substitusjon:** fotnoten lister «total meat» blant kovariatene, og alle 105 overlappende celler er identiske med Fig 1/Fig 2/Table 2-substitusjonsverdiene. Riktig.
- **S3 og S5 = addisjon:** S3-fotnoten har ikke total meat, men «corresponding meat groups»; S5-fotnoten har ingen kjøttledd. Alle 104 overlappende S3-celler er identiske med addisjonsverdiene i Fig 1/Fig 2/Table 2. S3 er kodet `continuous` (som de eksisterende addisjonsradene), S5 `category` med addisjonsmodell (m6/m7/m8/m9). Riktig. At S5 bruker samme sett som S3 er en antakelse (fotnoten sier ikke det), og den er merket på radene.
- **S4** har total meat i fotnoten, altså substitusjon (m1–m5). Riktig.
- **S8-strata:** <25, 25–<30, ≥30 → bmi_lt25 / bmi_25_lt30 / bmi_ge30. Alle casetall per stratum og sted stemmer. Fotnoten mangler BMI → m10–m14 med adj_bmi = no. Riktig.
- **S9-strata:** NH White / NH Black / Hispanic / Asian-PI-AI/AN → race_* (bare CRC, proksimal, distal, rektal, slik Methods sier). Casetallene stemmer. Fotnoten mangler rase/etnisitet → m15–m19. Riktig.
- **S10-lag:** tabellen trykker 0–5 år (N = 454 505), 5–10 år (N = 401 425) og 10+ år (N = 342 588) → lag_0_5y / lag_5_10y / lag_10plus_y. Riktig. Fotnoten har det fulle settet → m1–m5. «Overall»-blokken (117 celler) er identisk med S1 overall, celle for celle, og er derfor riktig utelatt.
- **Justeringssett m9–m19:** kovariattekstene og flaggene stemmer med fotnotene. m10–m14 = m1–m5 uten BMI; m15–m19 = m1–m5 uten rase (det finnes ingen raseflagg, så flaggene er like). m9: partnerleddet «total unprocessed» er utledet fra Methods (addisjonsleddene summerer til total meat). Det er merket som antakelse; adj_poultry/adj_fish = unclear er forsvarlig.
- **Eksponeringsdefinisjoner** (Methods): poultry inkluderer pålegg og lettpølser → `yes`; white unprocessed (kylling, kalkun, fisk, kvernet fjørfe) → `no`; red unprocessed inkluderer hamburger → `partial` (R6); «Processed» = rødt + hvitt prosessert → `processed`. Riktig.
- **Kvintil-doser:** bare total red Q1/Q3/Q5 har dose_point (9.83 / 31.30 / 62.53, fra Table 1). Det er riktig, fordi Table 1-medianene for andre kjøttslag er etter rødkjøtt-kvintil. 234 kategorisett med 5 rader hver, rang 1–5, P trend bare på Q5.
- **is_mutually_adjusted_processed:** yes for red unprocessed (m2/m8/m11/m16) og for white-subtyper i m8. Det er konsistent med rad 001–237.

## Duplikatregelen (hoppede verdier)
- S1: 105 hoppet (overall: 8 kolonner × 13 steder minus 1, + CRC rødt menn/kvinner fra rad 081/082). Alle 105 er identiske med eksisterende rader på point og KI.
- S3: 104 hoppet (8 kolonner × 13). Alle er identiske med eksisterende addisjonsrader.
- S10 Overall: 117 hoppet. Alle er identiske med S1 overall.
- Den ene overlappende S1-cellen som *ikke* ble hoppet over (descending colon, red processed, 1.32 (0.74, 2.36)) avviker fra Fig 2-raden zouiouich2025_201 (1.32 (0.61–2.85)), og er derfor riktig kodet som ny rad zouiouich2025_388. 0.61–2.85 er S1-verdien for splenic flexure, altså en trykkfeil i Fig 2. S10 Overall bekrefter 0.74–2.36.

Stikkprøve på 50 hoppede verdier, alle like (tabell | sted | kolonne | kjønn | eksisterende rad | suppl. | eksisterende | kilde):

| S | sted | kolonne | kjønn | rad | supplement | database | kilde |
|---|---|---|---|---|---|---|---|
| 3 | proximal | White Processed | all | zouiouich2025_148 | 1.10 (0.83, 1.46) | 1.10 (0.83, 1.46) | Fig 2 |
| 3 | distal | White | all | zouiouich2025_112 | 0.98 (0.90, 1.06) | 0.98 (0.90, 1.06) | Fig 1 |
| 1 | rectosigmoid | Fish | all | zouiouich2025_045 | 0.60 (0.38, 0.93) | 0.60 (0.38, 0.93) | Table 2 |
| 1 | descending | White | all | zouiouich2025_121 | 0.90 (0.65, 1.24) | 0.90 (0.65, 1.24) | Fig 1 |
| 1 | hepatic | Red Unprocessed | all | zouiouich2025_167 | 1.13 (0.79, 1.62) | 1.13 (0.79, 1.62) | Fig 2 |
| 1 | transverse | White Processed | all | zouiouich2025_181 | 0.53 (0.22, 1.27) | 0.53 (0.22, 1.27) | Fig 2 |
| 3 | descending | White Unprocessed | all | zouiouich2025_202 | 0.94 (0.75, 1.17) | 0.94 (0.75, 1.17) | Fig 2 |
| 1 | colorectal | Red Unprocessed | all | zouiouich2025_135 | 1.19 (1.10, 1.28) | 1.19 (1.10, 1.28) | Fig 2 |
| 1 | rectal | White Processed | all | zouiouich2025_221 | 0.49 (0.30, 0.80) | 0.49 (0.30, 0.80) | Fig 2 |
| 3 | cecum | Poultry | all | zouiouich2025_012 | 1.03 (0.92, 1.15) | 1.03 (0.92, 1.15) | Table 2 |
| 3 | rectum | Poultry | all | zouiouich2025_052 | 0.90 (0.79, 1.03) | 0.90 (0.79, 1.03) | Table 2 |
| 3 | distal | Red Unprocessed | all | zouiouich2025_182 | 1.21 (1.07, 1.37) | 1.21 (1.07, 1.37) | Fig 2 |
| 1 | cecum | Red Processed | all | zouiouich2025_153 | 1.35 (1.02, 1.80) | 1.35 (1.02, 1.80) | Fig 2 |
| 1 | rectal | White Unprocessed | all | zouiouich2025_219 | 0.79 (0.69, 0.91) | 0.79 (0.69, 0.91) | Fig 2 |
| 3 | hepatic | White Unprocessed | all | zouiouich2025_170 | 1.03 (0.84, 1.26) | 1.03 (0.84, 1.26) | Fig 2 |
| 3 | distal | White Unprocessed | all | zouiouich2025_186 | 0.98 (0.90, 1.07) | 0.98 (0.90, 1.07) | Fig 2 |
| 3 | sigmoid | Red Processed | all | zouiouich2025_208 | 1.19 (0.91, 1.56) | 1.19 (0.91, 1.56) | Fig 2 |
| 1 | proximal | Red | all | zouiouich2025_083 | 1.16 (1.05, 1.27) | 1.16 (1.05, 1.27) | Fig 1 (values from Results text) |
| 3 | rectal | Red Unprocessed | all | zouiouich2025_214 | 1.14 (1.00, 1.29) | 1.14 (1.00, 1.29) | Fig 2 |
| 1 | rectum | Red | all | zouiouich2025_090 | 1.19 (1.01, 1.40) | 1.19 (1.01, 1.40) | Fig 1 (values from Results text) |
| 1 | transverse | Red Unprocessed | all | zouiouich2025_175 | 1.23 (0.92, 1.65) | 1.23 (0.92, 1.65) | Fig 2 |
| 3 | sigmoid | White | all | zouiouich2025_123 | 0.97 (0.88, 1.07) | 0.97 (0.88, 1.07) | Fig 1 |
| 3 | proximal | Red Processed | all | zouiouich2025_144 | 1.20 (1.01, 1.44) | 1.20 (1.01, 1.44) | Fig 2 |
| 3 | rectal | Red | all | zouiouich2025_125 | 1.19 (1.07, 1.32) | 1.19 (1.07, 1.32) | Fig 1 |
| 3 | colorectal | White | all | zouiouich2025_091 | 0.95 (0.91, 0.99) | 0.95 (0.91, 0.99) | Fig 1 (values from Results text) |
| 1 | hepatic | Fish | all | zouiouich2025_017 | 0.75 (0.44, 1.27) | 0.75 (0.44, 1.27) | Table 2 |
| 3 | rectal | White | all | zouiouich2025_126 | 0.91 (0.83, 1.00) | 0.91 (0.83, 1.00) | Fig 1 |
| 1 | splenic | Red Processed | all | zouiouich2025_193 | 1.32 (0.61, 2.85) | 1.32 (0.61, 2.85) | Fig 2 |
| 1 | proximal | White | all | zouiouich2025_096 | 0.86 (0.78, 0.95) | 0.86 (0.78, 0.95) | Fig 1 |
| 1 | ascending | Red Processed | all | zouiouich2025_161 | 1.10 (0.80, 1.51) | 1.10 (0.80, 1.51) | Fig 2 |
| 1 | ascending | Poultry | all | zouiouich2025_014 | 0.94 (0.79, 1.13) | 0.94 (0.79, 1.13) | Table 2 |
| 3 | ascending | Red | all | zouiouich2025_100 | 1.06 (0.93, 1.21) | 1.06 (0.93, 1.21) | Fig 1 |
| 3 | transverse | Fish | all | zouiouich2025_023 | 0.96 (0.67, 1.37) | 0.96 (0.67, 1.37) | Table 2 |
| 1 | proximal | Fish | all | zouiouich2025_005 | 0.76 (0.65, 0.89) | 0.76 (0.65, 0.89) | Table 2 |
| 1 | rectum | Red Unprocessed | all | zouiouich2025_231 | 1.12 (0.92, 1.35) | 1.12 (0.92, 1.35) | Fig 2 |
| 1 | ascending | Red | all | zouiouich2025_101 | 1.08 (0.92, 1.28) | 1.08 (0.92, 1.28) | Fig 1 |
| 1 | sigmoid | Red Unprocessed | all | zouiouich2025_207 | 1.29 (1.09, 1.53) | 1.29 (1.09, 1.53) | Fig 2 |
| 1 | distal | Red Processed | all | zouiouich2025_185 | 1.26 (0.99, 1.60) | 1.26 (0.99, 1.60) | Fig 2 |
| 1 | distal | Poultry | all | zouiouich2025_026 | 0.77 (0.66, 0.89) | 0.77 (0.66, 0.89) | Table 2 |
| 3 | colorectal | Red Processed | all | zouiouich2025_136 | 1.24 (1.10, 1.39) | 1.24 (1.10, 1.39) | Fig 2 |
| 1 | cecum | White Unprocessed | all | zouiouich2025_155 | 0.82 (0.70, 0.96) | 0.82 (0.70, 0.96) | Fig 2 |
| 3 | rectum | White Unprocessed | all | zouiouich2025_234 | 0.97 (0.86, 1.08) | 0.97 (0.86, 1.08) | Fig 2 |
| 1 | distal | White | all | zouiouich2025_113 | 0.80 (0.71, 0.91) | 0.80 (0.71, 0.91) | Fig 1 |
| 1 | rectum | White Unprocessed | all | zouiouich2025_235 | 0.87 (0.74, 1.04) | 0.87 (0.74, 1.04) | Fig 2 |
| 1 | descending | Fish | all | zouiouich2025_033 | 1.00 (0.61, 1.65) | 1.00 (0.61, 1.65) | Table 2 |
| 1 | rectal | Fish | all | zouiouich2025_041 | 0.81 (0.64, 1.01) | 0.81 (0.64, 1.01) | Table 2 |
| 1 | proximal | Red Unprocessed | all | zouiouich2025_143 | 1.13 (1.01, 1.26) | 1.13 (1.01, 1.26) | Fig 2 |
| 1 | distal | Red Unprocessed | all | zouiouich2025_183 | 1.24 (1.07, 1.44) | 1.24 (1.07, 1.44) | Fig 2 |
| 3 | rectum | Red | all | zouiouich2025_131 | 1.10 (0.97, 1.26) | 1.10 (0.97, 1.26) | Fig 1 |
| 3 | colorectal | Red | all | zouiouich2025_092 | 1.16 (1.10, 1.22) | 1.16 (1.10, 1.22) | Fig 1 |

## Manglende estimater
Ingen. Alle 3 159 HR-celler i S1–S5 og S8–S10 har enten en rad blant 238–2863 eller en identisk rad blant 001–237. S6 (heterogenitets-p) og S7 (E-verdier) har ingen HR/KI. De står i NOTES, og det er greit.

## Bekreftede rader
Alle 2 626 rader (zouiouich2025_238–2863) er bekreftet.

## Indre inkonsistens i artikkelen og observasjoner (ikke feil i uttrekket)
1. **Fig 2 trykkfeil** (descending colon, red processed): se over. Databasen har nå to rader for samme celle (201 som trykt, 388 fra supplementet). Analytikere må velge 388. Kontrollør anbefaler et eksplisitt flagg på 201, for eksempel `verification_status = disputed`, ved neste opprydding.
2. **Lag-perioder:** Methods oppgir 0–5, 5–10, 10–15 og 15+ år, mens S10 trykker 0–5, 5–10 og 10+. Radene er kodet som trykt.
3. **BMI-strata summerer ikke til totalen:** 2973 + 4057 + 2224 = 9 254 mot 9 461 CRC-tilfeller, og proksimal 4 474 mot 4 565. Det passer dårlig med Methods, som sier at manglende BMI ble imputert med kjønnsspesifikke medianer. Strata-tallene er kodet som trykt. Rasestrata summerer til 9 325, der «other/missing» er utelatt, og det er ventet.
4. **Celler med ci_low = 0.00** (rad 2437, 2509, 2581) og svært brede KI i S9/S10 er trykt slik, fordi to desimaler gir avrunding mot null. Log-asymmetri utover 25 % finnes bare i rad 2851 (0.06 (0.01, 0.75)), også det avrunding.
5. **is_main_model = no på alle rader i kjønnsstrata:** for menn og kvinner finnes det dermed ingen hovedrad. KODEBOK 4.2 definerer hovedmodell per eksponering × utfall × kjønn, så S1 menn/kvinner kunne vært `yes`. Uttrekkeren avviste dette fordi det ville blandet kontrasttyper (hovedradene er addisjonsmodeller). Det er et forsvarlig skjønn, men bør avgjøres av Fable.
6. **Antatte modelledd:** m5/m14/m19 (prosessert erstatter uprosessert), m9 (partnerledd) og S5 (samme sett som S3) er ikke spesifisert i artikkelen. Alle er merket som antakelser.

## Dom
Uttrekket er fullstendig og nøyaktig: 0 avvik på 2 626 rader, 0 manglende, og duplikatregelen er riktig anvendt. Det kan brukes. Tolkningen av substitusjon og addisjon, strata, lag-etiketter og justeringssett er riktig. Gjenstående punkter er skjønnsspørsmål (punkt 1 og 5) og ikke feil.
