{
  "status": "PASS",
  "checks": [
    "geometric variance sum",
    "conditional covariance identity",
    "future information strictly lowers variance",
    "zero-correlation control",
    "enumerated window support",
    "safe windows end before cutoff"
  ],
  "figures": [
    {
      "id": "future-proxy",
      "title": "A future observation lowers error without better forecasting",
      "kind": "analytical_curve",
      "x_label": "Forecast horizon h",
      "y_label": "Conditional MSE (innovation variance units)",
      "x": {
        "name": "Forecast horizon h",
        "values": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12
        ]
      },
      "series": [
        {
          "name": "Valid information at origin",
          "values": [
            1.0,
            1.6400000000000001,
            2.0496000000000003,
            2.3117440000000005,
            2.47951616,
            2.5868903424000003,
            2.6556098191360005,
            2.6995902842470407,
            2.727737781918106,
            2.745752180427588,
            2.757281395473657,
            2.7646600931031404
          ]
        },
        {
          "name": "Forbidden future neighbor supplied",
          "values": [
            0.6097560975609756,
            0.8001561280249804,
            0.8866033609257772,
            0.9323367345990597,
            0.9584929516956706,
            0.974122901549461,
            0.9837084666633747,
            0.9896810104484189,
            0.9934391753786475,
            0.9958186295149292,
            0.997331065164976,
            0.9982947943984682
          ]
        }
      ],
      "caption": "Constructed stationary Gaussian AR(1), rho=0.8 and innovation variance1. Future-assisted curve conditions on X_(t+h+1), unavailable at origin t. Analytic error, not trained forecasting performance."
    },
    {
      "id": "window-cutoff",
      "title": "Start-time splitting leaks window support across cutoff",
      "kind": "analytical_curve",
      "x_label": "Forecast horizon H",
      "y_label": "Cross-cutoff training-window count",
      "x": {
        "name": "Forecast horizon H",
        "values": [
          1,
          2,
          4,
          8,
          12,
          16,
          24
        ]
      },
      "series": [
        {
          "name": "Naive start<C split",
          "values": [
            12,
            13,
            15,
            19,
            23,
            27,
            35
          ]
        },
        {
          "name": "Require complete support<C",
          "values": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ]
        }
      ],
      "caption": "Constructed starts0..79, cutoff80, look-back12; support ends at s+L+H-1. Counts measure overlap only, not forecast-score inflation."
    }
  ],
  "script_sha256": "7c2cbeee06605733061e052b00d355b71694b432c38fa03f3922bdd6a2cd90b1"
}
