At 99.9% validity, the authors' generator misses Q99 by 23.778 implied vol points. The error is 1.56 under the settings they ship. Gaining Nine percentage points of validity makes tail accuracy roughly fifteen times worse. Their sensitivity analysis acknowledges the exchange, calling it "a clear trade-off between near-complete arbitrage elimination and distributional fidelity, particularly for extreme volatility regimes."
The shipped version deserves separate judgment. At 90.8% validity, the abstract claims "a favorable balance between distributional similarity, tail preservation, and financial consistency without requiring post-sampling reweighting." The results support a narrower reading. VolGAN Raw has no arbitrage correction, yet it wins on sliced Wasserstein and at every pointwise quantile from Q5 through Q95. The global W1 difference between the models falls within one standard deviation. Arbitrage penalties pay off in the extreme upper tail and in pass rates.
A disclosure matters because our own equity curve appears above this article. The paper studies SPX options from OptionsDX. We could not access that dataset and substituted SPY ETF options. Our data is end-of-day only, leaving our run without intraday surface dynamics or intraday execution. We adapted the method to SPY, and none of the paper's reported metrics carries over to our results.
Inside the two-stage generator
An implied volatility surface supplies prices for unquoted vanillas and a consistent calibration target for local and stochastic volatility models. It can also populate scenario libraries used for option-portfolio risk measurement and stress testing. Bajalica, Brooks, Ben Tahar and Liu focus on that final application. Their framework is unconditional by design. As the conclusion states, it draws from the empirical distribution of surfaces instead of forecasting how those surfaces evolve.
Stage one uses a variational autoencoder. Each surface begins as 512 values arranged on a fixed grid with 32 moneyness levels and 16 maturities, then is compressed into a 6-dimensional Gaussian latent. Alongside the standard reconstruction and KL terms, the decoder loss includes three differentiable arbitrage penalties. The calendar term encourages implied vol to rise with maturity. The call-spread term encourages it to fall with moneyness. For butterfly violations, the model penalises failures of the Gatheral-Jacquier criterion g(tau,k) >= 0, calculated with central differences in log-moneyness.
Stage two freezes the VAE and treats its posterior means as the empirical latent sample. A small residual MLP learns flow matching along a trigonometric path, transporting N(0, I_6) to that latent cloud. To sample, the framework integrates the learned ODE through 100 Euler steps and passes the result through the decoder.
Training covers 1,000 end-of-day SPX surfaces from OptionsDX between January 2020 and December 2023. The maturity range is 7 to 365 days, while moneyness lies in [0.8, 1.2]. OTM puts supply the area below the money and OTM calls the area above it. SVI is fitted for each date before interpolation across maturities in total variance. Nearest neighbour filling handles the remaining gaps. The final calendar correction applies a cumulative maximum to total implied variance.
The authors report five independent runs, each containing 5,000 generated surfaces. L-FM, their name for the combined VAE and flow matching model, records the lowest global W1 against the pooled empirical vol distribution: 0.00283 +/- 0.00144. It ranks second on sliced Wasserstein distance at 0.00697 +/- 0.00056. The lowest Q99 error is also theirs, at 1.56. Across all three arbitrage tests, 90.8% +/- 1.5% of L-FM surfaces pass, compared with 69.7%, 46.7% and 32.1% for the baselines. The paper contains no P&L, no Sharpe and no hedging test. Its evidence consists of distributional distances and pass rates, leaving no economic result to contest.
The comparison set includes a score-based diffusion model with an arbitrage penalty, developed by Jin and Agarwal, whose paper concerns forecasting. Raw and reweighted versions of VolGAN complete the baselines. The authors describe each as an unconditional adaptation. In their account, VolGAN Raw learns the empirical distribution without post-sampling adjustment.
Does 90.8% meet a useful standard?
Within the paper's comparison, 90.8% wins plainly. Reweighted VolGAN reaches 69.7% +/- 8.8%, diffusion reaches 46.7% +/- 4.3%, and VolGAN Raw reaches 32.1% +/- 3.0%. L-FM also produces cleaner surfaces than its training set. Just 51.2% of those training surfaces satisfy all three conditions, which the authors attribute possibly to market noise, numerical inversion errors and interpolation artifacts.
The 51.2% figure deserves a pause. Those targets have already been SVI-fitted, interpolated in total variance, filled by nearest neighbour and corrected with a cumulative maximum. This smoothing affects the target distribution and the reported arbitrage statistic. When a model passes at 90.8% against training data that passes at 51.2%, it excludes a substantial share of the observed surface shapes. Cleanliness and realism have diverged.
Two of the three tests use conditions stronger than arbitrage itself demands. The paper says of the calendar penalty: "Although stronger than necessary, this condition is sufficient to ensure that the total implied variance is non-decreasing in maturity." Its call-spread condition follows the same pattern, requiring monotone implied vol in moneyness instead of monotone call prices. Only the calendar penalty binds in the shipped model, with weight 3e-2, because Table 1 sets the call weight to 0. The decoder therefore follows a maturity-monotonicity condition stricter than the no-arbitrage requirement. The cumulative-maximum calendar correction previously applied to the data reinforces that pressure.
Roughly 9.2% of generated surfaces still fail something.
A stress library can screen those surfaces and discard them. A calibration or pricing loop needs a user-built filter when the rejection rate is one-in-eleven. The limitations section gives the reason directly: "static no-arbitrage is encouraged through soft penalties rather than enforced by construction, so validity is assessed empirically and is not guaranteed for every generated surface."
L-FM separates only in the upper tail
The full quantile row changes the impression. VolGAN Raw beats L-FM from Q5 to Q95: 0.24 versus 0.40 at Q5, 0.22 versus 0.32 at Q25, 0.28 versus 0.35 at Q50, 0.25 versus 0.32 at Q75, and 0.62 versus 0.95 at Q95. Sliced Wasserstein also favours VolGAN Raw, at 0.00491 +/- 0.00078 compared with 0.00697 +/- 0.00056. Global W1 runs 0.00283 +/- 0.00144 against 0.00287 +/- 0.00113. With five runs for each model, those figures do not establish a separation.
Q99 reverses the ranking. L-FM posts 1.56 +/- 0.71 against 2.57 +/- 1.43. The point estimate favours L-FM, though the error bars overlap. Its lead is visible and the dispersion leaves it thin. The caution applied to global W1 works in the opposite direction here.
Four financial-factor distributions receive their own W1 comparisons: level, term structure, skew and curvature. Each model wins two. L-FM leads on level, 0.00388 against 0.00462, and curvature, 0.00263 against 0.00286. VolGAN Raw leads on skew, 0.00316 against 0.00328, and term structure, 0.00579 against 0.00859.
The abstract's claim that L-FM "closely reproduces the empirical distribution" therefore covers a fairly narrow comparative result. L-FM gains extreme-tail accuracy and arbitrage validity: 1.56 against 2.57 at Q99, plus 90.8% against 32.1%. The body of the distribution gets worse. The conclusion says L-FM "remains close to VolGAN Raw in distributional distance," which is a fair description. Close matters here. One of the two headline distributional gaps is within a standard deviation, while the other favours VolGAN Raw. An uncorrected GAN describes the middle more accurately than the arbitrage-penalised flow model. Publishing the entire row, instead of isolating the winning cell, makes that cost visible.
What 99.9% costs at Q99
Section 3.6.2 contains the authors' 99.9% configuration. Their released choice remains the 90.8% version, which is the version judged throughout the rest of this article. Under the heavier penalties, global W1 rises from 0.00283 to 0.03058 and SWD rises from 0.00697 to 0.04753. Every reported quantile error jumps: 1.986 at Q5, 2.407 at Q50, 8.951 at Q95 and 23.778 at Q99.
Compare 23.778 with the Q99 error for reweighted VolGAN, 22.99 +/- 1.16. Table 7 gives 23.778 for one configuration without dispersion, whereas the VolGAN figure comes from five runs. At the far tail, taking the soft-penalty approach to 99.9% performs no better than the reweighting it was designed to replace. Elsewhere, the conclusion differs. The same variant still beats reweighted VolGAN on global W1, 0.03058 against 0.03447. The reversal belongs specifically to Q99.
Ablations tell a similar story. Removing the calendar penalty lowers validity from 90.8% to 78.6% +/- 3.6%, while W1 moves from 0.0028 to 0.0054. Removing the butterfly penalty produces 84.3% +/- 6.4% validity and 0.0055 W1. A call-spread weight of 0.03 keeps validity at exactly 90.8% and makes both distributional metrics worse. After observing no call-spread violations in the training data, the authors set that weight to zero.
Reduced training is used for the latent dimension sweep: 1,000 epochs for the VAE and 400 for flow matching. This accounts for d=6 reaching 89.3% in that exercise instead of 90.8%. From dimensions 4 to 10, the arbitrage-free rate moves only from 88.9% to 89.3%. Validity is governed by the penalty weights, with latent size having little effect. The weight is a dial whose cost falls on the user. The paper provides a two-point calibration for it.
The hyperparameters were, in the paper's wording, "selected after tuning." We did not find a holdout split. Reported distances appear to compare the models with the same training distribution they learned. The dataset contains 1,000 daily surfaces for one underlying and spans a period that includes the COVID spike and the 2022 selloff. Claims of generalisation should remain limited accordingly.
Our SPY adaptation
We used end-of-day SPY ETF options from 2020-01-01 through 2025-10-08. Our implementation omitted the paper's surface-building process entirely. We performed no SVI calibration and no interpolation across maturity in total variance. We left gaps without nearest-neighbour filling and applied no cumulative-max calendar correction. The resulting training surfaces differ from those behind the paper's 90.8% figure.
Each month, we refitted an arbitrage-regularised VAE on a rolling window of 504 surfaces ending strictly before the trade date. The latent dimension was 6, with KL weight 0.01, calendar penalty 0.03, butterfly penalty 0.002 and call-spread penalty 0. Flow matching used the trigonometric path, 100 Euler steps and 5,000 generated surfaces at every refit. When observed SPY ATM implied vol reached or fell below the generated 5th percentile, we bought a delta-hedged ATM straddle with 30 to 60 days until expiry. At or above the 95th percentile, we sold a defined-risk iron butterfly using roughly 0.15-delta wings. Only one package could be open, using up to a third of the account, and gross exposure was capped at four times capital. Daily hedging returned the position to net zero delta whenever absolute delta exceeded 5 shares. We exited after 21 days held, after signal mean reversion, upon stops, or at 7 days to expiry. Costs were 65 cents commission and a dollar of slippage per contract per leg, with another 1bp charged on the stock hedge.
Performance was flat to slightly negative: total return -1.25%, Sharpe -0.06, Sortino -0.03, Calmar -0.04, maximum drawdown -5.08% and annualised volatility 3.52%. We do not treat this as a verdict on the authors' generator. Their paper has no Sharpe, no P&L and no hedging test, leaving no reported figure that can be compared with ours. A value of 0.00283 also has no direct comparison with a Sharpe ratio.
Sizing explains much of the risk profile. Annualised volatility of 3.52% and maximum drawdown of 5.08% came from a handful of entries, with one package active at a time. Our own design choices offer two immediate explanations for weak performance. We turned an unconditional generator into a directional fair-value reference, despite the authors saying the framework was not designed for that task. We also removed the smoothing used to create the clean surfaces on which their results are evaluated. This was one automated implementation. It provides evidence first about that implementation and only then about their model.
We encountered a related pattern in an earlier note on a diffusion sampler, which attempted to place a calibrated volatility clock inside its noise schedule (/articles/dspm-puts-a-volatility-clock-inside-diffusion-noise). The generative machinery works, while the financial quantity one hoped to control becomes attenuated or gets exchanged for another property.
The paper states its boundaries clearly. It does not examine behaviour beyond the fixed maturity-moneyness grid, and the framework remains unconditional. Conditional generation and forecasting are left for future work. A conditional version tested on a holdout period would strengthen the deployment case. The relevant tests would use pricing error for options outside the training grid or hedge error for a book repriced with generated scenarios. For now, this is a carefully documented scenario generator with a published cost schedule for its constraint dial. The dial sits at 90.8% for a reason.