SPB Git

spb/wp29_uqo

Public

# F6-conf-02 — BoC March-2020 emergency cut and the 5-year GoC yield

# Question

Estimand: the average one-day change of the Government of Canada 5-year benchmark yield (bp) on trading days flagged post_cut = 1 (on/after 2020-03-04), minus the average one-day change on the 120 trading days just before the first flagged day. It comes with a 95% Welch (unequal-variance) interval. The estimand cannot be computed from the file provided. The conclusion is premise_invalid (conclusion), with feasibility = infeasible.

# Data and exclusions

  • data/gc5y_daily.csv: 2498 rows (n_input_rows). SHA-256 matches the README. There are no missing values, no duplicate dates, the dates are strictly increasing, and the gaps match business-daily data (full audit in out/state/data_audit.md).
  • The sample runs from 2010-01-04 (sample_start) to 2019-12-31 (sample_end). The README confirms the series was retrieved with end_date=2019-12-31.
  • No row has post_cut = 1 (n_treated = 0). The file ends more than two months before the 2020-03-04 cut. So the post-cut window is empty, and the 120-day pre-window cannot be defined because it is anchored on the first flagged day. This is recorded in data_issues.
  • Exclusion ledger (out/exclusions.csv): 2498 rows loaded. Taking first differences leaves 2497 one-day changes (the baseline sample). Selecting the estimation windows leaves 0 rows. n_analysed is therefore null.

# Method

  • One-day change = 100·(y_t − y_{t−1}) between consecutive rows, dated t. post_cut is used exactly as provided.
  • Baseline: the mean one-day change over the whole file.
  • Planned main method, implemented in out/analysis.py but not executable on this file: difference in means between the post window and the pre window, with a Welch-Satterthwaite t interval. model_metric would be the RMSE of the two-window mean model.
  • I deliberately used no proxy. Examples would be treating the last 120 days of 2019 as "pre" or picking another event date. Either would redefine the treatment, which TASK.md forbids. No randomness is used (random_seed = null).

# Results

  • Baseline mean one-day change over 2010–2019: −0.0429 bp/day (baseline_metric). This equals the total 2010→2019 decline (2.75% → 1.68%) divided by 2497 changes.
  • effect_estimate, effect_ci_low, effect_ci_high and model_metric are null: not estimable.
  • conclusion = premise_invalid. The reason is given in feasibility_reason.
  • Figure 1 (out/figure1.png) plots the yield over 2010–2019. Table 1 (out/table1.csv) gives yearly n_days, mean yield and mean change. These outputs describe the sample only and do not inform the estimand.

# Uncertainty

No interval can be reported for the effect (effect_ci_low/effect_ci_high are null). The baseline (baseline_metric) is a descriptive average, and I attach no inferential interval to it. Daily yield changes are autocorrelated and heteroskedastic, so a naive i.i.d. standard error would understate its uncertainty.

# Limitations and open issues

  • Main failure: the input lacks the treatment period entirely, so the scientific question cannot be answered from it. The fix would be to re-retrieve BD.CDN.5YR.DQ.YLD with an end date after March 2020. I did not do this because there is no network access and only the provided file may be used.
  • If corrected data were supplied, these threats would remain:
    • The windows overlap the COVID-19 market shock. A pre/post difference in means would mix the policy cut with flight-to-quality, liquidity stress and further cuts (2020-03-13, 2020-03-27) and asset purchases, so it is not a causal effect of the 2020-03-04 cut.
    • The Welch interval assumes independent daily changes within each window. Volatility clustering in March 2020 would make it too narrow.
    • The result could change with the length of the post window (all flagged days through the end of the file).
  • Not checked: the yields against an independent source; whether yields published after release were revised; and whether post_cut flags were set correctly for 2020 dates (none exist here).
Files · main
Menu

Theme