● END OF DAY
SPXcurrent: every source’s date
SPX2026-10-28 VIX2026-10-28 LABELS2026-10-28 FIT2026-10-28 GREEKS2026-10-28 SURFACE2026-10-28 BACKTEST≤2025-03-24 MODELv2 BUILD088fc8d VIEWas of 2026-10-28
SPX7,743.98▲ +0.28% VIX16.91▼ −0.61 VVIX96.61▼ −2.84 9D→6M+5.64contango VIX/VIX3M0.880 RV219.69 VIX−RV21+7.22 VIX 1Y PCTL46th (percentile among the 252 sessions before 2026-10-28) RULER1short gamma2026-10-28 1M ATMF13.40%RR25−4.312026-10-28

Joint SPX/VIX calibration

An end-of-day research system for SPX and VIX options. Its daily job is built to store each U.S. session's option books, fit an arbitrage-free market surface and one stochastic-volatility model jointly to the SPX smile and the VIX index term structure (VIX options are a research leg, not in the fit), and score both on quotes they were not fitted to, in units of the quoted half-spread; the pipeline panel lists what is stored so far. Greeks, scenarios and a mark-to-model backtest with its statistical inference are built from the same fits.

Last close 2026-10-28· Rule label 2026-10-28· Headline fit 2026-10-28· PDV forecast 2026-10-28

Findings at a glance

Works

Does not work

Next · not done yet

  • Forward test at executable prices: not yet evidence: 3 registered sessions so far; the ledger fixes targets before any later price exists.
  • Rough Heston in production: not adopted: lower out-of-sample error on 4 of 8 sessions, and on 2026-10-28 it returns H = ½, which is Heston.
  • VX futures in the joint objective: not done: the fits score VX settlements out of sample only, 1.85–3.18 index pts RMSE on 4 of 8 gated fits, the model below the settlement on 35 of 35 contracts. VX futures table ends 2026-10-09; none stored for 2026-10-28.
  • A wider production σ box: not done: σ ≤ 2 is kept because the NN pricer's domain, the vomma shock and the bound chips are tied to it (Corrections C23-M1).

Key results

Arbitrage-free SVI surface · alternate strikes held out 1.60half-spreads Median |model − mid| of the arbitrage-free, calendar-ordered SVI surface on 1,689 held-out quotes of 2026-10-28; 31.1% inside the bid–ask; 0 butterfly and 0 calendar violations on its dense grid. Heston on its own held-out quotes of that session: 14.8 half-spreads, 3.1% inside. Yahoo Finance download, fetched 2026-10-29 07:32 UTC; Yahoo reports no quote times, T measured from the fetch. Range over 8 stored sessions: 0.45–1.98 half-spreads (26–80% inside)A range across sessions, not a sampling interval. Held-out strikes sit between fitted ones (an interpolation test). data_store/surface/2026-10-28/scorecard.json Joint SPX/VIX fit · out of sample 1.40vol pts, Heston SPX IV RMSE on the 3,290 quotes outside the fit, 2026-10-28, with the four VIX indices in the objective. Rough Heston on the same quotes: 1.40 (H 0.50 (= Heston)); lower on 4 of 8 sessions, and on 4 it returns H = ½, i.e. Heston. Range over 8 sessions: Heston 1.28–2.96, rough Heston 1.09–1.83 vol pts; κ ±22% (Gauss–Newton curvature scale) data_store/calibrations/diagnostics/summary.json Backtest Sharpe · mark-to-model −0.99portfolio 2018–2025, straddles marked at β·VIX (no option prices in the window); Hansen SPA, published series vs cash: p 0.65. S3 entry timing vs 3,550 exposure-matched circular shifts: p 0.078 (Holm over 6 sleeves 0.47). 95% CI −1.81 to −0.30 (stationary bootstrap, percentile, 10,000 draws) data_store/backtest/inference/summary.json

Every figure is read from the committed artifact named under it. A half-spread is half the quoted bid–ask in implied-vol terms, so a model within one half-spread of the mid sits inside the quote. Backtest dollars are mark-to-model, never traded fills.

