CorrFlow fixes two problems a trading desk should care about: invalid correlation draws and results that change when tickers are reordered. Whether its scenarios resemble the next year's market is a harder test. In Marti's results, historical replay still has the stronger coverage figures.
The construction
CorrFlow starts by changing coordinates. The generalized Fisher transform (GFT, from Archakov and Hansen) takes the matrix logarithm of a full-rank correlation matrix and retains its strictly lower-triangular entries. The resulting map is a bijection to an unconstrained Euclidean space of dimension n(n-1)/2. To return to correlation space, a fixed-point iteration recovers the missing diagonal of log C, then exponentiates. Every finite vector therefore gives exactly one symmetric, positive-definite, unit-diagonal matrix. There is no clipping or nearest-correlation projection.
Rectified flow learns a distribution in those coordinates. Its flow-matching objective trains a vector field to move Gaussian noise toward data along straight lines. CorrFlow represents each off-diagonal entry as an edge of a complete graph and uses the same small MLPs at every node and edge. Reorder the variables, and the output reorders with them. The network has 48 hidden channels, three edge-node blocks and 0.17M parameters; sampling takes 25 Heun steps. Conditioning uses a regime label and a continuous score q, the annualized mean-over-volatility of an equal-weight portfolio over the same 252-session window. Training scores in the bottom 20%, middle 60% and top 20% set the adverse, typical and favorable regimes.
The source market is TWSE/TPEx stocks. Each session supplies eight random 80-stock subsets from the 500 most liquid names, with correlations estimated over the prior 252 sessions. The resulting 24,408 matrices split into 13,600 for training (2014-2020), 3,920 for validation (2021-2022) and 6,888 for testing (2023 to July 2026). Marti measures fidelity through 21 order-invariant summaries, including correlation and eigenvalue quantiles, effective ranks, log determinant and log condition number. The tests use feature sliced-Wasserstein distance (F-SWD), energy distance, nearest-neighbour precision and recall, and a real-versus-generated classifier.
Why the geometry matters
Marti also wrote CorrGAN in 2020. His earlier approach makes the comparison unusually direct: image generators sort matrices by Ward clustering, learn their pixels and repair invalid output afterward. In the Taiwan case study, validity before repair is.000 for the cCorrGAN reimplementation and.001 for the image DDPM (denoising diffusion model). CorrFlow reaches 1.000 across five seeds. On eight S&P inputs, a float32 relabeling test puts its vector-field error at 2.15e-7, consistent with float32 rounding. A dense GFT flow without the graph structure records.625.
Ticker order matters when a desk repeatedly draws random 80-name subsets. CorrFlow gives the same relationships under a relabeling. DiffeoCFM also produces exactly valid matrices through normalized-Cholesky coordinates, though Marti notes that its output remains order dependent.
How much fidelity does it buy?
CorrFlow posts F-SWD.712 in Taiwan. The repaired cCorrGAN and DDPM outputs score 4.339 and 4.610; their energy distances are 39.984 and 36.617 against CorrFlow's 1.885. The image results deserve scrutiny. Both trail a PCA-64 Gaussian fitted in GFT coordinates, which scores F-SWD.953. Marti flags the issue himself: poor performance against PCA "is a reason to audit training and model selection, not evidence that image generators cannot learn financial correlations." Projection changes each off-diagonal correlation by about.018 RMS, too little for invalidity alone to explain the gap. All neural models received 20 epochs.
The abstract concedes that these results establish neither superiority over fully tuned image models nor the separate contribution of each component. Its defence is that they "support the combined construction under the evaluated training budget." Exact validity follows from that construction. Fidelity leaves a closer contest with PCA, replay and DiffeoCFM.
Replay's F-SWD is.886, behind CorrFlow's.712. Its precision and recall, however, are.457 and.589, ahead of CorrFlow's.393 and.435. CorrFlow produces fresh draws: none of 7,500 matches a training vector. Its median nearest-training distance is.845 of the real-test benchmark, versus.513 for replay. In the condition-matched appendix, CorrFlow also beats DiffeoCFM on F-SWD (.471 vs.751) and portfolio SWD (.624 vs.862). This comparison conditions only on the regime label and gives DiffeoCFM 200 epochs to CorrFlow's 20. DiffeoCFM still has slightly higher recall,.355 against.320.
Checkpoint choice can reverse that ranking. The validation-selected CorrFlow checkpoints came from epochs 1, 3, 18, 6 and 4. With final weights, the F-SWD order flips: CorrFlow scores.836 against DiffeoCFM's.798. Marti reports the reversal and retains his predeclared selection rule. The ranking remains sensitive to that choice. A separate five-seed Japan diagnostic favors replay outright, 1.013 against CorrFlow's 1.374.
Can a classifier tell?
Easily. Two halves of the real test set are indistinguishable at AUC.499, while real training-period and test-period matrices separate at.950. Marti's Figure 3 attributes much of that time shift to the spectrum: the five largest eigenvalues account for a median.382 of variance against.338, and effective rank drops from 42.9 to 37.9 out of 80. Replay scores.951, close to the temporal-shift reference. CorrFlow scores.9981.
Replay's detectability largely follows the calendar. CorrFlow has a further discrepancy.
Marti acknowledges the limit of the aggregate distances: lower F-SWD and energy "do not establish recovery of the full held-out variety or joint law." Real and generated summary distributions still differ systematically. A linear classifier on those summaries cannot locate the error in joint dependence or the marginals.
Before using it for US equities
The conditioning score q comes from the same 252 sessions as its matrix. A hand-chosen "adverse" regime works for a stress test. At a sizing decision, the available q belongs to the trailing year and describes risk already realized. The paper says the experiment never predicts q and has no forecasting aim. We found no evidence that conditioning on trailing q improves scenarios for the next window.
Size raises another issue. A single-seed diagnostic runs the 80-asset checkpoint at n = 40. It keeps full validity, yet records F-SWD 2.070 and precision/recall of.128/.245. Direct 40-asset draws also differ from 40-asset submatrices of 80-asset draws, with F-SWD 1.332. Marti identifies projective consistency as the next mathematical requirement and says equivariance does not imply it. The 252-session windows also cap full-rank n at 251. The paper says its test periods were inspected during development and its return series is not a reconciled cash-dividend total-return series.
Our run's limits
We had no budget to train CorrFlow. Our run trains none and does not test Marti's claim. It uses US equities; the learned distribution and every fidelity figure above come from the paper's markets, mainly Taiwan. We specified a comparison that would size an equal-weight 80-stock US portfolio to a 15% annual volatility limit using the 95th-percentile portfolio variance across 128 scenarios. CorrFlow scenarios would be compared with uniform historical replay.
What executed instead was a generic cross-sectional momentum template with 20 long positions and monthly rebalancing. It had no CorrFlow training, no replay arm and no paired accounting. The figures printed above this review are ours and cover 2020-01-01 to 2024-07-01. That run logged 1,587 trades, charged commissions of $0.004 a share on every fill, and printed zero performance and risk fields alongside symbol counts that do not reconcile. Zero volatility beside 1,587 trades indicates broken accounting in our implementation. It says nothing about the strategy or the paper.
The paper reports no trading P&L. Our printed Sharpe is zero because the accounting is broken, leaving no comparison in either direction.
For correlation-scenario generation, the geometry is worth adopting now: 0.17M parameters buy exact validity and order independence without a repair step. There is a time cost. CorrFlow's 20 epochs took 919 s, versus about 590 s for the image models, and each draw still needs an iterative inverse GFT. Its fidelity case remains open. A US test showing that CorrFlow's stressed-variance sizing tracks subsequent realized volatility better than replay, alongside classifier AUC well below.9981, would change our view.
Our backtest stops at 2024-07-01, and everything after that date is deliberately left untouched so the same strategy can be checked out of sample later.