Data audit (P1)
| file | SHA-256 | rows (excl. header) | cols |
|---|---|---|---|
| data/gc5y_daily.csv | 2cdda6ccb2147c8861997166cb0d32cf85ff2744e1e7c0f47eded0f354c2db51 (matches README) | 2498 | 3 |
| data/README.md | 7716f8b58d8f4729504a7713a8a3d651cd2f7298f53f668b377215a5b2af1e34 | – | – |
Schema: date (YYYY-MM-DD string, parsed fine), yield_5y (float, percent), post_cut (int).
- Date range: 2010-01-04 → 2019-12-31; strictly increasing; 0 duplicate dates; 0 missing values in any column.
- Rows per year: 249–250 for each of 2010–2019 (business-daily). Gaps between consecutive rows: 1–5 calendar days (weekends/holidays), no long gaps.
- yield_5y: min 0.48, max 3.20, mean 1.574 %; plausible.
- post_cut: all 2498 rows are 0; n_treated = 0. The README's retrieval URL used end_date=2019-12-31, so the file stops ~2 months before the 2020-03-04 announcement. The flag is consistent with its definition (no dates ≥ 2020-03-04 exist), so it is not mis-coded — the post period is simply absent.
Consequence. The estimand (post-cut mean change minus mean change in the 120 rows before the first post_cut=1 row) is not computable: there is no treated window and the pre-window is defined relative to a first flagged row that does not exist. Per TASK.md, conclusion = premise_invalid, feasibility = infeasible, estimand keys null. No proxy (e.g., redefining the treatment date) will be substituted. Descriptive baseline (whole-file mean one-day change), table and figure are still produced.
No information-availability violation in the inputs (only the single permitted file is used).