Status: the one authorized out-of-sample run is INCOMPLETE. Primary verdict: FAIL on both hypotheses. H1 G = -4.48%, fixed-b p = 0.8865, T = 50 targets / 901 cases; H2 G = -29.37%, p = 0.9998, T = 50 / 2383 cases. The primary gate and the secondary family completed (gate.json, secondary.json). The run then stopped in sensitivity S4 (exclude 2020Q1–Q2 from training): KeyError: Period('2020Q1') in WAR-RM, because the masked 2020Q1 origin cross-section was empty. S4 was logged as a trial before it ran and was not scored. sensitivities.json and r1.json were not produced; S1–S3 ran but their results were not saved; 15 approved executions never ran (S4b, S5–S16, FB4 and R1). By Quant's ruling there is no rerun. Trials logged: 24 of the 39 approved.
Authorization and trial count. Authorized by the pinned approval file tracks/y9c-trading-ot/prereg/OOS_APPROVAL_v1_1.json (sha256 fe473f36b530…, design commit c38a284); the design JSON keeps oos_authorized: false and its pin 930353641c6a…. Run at commit 5f11ed5. 37 → 39: ERRATA_v1_1b §1 confirmed 37 executions at ce9ce39; its §4 then required the K = 2 FPCA WAR variant and the ridge point forecast with a trial each, giving the 39 pinned in the approval file. §4-B scenarios are deferred with no trial (prereg/DEFERRAL_4B.md). The pinned errata are not edited.
Quant's reading of S4 (for the record only; not applied in this run). The origin cross-section is built from the masked A220q for 2020Q1/Q2; the target and the scale stay unmasked; an empty origin cross-section makes that case N/A.

Primary verdict: H1 FAIL · H2 FAIL (run INCOMPLETE)

One primary gate: two hypotheses on the 2014Q1–2026Q2 targets, Holm-adjusted across the pair (FWER 0.05). The methods come from the classical-OT guide: §4 barycenters for forecast combination (H1) and §3 density time series in Wasserstein space (H2).

PASS needs all five: Holm p < 0.05; relative CRPS gain G ≥ 3%; pooled 90% coverage in [0.80, 0.97]; G > 0 when any one bank is dropped; and G > 0 in at least 2 of the 3 subperiods (P1 2014–17, P2 2018–21, P3 2022–26Q2). If only the drop-one-bank or subperiod condition fails, the result is PASS-fragile (not adopted). FAIL if G ≤ 0 or the fixed-b upper bound GU is below 3%. Anything else, or fewer than 40 valid target quarters, is INCOMPLETE.

Primary gate, 2014Q1–2026Q2

HypothesisComparatorG (scaled CRPS)p (fixed-b, one-sided)p (Holm)GU90% coverageMin G, drop one bankSubperiods with G > 0TargetsVerdict
H1 · §4 BARY-EW (equal-weight W₂ barycenter, annually refreshed bank set)B* (epoch)-4.5%0.8871.000+1.8%0.86-6.0%1 of 350FAIL
H2 · §3 WAR-RM (Wasserstein AR + rank map, cross-section)B*CS (epoch)-29.4%1.0001.000-18.5%0.93-33.0%0 of 350FAIL

Test C: DM on the per-quarter cross-bank mean loss differential d̄t (positive favours the OT method), Bartlett long-run variance with M = ⌊√T⌋ (7 at T = 50), p-value from 200,000 simulated null statistics (seed 20261006). Scores are scaled by each bank's trailing-16-quarter MAD at the forecast origin. B*, the trimmed members and the widening s are re-selected every Q4 on the trailing 12 target quarters, from walk-forward forecasts only.

Subperiods (pre-registered, descriptive except the G > 0 count)

