A desk cannot rely on this method until it knows which of these numbers to trust: 107.951 or 141.527.

At inception, 107.951 is the trained critic's estimate of dynamic CVaR for its own policy. The critic is the network that estimates risk-to-go. Nested simulation puts the actual risk at 141.527. Both results come from the policy trained with the rational scoring function at the 95% level, leaving a 24% understatement.

Zhang and Godin repeat the test for the logarithmic score. Its critic reports 137.218, while the nested benchmark is 137.906, a difference of half a percent. Because changing the score alters the critic and the resulting policy, each policy must be judged against its own nested benchmark. The relevant comparison is therefore 0.5% versus 24% in critic error. The authors describe the rational-score estimate as one that "reflects an underestimation of the true dynamic risk". I would act on the scoring function choice. It compromises the convenience on which the approach depends.

The construction

Deep hedging fits a neural policy on simulated paths to minimise a risk functional of hedging P&L. Following Buehler and co-authors, the standard formulation uses a static risk measure of terminal P&L. Solve the problem again at day 60 and the chosen policy changes. The day-one plan has become precommitment.

Zhang and Godin instead nest one-step conditional risk mappings, giving risk-to-go a Bellman recursion. Direct evaluation of conditional CVaR at every state would ordinarily require nested simulation. The workaround, supplied by Coache, Jaimungal and Cartea, is conditional elicitability. VaR and CVaR jointly minimise an expected scoring function, allowing a critic to be trained by loss descent. The score includes a free strictly convex function G.

The paper sets out to characterise the choice of G, demonstrate feasibility on a high-dimensional problem, and compare the result with a static objective. It tests six versions of G: logarithmic, fractional power x^0.3, arcsinh, arctan, rational and arcsin. Every version has an additive offset C = 40.

A training device carries more weight than its billing suggests. Risk-to-go builds backwards across 252 steps, while the curvature of each candidate G fades as its argument increases. The optimiser eventually reaches a flat section of the loss. Zhang and Godin divide the horizon into 18 groups, training backwards one group at a time. A constant b_g shifts each group's cost target downward into a region where G retains curvature. Translation invariance of CVaR preserves the policy: "the optimal value function can be recovered after accounting for the applied shifts." The shift is introduced to stabilise sequential training and facilitate numerical optimization. It also shows how sensitive the objective can be.

The simulator uses a DCC-GARCH(1,1) with Heston-Nandi marginals joined through a Student-t copula (nu = 15.9241). A two-stage MLE calibrates it to 2,513 daily closing prices for JPM, BAC, WFC and C, covering 23 December 2015 to 20 December 2025. Calibrated annualized unconditional volatility ranges from 25.73% to 30.57%. Unconditional pairwise correlations span 0.7167 to 0.8282, with DCC persistence at 0.9816.

The liability is a one-year at-the-money basket call with K = 100 and weights (0.0775, 0.4434, 0.2649, 0.2142). Daily hedging incurs a 0.1% proportional cost. A surrogate network marks the option in place of a Monte Carlo price. Under fixed initial conditions, it values the basket at 12.04. Across 15,000 held-out samples, the surrogate records MAE $0.0288 against average time value of $2.1418, giving relative MAE of 1.34%. Trading has no assumed market impact.

Six months changes the ranking

The static agent is trained on terminal CVaR95%, and terminal CVaR95% is where it leads. At the 95% training level, the static result is 4.1595. The best dynamic result is 4.8351 from fractional power, while arctan is worst at 5.3720. These figures use a 10,000-path test set with initial-state perturbation at one-year maturity.

The rest of the row matters. Mean terminal P&L for the static policy is +0.2161, with standard deviation 2.6423. For the log-scored dynamic policy, mean terminal P&L is -1.1143 and standard deviation is 1.7095. The dynamic hedge sacrifices about 1.33 of mean P&L while reducing dispersion by 35%. Relative to the 12.04 premium quoted for the unperturbed start, the sacrifice is roughly 11%. More aggressive hedging at every conditional state produces the cost drag.

From 2 to 6 months, the range for which the paper states this result, the ranking reverses. At the six-month evaluation horizon, static CVaR95% is 3.6360 for the log agent and 4.3512 for the static agent. The static agent still leads at ten months, with 4.1585. As the evaluation date moves forward, however, its result deteriorates from 4.1585 at ten months to 4.6317 at two.

