1# PHASE 6 — Joint paths (Stage B) — 2026-11-0323## What was run (`configs/ablations.yaml`, model `mrpt_small_copula`, M3U96b)4Stage A: MRPT-S with the Student-t head, 4 000 steps (same budget and seed as the ablation reference `mrpt_small_b4k`),5best validation NLL −6.4509. Stage B: low-rank (k = 4) + diagonal Gaussian copula head over the 60 future minutes,6trained for 600 steps on the copula log-likelihood of the PITs with the marginals frozen (64 s); best validation copula7NLL −2.5e-5 per observed dimension, i.e. **indistinguishable from independence** (the likelihood at R = I is exactly 0).8Prediction on the 986 468 development-test origins with 200 correlated draws (`joint`) and with 200 independent draws9of the same marginals (`indep`); path scores computed per origin and bootstrapped by trading day10(`results/metrics/ablations/path_scores_mrpt_small_copula_test.json`).1112## Results (H4)13| Score (per origin, 60-minute paths) | Joint (copula) | Independent | Joint − independent (95 % CI) |14|---|---|---|---|15| Energy score | 3.4903e-3 | 3.4904e-3 | −9.2e-8 [−2.3e-7, +5.0e-8] (−0.003 %) |16| Variogram score (p = 0.5) | 1.51132e-4 | 1.51136e-4 | −3.8e-9 [−1.0e-8, +2.2e-9] (−0.002 %) |17| CRPS of maximum drawdown | 1.4632e-3 | 1.4633e-3 | −1.8e-7 [−6.2e-7, +2.8e-7] (−0.01 %) |18| CRPS of realised variance | 1.1881e-5 | 1.1869e-5 | +1.2e-8 [−2.8e-9, +3.0e-8] (+0.10 %) |19Cumulative-return CRPS at H = 60: joint 0.4194, independent 0.4191 (scaled), i.e. no gain either.2021**H4 is rejected**: once the Student-t marginals are conditioned on the 390-bar history, the probability-integral22transforms of consecutive future minutes are essentially uncorrelated, the learned factor loadings stay near zero,23and coherent sampling changes no path score by more than a hundredth of a percent. Diffusion decoders were therefore24not attempted (the brief asked for them only if a dependence-aware decoder demonstrably helped).2526## Validation of the machinery (so that the null is not an implementation artifact)27- `tests/numerical/test_copula.py`: sampling reproduces the marginals; the sampled correlation matches the implied28 correlation under strong loadings; the copula NLL is minimised at independence for independent data; PIT round trip.29- `tests/numerical/test_scores.py::test_energy_score_prefers_true_dependence`: the energy score does reward correct30 dependence when it exists.31- The synthetic smoke run (independent t returns by construction) also learned ≈ 0 correlation, as it should.3233## Go / no-go34Stage B remains in the package as a documented null; the paper reports it in the ablation section.35