Data audit (P1)
| file | SHA-256 | rows (excl. header) | cols | range | notes |
|---|---|---|---|---|---|
| data/GDPC1.csv | 1c6c6e9f59e383e20c849dd299175c7a307526c09abdc18f18da9754fc5b3343 (matches README) | 319 | 2 (observation_date, GDPC1) | 1947-01-01 .. 2026-07-01, quarterly | bn chained 2017 $, SAAR; no missing, no duplicate dates, no gaps; min 2172.4, max 24611.1 |
| data/UNRATE.csv | 621ff6fadf50910cb7a21ee20ba610c247cb043b29b4e05c4c1a72fadca2a06c (matches README) | 945 | 2 (observation_date, UNRATE) | 1948-01-01 .. 2026-09-01, monthly | percent, SA; one empty value at 2025-10-01 (outside window); no duplicates, no gaps; min 2.5, max 14.8 (2020-04) |
| data/README.md | 7e61e05785988f6cf32be948415ecb9511994533c3a1ef76958fd13ffc4a8658 | – | – | – | provenance |
Information availability: both files contain post-2019Q4 data (incl. COVID quarters). Handling: hard window filter 1960Q1–2019Q4 in analysis.py (1959Q4 levels used only for first differences); assertion that max date ≤ 2019-10-01. Incomplete UNRATE quarters (count<3) are set to missing (affects only 2025Q4, outside window). gate_spec.json and bundle.json are not listed as inputs and were not used. Vintage: GDPC1 is the 2026 vintage (revised), not real-time — acceptable since the question is historical, noted as limitation.