| Clean re-run (deleted results.json, figure1.png, exclusions.csv; reran analysis.py) gives byte-identical results.json |
PASS (cmp identical) |
| Input SHA-256 equal to README / bundle.json |
PASS |
| Sample: n=240, first 1960Q1, last 2019Q4 (asserted in script) |
PASS |
| Hand computation of 1960Q1: Δu = 5.1333−5.6000 = −0.4667, g = 2.2237 — equals script row |
PASS |
| OLS β and iid SE equal statsmodels OLS; HAC SE equals statsmodels HAC(maxlags=4, use_correction=False) to 1e-10 (asserted) |
PASS |
| se_iid > 0, se_hac > 0 |
PASS |
| CI contains β̂ and is symmetric (β̂ ± 1.96·se_hac) |
PASS |
| α̂ = mean(Δu) − β̂·mean(g) |
PASS |
| okun_negative_5pct consistent with β̂<0 and |
t |
| Exclusion ledger: 319 − (5+2+72) = 240 = n_analysed; n_before−n_removed=n_after; steps chain |
PASS (an initial chain check had a coding error in the check itself; corrected and passed) |
| Magnitude vs baseline: se_hac/se_iid ≈ 1.8, consistent with positive residual lag-1 autocorrelation 0.39; β̂ ≈ −0.26 is in the conventional Okun range for q/q non-annualised growth |
PASS |
| Bandwidth sensitivity: se_hac in [0.032, 0.037] for lags 1–12; conclusion unchanged |
PASS |
| No data outside 1959Q4–2019Q4 enters the regression (window filter after differencing) |
PASS |