Data audit (P1)
| file | SHA-256 | rows (excl. header) | cols |
|---|---|---|---|
| data/gc5y_daily.csv | 2cdda6ccb2147c8861997166cb0d32cf85ff2744e1e7c0f47eded0f354c2db51 (matches README) | 2498 | 3 |
| data/README.md | 7716f8b58d8f4729504a7713a8a3d651cd2f7298f53f668b377215a5b2af1e34 | provenance text | – |
Schema: date (string YYYY-MM-DD, all parse), yield_5y (float, percent), post_cut (int64).
- Date range: 2010-01-04 → 2019-12-31; strictly increasing; 0 duplicate dates.
- Missing values: 0 in every column.
- Gaps between consecutive rows (calendar days): 1 (1962), 3 (440, weekends), 4 (79), 2 (10), 5 (6) — consistent with business days and Canadian holidays; no gap > 5 days.
- yield_5y: min 0.48, max 3.20, mean 1.574 %; max |one-day change| 27 bp. No anomalies in magnitude.
- Rows per calendar year: 249–250 for each of 2010–2019.
- post_cut: 0 for all 2498 rows; n_treated = 0. The file ends 2019-12-31, before the 2020-03-04 cut; the README URL itself requests end_date=2019-12-31.
Availability / feasibility decision
No input violates the information rules (single permitted file). But the treatment window is empty, so the estimand (post-cut mean change minus pre-window mean change) is not computable. Per TASK.md: conclusion premise_invalid, feasibility infeasible, all inestimable keys null. post_cut is not redefined and no external/proxy data are used. The pre-window ("120 days before the first flagged day") is also undefined since there is no flagged day; the last 120 days of 2019 are NOT a substitute.