HypothesisSubperiodGp (raw)90% coverageMin G, drop one bankTargetsSign
H1P1 · 2014Q1–2017Q4-3.4%0.8670.88-5.7%16G ≤ 0
H1P2 · 2018Q1–2021Q4+0.3%0.4760.81-1.3%16G > 0
H1P3 · 2022Q1–2026Q2-11.9%0.8710.88-14.1%18G ≤ 0
H2P1 · 2014Q1–2017Q4-51.2%1.0000.93-54.5%16G ≤ 0
H2P2 · 2018Q1–2021Q4-21.2%0.9710.92-28.8%16G ≤ 0
H2P3 · 2022Q1–2026Q2-21.2%0.9560.93-24.4%18G ≤ 0

P3 next to R1 (v1.0 design): not independent evidence

P3 (the primary run restricted to 2022Q1–2026Q2) and R1 (the pinned v1.0 design: 2018+ history, 2021Q4 freeze, B6 excluded from selection but reported) share the same 18 target quarters. They are not independent evidence, and neither can change the primary verdict.
HypothesisP3 GP3 p (raw, test C)R1 GR1 p (v1 test A)Role
H1-11.9%0.871——NOT RUN
H2-21.2%0.956——NOT RUN

Break checks (FB1–FB4)

HypothesisCheckResultReading
H1FB1 fluctuation (rolling 15-quarter mean of d̄t)stat 2.03 vs cv 3.07no reject
H1FB2 mean shift at 2015Q3shift +0.013, p (Holm) 1.000no shift
H1FB2 mean shift at 2016Q3shift -0.038, p (Holm) 1.000no shift
H1FB2 mean shift at 2020Q1shift -0.019, p (Holm) 1.000no shift
H1FB2 mean shift at 2022Q1shift -0.096, p (Holm) 0.617no shift
H2FB1 fluctuation (rolling 15-quarter mean of d̄t)stat 4.38 vs cv 3.07reject
H2FB2 mean shift at 2015Q3shift +0.009, p (Holm) 0.906no shift
H2FB2 mean shift at 2016Q3shift +0.127, p (Holm) 0.271no shift
H2FB2 mean shift at 2020Q1shift +0.241, p (Holm) 0.028shift
H2FB2 mean shift at 2022Q1shift +0.143, p (Holm) 0.467no shift

FB3 (training from 2010Q1) is sensitivity S4b and FB4 (excluding 2020Q1–Q2 targets) is in the sensitivity table below; S10 is the leave-one-year-out check.

Per-bank CRPS gains (H1)

The minimum G after dropping any one bank is in the primary table (column “Min G, drop one bank”).

Figure not rendered: results-page figures are a later rendering step (ERRATA_v1_1b §4); the numbers are in the tables on this page and in the JSON outputs.

Coverage and calibration

Primary matched cases; pinball and MAE are scaled like the CRPS; equal weight per bank within a quarter, then across quarters. PIT: counts in 10 equal bins.
HypothesisMethod50% cov.90% cov.Pinball 0.05Pinball 0.5Pinball 0.95MAE (median)PIT counts (10 bins)
H1BARY-EW0.480.850.2540.6700.2391.34093 82 82 91 78 81 83 93 101 117
H1B*0.350.670.2270.6150.3081.230148 70 54 51 69 69 56 80 83 221
H2WAR-RM0.680.930.3820.8360.5401.672129 127 245 320 359 330 313 238 169 153
H2B*CS0.370.690.3220.6900.3661.379471 227 197 174 176 175 164 179 180 440

Industry total (T1): forecast vs actual

Figure not rendered: results-page figures are a later rendering step (ERRATA_v1_1b §4); the numbers are in the tables on this page and in the JSON outputs.

Cross-section (T3): WAR-RM density fan

Figure not rendered: results-page figures are a later rendering step (ERRATA_v1_1b §4); the numbers are in the tables on this page and in the JSON outputs.

Secondary family (Holm within the family; cannot change the primary verdict)

