| D-01 |
Yield day = 15:30 ET (previous FRED date) → 15:30 ET (date t); minute m belongs to the first boundary ≥ ts + 1 min (returns.py). |
H.15 CMT yields are read near 15:30 ET; aligning futures returns on the same window removes timing error in the daily regression and makes intraday sums comparable to daily changes. |
| D-02 |
Returns are close-to-close log changes (%) of consecutive 1-minute bars of the most-traded contract of the session (18:00→17:00 ET; largest session volume), computed only within a session and within segments; a segment breaks at gaps > 5 min and at the 17:00–18:00 ET maintenance break; no return is computed across sessions or across contracts (03_returns.py, rebuilt 2026-11-09). |
Selecting the contract by session volume removes both the roll splice and the sparse weeks of the vendor's continuous series before expiries (which lost a third of the 08:30 releases in roll months since 2018); intraday analysis needs within-session returns only, so the overnight/roll return is never needed. |
| D-03 |
Roll handling: superseded by D-02 (one contract per session, 76 switches per root ≈ one per expiry; contract_switches in returns_diagnostics.json). The earlier rule (roll days from raw vs ratio-adjusted daily continuous series) remains in returns.py:roll_days for the SR3 series only (01b). |
The vendor continuous series is no longer used for the six roots. |
| D-04 |
Bounce filter: a pair of consecutive minute returns both > 0.25 % in absolute value, of opposite sign and netting to < 20 % of the first, is set to missing (03_returns.py). |
Removes isolated bad prints (0–47 pairs per contract) without touching genuine jumps. |
| D-05 |
Active-contract rule: a contract is active at minute m if it traded within the previous 15 minutes; active with no bar → zero return; inactive → NaN and the minute is dropped from the cross-section (06_intraday_factors.py). |
Resolves the missing-minute ambiguity flagged in the design review; prevents accumulated overnight moves in thin contracts from being released as artificial spikes. |
| D-06 |
Daily panel: a contract counts on a yield day only if it has ≥ 100 minute returns (MIN_MIN, lowered from 300 on 2026-11-09 because the raw continuous series of ZT/UB/TN are sparse on the days around rolls); a contract enters a quarter's regression only if it is present on ≥ 85 % of the training window's days (lowered from 95 %). Resulting sets: ZT ZF ZN US (2011Q1–2012Q4), + UB (2013Q1–2018Q4), + TN (2019Q1–). |
A 300/95 % rule excluded ZT, TN and UB and left three contracts; the relaxed rule keeps every contract once it has three years of history while still dropping days with unreliable daily returns. |
| D-07 |
λ = 0.7308 per year fixed (Diebold–Li; curvature loading maximal at 30 months); λ̂ = 0.49 reported as robustness only. |
Fixed λ keeps the factor map linear and avoids look-ahead in OOS weights. |
| D-08 |
Daily factors by OLS on the 11 CMT maturities (1m–30y) with ≥ 8 maturities available; GSW 1–30y and CMT ≥ 1y / ≥ 2y as alternatives. |
Pre-registered primary target; alternatives isolate the bill segment. The 2–30y fit is ill-conditioned and not used. |
| D-09 |
Mimicking weights: OLS of daily factor changes on daily futures returns, re-estimated each calendar quarter on the trailing 3 years, applied to the following quarter only; intercept estimated but not used at minute level. |
Strictly out-of-sample weights; a daily intercept has no minute-level meaning. |
| D-10 |
OOS fidelity = 1 − SSE / Σ(Δβ − mean)² of the intercept-free prediction, with the fitted slope of actual on predicted, by period and year. |
Pre-registered H1 metric. |
| D-11 |
Realized measures at 1, 5 and 30 minutes from consecutive k-minute bins within the yield day; 5 minutes is the main frequency for H4 and for the H5 target. |
Tick noise inflates 1-minute RV by 50–130 %; 5 minutes is the standard compromise. |
| D-12 |
Event windows [−5, +25) minutes (main), [−5, +15), [−5, +90); FOMC release time by rule (14:15 before April 2011; 12:30 on 2011–2012 press-conference meetings, 14:15 otherwise; 14:00 from 2013); CPI/EMP at 08:30; unscheduled FOMC actions flagged and excluded from scheduled statistics. |
Standard high-frequency windows; +90 covers the press conference. |
| D-13 |
Placebo: up to three non-event days per event within ± 200 days, same weekday where possible, same clock window; SD ratios with 2 000-draw i.i.d. bootstrap over events/placebos; shares as mean (bootstrap CI) and median. |
Replaces the uniform 30/1380 benchmark and the daily-block bootstrap criticized in the review. |
| D-14 |
Regimes: 2011-01-01–2015-12-15 (ZLB), 2015-12-16–2019-12-31, 2020–2021, 2022–2026. 2008–2010 has no OOS weights. |
First rate hike 2015-12-16; OOS weights start 2011Q1. |
| D-15 |
HAR on log 5-minute RV (daily, weekly, monthly means), target = log cumulative RV over t+1…t+h, h ∈ {1, 5, 22}; forecast = exp(fit + ½ residual variance); re-estimated monthly on an expanding window from 2016-01; training only uses targets fully observed before the forecast month. |
Pre-registered H5 with a log-normal bias correction; no look-ahead. |
| D-16 |
Benchmarks: GARCH(1,1) (constant mean, normal) re-estimated monthly on daily CMT factor changes (bp), forecast = sum of the h-step conditional variances iterated from the last observed day; 22-day rolling variance × h. |
Pre-registered daily-data benchmarks. |
| D-17 |
Diebold–Mariano on QLIKE and MSE with Bartlett HAC, bandwidth max(h−1, ⌊1.3 T^{1/2}⌋); Holm correction across the DM family in the tables. |
Overlapping multi-step losses; multiple comparisons. |
| D-18 |
ETF cross-check uses fixed approximate durations (SHY 1.9, IEI 4.4, IEF 7.6, TLH 11.0, TLT 17.0) and maturity points (1.9, 4.5, 8.5, 15, 25 years); missing minutes forward-filled within the day. |
An independent construction without any daily regression; approximations affect scale, not correlation. |
| D-19 |
Tick-noise benchmark assumes independent rounding noise of variance 2·tick²/12 per contract with current CME tick sizes. |
First-order check of whether 1-minute factor correlations are noise-driven. |
| D-20 |
Cumulated-intraday fidelity: R² and slope of the daily CMT factor change on Σ_m Δβ̂_t,m over every yield day with factors (all days, ≥ 600 and < 600 complete minutes, by period) in 06_intraday_factors.py → fidelity_cumulated_intraday.json. |
The cumulated minute series is the object the paper uses; the daily-regression fidelity (D-10) is not a test of it when minutes are dropped for inactivity (D-05). |
| D-21 |
Implied-yield fidelity: Δŷ(τ) = ΔL̂ + ΔŜ f₂(τ) + ΔĈ f₃(τ) from cum_d* in factors_daily_realized.csv against the FRED CMT change at τ ∈ {3m, 1y, 2y, 5y, 10y, 30y}, and L̂+Ŝ against the 1-month bill; computed on the laptop in 12_text_macros.py → implied_yield_fidelity.json. |
Shows which segment of the curve the futures identify (2–30y) and which they do not (bills, NS short rate); decides what is reported as a result. |
| D-22 |
Local projections (13_irf.py): shock = change in the implied 2-year yield over [−5, +25) min (bp); outcome = cumulated change of L, S, C, L+S, y2, y10 from −5 min to h ∈ {25, 60, 120, 240 min} (minute series) and h ∈ {0, 1, 2, 5, 10 yield days} (daily futures-based factor changes, the pre-window part of day 0 removed); OLS per horizon across scheduled events, HC0 SEs, 1 000-draw event bootstrap; events need a complete window and 10 subsequent yield days. |
Persistence vs reversal of announcement moves per basis point of the initial 2-year move; the 2-year is the maturity the futures identify best; coefficients are comparable across releases. |
| D-23 |
Five-minute VAR (13_irf.py): variables (ΔL+ΔS, ΔL, ΔC) in bp, US hours 08:00–16:00 ET, lags never cross days (stacked within-day regressions), lag order by BIC with p ≤ 6, generalized IRF and FEVD (Pesaran–Shin) at 12 steps (one hour), Diebold–Yilmaz total/from/to connectedness, by regime; bootstrap bands from resampling the residual covariance only (coefficient uncertainty negligible with n > 46 000). |
Within-hour cross-factor dynamics and partial reversals; the short-rate rotation reduces the L/S collinearity. |
| D-24 |
Volatility connectedness (13_irf.py): VAR on daily log RV (5-minute sampling) of L, S, C from 2011, lag order by BIC with p ≤ 5 (full sample), generalized FEVD at 10 days; rolling estimates with a 250-day window stepped every 5 days use VAR(2). |
Standard Diebold–Yilmaz design; a fixed low order keeps the rolling estimates stable. |
| D-25 |
Robustness checks quoted in the paper are computed, not asserted (04d_robustness_checks.py → robustness_checks.json): expanding-window weights; yield-day boundary at 15:00 and 16:00 ET; event shares with 5-minute denominators; FOMC release minute = largest aggregate |
return |