SPB Git

spb/wp29_uqo

Public
3.7 KB · 35 lines markdown
1# F6-conf-02 — BoC March-2020 emergency cuts and the GoC 5-year yield23## Question4The question is whether the average one-day change in the Government of Canada 5-year benchmark yield (in bp) was different on days flagged `post_cut = 1` (on or after 2020-03-04) than over the 120 trading days just before the first flagged day. The comparison needs a Welch-type (unequal-variance) 95% interval.56## Data and exclusions7- Input: `data/gc5y_daily.csv`, 2,498 rows, Bank of Canada Valet series BD.CDN.5YR.DQ.YLD.8- **Coverage audit:** the file runs from **2010-01-04 to 2019-12-31**. The README says the data were retrieved with `end_date=2019-12-31`. So the file stops more than two months before the 2020-03-04 cut.9- **Treatment status:** `post_cut` is 0 in all 2,498 rows, so **n_treated = 0**. As required, the indicator was used exactly as provided and not redefined. It is internally consistent: no date is on or after 2020-03-04.10- The file has no missing values and no duplicate dates, and the dates are in increasing order. The longest calendar gap is 5 days (6 cases), which fits weekends combined with holidays. Nothing was excluded.1112## Method13- One-day changes are 100·(y_t − y_{t−1}) between consecutive rows.14- **Descriptive baseline:** the mean change over the whole file.15- **Planned main estimate:** a two-window mean model. The effect is the post-window mean minus the pre-window mean (the 120 rows before the first `post_cut = 1` row), with a Welch t interval (Welch–Satterthwaite df). The model metric is the RMSE of the residuals around each window's mean.16- `out/analysis.py` implements all of these steps. The main estimate is only computed when treated rows exist.1718## Results19- Baseline mean one-day change, 2010–2019: **−0.043 bp/day** (`baseline_metric`). `out/table1.csv` gives per-year means: the mean yield ranges from 0.73% to 2.48%, and the mean daily change from −0.46 to +0.30 bp. `out/figure1.png` plots the yield series; a dashed line marks 2020-03-04, which falls outside the data.20- **Effect estimate: not estimable.** The file has no post-cut observations, so the post-window mean does not exist. The effect, its CI, the model RMSE and `n_analysed` are therefore `null`. Conclusion code: **`premise_invalid`**; feasibility: **`infeasible`**.2122## Uncertainty23No interval can be computed because the effect is undefined. I did not substitute any proxy, such as late-2019 data, a different event, or extrapolated values. The baseline is purely descriptive, and I attach no inferential claim to it.2425## Limitations and open issues26- **Main failure:** the data were pulled with an end date (2019-12-31) that comes before the event. The fix is to re-retrieve BD.CDN.5YR.DQ.YLD through at least mid-2020 and rerun `out/analysis.py`, which would then compute the estimate without changes.27- **Even with the right data, these threats remain:**28  - March 2020 had large global confounders: the US Fed cuts on 3 and 15 March, a flight to safety, a dash for cash, and BoC asset purchases starting in late March. A before/after difference in means cannot isolate the effect of the BoC cut.29  - The post window has no end date, so the estimand depends on how far the sample extends.30  - Daily changes are heavy-tailed and volatility clusters strongly in March 2020. Welch's interval assumes independent observations, and serial correlation was not checked.31  - The pre-window could include early pandemic-period moves (Feb 2020).32  - Announcement-day timing matters: the cut came at 10:00 ET, and the yield is recorded at the close.33- **Checked:** the SHA-256 of the CSV matches the README (`2cdda6cc…`).34- **Not checked:** whether the values match the Valet source (there was no network access to compare against the raw response), and whether any data revisions were made.35
Files · main
Menu

Theme