Contract — F6-conf-02
Question: How did the GoC 5-year benchmark yield behave after the Bank of Canada's 2020-03-04 emergency 50 bp cut? Estimand: mean one-day change (bp, 100*(y_t - y_{t-1}) between consecutive rows) over rows with post_cut=1, minus the mean over the 120 rows just before the first post_cut=1 row. 95% Welch (unequal-variance) interval. Descriptive pre/post contrast only; it is meaningful as a causal effect only if nothing else changed between windows (it can't separate the cut from the COVID shock at the same time). Outputs: out/results.json (sample_start, sample_end, n_treated, baseline_metric, model_metric, effect_estimate, effect_ci_low, effect_ci_high, conclusion, task_id, feasibility, feasibility_reason, data_issues, n_input_rows, n_analysed, random_seed); out/figure1.png; out/table1.csv (year,n_days,mean_yield,mean_change_bp); out/report.md (6 sections); out/analysis.py; out/claims.json. Information rules: use only data/gc5y_daily.csv; post_cut used as given (not redefined); changes computed between consecutive rows; audit before estimating. Invalidity: no post_cut=1 rows or too few pre rows means the estimand can't be computed → premise_invalid / infeasible with nulls, and no proxy estimate.