# 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(100·Δy_t | post_cut=1) − mean(100·Δy_t over the 120 rows immediately preceding the first post_cut=1 row), in bp; 95% Welch (unequal-variance) interval. Meaningful only if the file contains post_cut=1 rows and ≥120 preceding rows; this is a descriptive before/after contrast, not a causal effect, unless no other shocks hit (COVID market turmoil makes this doubtful). **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.** Changes between consecutive rows dated t; post_cut used exactly as given; only data/gc5y_daily.csv; audit first and report in data_issues. **Invalidity.** No post_cut=1 rows (or too few pre rows) → premise_invalid, infeasible, null estimates; no proxy substitution.