# Fixed OECD membership and uncertainty

The current repository uses explicit published aggregate IDs `AGG_OECD_AVERAGE_23` and `AGG_OECD_AVERAGE_29` in `visual_round3/data.py`. Its configuration pins the 38 OECD country codes but does not store separate 23/29 membership arrays. This audit does not guess those arrays: it applies the published exclusions in the frozen edition's **Reader's Guide**, archived as `sources/pisa2025_volume1.pdf`, printed pp.20–21 / PDF indexes 21–22, to that existing 38-country list. The supplementary PDF is used for membership metadata, not to refresh the selected observations.

- OECD-23: AUS BEL CAN CZE DNK FIN FRA DEU GRC HUN ISL IRL ITA JPN KOR LVA MEX NZL NOR POL PRT SWE CHE.
- OECD-29: AUS AUT BEL CAN CHL CZE DNK EST FIN FRA DEU GRC HUN ISL IRL ISR ITA LVA LTU NLD NZL NOR PRT SVK SVN SWE CHE GBR USA.

The machine-readable lists are `data/comparator_members.json`; the corresponding excluded codes are explicit in the new normalization module. Historical country-name aliases are resolved by the existing repository parser. Every member must have one valid mean and SE; duplicates raise an error. Missing cells yield **no aggregate**. No denominator adjustment or old published OECD-30/34/35/36 average is allowed.

## Reconciliation with the current displayed series

For all 2015/2018/2022/2025 × three subjects × two groups, the equal-country mean and standard error are reproduced from the existing frozen country rows. There are 48 checks across the two comparators. Largest absolute differences from the published aggregate are:

- Mean: 0.000006956521644951863 PISA points.
- SE: 0.00000509904562995267 points.

Both are below the existing 0.0001 absolute tolerance; small differences reflect the exported source precision. These checks establish that the documented lists reproduce the actual selected series, rather than only matching an aggregate label.

## Extension results

- OECD-23, 2009: all 23 country means and SEs available for boys/girls in all subjects in II.B1.7.28/.33/.38. Six reconstructed candidate points, clearly identified as our aggregation. Existing 2012 onward points remain unchanged. Reading 2000 and science 2006 also reconstruct for supporting availability only; they are not drawn in the selected 2009 candidate.
- OECD-29, 2012: all 29 country means and SEs available for combined/non-immigrant groups in `qmuad8.xlsx`, Tables I.B1.7.18/.22/.26. Six reconstructed candidate points; existing published 2015 onward points remain unchanged.
- OECD-29, reading 2009: Austria `m` for non-immigrant E17 and immigrant H17; Chile immigrant H20 `c`; Slovak Republic immigrant H45 `c` in II.B1.9.10. The cell addresses are independently retained in `data/comparator_missing_cells.csv`. No aggregate is produced. Original Austrian 2009 observations cannot bypass OECD's trend exclusion: original Volume I Annex A4, printed p.186 / PDF index 187, describes the boycott-related motivation/comparability issue. For mathematics/science, the 2009 full country set has not been recovered.

## Estimation and limits

For n fixed countries, the displayed comparator is `sum(country_mean)/n`. Country means are already survey-weighted OECD estimates; countries receive equal weight. Under independent national samples its SE is `sqrt(sum(country_SE**2))/n`. These are country-average sampling SEs, **not** SEs of changes over time. Cross-cycle covariance and linking error are not available for the new endpoint comparisons; no new significance claims follow from these calculations. Where the original table marks significance in bold, that formatting is archived, not reapplied to a different contrast.

See `data/comparator_reconstruction.csv`, `candidate_comparators.csv`, and `comparator_missing_cells.csv` for exact values and source cells.