TestMethodComparatorGp (raw, test C)p (Holm, secondary)TargetsRole
H1bCRPS-shrunk barycenter weights (κ = n/(n+200))B*+2.8%0.1070.96750secondary
H1cEqual-weight linear pool (F1 comparator)B*+0.3%0.4611.00050secondary
H1dBARY-EW on the industry total (B0, B1, B3, B4 on the level)B*T1+6.3%0.0760.76150secondary
H1e_h2BARY-EW at h = 2B*h-1.4%0.6331.00049secondary
H1e_h3BARY-EW at h = 3B*h+3.4%0.1140.96748secondary
H1e_h4BARY-EW at h = 4B*h+2.4%0.2551.00047secondary
H2bWAR-RM mapped to the bank set ($)B*-66.0%1.0001.00050secondary
H2c_persistenceCross-section trimmed W₂² (U19)persistence Qt+26.7%0.0460.50850secondary
H2c_climatologyCross-section trimmed W₂² (U19)climatology Q̄t+12.3%0.0060.06850secondary
H2dFréchet regression on VIX and rates volatility + rank mapB*CS-33.6%1.0001.00050secondary
H2eOT quantile-map recalibration of B* (≥ 100 PITs)B*+0.9%0.2781.00047secondary
H2fAutoregressive OT map (scalar) + rank mapB*CS-30.2%0.9991.00050secondary

Other pre-registered secondary items (outside the Holm family)

ItemMethodComparatorResultRole
H2 FPCAK = 2 FPCA functional WAR + rank map (raw p, no Holm)B*CSG -31.9%, p 1.000secondary
Ridge (pt)Pooled ridge point forecast, λ by GCV once on burn-in (frozen = 0.02512); scaled MAEBARY-EW / B* mediansMAE gain +79.5% / +81.2%secondary metric
§4-BBarycentric scenarios, W₂ scenario reduction, energy score——DEFERRED

Sensitivities S1–S16, S4b, FB4 (pre-registered; none can change a primary verdict)

IDVariationH1 GH2 GH1d GRole
S1Bank set: full-sample balanced ($10m, $100m; look-ahead) and the fixed 2013Q4 set———ran; not saved (sensitivities.json not produced)
S2Modelling scale: revenue / total assets; raw $———ran; not saved (sensitivities.json not produced)
S3Cross-section threshold $10m / $50m / $1bn———ran; not saved (sensitivities.json not produced)
S4Exclude 2020Q1–Q2 from training———CRASHED (KeyError 2020Q1 in WAR-RM); logged, not scored
S4bTraining from 2010Q1———NOT RUN
S5Drop targets at merger events and the quarter after———NOT RUN
S6No Q1 dummy in B4/B5; WAR with a Q1 tangent shift———NOT RUN
S7CRPS on 19 levels (rescore, no re-selection)———NOT RUN
S8Target ex-CVA/DVA for banks ≥ $100bn (rows before 2011Q1 unadjusted)———NOT RUN
S9Macro data through the availability date———NOT RUN
S10Leave one OOS year out———NOT RUN
S11Mid-year entrant rule (b), industry total———NOT RUN
S12Rolling 16-quarter estimation windows———NOT RUN
S13Settings frozen at 2013Q4———NOT RUN
S14Frozen burn-in score scale, 2010Q1–2013Q4 (rescore, no re-selection)———NOT RUN
S15Test A and WPE p-values———NOT RUN
S16B5 without the Baa–10-year spread———NOT RUN
FB4Exclude 2020Q1–Q2 targets———NOT RUN

Design (v1.1)

Ex-ante bank-set size by Q4 origin (membership counts only)

Origin2013Q42014Q42015Q42016Q42017Q42018Q42019Q42020Q42021Q42022Q42023Q42024Q42025Q4
Banks12161718181917191921221921

The 2021Q4 set is exactly the v1.0 ex-ante set. At the first freeze (2013Q4), all seven baselines produce forecasts for all 72 burn-in pseudo-out-of-sample cases (12 banks × 6 targets, 2012Q3–2013Q4).

Data: FFIEC NIC FR Y-9C bulk files, 74 quarters 2008Q1–2026Q2. Macro: FRED VIXCLS, DGS10, NASDAQCOM, BAA10Y. Report-quarter backtest on the latest vintage; filing revisions are not modelled. The v1.0 design (test_design_trading_ot.json, sha256 dffd1323…) stays pinned and byte-identical; it runs only as R1.