The paper describes the time-consistent policies as decreasing monotonically. In the log row, the values fall at each step through four months, 4.3425, 3.9402, 3.6360 and 3.5778, before edging up to 3.5833 at two months. Arcsinh follows the same pattern, moving from 3.5927 to 3.5979. The authors give the trade directly: "While precommitment policies outperform on terminal static risk and achieve greater average terminal P&L, dynamic risk policies produce less variable terminal P&L distributions and exhibit superior hedging performance relative to the static risk model over shorter maturities."

The shorter-horizon claim rests on that same table. Doubt the table and both halves of the quoted conclusion become doubtful. For a desk whose limits bind daily, or whose hedge may be marked or unwound before expiry, this maturity pattern supplies the case for the exercise.

An uneven contest

The agents receive different training setups. For the static model, the paper uses a fully deterministic actor and Monte Carlo policy gradient applied to the Rockafellar-Uryasev representation. Training lasts 2,000 epochs, with one actor update in each. Dynamic agents use a stochastic actor whose sigma is fixed at 1e-3. They run for 400 epochs with three actor updates per epoch, making 1,200 updates. The gap between 4.1595 and 4.8351 contains effects from the objective, optimiser and budget. The paper does not disentangle them.

The framing is also less clean than a contest between consistency and inconsistency. Citing Godin (2016), Zhang and Godin observe that minimising static terminal CVaR is time-consistent relative to a conditional CVaR whose alpha changes over time. Deriving the required sequence is non-trivial. Their analysis consequently treats the comparison as precommitment (static) against time-consistent (dynamic).

A race between two implementable objectives.

How much tail sensitivity helps

The answer changes with confidence level. Unbounded scores, log, power03 and arcsinh, lead at 95% and 97.5%. At 97.5%, power03 records 5.5995 against 6.2027 for arctan. Saturating scores lead at 92.5%, where rational produces 4.7327 against log's 4.9721. They lead again at 99%, with arcsin at 7.0171 and log at 8.9159.

Within-class rankings come from a single seed, and the paper reports no error bars. At 95%, the three unbounded scores range from 4.8351 to 4.8922, about 1.2% apart, beyond what any reported seed count could resolve. At 99%, that class stretches from 7.3994 for power03 to 8.9908 for arcsinh. The authors argue that the class-level result appears across three members in each class. I accept the claim within those limits.

Training deep into the tail is fragile in either direction. A footnote says that every learning rate at 99% had to be reduced by three orders of magnitude to mitigate instability. The static benchmark also worsens at that level, reaching 7.6007. Four of the six dynamic scores are lower: power03 at 7.3994, arctan at 7.5615, rational at 7.1344 and arcsin at 7.0171. The 99% runs consume 632,832 simulated paths per epoch for 400 epochs.

The critic carries the risk

Every result comes from one generator. Calibration uses the complete ten-year window, after which the same generator supplies the 10,000-path test sets. Training and evaluation distributions are identical by construction. We did not find a replay on realised market paths in the paper.

The option mark is generated by a surrogate trained on Monte Carlo prices from the risk-neutral form of the same DCC-GARCH. Model risk is the binding constraint. The trading assumptions are comparatively generous: a flat 0.1% proportional charge, no bid-ask and no borrow constraint. Average weighted aggregate position stays near 0.13 shares across four megacap bank names, an amount that will not move the tape.

The critic remains the central issue because its conditional risk estimate is what a risk function would display. With the rational score, that display would read 107.951 while nested simulation gives 141.527. The losses converge, and the paper uses more than the loss curve as a diagnostic. It reports that the algorithm "exhibits unstable and slightly worse static risk performance on the intermediate test sets towards the tail end of training when using saturating scoring functions".

Nested validation covers the log and rational policies at the 95% level. For the remaining four scores, the paper says the conclusions are inferred rather than measured. The inference agrees with the hedging tables at moderate alpha. Agreement is reassuring, though it remains an inference.

Nested checks for all six scores at 92.5% and 99%, where the class ranking reverses, would change my view. Five seeds would also help. Without them, the evidence reads as a warning about the loss rather than a verdict on time consistency. The abstract's claim that the approach "is feasible and can be used conveniently in the presence of more complex state spaces" extends only to the moderate confidence levels at which the critic was actually checked.