# Data audit - File: data/ip_predictors.csv, SHA-256 7e388665caf3e4e7305ae6ed8f5625ab12a6c8df5c5696c1b5dd5b86da62a39b (matches README and bundle.json). - 417 data rows + header, 7 columns: month (date, YYYY-MM-01), ip_growth, oil_chg, permit_chg, neworder_chg (percent per month, 100×Δln), fedfunds (percent), tcu (percent of capacity). All numeric float. - Range 1992-01-01..2026-09-01, contiguous monthly, no duplicate months, no gaps. - Missing: neworder_chg 1992-01 and 1992-02 only (2 cells). No other NaN. - Discrepancy: README states 1992-01 is empty for every change series, but ip_growth, oil_chg, permit_chg have values in 1992-01. Used as given (only ip_growth 1992-01 enters, as lag 2 of the first training row, as the spec implies). - Anomalies: COVID-19 extremes 2020-03..2020-06 (ip_growth −3.99, −14.14, +1.64, +6.35; oil_chg −54.8, −56.8, +54.6). Kept (spec defines windows without exclusion). - Availability: the file is current vintage; per TASK.md publication lags are ignored and revisions are a stated limitation, not a violation. No input violates the rules provided only data dated ≤ t is used at each origin (enforced in code and tested by perturbing future data). - Exclusions (out/exclusions.csv): 417 → 415 (before 1992-03) → 413 (s+1 > last origin) = n_analysed at last origin.