{
  "schema_version": "fwdvar_diagnostics_v4",
  "issues": [
    {
      "code": "sparse_chain",
      "scope": "expiry",
      "severity": "INFO",
      "expiry_dt": "2026-05-05",
      "interval_from": null,
      "interval_to": null,
      "strike": null,
      "target_key": "2026-05-05",
      "message_short": "Sparse chain",
      "message_long": "Option chain is sparse (fewer strikes than normal)",
      "metrics": {
        "n_pairs_atm": 3,
        "min_pairs_required": 5
      }
    },
    {
      "code": "rejected",
      "scope": "expiry",
      "severity": "INFO",
      "expiry_dt": "2027-03-30",
      "interval_from": null,
      "interval_to": null,
      "strike": null,
      "target_key": "2027-03-30",
      "message_short": "Rejected: insufficient_strikes",
      "message_long": "Expiry rejected: insufficient_strikes",
      "metrics": {
        "reject_reason": "insufficient_strikes"
      }
    },
    {
      "code": "low_source",
      "scope": "interval",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": "2026-04-13",
      "interval_to": "2026-04-21",
      "strike": null,
      "target_key": "04-13\u219204-21",
      "message_short": "LOW confidence",
      "message_long": "Event confidence: LOW (baseline not robust)",
      "metrics": {
        "confidence": "LOW"
      }
    },
    {
      "code": "baseline_thin",
      "scope": "interval",
      "severity": "INFO",
      "expiry_dt": null,
      "interval_from": "2026-04-21",
      "interval_to": "2026-04-28",
      "strike": null,
      "target_key": "04-21\u219204-28",
      "message_short": "Thin baseline",
      "message_long": "Baseline quality: THIN (few neighbors: 1)",
      "metrics": {
        "baseline_n": 1
      }
    },
    {
      "code": "low_source",
      "scope": "interval",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": "2026-04-21",
      "interval_to": "2026-04-28",
      "strike": null,
      "target_key": "04-21\u219204-28",
      "message_short": "LOW confidence",
      "message_long": "Event confidence: LOW (baseline not robust)",
      "metrics": {
        "confidence": "LOW"
      }
    },
    {
      "code": "neg_fwdvar",
      "scope": "interval",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": "2026-04-28",
      "interval_to": "2026-05-05",
      "strike": null,
      "target_key": "04-28\u219205-05",
      "message_short": "NEG forward variance",
      "message_long": "Negative forward variance: -0.7750",
      "metrics": {
        "fwd_var": -0.7750234754244689,
        "near_var": 0.004364607476650466,
        "far_var": 3.290707141994962e-05,
        "ba_age_near": 1.337872,
        "ba_age_far": 1.684527
      }
    },
    {
      "code": "baseline_fallback",
      "scope": "interval",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": "2026-05-05",
      "interval_to": "2026-05-26",
      "strike": null,
      "target_key": "05-05\u219205-26",
      "message_short": "Baseline fallback",
      "message_long": "Baseline quality: FALLBACK (edge case)",
      "metrics": {
        "baseline_n": 1
      }
    },
    {
      "code": "baseline_fallback",
      "scope": "interval",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": "2026-05-26",
      "interval_to": "2026-06-30",
      "strike": null,
      "target_key": "05-26\u219206-30",
      "message_short": "Baseline fallback",
      "message_long": "Baseline quality: FALLBACK (edge case)",
      "metrics": {
        "baseline_n": 1
      }
    },
    {
      "code": "low_source",
      "scope": "interval",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": "2026-06-30",
      "interval_to": "2026-09-29",
      "strike": null,
      "target_key": "06-30\u219209-29",
      "message_short": "LOW confidence",
      "message_long": "Event confidence: LOW (baseline not robust)",
      "metrics": {
        "confidence": "LOW"
      }
    },
    {
      "code": "baseline_thin",
      "scope": "interval",
      "severity": "INFO",
      "expiry_dt": null,
      "interval_from": "2026-09-29",
      "interval_to": "2026-12-29",
      "strike": null,
      "target_key": "09-29\u219212-29",
      "message_short": "Thin baseline",
      "message_long": "Baseline quality: THIN (few neighbors: 1)",
      "metrics": {
        "baseline_n": 1
      }
    },
    {
      "code": "low_source",
      "scope": "interval",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": "2026-09-29",
      "interval_to": "2026-12-29",
      "strike": null,
      "target_key": "09-29\u219212-29",
      "message_short": "LOW confidence",
      "message_long": "Event confidence: LOW (baseline not robust)",
      "metrics": {
        "confidence": "LOW"
      }
    },
    {
      "code": "elevated_fwdvol",
      "scope": "interval",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": "2026-04-13",
      "interval_to": "2026-04-21",
      "strike": null,
      "target_key": "04-13\u219204-21",
      "message_short": "Elevated fwd vol (46.1%)",
      "message_long": "Forward volatility: 46.1% (threshold: 30%)",
      "metrics": {
        "fwd_vol": 0.4610266653621896,
        "threshold": 0.3
      }
    },
    {
      "code": "elevated_fwdvol",
      "scope": "interval",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": "2026-04-21",
      "interval_to": "2026-04-28",
      "strike": null,
      "target_key": "04-21\u219204-28",
      "message_short": "Elevated fwd vol (43.1%)",
      "message_long": "Forward volatility: 43.1% (threshold: 30%)",
      "metrics": {
        "fwd_vol": 0.4310460752741198,
        "threshold": 0.3
      }
    },
    {
      "code": "elevated_fwdvol",
      "scope": "interval",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": "2026-05-05",
      "interval_to": "2026-05-26",
      "strike": null,
      "target_key": "05-05\u219205-26",
      "message_short": "Elevated fwd vol (64.8%)",
      "message_long": "Forward volatility: 64.8% (threshold: 30%)",
      "metrics": {
        "fwd_vol": 0.6478546099335472,
        "threshold": 0.3
      }
    },
    {
      "code": "low_coverage",
      "scope": "run",
      "severity": "WARN",
      "expiry_dt": null,
      "interval_from": null,
      "interval_to": null,
      "strike": null,
      "target_key": "run",
      "message_short": "Low coverage (30%)",
      "message_long": "Weighted-mid coverage: 29.9% (threshold: 50%)",
      "metrics": {
        "avg_coverage": 29.858954451345753,
        "threshold": 50.0
      }
    }
  ],
  "summary": {
    "total": 15,
    "fail_count": 0,
    "warn_count": 11,
    "info_count": 4
  },
  "derived": {
    "structure_summary": {
      "iv_7d": {
        "pct": 53.62860955102215,
        "pct_cal": 30.591772129494295,
        "actual_dte": 7,
        "expiry_date": "2026-04-13",
        "tau_eff": 0.006329021523478827,
        "tau_cal": 0.01945003446773519,
        "tau_ratio": 3.0731503117158354
      },
      "iv_30d": {
        "pct": 3.6537648687443385,
        "pct_cal": 2.0321813202835486,
        "actual_dte": 29,
        "expiry_date": "2026-05-05",
        "tau_eff": 0.024649495917394102,
        "tau_cal": 0.07968275178464142,
        "tau_ratio": 3.232632101349086
      },
      "iv_90d": {
        "pct": 37.65633636253128,
        "pct_cal": 20.96337088485748,
        "actual_dte": 85,
        "expiry_date": "2026-06-30",
        "tau_eff": 0.07221152111648978,
        "tau_cal": 0.23300239586403912,
        "tau_ratio": 3.2266651119032046
      },
      "front_slope_pct": -49.97484468227782,
      "back_slope_pct": 34.00257149378694,
      "max_fwd_vol_pct": 64.78546099335472,
      "max_fwd_vol_interval": {
        "from": "2026-05-05",
        "to": "2026-05-26"
      },
      "max_fwd_vol_dte_range": {
        "start_dte": 29,
        "end_dte": 50
      },
      "neg_interval_count": 1,
      "clock_primary": "variance_time",
      "clock_secondary": "calendar",
      "vt_vintage": "202603",
      "beta_on": 0.12931315994459922,
      "beta_we": 0.19024823173932068,
      "quote_context_dt": "2026-04-06T13:00:03.592281+05:30",
      "effective_quote_policy": "weighted_mid",
      "tau_mode_math": "variance_time",
      "rr_25d": null,
      "fly_25d": null,
      "put_iv_25d": null,
      "call_iv_25d": null,
      "rr_fly_diagnostics": null
    },
    "interval_leaderboard": {
      "highest": [
        {
          "from": "2026-05-05",
          "to": "2026-05-26",
          "start_dte": 29,
          "end_dte": 50,
          "forward_vol": 0.6478546099335472,
          "forward_variance": 0.41971559561214855
        },
        {
          "from": "2026-04-13",
          "to": "2026-04-21",
          "start_dte": 7,
          "end_dte": 15,
          "forward_vol": 0.4610266653621896,
          "forward_variance": 0.21254558617498037
        },
        {
          "from": "2026-04-21",
          "to": "2026-04-28",
          "start_dte": 15,
          "end_dte": 22,
          "forward_vol": 0.4310460752741198,
          "forward_variance": 0.18580071900922215
        },
        {
          "from": "2026-05-26",
          "to": "2026-06-30",
          "start_dte": 50,
          "end_dte": 85,
          "forward_vol": 0.2970582950042632,
          "forward_variance": 0.08824363063083984
        },
        {
          "from": "2026-09-29",
          "to": "2026-12-29",
          "start_dte": 176,
          "end_dte": 267,
          "forward_vol": 0.24456120691266428,
          "forward_variance": 0.059810183926579
        }
      ],
      "lowest": [
        {
          "from": "2026-06-30",
          "to": "2026-09-29",
          "start_dte": 85,
          "end_dte": 176,
          "forward_vol": 0.228481206198602,
          "forward_variance": 0.05220366158596808
        },
        {
          "from": "2026-09-29",
          "to": "2026-12-29",
          "start_dte": 176,
          "end_dte": 267,
          "forward_vol": 0.24456120691266428,
          "forward_variance": 0.059810183926579
        },
        {
          "from": "2026-05-26",
          "to": "2026-06-30",
          "start_dte": 50,
          "end_dte": 85,
          "forward_vol": 0.2970582950042632,
          "forward_variance": 0.08824363063083984
        },
        {
          "from": "2026-04-21",
          "to": "2026-04-28",
          "start_dte": 15,
          "end_dte": 22,
          "forward_vol": 0.4310460752741198,
          "forward_variance": 0.18580071900922215
        },
        {
          "from": "2026-04-13",
          "to": "2026-04-21",
          "start_dte": 7,
          "end_dte": 15,
          "forward_vol": 0.4610266653621896,
          "forward_variance": 0.21254558617498037
        }
      ],
      "neg_intervals": [
        {
          "from": "2026-04-28",
          "to": "2026-05-05",
          "forward_variance": -0.7750234754244689,
          "notes": "NEG_FWDVAR",
          "debug": {
            "quote_age_near": "1s",
            "pricing_mode": "weighted_mid"
          }
        }
      ]
    },
    "forward_volatility_matrix": {
      "schema_version": "fwdvol_matrix_v2",
      "status": "available",
      "expiry_filter_policy_version": "usable_expiries_v1",
      "expiry_dates": [
        "2026-04-13",
        "2026-04-21",
        "2026-04-28",
        "2026-05-05",
        "2026-05-26",
        "2026-06-30",
        "2026-09-29",
        "2026-12-29"
      ],
      "dte_days": [
        7,
        15,
        22,
        29,
        50,
        85,
        176,
        267
      ],
      "matrix_fwdvol_pct": [
        [
          null,
          46.10266653621896,
          44.7046074090111,
          null,
          39.96593697125048,
          35.74819959765686,
          29.45999511423859,
          27.817182804406915
        ],
        [
          null,
          null,
          43.10460752741198,
          null,
          38.45242328192084,
          34.3828199179788,
          28.40134640076362,
          27.048777994650337
        ],
        [
          null,
          null,
          null,
          null,
          37.17415296996094,
          33.2465831380637,
          27.535981871074267,
          26.438029233458693
        ],
        [
          null,
          null,
          null,
          null,
          64.78546099335472,
          46.32465248962846,
          33.714024499725404,
          30.526054384317554
        ],
        [
          null,
          null,
          null,
          null,
          null,
          29.70582950042632,
          24.91325753654186,
          24.723375747140434
        ],
        [
          null,
          null,
          null,
          null,
          null,
          null,
          22.8481206198602,
          23.66064414950347
        ],
        [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          24.456120691266428
        ],
        [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null
        ]
      ],
      "neg_mask": [
        [
          false,
          false,
          false,
          true,
          false,
          false,
          false,
          false
        ],
        [
          false,
          false,
          false,
          true,
          false,
          false,
          false,
          false
        ],
        [
          false,
          false,
          false,
          true,
          false,
          false,
          false,
          false
        ],
        [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ]
      ],
      "clip": {
        "method": "percentile",
        "p_lo": 5,
        "p_hi": 95,
        "vmin": 23.81973945785606,
        "vmax": 46.280255298946564
      },
      "usable_count": 8,
      "excluded": []
    },
    "expiry_quality_summary": {
      "schema_version": "expiry_quality_summary_v1",
      "filter_policy_version": "usable_expiries_v1",
      "total_count": 9,
      "usable_count": 8,
      "excluded": [
        {
          "expiry_date": "2027-03-30",
          "dte_days": 358,
          "reject_reason": "insufficient_strikes",
          "accept_tier": null,
          "why": "insufficient_strikes"
        }
      ]
    },
    "build_metadata": {
      "git_commit": "b1d1ba02",
      "build_timestamp": "2026-04-06T07:30:08.441073+00:00",
      "python_version": "3.13"
    },
    "request_echo": {
      "event_windows_requested": false,
      "sliding_windows_requested": false,
      "diagnostics_level": "lite",
      "tau_mode": "variance_time",
      "event_windows_exported": false,
      "event_windows_count": 0,
      "sliding_windows_exported": false,
      "ui_presets_exported": true,
      "ui_presets_events_count": 1,
      "ui_presets_missing_reason": null,
      "required_iv_tenors": []
    },
    "ui_limits": {
      "max_horizon_days": 56,
      "max_horizon_label": "8w_liquid",
      "min_horizon_days": 0,
      "tz": "Asia/Kolkata",
      "notes": "UI clamps horizon; avoid LEAPS/illiquid expiries beyond 8 weeks"
    },
    "ui_capabilities": {
      "schema_version": "ui_capabilities_v1",
      "generated_at_utc": "2026-04-06T07:30:08.441366+00:00",
      "source": "volstrats.analytics.ui_capabilities.build_ui_capabilities",
      "filter_policy": {
        "name": "UI_GRADE",
        "version": "usable_expiries_v1"
      },
      "missing_reason": null,
      "features": {
        "forward_matrix_json": false,
        "quote_cards_html": false,
        "event_window_tool": false,
        "sliding_windows": false,
        "smile_density_plots": false,
        "chain_snapshots": false,
        "carry_data": true
      },
      "counts": {
        "usable_expiries": 8,
        "excluded_expiries": 1,
        "neg_cells": 1,
        "issues_fail": 0,
        "issues_warn": 11
      }
    },
    "ui_presets": {
      "schema_version": "ui_presets_v1",
      "generated_at_utc": "2026-04-06T07:30:08.443950+00:00",
      "asof_iso": "2026-04-06T13:00:03.592281+05:30",
      "asof_source": "structure_summary.quote_context_dt",
      "horizon_days": 56,
      "tz": "Asia/Kolkata",
      "source": "market_calendar.list_upcoming_events",
      "id_namespace": "market_calendar",
      "id_format": "CATEGORY_YYYYMM",
      "events": [
        {
          "id": "RBI_MPC_202604",
          "name": "RBI MPC \u2013 Apr 2026 policy",
          "start_iso": "2026-04-09T09:15:00+05:30",
          "end_iso": "2026-04-09T15:30:00+05:30",
          "category": "macro",
          "tags": [
            "rbi_mpc",
            "india"
          ],
          "certainty": "scheduled",
          "template": "full_session",
          "importance": null
        }
      ]
    }
  }
}