# K2 control – english2004 (English et al., CEBP 2004;13:1509–14, MCCS)

Controller: K2 (independent). Source: `Understudier WCRF/english2004.txt`. Database files read: estimates, adjustments, studies, dose_conversions, cup_extraction (English rows only).

## Method
- Table 3 (p. 1512) was parsed by script and compared with all 60 non-reference rows: point, ci_low, ci_high and p_trend. That covers 4 exposures plus the ratio, × 3 outcomes, × (Q2–Q4 + continuous). **0 mismatches.**
- Table 1 (p. 1511) bounds, cases and n per category: summed and compared by script.
- I checked the six text estimates (p. 1511, red and processed meat modelled together), the exposure definitions, adjustment flags, studies.csv and dose_conversions by reading.

## Discrepancies

| estimate_id | field | in database | in paper | severity |
|---|---|---|---|---|
| english2004_005, 010, 015, 020, 025, 030, 035, 040, 045, 050, 055, 060, 076–081 (18 rows) | dose_unit | `per_serving` | HR per "increase of one time per week" (Table 3 header); "each additional serve per week" (p. 1511). The unit is per 1 serving/**week**. KODEBOK has `per_serving_week`. The row notes admit this ("semantically per 1 serving/week"). | major. A script reading `per_serving` as per serving/day would rescale wrongly by a factor of 7. |
| english2004_061–075 (15 ratio rows) | exposure / contrast_type | `red_unprocessed` / `substitution` | Ratio of fresh-red-meat frequency to chicken+fish frequency (Table 3, p. 1510). This is a derived ratio, not an amount of red meat, and not a formal substitution model. | minor. `is_main_model = no` keeps it out of the main pools. But a filter on `exposure = red_unprocessed` will pick it up. A separate exposure value is recommended. |
| english2004_065, 070, 075 | verbatim | "…increase of one time per week 1.13 …" | Ratio rows are per one-unit increase in the ratio (Table 3 footnote c) | minor (label) |

No critical discrepancies.

## Checks that passed (selected)
- **Exposure:** "Fresh red meat" covers veal or beef schnitzel, roast beef or veal, steak, rissoles/meatloaf, mixed beef dishes, lamb, pork, and rabbit/game (p. 1510). Processed meat (salami, sausages, bacon, ham, corned beef, luncheon meats) is a separate variable. So `red_unprocessed` / `includes_processed = no` is correct.
- **Category contrast:** the bottom fresh-red-meat category is printed **"<3"** times/wk (Table 1), not ≤3. The database has `<3` (dose_high 3, label "<3 times/wk"), which is correct. The top category is 6.5+. The cup_extraction issue text ("<3 not <=3") agrees.
- **Case counts:** fresh red meat 66+123+142+120 = 451, and the same 451 for processed, chicken, fish and ratio. n per category sums to 37,112 for every exposure. Both match the paper totals. Outcome totals 451/283/169 are correct; colon + rectum = 452 because one subject had both tumours (p. 1511).
- **Model:** the Table 3 footnote gives sex, country of birth, energy, fat and cereal products, with age as the time metric. All m1 flags are correct, including fiber = no, saturated_fat = no (total fat was used) and fruit_veg = no. m2 (the text model with both meats) is correct, with adj_processed_meat = yes on the fresh-red-meat rows.
- **is_main_model:** `yes` on Table 3 rows and `no` on the text-only mutually adjusted rows. I agree, because the paper calls Table 3 its "definitive analyses". Note that the mutually adjusted fresh-red-meat estimates (1.02 CRC, 1.00 colon, 1.07 rectum per serve/wk) are the processed-adjusted alternative.
- **Reference rows:** not printed in Table 3, implied 1.0. Correct.
- **studies.csv:** cohort, n 37,112, age 27–75, recruitment 1990–1994, mean 9 y follow-up, 121-item FFQ without portions, registry, cases 451/283/169, includes_processed = no. All correct.
- **dose_conversions:** gram quartile cut-points 57/86/126 g (fresh red meat) and 9/18/29 g (processed) are correct. Median weekly frequencies men 5.0/2.5 and women 4.0/2.0 are correct. g_day_assigned is left empty, which is correct because the paper prints no category medians or grams per serve.
- **Source pages:** Table 1 p. 1511, Table 3 p. 1512, text p. 1511. All correct.

## Missing estimates
None. Proximal/distal, stage, sex and country-of-birth strata are "no persuasive evidence" statements with no numbers. The homogeneity p-values are not estimates.

## Rows confirmed correct
Every number in all 81 rows (english2004_001–081) is confirmed. The 48 rows not listed above are confirmed on every field.

## Inconsistencies within the paper
- Table 1 chicken bounds overlap: "1.5 – 2.4" then "2.0 – 3.4" (probably a typo for 2.5). Row 033 records it as printed with a note.
- Text p. 1511 gives Greek immigrants' processed-meat median as "2.5 versus 4 times/wk for all other groups". This does not fit the overall medians of 2.5 (men) and 2.0 (women). It does not affect any estimate.
- About 16 rows exceed the 15 % log-asymmetry threshold of KODEBOK check 2, only because the CIs are printed to one decimal (e.g. 0.7 (0.6–1.0)). These are rounding effects, not typos. They are not flagged in the notes, unlike in Pietinen. The flagging practice should be harmonised.
