Data audit (P1)
| file | SHA-256 | data rows | cols | range | gaps | dups | missing | min | max | units |
|---|---|---|---|---|---|---|---|---|---|---|
| data/UNRATE.csv | 621ff6fadf50910cb7a21ee20ba610c247cb043b29b4e05c4c1a72fadca2a06c | 945 | 2 (observation_date, UNRATE) | 1948-01 to 2026-09 monthly | 0 | 0 | 1 (2025-10-01, empty) | 2.5 | 14.8 | percent, SA |
| data/GDPC1.csv | 1c6c6e9f59e383e20c849dd299175c7a307526c09abdc18f18da9754fc5b3343 | 319 | 2 (observation_date, GDPC1) | 1947Q1 to 2026Q3 quarterly | 0 | 0 | 0 | 2172.432 | 24611.077 | bn chained 2017 $, SAAR |
Checksums match data/README.md and bundle.json.
Anomalies: one empty UNRATE value at 2025-10-01 (outside the 1959Q4–2019Q4 window used) — recorded in results.json data_issues, no effect. Every quarter 1959Q4–2019Q4 has all 3 monthly UNRATE values and a GDPC1 value (asserted in analysis.py).
Information availability: files are current vintage; task says treat as given. Only 1959Q4–2019Q4 levels are used (window not extended). No input violates the rules.
Exclusions (out/exclusions.csv): calendar quarters spanned by the files 1947Q1–2026Q3 = 319; restrict to 1959Q4–2019Q4 → 241 (−78); drop lag-only 1959Q4 → 240 (−1). 319 − 79 = 240 = n_analysed.