Regime · rule label

M10 DB lag · OK2026-10-28
R1 · SHORT GAMMA

Deterministic rule (rv₂₀ against VIX, VVIX gate); the label the backtest trades, lagged one session. Label as of 2026-10-28.

Rule inputs on 2026-10-28:

rv₂₀ (20-session)
9.89%
VIX
16.91
VVIX
96.61
R2 gate
107.06 (rolling 252-day 80th percentile of VVIX)
Gate distance
VVIX 96.61 vs R2 gate 107.06 (−10.45 below)
Rule gives
R1; stored label for 2026-10-28: R1
Rule definitions
R0
Realised > implied (rv₂₀ > VIX) → long gamma
R1
Implied ≥ realised (rv₂₀ ≤ VIX) → sell premium
R2
VVIX above its rolling 252-day 80th percentile (overrides R0/R1) → vomma trades

VIX term structure

2026-10-28

^VIX9D, ^VIX, ^VIX3M and ^VIX6M on one session, and dashed on 2026-10-27 (1 session earlier), 2026-10-21 (5 sessions earlier), 2026-09-29 (21 sessions earlier); tenor on a linear axis, straight segments.

VIX-family index levels (index pts), 2026-10-28 and earlier sessions
Tenor2026-10-282026-10-272026-10-212026-09-29
9d15.6016.6515.4914.21
30d16.9117.5216.6816.04
93d19.2219.5718.7218.09
184d21.2421.4220.6220.20

9d 15.60 → 184d 21.24 (slope +5.64 index pts, contango).

Cited on: Risk

Implied vs forecast vol

2026-10-28
VIX
16.91
index level
PDV forecast
12.65%
next 21-day realised
VIX − PDV
+4.26vol pts

PDV ranks 2 of 7 on 21-day MSE and 6 of 7 on QLIKE (2018-01-02 → 2025-03-24); in the 90% model confidence set: yes on both; best on both: VIX² (risk-neutral, contains the variance premium).

Within this spread's usual range.

70th percentile of 3,645 prior sessions (2012-04-30 → 2026-10-27); mean +3.38 vol pts.

Last 60 sessions of the spread; the line marks zero.

VIX − RV21 (trailing) +7.22 vol pts, 2026-10-28 (VIX 16.91 against the RMS realised vol of the last 21 sessions, 9.69%).

Methodology and caveats

The forecast is the expected realised vol (RMS) of the next 21 sessions, the VIX horizon. VIX is a risk-neutral variance quote, so the spread mixes the variance risk premium with a convexity gap (E[σ] < √E[σ²]); it is not a pure premium. Forecast and history are the purged walk-forward forecast (refitted daily on labels known at each close), so the percentile ranks today against out-of-sample values only.

σ₁ (EWMA, 5-day half-life) 10.18%; σ₂ (EWMA, 60-day half-life) 12.16%. Walk-forward R²: 0.29 (ex-2020 0.26) on 3,625 forecasts 2012-04-30 → 2026-09-29.

COVID stress test, 2020-03-16: forecast made at the 2020-03-13 close (refitted on the 2,484 labels known then) 54.5%. Realised over its 21-session horizon (2020-03-16 → 2020-04-14, RMS, annualised): 77.1%; error −22.5 vol pts. A backward-looking model cannot see a jump coming.

Cited on: Research

VX futures curve · on its own date

2026-10-09

Settlements of 2026-10-09, 13 NYSE sessions before the market database’s 2026-10-28; the daily job does not refresh the futures table.

9 monthly contracts on 2026-10-09, front month first; M1 → M2 +4.28%.

VX monthly settlements, 2026-10-09 and 2026-10-08
ContractFinal settlementDays2026-10-092026-10-08Change
2026-102026-10-211217.1217.62−0.51
2026-112026-11-184017.8518.01−0.16
2026-122026-12-166818.4418.52−0.08
2027-012027-01-2010319.2719.32−0.05
2027-022027-02-1713119.8119.80+0.01
2027-032027-03-1715920.0020.00+0.01
2027-042027-04-2119420.3220.320.00
2027-052027-05-1822120.4720.480.00
2027-062027-06-1625020.6820.75−0.07

