# Research 02: reproduction package Ukraine / PISA 2025. Analysis snapshot: 12 September 2026. This archive contains aggregate estimates and code, not student microdata. 1. Download the official OECD Student archive: https://webfs.oecd.org/pisa2022/2025/CY09_MS_STU_PUF.zip Database: https://www.oecd.org/en/data/datasets/pisa-2025-database.html 2. Extract CY09_MS_STU_PUF.sav with a Deflate64-compatible tool. Put it in research-2/ukraine-education/pisa/ inside this unpacked package. SAV size: 2,168,666,883 bytes. SHA-256: 6f6fa1e1ecce23d39183d44ec82ba05b245fe88a2416c8d8dc1b016d556fc379 3. Use Python 3.12+ with numpy==2.5.3 pandas==3.0.5 pyreadstat==1.3.6. A virtual environment is recommended. Allow several GB of disk space and memory. 4. From this package directory run: python research-2/policy-research/pilot/run_pilot.py python research-2/policy-research/pilot/run_sensitivity.py python research-2/policy-research/verify_and_cost.py Scripts overwrite their own derived reports. Original microdata are read only. Country code: CNTRYID == '804'; expected 7,105 distinct student IDs. run_pilot.py and run_sensitivity.py also accept --data /path/to/file.sav. The independent verifier uses the relative directory stated above. See research-2/policy-research/proposal.md and its pilot/README.md for estimands, variance and limitations. The website's 1,000-person example rescales weighted estimates. It is not a real program. Outcomes are offers of places, not attendance or learning gains. Diagnostic accuracy and screening costs are hypothetical scenarios.