# Data audit (P1) | file | SHA-256 | rows (excl. header) | cols | range | freq | missing | duplicates | |---|---|---|---|---|---|---|---| | data/GDPC1.csv | 1c6c6e9f59e383e20c849dd299175c7a307526c09abdc18f18da9754fc5b3343 (matches README) | 319 | 2 (observation_date, GDPC1) | 1947-01-01 – 2026-07-01 | quarterly, no gaps (spacing 90–92 days) | 0 | 0 dates | | data/UNRATE.csv | 621ff6fadf50910cb7a21ee20ba610c247cb043b29b4e05c4c1a72fadca2a06c (matches README) | 945 | 2 (observation_date, UNRATE) | 1948-01-01 – 2026-09-01 | monthly, no gaps in dates (28–31 days) | 1 (2025-10-01, empty) | 0 dates | | data/README.md | 7e61e05785988f6cf32be948415ecb9511994533c3a1ef76958fd13ffc4a8658 | – | – | – | – | – | – | Units: GDPC1 billions of chained 2017 dollars SAAR (min 2172.4, max 24611.1); UNRATE percent SA (min 2.5, max 14.8). Values plausible, all numeric except the one blank. Anomalies / issues: 1. UNRATE 2025-10 missing (blank) → 2025Q4 quarterly average not formed. Outside the 1959Q4–2019Q4 window: no effect. 2. Both series extend beyond 2019Q4 (to 2026). Information rule: dropped before estimation (exclusion step 3). The code asserts the analysed index is exactly the 240 consecutive quarters 1960Q1–2019Q4 and that 1959Q4 levels exist. 3. GDPC1 is a current vintage (revised data). No real-time rule in TASK.md; noted as limitation. Exclusion ledger: out/exclusions.csv (319 → 314 → 312 → 240; removed 5+2+72 = 79; 319−79 = 240 = n_analysed). Unit = GDPC1 quarters.