# K9a control – mehta2020 (supplement rows, extractor opus-S4)

Controller: K9a · 30.10.2026 · Source: `drive/supplements/mehta2020_suppl.txt` (Suppl Tables 1–5).
Scope: 316 rows (Suppl T1 80, T2 80, T3 7, T4 84, T5 65), dose_conversions mehta2020_dc22–dc45, and adjustments m5 (updated) and m6–m11.

## Method
- All five tables were parsed by script (`scratchpad/k/meh.py`), giving 316 printed estimates. All 316 DB rows match one to one, with no missing and no extra rows.
- Compared: point, CI, n_cases, p_trend, category median (dose_point) and continuous increment (dose_unit).
- Case sums: all 45 category sets in T1, T2 and T5 sum to the n on their continuous row.

## Discrepancies

| estimate_id | field | in database | in paper | severity |
|---|---|---|---|---|
| mehta2020_233 (opus-G) vs mehta2020_495 (opus-S4) | duplicate | unprocessed red meat nutrient-density Q4 vs Q1, 1.17 (0.78–1.77), stored twice: once as `hvl` (text row) and once as category rank 4 | Suppl T5 | **major (double counting risk)**. The notes cross-reference each other, but neither row is marked superseded. Flag _233 so that it cannot enter a hvl pool alongside _491–495. |
| mehta2020_234 (opus-G) vs mehta2020_540 | duplicate | bacon nutrient-density Q4, 1.22 (0.81–1.82), stored twice | Suppl T5 | major (same as above) |
| mehta2020 red_unprocessed rows (S4: 43 rows; also main text) | exposure_includes_processed | `no` | T5 lists "Hamburgers, cheeseburgers" under "Specific unprocessed red meat … products" (FPED unprocessed red meat) | minor/decision. Under R6, hamburger in the aggregate means `partial`, which is how Bernstein and others are coded. Mehta's food list in the text does not say this explicitly, so it is an inference. Cross-study consistency needs a Fable ruling. |
| mehta2020_526–530 | exposure | Hamburgers, cheeseburgers → `red_unprocessed` | single product | minor. This matches the main-text coding, but a single-item variable under the aggregate code can be picked up by mistake in pooling. Suggest a note or subgroup tag. |
| mehta2020_dc22–dc45 | coverage | only aggregate sets (total, red, processed, white; T5 also beef, pork, poultry, fish) | T1/T2/T5 also print product quartile medians | minor. Consistent with the main-text convention (products not converted). |

**No wrong numbers.**

**T4 (hvl coding):**
- Only Q1 and Q4 are printed. Each exclusion column is coded as continuous + `hvl` rank 1 (Q1, reference 1.0, as printed blank) + `hvl` rank 4.
- n_cases, HR and CI match, as do adjustment sets m10/m11 (m11 = family-history column, footnote b without family history).
- Subgroup labels are correct. The title says "(4) within 1 year", but the column header says 2 years, and the DB follows the header (correct).

**T5 (energy density):**
- Category rows use `g_per_1000kcal_day` with the printed medians.
- Continuous units match the symbols:
  - "+" = `per_50g_per_1000kcal` (total, red, white)
  - "#" = `per_25g_per_1000kcal` (processed, beef, pork, poultry, seafood, hamburgers, ham)
  - "^" = `per_10g_per_1000kcal` (bacon, hot dogs, breakfast sausages)
- The new unit values are documented in NOTES_all.
- p_trend sits on Q4. Adjustment set m5 is density without a calorie term, per fn a.

**T3:** hvl Q4 vs Q1 with Q4 cases. Adjustment sets m6–m9 have the correct meat flags. is_mutually_adjusted_processed is yes for red, white and the four products and no for processed itself. Correct.

## Flags checked
- **is_main_model:**
  - yes only for the T1 colon/rectum aggregate rows (total, unprocessed red, processed, white) in the main model m2.
  - Product rows are no, because processed already has a main row.
  - T2 (diagnosis source), T3, T4 and T5 are all no. Correct.
- **is_calibrated** no; **sex** women; **effect_measure** HR. Correct.
- **outcome:** T1 colon/rectum; T2–T5 colorectal, with T2 diagnosis-source subgroups. Correct.
- **exposure:** Seafood → fish, Poultry → poultry, White meat → white_meat, beef/pork includes_processed unclear. Reasonable.

## Missing estimates
None.

## Rows confirmed
All 316 opus-S4 rows are confirmed on numbers. Flags are confirmed except the R6 question above. The only structural issue is the two opus-G duplicates.

## Internal inconsistencies in the paper (all recorded as printed and noted on the rows)
- T4 "exclude previous cancer", unprocessed red meat Q1 cases = "4" (other columns 43–51): typo (_403).
- T5 processed meat Q2 1.29 (1.09–2.40): CI identical to Q4 and log-asymmetric, likely a copy error (_498).
- T5 bacon overall median "028" (= 0.28) (_536).
- The T4 title repeats "within 1 year" for exclusion (4).
- T5 fn c says "red meat (including organ meat)", where T1/T2 say "unprocessed red meat".
- T3/T4/T5 footnotes omit total calories, unlike T1/T2. adj_energy is coded unclear/density accordingly.
- Colon (116) + rectum (30) = 146 of 210 adjusted cases. The site of the other 64 is unstated.
