Data audit (P1)
| file | SHA-256 | data rows | cols | range | notes |
|---|---|---|---|---|---|
| data/UNRATE.csv | 621ff6fadf50910cb7a21ee20ba610c247cb043b29b4e05c4c1a72fadca2a06c | 945 | 2 (observation_date, UNRATE) | 1948-01-01 .. 2026-09-01 monthly | percent; min 2.5 max 14.8; no duplicate dates; sorted; no gaps in date sequence; 1 empty value: 2025-10-01 |
| data/GDPC1.csv | 1c6c6e9f59e383e20c849dd299175c7a307526c09abdc18f18da9754fc5b3343 | 319 | 2 (observation_date, GDPC1) | 1947-01-01 .. 2026-07-01 quarterly (all quarter-start dates) | bn chained 2017 $, SAAR; min 2172.4 max 24611.1; no missing; no dups; no gaps; all positive |
| Checksums match data/README.md and bundle.json. |
Anomalies and handling
- UNRATE 2025-10 missing (empty field; presumably the 2025 federal shutdown gap). It lies outside 1959Q4–2019Q4, so it does not affect the analysis. analysis.py asserts that all 3 months are present for every quarter used.
- Annual-rate scaling of GDPC1 cancels in the log ratio, so g_t is unaffected.
Information availability
No input violates the rules; data outside 1959Q4–2019Q4 is read but discarded (1959Q4 used only as the difference base). Current-vintage data taken as given.