# Data audit (P1) | file | SHA-256 | rows (excl. header) | cols | |---|---|---|---| | data/UNRATE.csv | 621ff6fadf50910cb7a21ee20ba610c247cb043b29b4e05c4c1a72fadca2a06c (matches README & bundle.json) | 945 | 2 | | data/README.md | 62a5a815… (bundle.json) | – | – | - Schema: `observation_date` (date, YYYY-MM-01, all day==1, strictly increasing, no duplicates, no gaps in the monthly calendar: diffs 28–31 days only), `UNRATE` (float, percent of civilian labour force, SA). - Range: 1948-01-01 to 2026-09-01. Values: min 2.5, max 14.8 (2020-04, COVID spike; genuine, kept), mean 5.65. - Missing: 1 value, 2025-10-01 (empty field; consistent with the 2025 federal shutdown when the October CPS was not collected). Effects: - origin 2025-10-01 itself is missing → naive uses 2025-09-01 value (per TASK rule); model forecasts from the Kalman-filtered state given data ≤ 2025-10-01 (i.e. through 2025-09). - targets missing: (origin 2025-09-01, h=1) and (origin 2025-07-01, h=3) → kept in ledger with empty actual, excluded from error statistics → expected n_evaluated_h1 = n_evaluated_h3 = 35. - training windows for origins ≥ 2025-10 contain the gap; the state-space (Kalman filter) likelihood treats it as missing, no imputation enters the estimation data. - Availability: the file is final vintage (revised); the info rule is about observation dates, which we respect by truncating at each origin. Real-time validity is not claimed. No input violates the rules otherwise. - Observations after the last origin (2026-07..09) are used only as actuals.