{
  "model": "VigFox NFL conditional discrete margin model v2",
  "source_sha256": "88a64e3bacef4aba63da6ed7c9ea243a2e69b0b12e6d88d3ae01452f5b49cdc9",
  "selected": {
    "spread_bandwidth": 2.5,
    "total_bandwidth": 1000000,
    "validation_brier": 0.49088432793414166
  },
  "holdout_games": 855,
  "holdout_years": [
    2023,
    2025
  ],
  "fit_games_for_holdout": 2173,
  "offsets": [
    -6.0,
    -3.0,
    -1.0,
    -0.5,
    0.0,
    0.5,
    1.0,
    3.0,
    6.0
  ],
  "brier": 0.4894913783391967,
  "spread_only_brier": 0.4894913783391967,
  "normal_baseline": {
    "normal_sigma": 12,
    "validation_brier": 0.4926614267828544
  },
  "normal_brier": 0.49083659031183646,
  "paired_brier_difference_95pct": [
    -0.0029717958664016984,
    0.00026894641650313813
  ],
  "effective_sample_range": [
    52.453243010766826,
    1519.1621430097398,
    1754.246504053492
  ],
  "calibration": [
    {
      "bin": [
        0,
        0.2
      ],
      "evaluations": 0,
      "predicted": null,
      "observed": null
    },
    {
      "bin": [
        0.2,
        0.4
      ],
      "evaluations": 1574,
      "predicted": 0.3265299721157291,
      "observed": 0.3411689961880559
    },
    {
      "bin": [
        0.4,
        0.6
      ],
      "evaluations": 4941,
      "predicted": 0.496435250414579,
      "observed": 0.5114349321999595
    },
    {
      "bin": [
        0.6,
        0.8
      ],
      "evaluations": 1180,
      "predicted": 0.6607425198393673,
      "observed": 0.6838983050847458
    },
    {
      "bin": [
        0.8,
        1
      ],
      "evaluations": 0,
      "predicted": null,
      "observed": null
    }
  ],
  "spread_strata": [
    {
      "main_spread": [
        0,
        3
      ],
      "games": 215,
      "brier": 0.4771353125606526
    },
    {
      "main_spread": [
        3,
        7
      ],
      "games": 420,
      "brier": 0.49020311065748845
    },
    {
      "main_spread": [
        7,
        11
      ],
      "games": 161,
      "brier": 0.5005257029132829
    },
    {
      "main_spread": [
        11,
        30
      ],
      "games": 59,
      "brier": 0.4993405361743928
    }
  ],
  "key_number_calibration": [
    {
      "favorite_margin": 3,
      "games": 855,
      "predicted": 0.08301667531739475,
      "observed": 0.08187134502923976,
      "prediction_minus_observation_95pct": [
        -0.017286388042306443,
        0.01902414338344715
      ]
    },
    {
      "favorite_margin": 7,
      "games": 855,
      "predicted": 0.05379224988258681,
      "observed": 0.05730994152046784,
      "prediction_minus_observation_95pct": [
        -0.01970760971287873,
        0.012023258319314051
      ]
    }
  ],
  "integer_line_push": {
    "evaluations": 3435,
    "predicted": 0.03623990522071142,
    "observed": 0.03842794759825328
  },
  "per_season": [
    {
      "season": 2023,
      "games": 285,
      "brier": 0.48938624633636213
    },
    {
      "season": 2024,
      "games": 285,
      "brier": 0.48694183519820444
    },
    {
      "season": 2025,
      "games": 285,
      "brier": 0.4921460534830235
    }
  ],
  "missing_historical_spread_prices": 1,
  "limitations": [
    "Closing main-market conditioning; not opening-line or live-game validation.",
    "No historical alternate-line quote dataset: no profitability or quote-accuracy claim.",
    "Nine thresholds within each game are correlated; bootstrap resamples whole games.",
    "Team, injury, weather and future scoring changes are not modeled."
  ],
  "deployed_fit_games": 3028,
  "deployed_fit_years": [
    2015,
    2025
  ]
}
