Joint SPX/VIX Heston calibration
Five-parameter Heston fitted jointly to the SPX smile and the VIX index term structure, scored on the quotes it did not see.
The headline is the newest fit that passes the quality gate (joint_cal_2026-10-28.pkl), not the lowest-RMSE fit in the archive: ranking by RMSE rewards the days the data broke. Optimiser: Trust-region least squares, 8 Sobol starts (9 of 9 in the best basin).
Of 45 stored fits, 8 current-schema (model_version 2) fits are stored (the job stores only fits that pass the gate; a rejected fit is recorded in its run log, not stored); 37 pre-C22 fits are labelled legacy and never ranked.
Parameters κ θ σ ρ v₀
Under each parameter: every gate-passing fit, oldest first, its value with a ±2·SE whisker, the Gauss–Newton curvature scale, not a confidence interval (the residuals are model misfit, not noise). Dashed: a bound of the production box within the plotted range; a parameter on its bound sits on the line with no whisker. The headline fit’s dot is larger.
Fit quality
Out-of-sample error by expiry
M4 short-end RMSE · WATCHM4 OOS RMSE · OK17 expiries; RMSE from 0.61 to 3.06 vol pts against 0.78 in sample.
| Expiry | Days | RMSE (vol pts) | Anchor expiry |
|---|---|---|---|
| 2026-11-10 | 13 | 2.44 | no |
| 2026-11-11 | 14 | 2.72 | yes |
| 2026-11-12 | 15 | 3.06 | no |
| 2026-11-25 | 28 | 1.73 | no |
| 2026-11-27 | 30 | 1.54 | yes |
| 2026-11-30 | 33 | 1.57 | no |
| 2026-12-18 | 51 | 0.97 | no |
| 2026-12-31 | 64 | 1.12 | yes |
| 2027-01-15 | 79 | 0.70 | no |
| 2027-01-29 | 93 | 0.61 | yes |
| 2027-02-19 | 114 | 0.67 | no |
| 2027-03-31 | 154 | 1.05 | no |
| 2027-04-16 | 169 | 0.65 | yes |
| 2027-05-21 | 204 | 0.62 | no |
| 2027-09-30 | 337 | 0.76 | no |
| 2027-10-15 | 351 | 0.79 | yes |
| 2027-11-19 | 386 | 0.83 | no |
Bars: RMSE of the quotes the fit did not use, per expiry; dashed line: the in-sample RMSE on the 53 anchors. The short end is where a one-factor model with σ on its box ceiling fails; in half-spreads on the same chain, see the Surface scorecard.
VIX leg · indices in the fit, VX futures out of sample
M5 VX lag · BREACHM4 VIX RMSE · OKVIX indices · 2026-10-28 · in the objective
Market VIX-family indices and the fitted model's values at 9, 30, 93 and 184 days.
| Index | Tenor (days) | Market | Model | Model − market |
|---|---|---|---|---|
| ^VIX9D | 9 | 15.60 | 15.42 | −0.18 |
| ^VIX | 30 | 16.91 | 16.55 | −0.36 |
| ^VIX3M | 93 | 19.22 | 18.84 | −0.38 |
| ^VIX6M | 184 | 21.24 | 20.62 | −0.62 |
The Cboe spot indices (9/30/93/184 days) against the model's index to each horizon: 100·√(expected average variance over the horizon), the variance-swap rate the Cboe formula replicates, not an expected average vol. Model below market in 4 of 4 tenors.
VX futures · E[VIXT] against settlements · out of sample
9 monthly VX settlements of 2026-03-24 and the fit's model price at each expiry; RMSE 2.66 index pts, model below the settlement on 9 of 9.
| Contract | Expiry | Days | Settlement | Model E[VIXT] | Model − settlement |
|---|---|---|---|---|---|
| 2026-04 | 2026-04-15 | 22 | 24.94 | 22.84 | −2.10 |
| 2026-05 | 2026-05-19 | 56 | 24.15 | 21.61 | −2.54 |
| 2026-06 | 2026-06-17 | 85 | 23.84 | 21.30 | −2.54 |
| 2026-07 | 2026-07-22 | 120 | 23.89 | 21.16 | −2.73 |
| 2026-08 | 2026-08-19 | 148 | 23.75 | 21.11 | −2.64 |
| 2026-09 | 2026-09-16 | 176 | 23.85 | 21.08 | −2.77 |
| 2026-10 | 2026-10-21 | 211 | 24.00 | 21.06 | −2.94 |
| 2026-11 | 2026-11-18 | 239 | 23.85 | 21.05 | −2.80 |
| 2026-12 | 2026-12-16 | 267 | 23.85 | 21.04 | −2.81 |
2026-03-24: RMSE 2.66 index pts over 9 monthly contracts; model below the settlement on 9 of 9, mean gap −2.65. Equal to the fit’s recorded out-of-sample VX RMSE (losses.vx_futures_rmse_oos).
9 monthly VX settlements of 2026-03-27 and the fit's model price at each expiry; RMSE 3.18 index pts, model below the settlement on 9 of 9.
| Contract | Expiry | Days | Settlement | Model E[VIXT] | Model − settlement |
|---|---|---|---|---|---|
| 2026-04 | 2026-04-15 | 19 | 28.49 | 25.68 | −2.81 |
| 2026-05 | 2026-05-19 | 53 | 26.49 | 23.15 | −3.34 |
| 2026-06 | 2026-06-17 | 82 | 25.68 | 22.36 | −3.32 |
| 2026-07 | 2026-07-22 | 117 | 25.30 | 21.89 | −3.41 |
| 2026-08 | 2026-08-19 | 145 | 24.92 | 21.69 | −3.23 |
| 2026-09 | 2026-09-16 | 173 | 24.78 | 21.56 | −3.22 |
| 2026-10 | 2026-10-21 | 208 | 24.90 | 21.46 | −3.44 |
| 2026-11 | 2026-11-18 | 236 | 24.43 | 21.41 | −3.02 |
| 2026-12 | 2026-12-16 | 264 | 24.07 | 21.37 | −2.70 |
2026-03-27: RMSE 3.18 index pts over 9 monthly contracts; model below the settlement on 9 of 9, mean gap −3.17. Equal to the fit’s recorded out-of-sample VX RMSE (losses.vx_futures_rmse_oos).
9 monthly VX settlements of 2026-05-29 and the fit's model price at each expiry; RMSE 2.56 index pts, model below the settlement on 9 of 9.
| Contract | Expiry | Days | Settlement | Model E[VIXT] | Model − settlement |
|---|---|---|---|---|---|
| 2026-06 | 2026-06-17 | 19 | 17.59 | 15.69 | −1.90 |
| 2026-07 | 2026-07-22 | 54 | 19.94 | 17.48 | −2.46 |
| 2026-08 | 2026-08-19 | 82 | 20.84 | 18.32 | −2.52 |
| 2026-09 | 2026-09-16 | 110 | 21.40 | 18.86 | −2.54 |
| 2026-10 | 2026-10-21 | 145 | 22.12 | 19.28 | −2.85 |
| 2026-11 | 2026-11-18 | 173 | 22.12 | 19.49 | −2.64 |
| 2026-12 | 2026-12-16 | 201 | 21.98 | 19.62 | −2.35 |
| 2027-01 | 2027-01-20 | 236 | 22.45 | 19.73 | −2.72 |
| 2027-02 | 2027-02-17 | 264 | 22.68 | 19.79 | −2.89 |
2026-05-29: RMSE 2.56 index pts over 9 monthly contracts; model below the settlement on 9 of 9, mean gap −2.54. Equal to the fit’s recorded out-of-sample VX RMSE (losses.vx_futures_rmse_oos).
8 monthly VX settlements of 2026-06-18 and the fit's model price at each expiry; RMSE 1.85 index pts, model below the settlement on 8 of 8.
| Contract | Expiry | Days | Settlement | Model E[VIXT] | Model − settlement |
|---|---|---|---|---|---|
| 2026-07 | 2026-07-22 | 34 | 18.49 | 17.17 | −1.32 |
| 2026-08 | 2026-08-19 | 62 | 19.92 | 18.25 | −1.67 |
| 2026-09 | 2026-09-16 | 90 | 20.68 | 18.96 | −1.71 |
| 2026-10 | 2026-10-21 | 125 | 21.41 | 19.52 | −1.88 |
| 2026-11 | 2026-11-18 | 153 | 21.68 | 19.81 | −1.88 |
| 2026-12 | 2026-12-16 | 181 | 21.69 | 20.00 | −1.69 |
| 2027-01 | 2027-01-20 | 216 | 22.38 | 20.15 | −2.22 |
| 2027-02 | 2027-02-17 | 244 | 22.50 | 20.23 | −2.27 |
2026-06-18: RMSE 1.85 index pts over 8 monthly contracts; model below the settlement on 8 of 8, mean gap −1.83. Equal to the fit’s recorded out-of-sample VX RMSE (losses.vx_futures_rmse_oos).
2026-10-16: VX futures table ends 2026-10-09; none stored for 2026-10-16. No futures curve is drawn for this fit: an earlier session’s settlements are never paired with a later fit.
2026-10-26: VX futures table ends 2026-10-09; none stored for 2026-10-26. No futures curve is drawn for this fit: an earlier session’s settlements are never paired with a later fit.
2026-10-27: VX futures table ends 2026-10-09; none stored for 2026-10-27. No futures curve is drawn for this fit: an earlier session’s settlements are never paired with a later fit.
2026-10-28 (headline fit): VX futures table ends 2026-10-09; none stored for 2026-10-28. No futures curve is drawn for this fit: an earlier session’s settlements are never paired with a later fit.
Not in the objective: the loss has no VX-futures term (weight 0), so this is a test on prices the fit never saw. Model: EQ[VIXT] of the fitted Heston parameters, exact under the CIR law of vT, T = days to expiry / 365; market: Cboe’s daily settlement of each monthly contract (weeklies excluded), set at 15:00 Chicago time, while the fit’s SPX chain is a Yahoo Finance download fetched 2026-10-29 07:32 UTC (Yahoo reports no quote times; T measured from the fetch) and its VIX indices are the 16:15 ET closes. Labels: model − settlement, index pts. 4 of 8 gated fits have settlements stored on their session; the futures table ends 2026-10-09.
ATM-skew term structure · the market’s power law against Heston
|∂σ/∂ln(K/F)| at the forward against T in years, both axes logarithmic: the SVI-cal surface of 2026-10-28 (solid) and of the other stored sessions (grey), the eSSVI fit of 2026-10-28 (dotted), and the Heston smile at the published parameters and at the σ-profile refit (dashed). A straight line is a power law; skews are negative and plotted as magnitudes.
| Session | Expiry | T (d) | SVI-cal | eSSVI | Heston published | Heston σ ≤ 10 |
|---|---|---|---|---|---|---|
| 2026-10-28 | 2026-11-10 | 13 | −1.004 | −1.298 | −1.775 | −1.775 |
| 2026-10-28 | 2026-11-11 | 14 | −0.999 | −1.293 | −1.742 | −1.742 |
| 2026-10-28 | 2026-11-12 | 15 | −0.984 | −1.277 | −1.709 | −1.709 |
| 2026-10-28 | 2026-11-25 | 28 | −0.817 | −1.160 | −1.367 | −1.367 |
| 2026-10-28 | 2026-11-27 | 30 | −0.798 | −1.083 | −1.328 | −1.328 |
| 2026-10-28 | 2026-11-30 | 33 | −0.755 | −1.140 | −1.274 | −1.274 |
| 2026-10-28 | 2026-12-18 | 51 | −0.652 | −0.886 | −1.038 | −1.038 |
| 2026-10-28 | 2026-12-31 | 64 | −0.600 | −0.892 | −0.925 | −0.925 |
| 2026-10-28 | 2027-01-15 | 79 | −0.554 | −0.754 | −0.828 | −0.828 |
| 2026-10-28 | 2027-01-29 | 93 | −0.530 | −0.702 | −0.758 | −0.758 |
| 2026-10-28 | 2027-02-19 | 114 | −0.478 | −0.648 | −0.676 | −0.676 |
| 2026-10-28 | 2027-03-31 | 154 | −0.435 | −0.549 | −0.568 | −0.568 |
| 2026-10-28 | 2027-04-16 | 169 | −0.422 | −0.526 | −0.536 | −0.536 |
| 2026-10-28 | 2027-05-21 | 204 | −0.396 | −0.475 | −0.478 | −0.478 |
| 2026-10-28 | 2027-09-30 | 337 | −0.330 | −0.348 | −0.345 | −0.345 |
| 2026-10-28 | 2027-10-15 | 351 | −0.322 | −0.345 | −0.335 | −0.335 |
| 2026-10-28 | 2027-11-19 | 386 | −0.308 | −0.319 | −0.314 | −0.314 |
| 2026-03-24 | 2026-03-31 | 7 | −1.639 | −1.773 | — | — |
| 2026-03-24 | 2026-04-01 | 8 | −1.630 | −1.684 | — | — |
| 2026-03-24 | 2026-04-02 | 9 | −1.564 | −1.693 | — | — |
| 2026-03-24 | 2026-04-06 | 13 | −1.419 | −1.496 | — | — |
| 2026-03-24 | 2026-04-07 | 14 | −1.397 | −1.510 | — | — |
| 2026-03-24 | 2026-04-08 | 15 | −1.394 | −1.499 | — | — |
| 2026-03-24 | 2026-04-09 | 16 | −1.365 | −1.471 | — | — |
| 2026-03-24 | 2026-04-10 | 17 | −1.327 | −1.478 | — | — |
| 2026-03-24 | 2026-04-13 | 20 | −1.254 | −1.365 | — | — |
| 2026-03-24 | 2026-04-14 | 21 | −1.261 | −1.351 | — | — |
| 2026-03-24 | 2026-04-15 | 22 | −1.247 | −1.345 | — | — |
| 2026-03-24 | 2026-04-16 | 23 | −1.241 | −1.330 | — | — |
| 2026-03-24 | 2026-04-17 | 24 | −1.273 | −1.377 | — | — |
| 2026-03-24 | 2026-04-20 | 27 | −1.192 | −1.253 | — | — |
| 2026-03-24 | 2026-04-21 | 28 | −1.176 | −1.218 | — | — |
| 2026-03-24 | 2026-04-22 | 29 | −1.165 | −1.205 | — | — |
| 2026-03-24 | 2026-04-23 | 30 | −1.150 | −1.186 | — | — |
| 2026-03-24 | 2026-04-24 | 31 | −1.147 | −1.193 | — | — |
| 2026-03-24 | 2026-04-27 | 34 | −1.104 | −1.147 | — | — |
| 2026-03-24 | 2026-04-28 | 35 | −1.086 | −1.112 | — | — |
| 2026-03-24 | 2026-04-30 | 37 | −1.021 | −1.097 | — | — |
| 2026-03-24 | 2026-05-01 | 38 | −1.020 | −1.082 | — | — |
| 2026-03-24 | 2026-05-08 | 45 | −0.956 | −1.012 | — | — |
| 2026-03-24 | 2026-05-15 | 52 | −0.907 | −0.950 | — | — |
| 2026-03-24 | 2026-05-29 | 66 | −0.858 | −0.858 | — | — |
| 2026-03-24 | 2026-06-18 | 86 | −0.760 | −0.767 | — | — |
| 2026-03-24 | 2026-06-30 | 98 | −0.723 | −0.722 | — | — |
| 2026-03-24 | 2026-07-17 | 115 | −0.675 | −0.679 | — | — |
| 2026-03-24 | 2026-07-31 | 129 | −0.639 | −0.635 | — | — |
| 2026-03-24 | 2026-08-21 | 150 | −0.591 | −0.590 | — | — |
| 2026-03-24 | 2026-08-31 | 160 | −0.568 | −0.563 | — | — |
| 2026-03-24 | 2026-09-18 | 178 | −0.543 | −0.534 | — | — |
| 2026-03-24 | 2026-09-30 | 190 | −0.522 | −0.516 | — | — |
| 2026-03-24 | 2026-10-16 | 206 | −0.501 | −0.492 | — | — |
| 2026-03-24 | 2026-11-20 | 241 | −0.457 | −0.448 | — | — |
| 2026-03-24 | 2026-12-18 | 269 | −0.429 | −0.421 | — | — |
| 2026-03-24 | 2026-12-31 | 282 | −0.417 | −0.414 | — | — |
| 2026-03-24 | 2027-01-15 | 297 | −0.407 | −0.397 | — | — |
| 2026-03-24 | 2027-02-19 | 332 | −0.382 | −0.374 | — | — |
| 2026-03-24 | 2027-03-19 | 360 | −0.365 | −0.356 | — | — |
| 2026-03-24 | 2027-04-16 | 388 | −0.351 | −0.338 | — | — |
| 2026-03-24 | 2027-06-17 | 450 | −0.321 | −0.314 | — | — |
| 2026-03-24 | 2027-12-17 | 633 | −0.266 | −0.260 | — | — |
| 2026-03-27 | 2026-04-06 | 10 | −0.808 | −0.950 | — | — |
| 2026-03-27 | 2026-04-07 | 11 | −0.874 | −1.033 | — | — |
| 2026-03-27 | 2026-04-08 | 12 | −0.935 | −1.119 | — | — |
| 2026-03-27 | 2026-04-09 | 13 | −0.945 | −1.125 | — | — |
| 2026-03-27 | 2026-04-10 | 14 | −0.984 | −1.160 | — | — |
| 2026-03-27 | 2026-04-13 | 17 | −0.969 | −1.109 | — | — |
| 2026-03-27 | 2026-04-14 | 18 | −1.010 | −1.158 | — | — |
| 2026-03-27 | 2026-04-15 | 19 | −0.996 | −1.099 | — | — |
| 2026-03-27 | 2026-04-16 | 20 | −1.000 | −1.083 | — | — |
| 2026-03-27 | 2026-04-17 | 21 | −1.000 | −1.090 | — | — |
| 2026-03-27 | 2026-04-20 | 24 | −0.942 | −0.994 | — | — |
| 2026-03-27 | 2026-04-21 | 25 | −0.954 | −1.006 | — | — |
| 2026-03-27 | 2026-04-22 | 26 | −0.964 | −1.026 | — | — |
| 2026-03-27 | 2026-04-23 | 27 | −0.938 | −0.990 | — | — |
| 2026-03-27 | 2026-04-24 | 28 | −0.972 | −1.010 | — | — |
| 2026-03-27 | 2026-04-27 | 31 | −0.951 | −0.973 | — | — |
| 2026-03-27 | 2026-04-28 | 32 | −0.958 | −0.980 | — | — |
| 2026-03-27 | 2026-04-30 | 34 | −0.921 | −0.944 | — | — |
| 2026-03-27 | 2026-05-01 | 35 | −0.934 | −0.962 | — | — |
| 2026-03-27 | 2026-05-08 | 42 | −0.885 | −0.901 | — | — |
| 2026-03-27 | 2026-05-15 | 49 | −0.847 | −0.859 | — | — |
| 2026-03-27 | 2026-05-29 | 63 | −0.775 | −0.784 | — | — |
| 2026-03-27 | 2026-06-18 | 83 | −0.704 | −0.711 | — | — |
| 2026-03-27 | 2026-06-30 | 95 | −0.684 | −0.683 | — | — |
| 2026-03-27 | 2026-07-17 | 112 | −0.644 | −0.644 | — | — |
| 2026-03-27 | 2026-07-31 | 126 | −0.608 | −0.605 | — | — |
| 2026-03-27 | 2026-08-21 | 147 | −0.570 | −0.567 | — | — |
| 2026-03-27 | 2026-08-31 | 157 | −0.546 | −0.541 | — | — |
| 2026-03-27 | 2026-09-18 | 175 | −0.522 | −0.513 | — | — |
| 2026-03-27 | 2026-09-30 | 187 | −0.500 | −0.499 | — | — |
| 2026-03-27 | 2026-10-16 | 203 | −0.479 | −0.473 | — | — |
| 2026-03-27 | 2026-11-20 | 238 | −0.434 | −0.430 | — | — |
| 2026-03-27 | 2026-12-18 | 266 | −0.406 | −0.404 | — | — |
| 2026-03-27 | 2026-12-31 | 279 | −0.396 | −0.399 | — | — |
| 2026-03-27 | 2027-01-15 | 294 | −0.386 | −0.382 | — | — |
| 2026-03-27 | 2027-02-19 | 329 | −0.364 | −0.360 | — | — |
| 2026-03-27 | 2027-03-19 | 357 | −0.348 | −0.344 | — | — |
| 2026-03-27 | 2027-04-16 | 385 | −0.336 | −0.331 | — | — |
| 2026-03-27 | 2027-06-17 | 447 | −0.310 | −0.305 | — | — |
| 2026-03-27 | 2027-12-17 | 630 | −0.257 | −0.255 | — | — |
| 2026-05-29 | 2026-06-05 | 7 | −1.197 | −1.646 | — | — |
| 2026-05-29 | 2026-06-08 | 10 | −1.048 | −1.184 | — | — |
| 2026-05-29 | 2026-06-09 | 11 | −1.011 | −1.187 | — | — |
| 2026-05-29 | 2026-06-10 | 12 | −0.978 | −1.155 | — | — |
| 2026-05-29 | 2026-06-11 | 13 | −0.951 | −1.168 | — | — |
| 2026-05-29 | 2026-06-12 | 14 | −0.929 | −1.185 | — | — |
| 2026-05-29 | 2026-06-15 | 17 | −0.860 | −1.095 | — | — |
| 2026-05-29 | 2026-06-16 | 18 | −0.838 | −1.102 | — | — |
| 2026-05-29 | 2026-06-17 | 19 | −0.824 | −1.076 | — | — |
| 2026-05-29 | 2026-06-18 | 20 | −0.789 | −1.215 | — | — |
| 2026-05-29 | 2026-06-22 | 24 | −0.755 | −0.979 | — | — |
| 2026-05-29 | 2026-06-23 | 25 | −0.738 | −0.967 | — | — |
| 2026-05-29 | 2026-06-24 | 26 | −0.731 | −0.921 | — | — |
| 2026-05-29 | 2026-06-25 | 27 | −0.717 | −0.919 | — | — |
| 2026-05-29 | 2026-06-26 | 28 | −0.706 | −0.916 | — | — |
| 2026-05-29 | 2026-06-29 | 31 | −0.682 | −0.859 | — | — |
| 2026-05-29 | 2026-06-30 | 32 | −0.668 | −0.938 | — | — |
| 2026-05-29 | 2026-07-01 | 33 | −0.676 | −0.862 | — | — |
| 2026-05-29 | 2026-07-02 | 34 | −0.655 | −0.819 | — | — |
| 2026-05-29 | 2026-07-10 | 42 | −0.602 | −0.787 | — | — |
| 2026-05-29 | 2026-07-17 | 49 | −0.565 | −0.784 | — | — |
| 2026-05-29 | 2026-07-24 | 56 | −0.544 | −0.685 | — | — |
| 2026-05-29 | 2026-07-31 | 63 | −0.512 | −0.699 | — | — |
| 2026-05-29 | 2026-08-21 | 84 | −0.464 | −0.613 | — | — |
| 2026-05-29 | 2026-08-31 | 94 | −0.444 | −0.590 | — | — |
| 2026-05-29 | 2026-09-18 | 112 | −0.426 | −0.555 | — | — |
| 2026-05-29 | 2026-09-30 | 124 | −0.418 | −0.521 | — | — |
| 2026-05-29 | 2026-10-16 | 140 | −0.408 | −0.500 | — | — |
| 2026-05-29 | 2026-10-30 | 154 | −0.401 | −0.479 | — | — |
| 2026-05-29 | 2026-11-20 | 175 | −0.387 | −0.460 | — | — |
| 2026-05-29 | 2026-12-18 | 203 | −0.378 | −0.428 | — | — |
| 2026-05-29 | 2026-12-31 | 216 | −0.371 | −0.407 | — | — |
| 2026-05-29 | 2027-01-15 | 231 | −0.362 | −0.403 | — | — |
| 2026-05-29 | 2027-02-19 | 266 | −0.348 | −0.380 | — | — |
| 2026-05-29 | 2027-03-19 | 294 | −0.337 | −0.360 | — | — |
| 2026-05-29 | 2027-03-31 | 306 | −0.334 | −0.351 | — | — |
| 2026-05-29 | 2027-04-16 | 322 | −0.329 | −0.344 | — | — |
| 2026-05-29 | 2027-05-21 | 357 | −0.315 | −0.328 | — | — |
| 2026-05-29 | 2027-06-17 | 384 | −0.304 | −0.314 | — | — |
| 2026-05-29 | 2027-09-17 | 476 | −0.279 | −0.282 | — | — |
| 2026-05-29 | 2027-12-17 | 567 | −0.257 | −0.256 | — | — |
| 2026-06-18 | 2026-06-25 | 7 | −1.402 | −1.681 | — | — |
| 2026-06-18 | 2026-06-26 | 8 | −1.330 | −1.659 | — | — |
| 2026-06-18 | 2026-06-29 | 11 | −1.209 | −1.349 | — | — |
| 2026-06-18 | 2026-06-30 | 12 | −1.120 | −1.347 | — | — |
| 2026-06-18 | 2026-07-01 | 13 | −1.084 | −1.355 | — | — |
| 2026-06-18 | 2026-07-02 | 14 | −1.038 | −1.328 | — | — |
| 2026-06-18 | 2026-07-06 | 18 | −0.918 | −1.243 | — | — |
| 2026-06-18 | 2026-07-07 | 19 | −0.907 | −1.153 | — | — |
| 2026-06-18 | 2026-07-08 | 20 | −0.882 | −1.190 | — | — |
| 2026-06-18 | 2026-07-09 | 21 | −0.854 | −1.209 | — | — |
| 2026-06-18 | 2026-07-10 | 22 | −0.858 | −1.132 | — | — |
| 2026-06-18 | 2026-07-13 | 25 | −0.815 | −1.077 | — | — |
| 2026-06-18 | 2026-07-14 | 26 | −0.809 | −1.128 | — | — |
| 2026-06-18 | 2026-07-15 | 27 | −0.785 | −1.132 | — | — |
| 2026-06-18 | 2026-07-16 | 28 | −0.796 | −1.120 | — | — |
| 2026-06-18 | 2026-07-17 | 29 | −0.715 | −1.167 | — | — |
| 2026-06-18 | 2026-07-20 | 32 | −0.714 | −1.052 | — | — |
| 2026-06-18 | 2026-07-21 | 33 | −0.719 | −1.005 | — | — |
| 2026-06-18 | 2026-07-22 | 34 | −0.711 | −0.927 | — | — |
| 2026-06-18 | 2026-07-23 | 35 | −0.693 | −0.972 | — | — |
| 2026-06-18 | 2026-07-24 | 36 | −0.707 | −0.933 | — | — |
| 2026-06-18 | 2026-07-31 | 43 | −0.643 | −0.924 | — | — |
| 2026-06-18 | 2026-08-07 | 50 | −0.617 | −0.809 | — | — |
| 2026-06-18 | 2026-08-14 | 57 | −0.586 | −0.779 | — | — |
| 2026-06-18 | 2026-08-21 | 64 | −0.554 | −0.764 | — | — |
| 2026-06-18 | 2026-08-31 | 74 | −0.531 | −0.720 | — | — |
| 2026-06-18 | 2026-09-18 | 92 | −0.498 | −0.654 | — | — |
| 2026-06-18 | 2026-09-30 | 104 | −0.484 | −0.609 | — | — |
| 2026-06-18 | 2026-10-16 | 120 | −0.468 | −0.574 | — | — |
| 2026-06-18 | 2026-10-30 | 134 | −0.460 | −0.544 | — | — |
| 2026-06-18 | 2026-11-20 | 155 | −0.429 | −0.508 | — | — |
| 2026-06-18 | 2026-11-30 | 165 | −0.424 | −0.495 | — | — |
| 2026-06-18 | 2026-12-18 | 183 | −0.408 | −0.472 | — | — |
| 2026-06-18 | 2026-12-31 | 196 | −0.402 | −0.450 | — | — |
| 2026-06-18 | 2027-01-15 | 211 | −0.393 | −0.442 | — | — |
| 2026-06-18 | 2027-02-19 | 246 | −0.377 | −0.412 | — | — |
| 2026-06-18 | 2027-03-19 | 274 | −0.362 | −0.388 | — | — |
| 2026-06-18 | 2027-03-31 | 286 | −0.358 | −0.380 | — | — |
| 2026-06-18 | 2027-04-16 | 302 | −0.352 | −0.371 | — | — |
| 2026-06-18 | 2027-05-21 | 337 | −0.337 | −0.351 | — | — |
| 2026-06-18 | 2027-06-17 | 364 | −0.325 | −0.334 | — | — |
| 2026-06-18 | 2027-09-17 | 456 | −0.296 | −0.296 | — | — |
| 2026-06-18 | 2027-12-17 | 547 | −0.268 | −0.267 | — | — |
| 2026-10-16 | 2026-10-29 | 13 | −1.409 | −2.037 | — | — |
| 2026-10-16 | 2026-10-30 | 14 | −1.356 | −2.165 | — | — |
| 2026-10-16 | 2026-11-02 | 17 | −1.262 | −1.888 | — | — |
| 2026-10-16 | 2026-11-13 | 28 | −1.068 | −1.388 | — | — |
| 2026-10-16 | 2026-11-16 | 31 | −1.008 | −1.387 | — | — |
| 2026-10-16 | 2026-11-17 | 32 | −0.990 | −1.382 | — | — |
| 2026-10-16 | 2026-12-04 | 49 | −0.829 | −1.120 | — | — |
| 2026-10-16 | 2026-12-18 | 63 | −0.734 | −0.943 | — | — |
| 2026-10-16 | 2026-12-31 | 76 | −0.676 | −0.878 | — | — |
| 2026-10-16 | 2027-01-15 | 91 | −0.605 | −0.771 | — | — |
| 2026-10-16 | 2027-01-29 | 105 | −0.575 | −0.701 | — | — |
| 2026-10-16 | 2027-03-31 | 166 | −0.457 | −0.533 | — | — |
| 2026-10-16 | 2027-04-16 | 182 | −0.437 | −0.524 | — | — |
| 2026-10-16 | 2027-05-21 | 217 | −0.408 | −0.469 | — | — |
| 2026-10-16 | 2027-09-30 | 349 | −0.332 | −0.343 | — | — |
| 2026-10-16 | 2027-10-15 | 364 | −0.324 | −0.339 | — | — |
| 2026-10-16 | 2027-12-17 | 427 | −0.296 | −0.305 | — | — |
| 2026-10-26 | 2026-11-06 | 11 | −1.139 | −1.495 | — | — |
| 2026-10-26 | 2026-11-09 | 14 | −1.069 | −1.409 | — | — |
| 2026-10-26 | 2026-11-10 | 15 | −1.045 | −1.359 | — | — |
| 2026-10-26 | 2026-11-24 | 29 | −0.850 | −1.172 | — | — |
| 2026-10-26 | 2026-11-25 | 30 | −0.844 | −1.142 | — | — |
| 2026-10-26 | 2026-11-27 | 32 | −0.825 | −1.108 | — | — |
| 2026-10-26 | 2026-12-18 | 53 | −0.676 | −0.904 | — | — |
| 2026-10-26 | 2026-12-31 | 66 | −0.620 | −0.898 | — | — |
| 2026-10-26 | 2027-01-15 | 81 | −0.568 | −0.762 | — | — |
| 2026-10-26 | 2027-01-29 | 95 | −0.545 | −0.711 | — | — |
| 2026-10-26 | 2027-02-19 | 116 | −0.491 | −0.656 | — | — |
| 2026-10-26 | 2027-03-31 | 156 | −0.443 | −0.555 | — | — |
| 2026-10-26 | 2027-04-16 | 171 | −0.429 | −0.527 | — | — |
| 2026-10-26 | 2027-05-21 | 206 | −0.402 | −0.476 | — | — |
| 2026-10-26 | 2027-09-30 | 339 | −0.334 | −0.350 | — | — |
| 2026-10-26 | 2027-10-15 | 353 | −0.327 | −0.345 | — | — |
| 2026-10-26 | 2027-11-19 | 388 | −0.311 | −0.321 | — | — |
| 2026-10-27 | 2026-11-09 | 12 | −1.008 | −1.317 | — | — |
| 2026-10-27 | 2026-11-10 | 13 | −0.991 | −1.295 | — | — |
| 2026-10-27 | 2026-11-11 | 14 | −0.976 | −1.281 | — | — |
| 2026-10-27 | 2026-11-24 | 27 | −0.798 | −1.150 | — | — |
| 2026-10-27 | 2026-11-25 | 28 | −0.793 | −1.141 | — | — |
| 2026-10-27 | 2026-11-27 | 30 | −0.778 | −1.084 | — | — |
| 2026-10-27 | 2026-12-18 | 51 | −0.641 | −0.920 | — | — |
| 2026-10-27 | 2026-12-31 | 64 | −0.591 | −0.898 | — | — |
| 2026-10-27 | 2027-01-15 | 79 | −0.547 | −0.762 | — | — |
| 2026-10-27 | 2027-01-29 | 93 | −0.523 | −0.715 | — | — |
| 2026-10-27 | 2027-02-19 | 114 | −0.471 | −0.663 | — | — |
| 2026-10-27 | 2027-03-31 | 154 | −0.430 | −0.565 | — | — |
| 2026-10-27 | 2027-04-16 | 170 | −0.417 | −0.531 | — | — |
| 2026-10-27 | 2027-05-21 | 205 | −0.395 | −0.474 | — | — |
| 2026-10-27 | 2027-09-30 | 337 | −0.328 | −0.346 | — | — |
| 2026-10-27 | 2027-10-15 | 352 | −0.320 | −0.344 | — | — |
| 2026-10-27 | 2027-11-19 | 387 | −0.306 | −0.319 | — | — |
On 2026-10-28 the published Heston fit's ATM skew is steeper than the SVI-cal market skew at every listed expiry (×1.02 to ×1.77; |skew| 1.78 against 1.00 vol per unit ln(K/F) at 13 d). Below 30 days the market line lies above the Heston line on 0 of 5 expiries. eSSVI's ψ(θ) ties the skew across expiries, so the two fits of the same quotes differ: at 30 d eSSVI gives −1.083 and SVI-cal −0.798 (+36%).
| Session | All · T (d) | SVI-cal | eSSVI | T ≥ 30 d · T (d) | SVI-cal | eSSVI |
|---|---|---|---|---|---|---|
| 2026-10-28 | 17 · 13–386 | −0.350 | −0.415 | 12 · 33–386 | −0.361 | −0.513 |
| 2026-10-27 | 17 · 12–387 | −0.349 | −0.413 | 12 · 30–387 | −0.361 | −0.504 |
| 2026-10-26 | 17 · 11–388 | −0.367 | −0.430 | 12 · 32–388 | −0.383 | −0.510 |
| 2026-10-16 | 17 · 13–427 | −0.450 | −0.557 | 13 · 31–427 | −0.467 | −0.583 |
| 2026-06-18 | 43 · 7–547 | −0.357 | −0.422 | 27 · 32–547 | −0.325 | −0.454 |
| 2026-05-29 | 41 · 7–567 | −0.336 | −0.392 | 26 · 31–567 | −0.310 | −0.415 |
| 2026-03-27 | 40 · 10–630 | −0.315 | −0.358 | 25 · 31–630 | −0.427 | −0.441 |
| 2026-03-24 | 43 · 7–633 | −0.409 | −0.439 | 27 · 30–633 | −0.465 | −0.493 |
Inside a rough-volatility model the skew scales as T^(H−1/2); this is a descriptive slope of one fitted surface per session, sensitive to the shortest expiries and to the parametrisation, not an estimate of H (the rough-Heston fit returns H = ½, which is Heston, on 2026-10-28: rough vs Heston). 8 stored sessions: a range across sessions, not a sampling interval.
How the skews are computed
- SVI-cal (the Surface page’s fitted slices): the analytic slope of each fitted slice at the forward, w′(0) / (2·√(w(0)·T)), with w′(k) = b(ρ + (k − m)/√((k − m)² + σ²)).
- eSSVI: the surface report’s stored ATM skew (
term_structure.atm_skew_essvi), 2026-10-28 only. eSSVI’s ψ(θ) shapes the skew across expiries, so its short end differs from SVI-cal’s; both are shown, neither is preferred. - Heston: central differences of the model smile at h = 0.01 and 0.005 in ln(K/F), Richardson-extrapolated, at 2026-10-28’s listed maturities: the published parameters (κ 4.05, σ 1.65) and the σ-profile refit with σ ≤ 10 (κ 4.05, σ 1.65;
calibrations/diagnostics/2026-10-28.json). - Skews are negative (puts over calls); the chart plots magnitudes on log axes, so a straight line is a power law.
Smiles by anchor expiry
| Expiry | ln(K/F) | Quotes | Anchors | Mid IV | Heston IV | (Heston − mid) / half-spread | Inside the bid–ask (%) |
|---|---|---|---|---|---|---|---|
| 2026-11-11 | −0.30…−0.20 | 4 | 0 | 47.69 | 35.84 | −29.2 | 0 |
| 2026-11-11 | −0.20…−0.14 | 5 | 0 | 36.44 | 30.69 | −24.4 | 0 |
| 2026-11-11 | −0.14…−0.09 | 14 | 0 | 29.63 | 27.39 | −13.7 | 0 |
| 2026-11-11 | −0.09…−0.05 | 18 | 2 | 21.08 | 22.17 | +9.6 | 6 |
| 2026-11-11 | −0.05…−0.02 | 31 | 2 | 17.42 | 18.84 | +19.6 | 0 |
| 2026-11-11 | −0.02…+0.00 | 26 | 1 | 14.49 | 15.37 | +14.9 | 0 |
| 2026-11-11 | +0.00…+0.02 | 28 | 2 | 12.42 | 12.12 | −5.7 | 11 |
| 2026-11-11 | +0.02…+0.05 | 13 | 2 | 11.39 | 11.21 | +0.2 | 15 |
| 2026-11-11 | +0.05…+0.09 | 2 | 0 | 12.27 | 12.25 | −0.1 | 100 |
| 2026-11-27 | ≤ −0.30 | 1 | 0 | 47.37 | 39.15 | −33.7 | 0 |
| 2026-11-27 | −0.30…−0.20 | 8 | 0 | 38.56 | 34.19 | −22.9 | 0 |
| 2026-11-27 | −0.20…−0.14 | 10 | 0 | 30.91 | 29.59 | −12.5 | 0 |
| 2026-11-27 | −0.14…−0.09 | 14 | 1 | 25.35 | 25.75 | +5.4 | 14 |
| 2026-11-27 | −0.09…−0.05 | 25 | 2 | 20.06 | 21.21 | +19.3 | 0 |
| 2026-11-27 | −0.05…−0.02 | 28 | 1 | 16.93 | 17.89 | +20.8 | 0 |
| 2026-11-27 | −0.02…+0.00 | 18 | 2 | 14.25 | 14.54 | +6.6 | 22 |
| 2026-11-27 | +0.00…+0.02 | 19 | 1 | 12.60 | 12.01 | −13.0 | 0 |
| 2026-11-27 | +0.02…+0.05 | 21 | 1 | 11.60 | 11.09 | −10.8 | 5 |
| 2026-11-27 | +0.05…+0.09 | 11 | 1 | 11.73 | 12.32 | +6.5 | 0 |
| 2026-11-27 | +0.09…+0.14 | 2 | 0 | 13.58 | 13.75 | +0.6 | 100 |
| 2026-12-31 | ≤ −0.30 | 15 | 0 | 38.24 | 35.76 | −26.0 | 0 |
| 2026-12-31 | −0.30…−0.20 | 75 | 0 | 33.13 | 31.93 | −12.3 | 0 |
| 2026-12-31 | −0.20…−0.14 | 40 | 1 | 27.53 | 27.77 | +3.2 | 15 |
| 2026-12-31 | −0.14…−0.09 | 42 | 1 | 22.78 | 23.58 | +17.1 | 0 |
| 2026-12-31 | −0.09…−0.05 | 36 | 2 | 19.19 | 19.95 | +21.6 | 0 |
| 2026-12-31 | −0.05…−0.02 | 45 | 1 | 16.65 | 17.07 | +13.0 | 0 |
| 2026-12-31 | −0.02…+0.00 | 31 | 1 | 14.71 | 14.68 | −1.0 | 19 |
| 2026-12-31 | +0.00…+0.02 | 31 | 0 | 13.40 | 12.86 | −17.4 | 0 |
| 2026-12-31 | +0.02…+0.05 | 47 | 1 | 12.34 | 11.53 | −23.4 | 0 |
| 2026-12-31 | +0.05…+0.09 | 51 | 2 | 11.83 | 11.89 | +1.8 | 10 |
| 2026-12-31 | +0.09…+0.14 | 33 | 0 | 12.25 | 13.27 | +11.7 | 0 |
| 2026-12-31 | +0.14…+0.20 | 1 | 0 | 13.73 | 14.77 | +4.2 | 0 |
| 2027-01-29 | ≤ −0.30 | 5 | 0 | 35.50 | 34.31 | −12.8 | 0 |
| 2027-01-29 | −0.30…−0.20 | 25 | 0 | 29.80 | 29.88 | +1.2 | 8 |
| 2027-01-29 | −0.20…−0.14 | 26 | 2 | 25.57 | 26.24 | +13.2 | 0 |
| 2027-01-29 | −0.14…−0.09 | 29 | 1 | 21.62 | 22.49 | +22.4 | 0 |
| 2027-01-29 | −0.09…−0.05 | 37 | 1 | 18.75 | 19.54 | +22.6 | 0 |
| 2027-01-29 | −0.05…−0.02 | 35 | 1 | 16.51 | 16.97 | +16.1 | 0 |
| 2027-01-29 | −0.02…+0.00 | 28 | 0 | 15.03 | 15.19 | +5.2 | 11 |
| 2027-01-29 | +0.00…+0.02 | 27 | 1 | 13.90 | 13.66 | −7.6 | 0 |
| 2027-01-29 | +0.02…+0.05 | 26 | 1 | 12.91 | 12.39 | −16.6 | 0 |
| 2027-01-29 | +0.05…+0.09 | 20 | 1 | 12.10 | 11.95 | −3.9 | 5 |
| 2027-01-29 | +0.09…+0.14 | 8 | 1 | 11.98 | 12.82 | +11.3 | 0 |
| 2027-01-29 | +0.14…+0.20 | 3 | 0 | 12.87 | 14.32 | +9.5 | 0 |
| 2027-04-16 | ≤ −0.30 | 9 | 0 | 31.38 | 31.53 | +2.7 | 22 |
| 2027-04-16 | −0.30…−0.20 | 14 | 1 | 27.73 | 28.36 | +10.8 | 0 |
| 2027-04-16 | −0.20…−0.14 | 14 | 2 | 23.48 | 24.35 | +19.1 | 0 |
| 2027-04-16 | −0.14…−0.09 | 13 | 1 | 20.87 | 21.71 | +20.8 | 0 |
| 2027-04-16 | −0.09…−0.05 | 12 | 1 | 18.67 | 19.40 | +21.2 | 0 |
| 2027-04-16 | −0.05…−0.02 | 9 | 0 | 16.88 | 17.46 | +16.2 | 0 |
| 2027-04-16 | −0.02…+0.00 | 6 | 1 | 15.70 | 16.11 | +11.6 | 0 |
| 2027-04-16 | +0.00…+0.02 | 6 | 0 | 14.84 | 15.09 | +5.7 | 0 |
| 2027-04-16 | +0.02…+0.05 | 10 | 0 | 13.90 | 13.92 | +0.7 | 40 |
| 2027-04-16 | +0.05…+0.09 | 13 | 1 | 13.04 | 12.93 | −2.5 | 15 |
| 2027-04-16 | +0.09…+0.14 | 8 | 1 | 12.58 | 12.84 | +6.5 | 0 |
| 2027-04-16 | +0.14…+0.20 | 4 | 1 | 12.54 | 13.98 | +12.5 | 0 |
| 2027-04-16 | +0.20…+0.30 | 2 | 0 | 13.46 | 15.08 | +8.8 | 0 |
| 2027-10-15 | ≤ −0.30 | 12 | 1 | 27.35 | 28.02 | +14.1 | 0 |
| 2027-10-15 | −0.30…−0.20 | 25 | 1 | 24.90 | 25.72 | +20.5 | 0 |
| 2027-10-15 | −0.20…−0.14 | 16 | 1 | 22.26 | 23.11 | +24.3 | 0 |
| 2027-10-15 | −0.14…−0.09 | 14 | 0 | 20.49 | 21.32 | +23.2 | 0 |
| 2027-10-15 | −0.09…−0.05 | 12 | 1 | 18.99 | 19.80 | +22.1 | 0 |
| 2027-10-15 | −0.05…−0.02 | 9 | 0 | 17.79 | 18.61 | +22.6 | 0 |
| 2027-10-15 | −0.02…+0.00 | 7 | 1 | 16.92 | 17.74 | +21.6 | 0 |
| 2027-10-15 | +0.00…+0.02 | 6 | 0 | 16.23 | 17.06 | +20.9 | 0 |
| 2027-10-15 | +0.02…+0.05 | 10 | 0 | 15.48 | 16.28 | +21.7 | 0 |
| 2027-10-15 | +0.05…+0.09 | 12 | 1 | 14.62 | 15.35 | +21.2 | 0 |
| 2027-10-15 | +0.09…+0.14 | 8 | 0 | 13.83 | 14.44 | +18.2 | 0 |
| 2027-10-15 | +0.14…+0.20 | 6 | 1 | 13.29 | 13.98 | +19.2 | 0 |
| 2027-10-15 | +0.20…+0.30 | 3 | 1 | 13.14 | 14.21 | +18.4 | 0 |
2026-11-11 · 14 d
Quote readout: hover a quote, or focus here and step with ← → (Page Up / Down: 10 quotes; Home / End).
Arrow keys step through the shown expiry’s quotes; each step reads the quote’s strike, bid, mid and ask and each shown model’s IV and z.Market bid–ask quotes, mids and the Heston IVs at the quoted strikes; under the smile, Heston's (model − mid) / half-spread per quote, the band ±1 inside the spread, fit anchors as diamonds for the 2026-11-11 expiry.
| ln(K/F) | Quotes | Anchors | Mid IV | Heston IV | (Heston − mid) / half-spread | Inside the bid–ask (%) |
|---|---|---|---|---|---|---|
| −0.30…−0.20 | 4 | 0 | 47.69 | 35.84 | −29.2 | 0 |
| −0.20…−0.14 | 5 | 0 | 36.44 | 30.69 | −24.4 | 0 |
| −0.14…−0.09 | 14 | 0 | 29.63 | 27.39 | −13.7 | 0 |
| −0.09…−0.05 | 18 | 2 | 21.08 | 22.17 | +9.6 | 6 |
| −0.05…−0.02 | 31 | 2 | 17.42 | 18.84 | +19.6 | 0 |
| −0.02…+0.00 | 26 | 1 | 14.49 | 15.37 | +14.9 | 0 |
| +0.00…+0.02 | 28 | 2 | 12.42 | 12.12 | −5.7 | 11 |
| +0.02…+0.05 | 13 | 2 | 11.39 | 11.21 | +0.2 | 15 |
| +0.05…+0.09 | 2 | 0 | 12.27 | 12.25 | −0.1 | 100 |
141 quotes, 9 of them fit anchors.
2026-11-27 · 30 d
Quote readout: hover a quote, or focus here and step with ← → (Page Up / Down: 10 quotes; Home / End).
Arrow keys step through the shown expiry’s quotes; each step reads the quote’s strike, bid, mid and ask and each shown model’s IV and z.Market bid–ask quotes, mids and the Heston IVs at the quoted strikes; under the smile, Heston's (model − mid) / half-spread per quote, the band ±1 inside the spread, fit anchors as diamonds for the 2026-11-27 expiry.
| ln(K/F) | Quotes | Anchors | Mid IV | Heston IV | (Heston − mid) / half-spread | Inside the bid–ask (%) |
|---|---|---|---|---|---|---|
| ≤ −0.30 | 1 | 0 | 47.37 | 39.15 | −33.7 | 0 |
| −0.30…−0.20 | 8 | 0 | 38.56 | 34.19 | −22.9 | 0 |
| −0.20…−0.14 | 10 | 0 | 30.91 | 29.59 | −12.5 | 0 |
| −0.14…−0.09 | 14 | 1 | 25.35 | 25.75 | +5.4 | 14 |
| −0.09…−0.05 | 25 | 2 | 20.06 | 21.21 | +19.3 | 0 |
| −0.05…−0.02 | 28 | 1 | 16.93 | 17.89 | +20.8 | 0 |
| −0.02…+0.00 | 18 | 2 | 14.25 | 14.54 | +6.6 | 22 |
| +0.00…+0.02 | 19 | 1 | 12.60 | 12.01 | −13.0 | 0 |
| +0.02…+0.05 | 21 | 1 | 11.60 | 11.09 | −10.8 | 5 |
| +0.05…+0.09 | 11 | 1 | 11.73 | 12.32 | +6.5 | 0 |
| +0.09…+0.14 | 2 | 0 | 13.58 | 13.75 | +0.6 | 100 |
157 quotes, 9 of them fit anchors.
2026-12-31 · 64 d
Quote readout: hover a quote, or focus here and step with ← → (Page Up / Down: 10 quotes; Home / End).
Arrow keys step through the shown expiry’s quotes; each step reads the quote’s strike, bid, mid and ask and each shown model’s IV and z.Market bid–ask quotes, mids and the Heston IVs at the quoted strikes; under the smile, Heston's (model − mid) / half-spread per quote, the band ±1 inside the spread, fit anchors as diamonds for the 2026-12-31 expiry.
| ln(K/F) | Quotes | Anchors | Mid IV | Heston IV | (Heston − mid) / half-spread | Inside the bid–ask (%) |
|---|---|---|---|---|---|---|
| ≤ −0.30 | 15 | 0 | 38.24 | 35.76 | −26.0 | 0 |
| −0.30…−0.20 | 75 | 0 | 33.13 | 31.93 | −12.3 | 0 |
| −0.20…−0.14 | 40 | 1 | 27.53 | 27.77 | +3.2 | 15 |
| −0.14…−0.09 | 42 | 1 | 22.78 | 23.58 | +17.1 | 0 |
| −0.09…−0.05 | 36 | 2 | 19.19 | 19.95 | +21.6 | 0 |
| −0.05…−0.02 | 45 | 1 | 16.65 | 17.07 | +13.0 | 0 |
| −0.02…+0.00 | 31 | 1 | 14.71 | 14.68 | −1.0 | 19 |
| +0.00…+0.02 | 31 | 0 | 13.40 | 12.86 | −17.4 | 0 |
| +0.02…+0.05 | 47 | 1 | 12.34 | 11.53 | −23.4 | 0 |
| +0.05…+0.09 | 51 | 2 | 11.83 | 11.89 | +1.8 | 10 |
| +0.09…+0.14 | 33 | 0 | 12.25 | 13.27 | +11.7 | 0 |
| +0.14…+0.20 | 1 | 0 | 13.73 | 14.77 | +4.2 | 0 |
447 quotes, 9 of them fit anchors.
2027-01-29 · 93 d
Quote readout: hover a quote, or focus here and step with ← → (Page Up / Down: 10 quotes; Home / End).
Arrow keys step through the shown expiry’s quotes; each step reads the quote’s strike, bid, mid and ask and each shown model’s IV and z.Market bid–ask quotes, mids and the Heston IVs at the quoted strikes; under the smile, Heston's (model − mid) / half-spread per quote, the band ±1 inside the spread, fit anchors as diamonds for the 2027-01-29 expiry.
| ln(K/F) | Quotes | Anchors | Mid IV | Heston IV | (Heston − mid) / half-spread | Inside the bid–ask (%) |
|---|---|---|---|---|---|---|
| ≤ −0.30 | 5 | 0 | 35.50 | 34.31 | −12.8 | 0 |
| −0.30…−0.20 | 25 | 0 | 29.80 | 29.88 | +1.2 | 8 |
| −0.20…−0.14 | 26 | 2 | 25.57 | 26.24 | +13.2 | 0 |
| −0.14…−0.09 | 29 | 1 | 21.62 | 22.49 | +22.4 | 0 |
| −0.09…−0.05 | 37 | 1 | 18.75 | 19.54 | +22.6 | 0 |
| −0.05…−0.02 | 35 | 1 | 16.51 | 16.97 | +16.1 | 0 |
| −0.02…+0.00 | 28 | 0 | 15.03 | 15.19 | +5.2 | 11 |
| +0.00…+0.02 | 27 | 1 | 13.90 | 13.66 | −7.6 | 0 |
| +0.02…+0.05 | 26 | 1 | 12.91 | 12.39 | −16.6 | 0 |
| +0.05…+0.09 | 20 | 1 | 12.10 | 11.95 | −3.9 | 5 |
| +0.09…+0.14 | 8 | 1 | 11.98 | 12.82 | +11.3 | 0 |
| +0.14…+0.20 | 3 | 0 | 12.87 | 14.32 | +9.5 | 0 |
269 quotes, 9 of them fit anchors.
2027-04-16 · 169 d
Quote readout: hover a quote, or focus here and step with ← → (Page Up / Down: 10 quotes; Home / End).
Arrow keys step through the shown expiry’s quotes; each step reads the quote’s strike, bid, mid and ask and each shown model’s IV and z.Market bid–ask quotes, mids and the Heston IVs at the quoted strikes; under the smile, Heston's (model − mid) / half-spread per quote, the band ±1 inside the spread, fit anchors as diamonds for the 2027-04-16 expiry.
| ln(K/F) | Quotes | Anchors | Mid IV | Heston IV | (Heston − mid) / half-spread | Inside the bid–ask (%) |
|---|---|---|---|---|---|---|
| ≤ −0.30 | 9 | 0 | 31.38 | 31.53 | +2.7 | 22 |
| −0.30…−0.20 | 14 | 1 | 27.73 | 28.36 | +10.8 | 0 |
| −0.20…−0.14 | 14 | 2 | 23.48 | 24.35 | +19.1 | 0 |
| −0.14…−0.09 | 13 | 1 | 20.87 | 21.71 | +20.8 | 0 |
| −0.09…−0.05 | 12 | 1 | 18.67 | 19.40 | +21.2 | 0 |
| −0.05…−0.02 | 9 | 0 | 16.88 | 17.46 | +16.2 | 0 |
| −0.02…+0.00 | 6 | 1 | 15.70 | 16.11 | +11.6 | 0 |
| +0.00…+0.02 | 6 | 0 | 14.84 | 15.09 | +5.7 | 0 |
| +0.02…+0.05 | 10 | 0 | 13.90 | 13.92 | +0.7 | 40 |
| +0.05…+0.09 | 13 | 1 | 13.04 | 12.93 | −2.5 | 15 |
| +0.09…+0.14 | 8 | 1 | 12.58 | 12.84 | +6.5 | 0 |
| +0.14…+0.20 | 4 | 1 | 12.54 | 13.98 | +12.5 | 0 |
| +0.20…+0.30 | 2 | 0 | 13.46 | 15.08 | +8.8 | 0 |
120 quotes, 9 of them fit anchors.
2027-10-15 · 351 d
Quote readout: hover a quote, or focus here and step with ← → (Page Up / Down: 10 quotes; Home / End).
Arrow keys step through the shown expiry’s quotes; each step reads the quote’s strike, bid, mid and ask and each shown model’s IV and z.Market bid–ask quotes, mids and the Heston IVs at the quoted strikes; under the smile, Heston's (model − mid) / half-spread per quote, the band ±1 inside the spread, fit anchors as diamonds for the 2027-10-15 expiry.
| ln(K/F) | Quotes | Anchors | Mid IV | Heston IV | (Heston − mid) / half-spread | Inside the bid–ask (%) |
|---|---|---|---|---|---|---|
| ≤ −0.30 | 12 | 1 | 27.35 | 28.02 | +14.1 | 0 |
| −0.30…−0.20 | 25 | 1 | 24.90 | 25.72 | +20.5 | 0 |
| −0.20…−0.14 | 16 | 1 | 22.26 | 23.11 | +24.3 | 0 |
| −0.14…−0.09 | 14 | 0 | 20.49 | 21.32 | +23.2 | 0 |
| −0.09…−0.05 | 12 | 1 | 18.99 | 19.80 | +22.1 | 0 |
| −0.05…−0.02 | 9 | 0 | 17.79 | 18.61 | +22.6 | 0 |
| −0.02…+0.00 | 7 | 1 | 16.92 | 17.74 | +21.6 | 0 |
| +0.00…+0.02 | 6 | 0 | 16.23 | 17.06 | +20.9 | 0 |
| +0.02…+0.05 | 10 | 0 | 15.48 | 16.28 | +21.7 | 0 |
| +0.05…+0.09 | 12 | 1 | 14.62 | 15.35 | +21.2 | 0 |
| +0.09…+0.14 | 8 | 0 | 13.83 | 14.44 | +18.2 | 0 |
| +0.14…+0.20 | 6 | 1 | 13.29 | 13.98 | +19.2 | 0 |
| +0.20…+0.30 | 3 | 1 | 13.14 | 14.21 | +18.4 | 0 |
140 quotes, 8 of them fit anchors.
Identifiability · multi-start and Jacobian
M4 box bound · OK| Parameter | Value | SE | SE / value | Weakest direction | Bound |
|---|---|---|---|---|---|
| κ | 4.049 | 0.874 | 22% | +0.90 | |
| θ | 0.0578 | 0.00436 | 8% | −0.30 | |
| σ | 1.648 | 0.145 | 9% | +0.30 | |
| ρ | −0.680 | 0.0178 | 3% | +0.02 | |
| v₀ | 0.0220 | 0.00061 | 3% | −0.06 |
Gauss-Newton s^2 (J^T J)^−1 over the free parameters: a local curvature scale, not a sampling distribution (the residuals are model misfit, not iid noise) Source: result pickle.
| Model | H | σ | In sample | OOS | Put wing | VIX OOS (index pts) |
|---|---|---|---|---|---|---|
| Heston, production box | — | 1.29 | 0.38 | 1.87 | 2.51 | 1.33 |
| Heston, wide box | — | 1.29 | 0.38 | 1.87 | 2.51 | 1.33 |
| Rough Heston (lifted) | 0.500 | 1.29 | 0.38 | 1.87 | 2.51 | 1.33 |
One session. A lower out-of-sample error here is a measurement on 2026-10-28, not evidence that one model class is right.
Gate-passing fits
M4 fit age · OK| Session | κ | θ | σ | ρ | v₀ | IS | OOS | VX OOS (index pts) |
|---|---|---|---|---|---|---|---|---|
| 2026-10-28 | 4.05 | 0.0578 | 1.648 | −0.680 | 0.0220 | 0.78 | 1.40 | — |
| 2026-10-27 | 3.83 | 0.0576 | 1.630 | −0.685 | 0.0249 | 0.86 | 1.53 | — |
| 2026-10-26 | 4.37 | 0.0550 | 1.833 | −0.691 | 0.0276 | 1.10 | 1.72 | — |
| 2026-10-16 | 4.99 | 0.0499 | 2.000 | −0.753 | 0.0344 | 1.34 | 2.96 | — |
| 2026-06-18 | 5.00 | 0.0614 | 1.592 | −0.697 | 0.0173 | 0.85 | 1.83 | 1.85 |
| 2026-05-29 | 5.23 | 0.0595 | 1.707 | −0.656 | 0.0130 | 0.91 | 1.28 | 2.56 |
| 2026-03-27 | 4.29 | 0.0733 | 1.834 | −0.785 | 0.0928 | 1.37 | 1.54 | 3.18 |
| 2026-03-24 | 6.14 | 0.0653 | 2.000 | −0.823 | 0.0732 | 1.21 | 1.98 | 2.66 |
In-sample and out-of-sample SPX IV RMSE in vol pts; VX OOS: the RMSE of the fit’s E[VIXT] against the session’s VX settlements, index pts (VX leg; — where none is stored). Compare session-to-session moves with the standard errors in the identifiability panel.
Each gate-passing fit's SPX implied-vol RMSE on its anchors (dashed) and on the quotes it did not use (solid), oldest first; the headline fit is marked.
| Session | In sample | Out of sample | Put wing OOS |
|---|---|---|---|
| 2026-03-24 | 1.21 | 1.98 | 2.88 |
| 2026-03-27 | 1.37 | 1.54 | 2.25 |
| 2026-05-29 | 0.91 | 1.28 | 1.43 |
| 2026-06-18 | 0.85 | 1.83 | 2.37 |
| 2026-10-16 | 1.34 | 2.96 | 3.90 |
| 2026-10-26 | 1.10 | 1.72 | 2.30 |
| 2026-10-27 | 0.86 | 1.53 | 2.00 |
| 2026-10-28 | 0.78 | 1.40 | 1.81 |
Joint SPX/VIX trade-off · σ profile and VVIX
| σ cap | σ | κ | Loss | In sample | OOS | Put wing | VIX | VVIX model | VVIX − mkt |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 1.00 at cap | 1.6 | 6.078e−05 | 0.90 | 2.24 | 2.92 | 0.64 | 195 | +99 |
| 1.5 | 1.50 at cap | 3.5 | 3.813e−05 | 0.75 | 1.53 | 2.00 | 0.45 | 192 | +95 |
| 2 | 1.65 | 4.0 | 3.740e−05 | 0.76 | 1.40 | 1.81 | 0.42 | 188 | +92 |
| 3 | 1.65 | 4.0 | 3.740e−05 | 0.76 | 1.40 | 1.81 | 0.42 | 188 | +92 |
| 4 | 1.65 | 4.0 | 3.740e−05 | 0.76 | 1.40 | 1.81 | 0.42 | 188 | +92 |
| 6 | 1.65 | 4.0 | 3.740e−05 | 0.76 | 1.40 | 1.81 | 0.42 | 188 | +92 |
| 8 | 1.65 | 4.0 | 3.740e−05 | 0.76 | 1.40 | 1.81 | 0.42 | 188 | +92 |
| 10 | 1.65 | 4.0 | 3.740e−05 | 0.76 | 1.40 | 1.81 | 0.42 | 188 | +92 |
Each row is a diagnostic refit and the published fit is unchanged; the highlighted row refits under the production box. The production box is kept at σ ≤ 2: the NN pricer's training domain, the risk monitor’s vomma shock and the bound chips are tied to it, and widening it is filed, not done (config.HESTON_BOUNDS; Corrections C23-M1).
8 diagnosed sessions, one line each; each point is a refit under one σ cap (labelled on the headline session, in the tooltip on the others), the production cap's point larger, caps above it hollow. Down and to the left is better on both legs.
| Session | σ cap | SPX OOS RMSE (vol pts) | VVIX model | VVIX market | VVIX − market (index pts) |
|---|---|---|---|---|---|
| 2026-03-24 | 1 | 3.54 | 170.0 | 124.14 | +45.9 |
| 2026-03-24 | 1.5 | 2.56 | 192.9 | 124.14 | +68.8 |
| 2026-03-24 | 2 | 1.98 | 190.7 | 124.14 | +66.5 |
| 2026-03-24 | 3 | 1.82 | 186.5 | 124.14 | +62.3 |
| 2026-03-24 | 4 | 1.82 | 186.5 | 124.14 | +62.3 |
| 2026-03-24 | 6 | 1.82 | 186.5 | 124.14 | +62.3 |
| 2026-03-24 | 8 | 1.82 | 186.5 | 124.14 | +62.3 |
| 2026-03-24 | 10 | 1.82 | 186.5 | 124.14 | +62.3 |
| 2026-03-27 | 1 | 2.52 | 160.9 | 133.18 | +27.7 |
| 2026-03-27 | 1.5 | 1.73 | 203.9 | 133.18 | +70.8 |
| 2026-03-27 | 2 | 1.54 | 211.1 | 133.18 | +77.9 |
| 2026-03-27 | 3 | 1.54 | 211.1 | 133.18 | +77.9 |
| 2026-03-27 | 4 | 1.54 | 211.1 | 133.18 | +77.9 |
| 2026-03-27 | 6 | 1.54 | 211.1 | 133.18 | +77.9 |
| 2026-03-27 | 8 | 1.54 | 211.1 | 133.18 | +77.9 |
| 2026-03-27 | 10 | 1.54 | 211.1 | 133.18 | +77.9 |
| 2026-05-29 | 1 | 2.26 | 146.0 | 86.06 | +60.0 |
| 2026-05-29 | 1.5 | 1.47 | 158.8 | 86.06 | +72.8 |
| 2026-05-29 | 2 | 1.28 | 159.6 | 86.06 | +73.5 |
| 2026-05-29 | 3 | 1.28 | 159.6 | 86.06 | +73.5 |
| 2026-05-29 | 4 | 1.28 | 159.6 | 86.06 | +73.5 |
| 2026-05-29 | 6 | 1.28 | 159.6 | 86.06 | +73.5 |
| 2026-05-29 | 8 | 1.28 | 159.6 | 86.06 | +73.5 |
| 2026-05-29 | 10 | 1.28 | 159.6 | 86.06 | +73.5 |
| 2026-06-18 | 1 | 2.55 | 153.6 | 88.43 | +65.2 |
| 2026-06-18 | 1.5 | 1.90 | 162.0 | 88.43 | +73.6 |
| 2026-06-18 | 2 | 1.83 | 161.8 | 88.43 | +73.3 |
| 2026-06-18 | 3 | 1.83 | 161.8 | 88.43 | +73.3 |
| 2026-06-18 | 4 | 1.83 | 161.8 | 88.43 | +73.3 |
| 2026-06-18 | 6 | 1.83 | 161.8 | 88.43 | +73.3 |
| 2026-06-18 | 8 | 1.83 | 161.8 | 88.43 | +73.3 |
| 2026-06-18 | 10 | 1.83 | 161.8 | 88.43 | +73.3 |
| 2026-10-16 | 1 | 4.69 | 226.2 | 109.91 | +116.3 |
| 2026-10-16 | 1.5 | 3.68 | 221.0 | 109.91 | +111.1 |
| 2026-10-16 | 2 | 2.96 | 205.1 | 109.91 | +95.2 |
| 2026-10-16 | 3 | 2.03 | 175.6 | 109.91 | +65.7 |
| 2026-10-16 | 4 | 1.54 | 153.2 | 109.91 | +43.3 |
| 2026-10-16 | 6 | 1.21 | 122.7 | 109.91 | +12.7 |
| 2026-10-16 | 8 | 1.19 | 112.7 | 109.91 | +2.8 |
| 2026-10-16 | 10 | 1.19 | 112.7 | 109.91 | +2.8 |
| 2026-10-26 | 1 | 2.71 | 215.0 | 101.43 | +113.5 |
| 2026-10-26 | 1.5 | 2.02 | 208.0 | 101.43 | +106.6 |
| 2026-10-26 | 2 | 1.72 | 198.3 | 101.43 | +96.8 |
| 2026-10-26 | 3 | 1.72 | 198.3 | 101.43 | +96.8 |
| 2026-10-26 | 4 | 1.72 | 198.3 | 101.43 | +96.8 |
| 2026-10-26 | 6 | 1.72 | 198.3 | 101.43 | +96.8 |
| 2026-10-26 | 8 | 1.72 | 198.3 | 101.43 | +96.8 |
| 2026-10-26 | 10 | 1.72 | 198.3 | 101.43 | +96.8 |
| 2026-10-27 | 1 | 2.28 | 205.3 | 99.45 | +105.9 |
| 2026-10-27 | 1.5 | 1.64 | 198.8 | 99.45 | +99.4 |
| 2026-10-27 | 2 | 1.53 | 195.5 | 99.45 | +96.0 |
| 2026-10-27 | 3 | 1.53 | 195.5 | 99.45 | +96.0 |
| 2026-10-27 | 4 | 1.53 | 195.5 | 99.45 | +96.0 |
| 2026-10-27 | 6 | 1.53 | 195.5 | 99.45 | +96.0 |
| 2026-10-27 | 8 | 1.53 | 195.5 | 99.45 | +96.0 |
| 2026-10-27 | 10 | 1.53 | 195.5 | 99.45 | +96.0 |
| 2026-10-28 | 1 | 2.24 | 195.1 | 96.61 | +98.5 |
| 2026-10-28 | 1.5 | 1.53 | 191.6 | 96.61 | +95.0 |
| 2026-10-28 | 2 | 1.40 | 188.4 | 96.61 | +91.8 |
| 2026-10-28 | 3 | 1.40 | 188.4 | 96.61 | +91.8 |
| 2026-10-28 | 4 | 1.40 | 188.4 | 96.61 | +91.8 |
| 2026-10-28 | 6 | 1.40 | 188.4 | 96.61 | +91.8 |
| 2026-10-28 | 8 | 1.40 | 188.4 | 96.61 | +91.8 |
| 2026-10-28 | 10 | 1.40 | 188.4 | 96.61 | +91.8 |
x: SPX out-of-sample IV RMSE; y: model VVIX minus the ^VVIX close. One line per diagnosed session (2026-10-28 in white, the others grey), one point per σ cap, labelled; the production cap's point is larger and caps above it are hollow.
On 7 of 8 diagnosed sessions even the σ ≤ 10 refit prices VVIX more than 10% above the ^VVIX close (186 vs 124, 211 vs 133, 160 vs 86, 162 vs 88, 198 vs 101, 195 vs 99, 188 vs 97), so a wider σ box does not reconcile the SPX smile with VVIX there. On 2026-10-16 the σ ≤ 2 box binds, and the σ ≤ 10 refit (σ 6.90, κ 27.4, Feller margin −45.3) lowers OOS RMSE 2.96 → 1.19 vol pts and VVIX 205 → 112.7 against 109.9; one session, the other seven do not escape.
Heston vs rough Heston · joint fit, every diagnosed session
Rough Heston (lifted, 20 factors) is fitted with the same anchors, VIX leg, weights and parameter box as the production Heston fit, plus H ∈ [0.02, ½], by multi-start trust-region least squares. Its out-of-sample SPX error is lower on 4 of 8 sessions; on 4 it returns H = ½, which is Heston. H is weakly identified and on 2026-10-28 the fit returns H = ½, which is Heston, so no Hurst exponent is read from these fits (compare arXiv:2401.03345).
| Session | Heston OOS | Rough OOS | Rough − Heston | H | Heston VIX | Rough VIX | Lifting error (vol pts) | Free-σ OOS | VVIX model / market |
|---|---|---|---|---|---|---|---|---|---|
| 2026-03-24 σ at cap | 1.98 | 1.42 | −0.56 | 0.28 | 0.89 | 0.86 | 0.030 | 1.82 | 191 / 124 |
| 2026-03-27 | 1.54 | 1.41 | −0.13 | 0.36 | 0.85 | 0.85 | 0.020 | 1.54 | 211 / 133 |
| 2026-05-29 | 1.28 | 1.28 | 0.00 | 0.50 on bound | 0.52 | 0.52 | 0.000 | 1.28 | 160 / 86 |
| 2026-06-18 | 1.83 | 1.83 | 0.00 | 0.50 on bound | 0.51 | 0.51 | 0.000 | 1.83 | 162 / 88 |
| 2026-10-16 σ at cap | 2.96 | 1.09 | −1.86 | 0.02 on bound | 0.82 | 0.50 | 0.057 | 1.19 | 205 / 110 |
| 2026-10-26 | 1.72 | 1.42 | −0.30 | 0.37 | 0.62 | 0.60 | 0.007 | 1.72 | 198 / 101 |
| 2026-10-27 | 1.53 | 1.53 | 0.00 | 0.50 on bound | 0.46 | 0.46 | 0.000 | 1.53 | 195 / 99 |
| 2026-10-28 | 1.40 | 1.40 | 0.00 | 0.50 on bound | 0.42 | 0.42 | 0.000 | 1.40 | 188 / 97 |
Heston OOS is the production fit (σ ≤ 2); free-σ OOS refits it with σ ≤ 10 and κ ≤ 60 (the σ profile above). The lifting error is the numerics check of the 20-factor approximation at the fitted point. VVIX is the model's 30-day vol of VIX at the boxed optimum against the ^VVIX close; what a wider σ box does to it, session by session, is in the σ-profile panel above. 8 sessions with a stored chain: a range, not a statistic. The market’s ATM skew against maturity on the same sessions, and Heston’s, is in the ATM-skew panel.
Model smile of this fit · all maturities
Model implied vols at the fitted parameters for 14 to 365 days; model curves, not market data.
| Maturity | Lowest ln(K/F) | IV | Highest ln(K/F) | IV |
|---|---|---|---|---|
| 14d | −0.275 | 37.97 | +0.100 | 14.54 |
| 30d | −0.300 | 37.84 | +0.175 | 17.06 |
| 60d | −0.300 | 35.29 | +0.250 | 18.38 |
| 91d | −0.300 | 33.33 | +0.250 | 17.27 |
| 180d | −0.300 | 30.02 | +0.250 | 15.35 |
| 365d | −0.300 | 27.08 | +0.250 | 14.28 |
| Maturity | Lowest ln(K/F) | Near the money | Highest ln(K/F) |
|---|---|---|---|
| 14d | −0.275: 37.97 | +0.000: 13.51 | +0.100: 14.54 |
| 30d | −0.300: 37.84 | +0.000: 13.26 | +0.175: 17.06 |
| 60d | −0.300: 35.29 | +0.000: 13.69 | +0.250: 18.38 |
| 91d | −0.300: 33.33 | +0.000: 14.30 | +0.250: 17.27 |
| 180d | −0.300: 30.02 | +0.000: 15.74 | +0.250: 15.35 |
| 365d | −0.300: 27.08 | +0.000: 17.50 | +0.250: 14.28 |
Black–Scholes implied vols of Heston prices at the parameters above, against ln(K/F) (forward-normalised, so independent of r and q); model curves, not market data. Nodes whose out-of-the-money price is too small to invert are omitted.
Carry and inputs
- r
- 4.72%, median of the per-expiry put–call-parity rates the fit priced with
- q
- 2.37%, median parity-implied carry q_T = r_T − ln(F_T/S)/T
- Treasury r(91d)
- 4.09% (Treasury zero curve, 91-day zero rate, continuously compounded; reference)
- Half-life
- 43.1 trading days (ln 2 / κ)
- √θ, √v₀
- 24.03% long-run, 14.85% spot
- Inputs
- 53 SPX options (6 expiries), 4 VIX tenors
| Expiry | Days | Anchors | Puts | Wing | K/F | r | q |
|---|---|---|---|---|---|---|---|
| 2026-11-11 | 14 | 9 | 5 | 3 | 0.94–1.04 | 3.35% | 6.75% |
| 2026-11-27 | 30 | 9 | 6 | 4 | 0.91–1.06 | 4.56% | 4.41% |
| 2026-12-31 | 64 | 9 | 6 | 4 | 0.86–1.09 | 4.65% | 2.71% |
| 2027-01-29 | 93 | 9 | 5 | 5 | 0.83–1.11 | 4.81% | 2.03% |
| 2027-04-16 | 169 | 9 | 6 | 5 | 0.77–1.16 | 4.78% | 1.55% |
| 2027-10-15 | 351 | 8 | 5 | 4 | 0.72–1.27 | 4.91% | 1.17% |
From the fit's own record (anchors_by_expiry): r and q are the put–call-parity rate and carry at each anchor expiry; Wing counts the anchor puts in the put wing the anchor rule names. Anchor rule: z-grid linspace(−2.5,1.5,9), OTM vs F_T, >=3 puts at K/F<0.97. Expiries: nearest listed to [14, 30, 60, 91, 180, 365]d, unique, within 50%.
Research model · two-factor Quintic OU
Quintic OU vs Heston · same session
Optimiser did not converge
σ(t) = g₀(t) · p(Z_t), Z_t = θX_t + (1−θ)Y_t, p(z) = α₀ + α₁z + α₃z³ + α₅z⁵. VIX by cubature (101 points per dimension); SPX by Monte Carlo (10,000 paths).
| RMSE | Heston (own targets) | Heston on Quintic targets | Quintic OU | Δ, same targets |
|---|---|---|---|---|
| SPX implied vol (vol pts) | 1.207 (52) | 1.215 (66) | 1.309 (66) | +0.094 |
| VIX forward (index pts)¹ | not a target | 2.304 | 0.376 | −1.928 |
| VIX options (vol pts) | not fitted (w₃ = 0) | 35.16 | 2.77 (61) | −32.39 |
| VIX indices (index pts) | 0.888 | — | input (ξ₀), 2.5e−15 | — |
Counts in brackets are quotes. ¹ Model E[VIXT] against the VIX-option put–call-parity forward. Δ = Quintic − Heston on the same targets (Quintic: data_; Heston: data_; Heston re-priced on the Quintic targets: data_).
Reading this honestly
The Quintic optimiser stopped at its iteration limits without meeting its tolerance. Parameters on a search bound: epsilon (ε at −0.99: the skew wants more leverage than the bound allows). ξ₀ is bootstrapped from the VIX indices, so the Quintic reproduces them by construction; that is an input check, not a fit metric. The VIX-forward and VIX-options legs are where the models differ: they are in the Quintic's objective and not in Heston's. Fit time 499.4 s, 3,704 evaluations; SPX RMSE on fresh MC paths 1.310 vol pts.