Data dictionary (WP47)
Units: futures/ETF returns in percent (100 × log price change); factors and yields in percentage points (pp); realized
variances in pp² per yield day (multiply by 1e4 for bp²); timestamps are tz-aware (America/New_York after conversion; stored
in UTC in Parquet). A "yield day" t runs from 15:30 ET on the previous FRED date to 15:30 ET on date t.
data/cache/contracts_1m/{ROOT}_{a}_{b}.parquet (node only) — 01d_extract_contracts.py
FinData export of market_bars.futures_contracts.1m.raw for every expiry of the root (symbol_as_reported = ROOT_MYY, e.g. ZN_M22); standard bar columns (timestamp_utc, open, high, low, close, volume, …). 18 files, 326 MB.
data/cache/returns_1m.parquet (node only) — 03_returns.py
| Column | Meaning |
|---|---|
ts |
bar open timestamp (UTC); the return accrues over [ts, ts+1 min] |
ZT, ZF, ZN, TN, US, UB |
one-minute close-to-close log return (%) of the session's most-traded contract, within a segment; NaN at segment breaks (gap > 5 min, 17:00–18:00 ET break, session change, bounce-filtered prints) or when no bar exists |
vol_<ROOT> |
bar volume (contracts) |
act_<ROOT> |
active flag: the contract has a bar within the previous 15 minutes (used by 06 to zero-fill missing minutes; inactive minutes are dropped from the cross-section) |
yday |
yield day the minute belongs to (date) |
data/cache/returns_daily.parquet — 03_returns.py
yday (index) · <ROOT>: sum of minute returns within the yield day (%) · n_<ROOT>: number of non-missing minute returns · nact_<ROOT>: number of active minutes.
data/cache/factors_1m.parquet (node only) — 06_intraday_factors.py
ts · dL, dS, dC: one-minute change in level, slope, curvature (pp), = Ŵ_q r_m with the quarter's OOS weights and no intercept;
NaN when any required contract is inactive (no trade in the previous 15 minutes) · yday · n_roots: number of contracts in Ŵ_q.
data/cache/factors_daily_realized.parquet (+ results/metrics/factors_daily_realized.csv) — 06_intraday_factors.py
Index yday. For k ∈ {1, 5, 30} minutes: RV_L_km, RV_S_km, RV_C_km realized variance (pp²; sum of squared k-minute changes);
cLS_km, cLC_km, cSC_km realized covariances (pp²); n_minutes minutes with factors; cum_dL, cum_dS, cum_dC sum of minute
changes over the yield day (pp).
data/cache/mimicking_oos_daily.parquet — 04_mimicking.py
date · factor ∈ {level, slope, curvature} · actual daily CMT factor change (pp) · pred_oos Ŵ r + intercept · pred_oos_nocst
Ŵ r (used for fidelity) · quarter. Variants: mimicking_oos_daily_gsw.parquet, _sr3.parquet (04b; columns actual, pred),
mimicking_oos_daily_cmt2y.parquet (04c).
data/cache/har_preds_{L,S,C}_h{1,5,22}.parquet — 08_har.py
date forecast origin · har, garch, roll22 forecasts of the cumulative h-day realized variance (bp², from 5-minute RV) ·
y realized value (bp²).
results/metrics/events.csv — 05_events_list.py
date · type ∈ {FOMC, CPI, EMP} · scheduled (False for the four unscheduled FOMC actions) · time release time ET (rule-based
for FOMC; 08:30 for CPI/EMP) · ts tz-aware release timestamp.
results/metrics/event_windows.csv — 07_events.py
One row per event with ≥ 80 % of the window minutes available. regime ∈ {2011_2015, 2016_2019, 2020_2021, 2022_2026} · yday.
w_<c> sum of minute changes over [−5, +25) minutes for c ∈ {dL, dS, dC, dSR (= dL + dS, short rate), dy3m, dy2, dy5, dy10, dy30
(implied yield changes from the NS loadings)} (pp) · w15_<c>, w90_<c> same over [−5, +15) and [−5, +90) for c ∈ {dL, dS, dC,
dSR, dy2, dy10} · share_<c> = w_c² / RV_c,1m of the yield day · rvshare_<c> = Σ (minute changes)² in the window / RV_c,1m ·
pre24h_<c>, post24h_<c> cumulative change from −24 h to −6 min and from +25 min to +24 h (pp), c ∈ {dL, dS, dC, dSR, dy10}.
event_windows_placebo.csv: type, regime, w_<c> for up to three matched non-event days per event (same clock time).
results/metrics/*.json
daily_factors_summary.json (fit RMSE, moments, λ̂), returns_diagnostics.json (per-contract bars, roll days, breaks, jumps),
mimicking_weights_quarterly.json (quarter, n_train, roots, weights incl. const, in-sample R²), mimicking_fidelity.json
(OOS R², slope, RMSE by period/year; six-root in-sample), mimicking_fidelity_robustness.json (GSW, CMT ≥ 1y, SR3),
targets_and_spanning.json (CMT ≥ 2y, cash ceiling, leave-one-out), realized_correlations.json (by period and sampling; FRED
daily; mean RV by sampling), noise_benchmark.json, etf_crossval.json, event_summary.json (per type × regime: n, SDs in bp,
SD ratios vs placebo with bootstrap CI, rvshare mean/CI/median, var_mix_LSC, var_dy_bp2, pre24h means), event_paths.json
(RMS cumulative change −60…+120 min), har_forecasts.json (QLIKE, MSE, log-R², DM statistics), intraday_periodicity.csv
(mean squared change by minute of day, bp² per minute, for all / non-event / event days and sub-periods).
data/cache/lp_events.parquet — 13_irf.py
One row per scheduled event with a complete window and ≥ 10 subsequent yield days: date, type, regime, shock_y2 (bp, implied 2-year change over [−5, +25)), <v>_m<h> cumulated change (bp) from −5 min to h ∈ {25, 60, 120, 240} min and <v>_d<h> to the end of yield day h ∈ {0, 1, 2, 5, 10} (pre-window part of day 0 removed), v ∈ {dL, dS, dC, dSR, dy2, dy10}.
results/figdata/ (aggregates for figures; leave the node)
sample_days.csv (cumulative L/S/C/2y/10y in bp, minute by minute, four selected days) · fidelity_by_year.csv (OOS R² by year, CMT and GSW targets, 90 % day-resampling bands) · event_paths_boot.csv (RMS cumulative change −60…+120 min with 90 % event-bootstrap bands) · event_heatmap_{FOMC,CPI,EMP}.csv (rows = events, columns = minutes −30…+120, cumulative implied 2-year change in bp from −5 min) · etf_fomc_pairs.csv (FOMC-window L/S/C changes, ETF vs futures, bp) · lp_irf.csv (group, var, h, beta, lo, hi, se, n — local-projection coefficients) · var_girf.csv (regime, h, response, shock, cum, lo, hi — cumulative generalized IRFs in bp per one-SD shock) · vol_connectedness_rolling.csv (date, total, net_L, net_S, net_C — 250-day rolling Diebold–Yilmaz measures, %).
Additional results/metrics/*.json
fidelity_cumulated_intraday.json (R²/slope of daily CMT factor changes on the cumulated minute series: all days, ≥ 600 / < 600 minutes, by period; coverage shares) · implied_yield_fidelity.json (R² of implied Δy(τ) vs FRED CMT changes for 3m/1y/2y/5y/10y/30y; L+S vs 1-month bill; written by 12_text_macros.py) · irf.json (counts: minutes/days with factors, SR3 median bars by year; lp: per type × regime and variable × horizon {beta, se_hc, ci, n, r2}; var5m: per regime lag order, n, residual SD/corr, FEVD, to/from/total connectedness, impact and 12-step cumulative GIRFs; vol_connectedness: FEVD, to/from/net/total, rolling summary) · robustness_checks.json (rolling_3y_1530, expanding_1530, rolling_3y_1500, rolling_3y_1600 OOS R²; rvshare_5m_denominator; fomc_time_check). returns_diagnostics.json now reports contracts_used, contract_switches and median_active_minutes_per_yday instead of roll days.