{
  "study_id": "DRV-RV-2026-07-08-01",
  "title": "Rough-volatility scenarios from a frozen Derivasys SVI surface",
  "source_surface_id": "derivasys_svi_snapshot_2026-07-08T07:59:28.360000Z",
  "snapshot_time": "2026-07-08T07:59:28.360000Z",
  "snapshot_timezone": "UTC",
  "input_data_description": "One complete non-partial svi_surface_snapshot containing SVI parameters; 12 expiry rows evaluated on an 11-point log-moneyness grid, with five expiries at or beyond 30 days used for the rough-volatility backbone calibration.",
  "data_availability": {
    "source_message": "not redistributed",
    "raw_exchange_books": "not included",
    "derived_results": "public in results.csv",
    "generated_figures": "public on the associated research note"
  },
  "code_commit": "187d820c20265036e976db378104cd1ee7a01395",
  "code_revision": {
    "notebook_sha256": "748a81043aa027aa0b05e08c5a4c7b50adc8f65c6afb6d40bdfbdc2e7fe36772",
    "notebook_name": "derivasys_svi_rough_vol_snapshot.ipynb",
    "note": "The source notebook worktree was not a published repository; the versioned publication bundle commit and notebook digest identify this result set."
  },
  "environment": {
    "python": "3.14",
    "manager": "PDM",
    "pdm_lock_sha256": "dc747eb50d03dc15aa62fae066de5183af0338ec3ea0deb1d2ca9cba4e52869e",
    "pyproject_sha256": "fb8c73494d8baa8df856bc994f2aeda884f9d8b03da1ab71ee03e58a9f638160"
  },
  "model_definition": "A rough-Bergomi-style stochastic forward-variance backbone with global H, term-structured eta(t) and rho(t), fitted xi scale knots, plus separately evaluated raw-residual and smooth total-variance short-premium layers.",
  "parameter_bounds": {
    "standard": { "H": [0.01, 0.45], "eta": [0.05, 5.0], "rho": [-0.98, 0.25], "xi_scale": [0.15, 6.0] },
    "sensitivity": { "H": [0.001, 0.49], "eta": [0.05, 10.0], "rho": [-0.995, 0.75], "xi_scale": [0.05, 12.0] }
  },
  "objective_function": "Robust least-squares residuals in implied-volatility points on the selected expiry/moneyness grid, with smoothness penalties for neighbouring term-structured eta and rho buckets.",
  "optimiser": "scipy.optimize.least_squares with soft_l1 loss",
  "random_seed": 7071726,
  "monte_carlo": {
    "backbone_path_count": 16384,
    "short_tenor_path_count": 32768,
    "antithetic_variates": true,
    "common_random_numbers": true
  },
  "time_discretisation": {
    "backbone": "maturity-dependent batches; 16 to 71 steps for the five >=30d expiries in the recorded run",
    "short_tenors": "24 average steps below 7d, 37 at 7-14d and 79 at 14-30d; recorded step ranges approximately 0.0417 to 0.2473 days"
  },
  "interpolation_rules": "SVI source slices reconstructed on log-moneyness [-0.55,-0.40,-0.30,-0.20,-0.10,0,0.10,0.20,0.30,0.40,0.55]. Raw short residuals are interpolated across maturity/moneyness and tapered to zero by 45d; the shock candidate uses a smooth total-variance premium instead of raw residual-point shocks.",
  "static_arbitrage_diagnostics": {
    "checks": ["calendar total variance", "butterfly convexity proxy", "call monotonicity"],
    "recorded_base_and_shock_grid_violations": 0,
    "scope_warning": "These grid checks are research diagnostics, not a complete production arbitrage proof."
  },
  "generated_figures": [
    "rough-vol-medium-long-fit.png",
    "rough-vol-fitted-surface.png",
    "rough-vol-short-premium-diagnostics.png",
    "rough-vol-parameter-shock-deltas.png",
    "rough-vol-shock-term-structure.png",
    "rough-vol-spot-vol-response.png"
  ],
  "known_limitations": [
    "Single frozen snapshot; no multi-snapshot stability evidence.",
    "The pure rough-volatility implication fails badly below 30 days.",
    "The raw residual overlay is an in-sample fit benchmark and is not used directly for shocks.",
    "The smooth short-premium layer has materially higher in-sample error than the raw overlay.",
    "No claim of production calibration readiness or historical out-of-sample performance."
  ],
  "production_readiness_status": "research prototype"
}
