1# F1-conf-02 — Balanced-panel mean life expectancy, 2000–202223## Question4By how much did unweighted mean life expectancy at birth (WDI `SP.DYN.LE00.IN`) change from 2000 to 2022 across a fixed set of countries? The set is the countries (by iso3) that have a recorded value in every year from 2000 to 2022.56## Data and exclusions7Input: `data/life_expectancy_panel.csv`, 439 data rows (`n_input_rows`), 20 distinct countries (`n_countries_total`). Problems found (`data_issues`):8- **Türkiye (TUR) appears twice**: all 23 years occur under both "Turkey" and "Turkiye", and the values are identical. This is an error from assembling the two extractions. I kept one row per (iso3, year), so TUR is counted once.9- **Switzerland (CHE) 2007 is empty**: treated as missing and not imputed, so CHE is not in the balanced set.10- **Bangladesh, Ethiopia, India and Nigeria** have rows only for 2011–2022, so they are not in the balanced set.1112Exclusion ledger (`out/exclusions.csv`): 439 → 416 (23 duplicate TUR rows removed) → 415 (1 empty cell removed) → 345 (70 rows of the 5 incomplete countries removed). So `n_analysed` = 345 = 15 countries × 23 years.1314Balanced set (`balanced_countries`, `n_countries_balanced` = 15): AUS, AUT, BEL, CAN, DEU, ESP, FRA, GBR, ITA, JPN, KOR, NLD, SWE, TUR, USA. Incomplete (`n_countries_incomplete` = 5): BGD, CHE, ETH, IND, NGA (`incomplete_countries`).1516## Method17For each year, the simple mean of life expectancy over the 15 balanced countries, each counted once. The change is the 2022 mean minus the 2000 mean. The baseline is the simple mean over every distinct country with a recorded 2022 value (20 countries, `n_countries_2022_all_available`). No imputation, no weighting and no randomness (`random_seed` = null). `out/analysis.py` regenerates every output from `data/`.1819## Results20- Balanced mean in 2000: **78.060 years** (`mean_2000_balanced` = 78.060267).21- Balanced mean in 2022: **81.553 years** (`mean_2022_balanced` = 81.553067).22- Change 2000–2022: **+3.493 years** (`change_2000_2022_balanced` = 3.4928).23- Baseline, mean over all countries available in 2022: **78.692 years** (`mean_2022_all_available`). It is lower than the balanced 2022 mean (`mean_2022_balanced`) because it includes four lower-life-expectancy countries that lack 2000–2010 data (BGD, ETH, IND, NGA). Comparing it with the 2000 balanced mean would mix a change in which countries are counted with a change over time. That is why it is not the estimand.24- Feasibility: `feasibility` = "complete".2526## Uncertainty27These are exact descriptive means over a fixed, listed set of countries, using published WDI estimates. No sampling standard error or confidence interval is reported, because the countries are not a random sample from a larger population. The WDI values are themselves modelled estimates (UN WPP-based) and carry their own uncertainty, which the source does not quantify. The results do not depend on which TUR duplicate is kept, because the duplicate values are identical (`data_issues`).2829## Limitations and open issues30- The balanced set has only high- and upper-middle-income countries plus Türkiye. It leaves out all four lower-income countries and Switzerland (because of a single missing year, CHE 2007). So the change describes these 15 countries only, not "the world" or all 20 countries.31- The mean is unweighted, not population-weighted.32- The missing CHE 2007 value and the missing 2000–2010 rows for BGD/ETH/IND/NGA may come from the narrower extraction rather than the source. Under the task rules they are treated as missing and not looked up.33- Name inconsistency: the README writes "Türkiye", while the file has "Turkey" and "Turkiye". `analytic.csv` uses "Turkiye".34- Process notes: shell working-directory errors twice created stray directories (`data/out/`, `out/out/`). Both were removed straight away. The data files were not touched (SHA-256 matches `bundle.json`).35