{
  "study_id": "pm25-health-v2",
  "track": "A",
  "claim_class": "associational",
  "protocol_sha256": "78b4a0c505bc948ca0b6e19ec0624a603e160850a745491dbc8368e5ac4c78fb",
  "input": {
    "path": "/Users/evc/Documents/Codex/GHEAS/data/processed/gheas_multivariable_country_year.csv",
    "sha256": "c7179fa8cbe584df7f0094b43b72a64e129a303a18bde64fabe3423eb5ddf46c"
  },
  "software": {
    "python": "3.9.6",
    "numpy": "2.0.2",
    "pandas": "2.3.3",
    "scipy": "1.13.1",
    "statsmodels": "0.14.6",
    "linearmodels": "6.1"
  },
  "sample_audit": {
    "observed_rows": 4406,
    "countries": 186,
    "years": 24,
    "rectangular_grid_rows": 4464,
    "note": "The supplied processed file is already a complete-case extract; source-specific missingness must also be audited before this stage.",
    "variables": {
      "pm25": {
        "missing": 0,
        "missing_fraction": 0.0
      },
      "life": {
        "missing": 0,
        "missing_fraction": 0.0
      },
      "gdp_ppp": {
        "missing": 0,
        "missing_fraction": 0.0
      },
      "urban_pct": {
        "missing": 0,
        "missing_fraction": 0.0
      },
      "age65_pct": {
        "missing": 0,
        "missing_fraction": 0.0
      },
      "health_ppp": {
        "missing": 0,
        "missing_fraction": 0.0
      }
    }
  },
  "variable_decisions": {
    "primary_confounders": [
      "Lagged log GDP per capita PPP",
      "Lagged urban population share"
    ],
    "excluded_from_total_effect_primary_model": [
      "Age 65+ share",
      "Contemporaneous health spending"
    ],
    "reason": "The excluded variables can be downstream, simultaneous or mediating rather than clean pre-exposure confounders."
  },
  "models": [
    {
      "id": "A0",
      "label": "Two-way fixed effects, exposure only",
      "claim": "association",
      "formula": "life ~ pm10 + C(iso3) + C(year)",
      "n": 4406,
      "countries": 186,
      "estimate": 0.390601,
      "standard_error": 0.144846,
      "ci95_low": 0.106703,
      "ci95_high": 0.674499,
      "p_value": 0.00765,
      "uncertainty": "Country-clustered sandwich covariance"
    },
    {
      "id": "A1",
      "label": "Primary: two-way fixed effects with lagged confounders",
      "claim": "association",
      "formula": "life ~ pm10 + log_gdp_lag1 + urban10_lag1 + C(iso3) + C(year)",
      "n": 4220,
      "countries": 186,
      "estimate": 0.400655,
      "standard_error": 0.127886,
      "ci95_low": 0.149998,
      "ci95_high": 0.651311,
      "p_value": 0.002013,
      "uncertainty": "Country-clustered sandwich covariance"
    },
    {
      "id": "A2",
      "label": "Primary plus country-specific linear trends",
      "claim": "association",
      "formula": "life ~ pm10 + lag1(log_gdp) + lag1(urban) + country FE + year FE + country-specific linear trends (one redundant slope omitted)",
      "n": 4220,
      "countries": 186,
      "estimate": -0.037905,
      "standard_error": 0.073927,
      "ci95_low": -0.182802,
      "ci95_high": 0.106992,
      "p_value": 0.60875,
      "uncertainty": "Country-clustered sandwich covariance"
    },
    {
      "id": "A3",
      "label": "1-year change model",
      "claim": "association",
      "formula": "Dlife ~ Dpm10 + Dlog_gdp + Durban10 + C(year)",
      "n": 4220,
      "countries": 186,
      "estimate": -0.00612,
      "standard_error": 0.040735,
      "ci95_low": -0.08596,
      "ci95_high": 0.073721,
      "p_value": 0.880741,
      "uncertainty": "Country-clustered sandwich covariance",
      "exposure_scale": "Change in PM2.5 per 10 µg/m³ over 1 years"
    },
    {
      "id": "A4",
      "label": "5-year change model",
      "claim": "association",
      "formula": "Dlife ~ Dpm10 + Dlog_gdp + Durban10 + C(year)",
      "n": 3476,
      "countries": 186,
      "estimate": 0.134442,
      "standard_error": 0.083136,
      "ci95_low": -0.028504,
      "ci95_high": 0.297388,
      "p_value": 0.107552,
      "uncertainty": "Country-clustered sandwich covariance",
      "exposure_scale": "Change in PM2.5 per 10 µg/m³ over 5 years"
    },
    {
      "id": "A5",
      "label": "Three-year mean exposure",
      "claim": "association",
      "formula": "life ~ pm10_mean3 + log_gdp_lag1 + urban10_lag1 + C(iso3) + C(year)",
      "n": 4034,
      "countries": 186,
      "estimate": 0.56096,
      "standard_error": 0.184423,
      "ci95_low": 0.199491,
      "ci95_high": 0.922428,
      "p_value": 0.002694,
      "uncertainty": "Country-clustered sandwich covariance"
    },
    {
      "id": "A6",
      "label": "Five-year mean exposure",
      "claim": "association",
      "formula": "life ~ pm10_mean5 + log_gdp_lag1 + urban10_lag1 + C(iso3) + C(year)",
      "n": 3662,
      "countries": 186,
      "estimate": 0.609259,
      "standard_error": 0.207844,
      "ci95_low": 0.201885,
      "ci95_high": 1.016633,
      "p_value": 0.003801,
      "uncertainty": "Country-clustered sandwich covariance"
    },
    {
      "id": "A7",
      "label": "Ten-year mean exposure",
      "claim": "association",
      "formula": "life ~ pm10_mean10 + log_gdp_lag1 + urban10_lag1 + C(iso3) + C(year)",
      "n": 2732,
      "countries": 186,
      "estimate": 1.179148,
      "standard_error": 0.308282,
      "ci95_low": 0.574915,
      "ci95_high": 1.783381,
      "p_value": 0.000179,
      "uncertainty": "Country-clustered sandwich covariance"
    },
    {
      "id": "A8",
      "label": "Future-exposure placebo",
      "claim": "association",
      "formula": "life ~ pm10_lead1 + log_gdp_lag1 + urban10_lag1 + C(iso3) + C(year)",
      "n": 4034,
      "countries": 186,
      "estimate": 0.363643,
      "standard_error": 0.12393,
      "ci95_low": 0.12074,
      "ci95_high": 0.606546,
      "p_value": 0.003767,
      "uncertainty": "Country-clustered sandwich covariance"
    },
    {
      "id": "A9",
      "label": "Nonlinear 5-year exposure-response spline",
      "claim": "association",
      "formula": "life ~ bs(pm10_mean5, df=4, degree=3, include_intercept=False) + log_gdp_lag1 + urban10_lag1 + C(iso3) + C(year)",
      "n": 3662,
      "countries": 186,
      "contrast": "75th versus 25th percentile of 5-year mean PM2.5 (30.57 vs 13.82 µg/m³)",
      "estimate": 1.207109,
      "standard_error": 0.590037,
      "ci95_low": 0.050636,
      "ci95_high": 2.363581,
      "p_value": null,
      "uncertainty": "Country-clustered covariance propagated through spline contrast"
    },
    {
      "id": "A10",
      "label": "Primary model with Driscoll–Kraay uncertainty",
      "claim": "association",
      "formula": "life ~ pm10 + lag1(log_gdp) + lag1(urban) + country FE + year FE",
      "n": 4220,
      "countries": 186,
      "estimate": 0.400655,
      "standard_error": 0.149617,
      "ci95_low": 0.107405,
      "ci95_high": 0.693904,
      "p_value": 0.007439,
      "uncertainty": "Driscoll–Kraay kernel covariance, Bartlett bandwidth 3"
    }
  ],
  "decision": {
    "primary_model": "A1",
    "stable_direction_across_core_models": false,
    "all_core_intervals_exclude_zero": false,
    "future_exposure_placebo_pass": false,
    "evidence_grade": "A1-inconclusive-association",
    "conclusion": "Track A does not identify a stable independent association: direction and/or interval conclusions change across trend, change and exposure-window specifications. This is evidence of design sensitivity, not evidence that PM2.5 is harmless.",
    "causal_claim": false
  }
}
