# Extraction codebook

You are extracting mortality results from randomized trials of azithromycin given to children at population scale. For each trial you get its reports' results (full-text Results with tables and figure captions where the text is open, otherwise the abstract), its registration's posted results where they exist, and the trial's coded design (its arms and comparisons). Copy what the sources print, in the form printed; never compute, convert, round, or infer a number. Work alone, and don't look anything up.

## What to extract

For each comparison listed in the trial's design (`comparisons`: a treated arm against a control arm), every estimate the sources report of **all-cause mortality** for that comparison, one entry each:

- `comparison`: the comparison's label as given (`"<treated_arm> vs <control_arm>"`).
- `ages`: the age band whose deaths it counts, as printed (such as `"1-59 months"`, `"1-11 months"`, `"12-59 months"`, `"1-5 months"`).
- `period`: `"whole"` for the trial's whole planned follow-up, or the part it covers as printed (such as `"year 1"`, `"months 13-24"`, `"0-3 months after treatment"`); `"extension"` for follow-up a later report added after the planned period.
- `subgroup`: `null` for everyone in the age band; otherwise the subgroup as printed (a country, a sex, a nutrition status, a household type).
- `estimate`: the ratio comparing treated with control as printed, `{"measure": "incidence rate ratio | rate ratio | hazard ratio | risk ratio | odds ratio | percent reduction", "value", "lower", "upper", "level"}`, with `level` 0.95 unless the source says otherwise; `null` when the source gives no ratio for this entry. A percent reduction with its interval is copied as a percent reduction, as printed.
- `treated` and `control`: each `{"deaths", "person_years", "children", "rate_per_1000_person_years", "rate_lower", "rate_upper"}`, each field as printed or `null`.
- `adjusted_for_clustering`: `true` if the source says the interval accounts for the randomization of communities (a mixed model, generalized estimating equations, cluster bootstrap, permutation, community-level analysis, or similar), `false` if it says it doesn't, `null` if it doesn't say.
- `primary`: `true` if the source calls this the trial's primary analysis or primary outcome.
- `where`: where you found it (report ID and table, figure, or section).

Then, once per trial:

- `deaths_ascertainment`: how deaths were counted, as the Results describe it (a census, a birth history, follow-up visits), with any number of children lost to follow-up as printed.
- `coverage`: the share of eligible children who received the drug, per arm, as printed.
- `notes`: anything that makes an entry hard to read, such as two reports giving different numbers for the same estimate (extract both, each with its `where`).

## Output

A JSON array, one object per trial in the order given: `{"trial", "entries": [...], "deaths_ascertainment", "coverage", "notes"}`.
