F6-conf-02 — BoC March-2020 emergency cut and the GoC 5-year yield
Question
Estimand: the mean one-day change (bp) in the Government of Canada 5-year benchmark yield on days flagged post_cut = 1 (on/after 2020-03-04) minus the mean one-day change over the 120 trading days just before the first flagged day, with a 95% Welch (unequal-variance) interval.
Data and exclusions
data/gc5y_daily.csv: 2498 rows read. Dates run from 2010-01-04 to 2019-12-31. No values are missing, no dates are duplicated, and the dates are in increasing order. Six gaps between consecutive rows are longer than 4 calendar days (holidays). As the task specifies, changes are taken between consecutive rows.- Critical finding:
n_treated = 0. The file ends on 2019-12-31. The README confirms the retrieval usedend_date=2019-12-31. That is more than two months before the 2020-03-04 cut, sopost_cutis 0 on every row. This is consistent with its definition, but the treated window is empty. Because the pre-window is defined relative to the first flagged day, it is also undefined. - No rows were excluded. No data were added from outside the file, as the task requires.
Method
Planned method, implemented in out/analysis.py, which runs only if treated rows exist:
- Compute one-day changes as 100·Δy.
- Estimate the effect as the difference in means (post-window minus 120-day pre-window).
- Build a Welch t interval using Welch–Satterthwaite degrees of freedom.
- Report as the model metric the RMSE of residuals around each window's mean.
Descriptive baseline: the mean one-day change over the whole file.
Results
- Baseline mean one-day change over 2010–2019: −0.0429 bp/day.
out/table1.csvbreaks this down by year. - Effect estimate: not estimable (null). Conclusion code:
premise_invalid; feasibility:infeasible. out/figure1.pngplots the yield over the sample, with the date of the 2020-03-04 cut marked to the right of the last observation.
Uncertainty
No interval can be reported because there are no post-cut observations. A different window, such as the last 120 days of 2019 compared with some earlier period, would answer a different question. I did not substitute one, so the effect, the interval and the model RMSE are null.
Limitations and open issues
- Main failure: the input data do not cover the event. To produce a result, the series must be re-fetched with an end date after March 2020; the analysis script would then compute the estimand without changes. I could not check whether the extraction window was intentionally truncated or was a mistake.
- Threats that would apply even with complete data:
- The 4 March 2020 cut coincided with the global COVID-19 shock. Other events in the same period include the Fed's 3 March cut, further BoC cuts on 13 and 27 March, and the start of BoC asset purchases. A post-vs-pre mean difference therefore cannot isolate the effect of the policy cut, and is not a causal estimate.
- The length of the post window is open-ended: it is all flagged rows to the end of the file. Results would depend on where the file ends.
- Daily changes are heteroskedastic (very high volatility in March 2020) and may be autocorrelated. Welch intervals assume independence.
- Multi-day gaps (holidays) are treated as one-day changes.
- Not checked: whether the file matches the published Valet series beyond the provenance hash recorded in the README. No network access was available.