# Data audit (P1) File: data/canada_gdp_employment.csv — SHA-256 f4c8e4976fb5f5f0c326e40bcb4f85b8b22963e5be89e2729e1a430c198f2bed (matches data/README.md). - 345 data rows x 5 columns: month (date, YYYY-MM-01), gdp_level (float, millions chained 2017 $, SAAR), gdp_yoy (float, %), emp_level (float, thousands), emp_yoy (float, %). - Range 1998-01-01..2026-09-01; consecutive monthly, no duplicate months. - Missing: gdp_level and gdp_yoy missing for 2026-08, 2026-09 only (not yet published). Employment complete. - Consistency: every gdp_yoy / emp_yoy that can be recomputed from levels in the file (1999-01 onward) equals 100*(L_m/L_{m-12}-1) rounded to 4 dp exactly (max abs diff 0). - Anomaly: README says gdp_yoy is empty for the first 12 months, but 1998 values are populated (cannot be verified from file; presumably computed from 1997 levels not included). Kept as given; affects only early training rows. - Anomaly: COVID-19 swings (gdp_yoy -16.21 in 2020-04, +18.54 in 2021-04; emp_yoy -15.58 / +16.09). Handled by a pre-specified exclusion of training rows touching 2020-03..2021-12 (decided before seeing out-of-sample results; the naive is unaffected). All origins are after 2021-12, so the exclusion is based only on information available at every origin. - Information availability: the file contains data after each origin (current vintage up to 2026-09); handled by per-origin masking in the code (training pairs restricted to target <= t-2, regressors y<=t-2, e<=t-1), verified by an independent masked re-estimation (out/state/leakage_check.py). - Vintage: current vintage only; no real-time claim.