M1 → M2 +4.28% (17.12 → 17.85): VX2 / VX1 − 1, the second monthly contract over the first; positive is contango. Monthly contracts only (weeklies excluded), at Cboe’s daily settlement; dashed: 2026-10-08. A future settles on VIX at its expiry, so this curve is not the spot term structure above and is not drawn on it.

VIX / VIX3M · since 2010-01-04

2026-10-28

Daily VIX over VIX3M closes; above 1 (the 30-day index over the 3-month one) on 7.6% of 4,231 sessions; today 0.880.

VIX / VIX3M by calendar year; the CSV has every session
YearSessionsAbove 1 (%)Mean
20102528.70.901
201125220.20.941
20122500.40.873
20132523.20.901
20142527.50.904
20152527.50.891
20162526.00.857
20172510.80.825
201825121.10.931
20192525.20.900
202025320.90.936
20212520.80.843
20222516.00.925
20232500.00.881
20242523.60.901
202525011.60.899
20262074.80.881

Above 1 (backwardation: the 30-day index over the 3-month one) on 7.6% of 4,231 sessions, shaded. Today 0.880, the 48th percentile of the 4,230 prior sessions since 2010-01-04.

Headline fit · Heston, joint SPX/VIX

2026-10-28
SPX RMSE in sample
0.78vol pts
53 anchors, 6 expiries
Out of sample
1.40vol pts
3,290 quotes
Put wing OOS
1.81vol pts
VIX indices
0.42index pts RMSE
VVIX model / market
188 / 97
30-day vol of VIX, index pts

Evidence on the Calibration page: out-of-sample error by expiry · the VIX leg, indices and VX futures.

κ 4.049 · θ 0.0578 · σ 1.648 · ρ −0.680 · v₀ 0.0220

Market surface, SVI-cal at 30 days: 1M ATMF 13.40% · RR25 −4.31 · BF25 +0.66 vol pts (surface 2026-10-28, the newest session). Delta grid.

No parameter on a bound. Feller VIOLATED (margin −2.25; diagnostic, not imposed). Refitted in a wider box (σ ≤ 10, κ ≤ 60; production has κ ≤ 20), it goes to σ 1.65, κ 4.0, loss 0.0%, out-of-sample RMSE 1.40 → 1.40 vol pts. Calibration page.

Pipeline · what is stored

build 088fc8d
What the repository has stored, and which records the scheduled job wrote
Cboe option booksSPX 2026-10-28: 28,872 lines (27,802 two-sided, 54 expiries), quotes 2026-10-29 07:16:06 UTC (overnight book); VIX 2026-10-28: 1,520 lines (1,362 two-sided, 13 expiries), quotes 2026-10-29 07:16:04 UTC (overnight book)
Accepted joint fits8 (model_version 2), newest 2026-10-28
Surface reports8 sessions, 2026-03-24 → 2026-10-28
Calibration diagnostics8 sessions (σ profile, identifiability, rough Heston)
Forward ledger3 sessions, 2026-10-26 → 2026-10-28
Backtest windowends 2025-03-24, fixed (mark-to-model)

What the repository holds, whoever wrote it: a record does not say whether the scheduled job or a manual run of the job's code produced it (the git history does). Each input's as-of date and age in NYSE sessions is in the status bar and in the table at the foot of every page. Research prototypes (the ML regime classifier, the NN pricer, the Quintic OU) are on the Research and Calibration pages; none feeds a number on this page; the findings above cite one prototype's accuracy, as a negative result.

Keyboard shortcuts

g o
Overview
g s
Surface
g c
Calibration
g r
Risk
g e
Research
g x
Corrections
g m
Model Risk
?
This list
← → ↑ ↓
Move between heatmap cells

Units, signs and definitions: every term the pages abbreviate, with its formula.