{
  "slate_date": "2026-10-31",
  "report_generated_at": "2026-11-01T05:10:27.505474+00:00",
  "date_context": "November 1 games are upcoming; this evaluates the October 31 slate that just finished.",
  "publication_commit": "3a7e20a9b9d865f83eb3b0833f2f04a0a1ec56da",
  "archive_sha256": "86e4d041eb797a7a436f0af4d3a818ec722b60c3292dc07158c01bcf09f26aa9",
  "games_final": 6,
  "games_expected": 6,
  "slate_games_total": 10,
  "slate_games_final": 10,
  "forecast_coverage_rate": 0.6,
  "games_without_forecast": [
    {
      "game_id": 2026020217,
      "game": "CHI @ BOS",
      "start_utc": "2026-10-31T17:00:00Z",
      "state": "OFF",
      "actual_away": 4,
      "actual_home": 5,
      "actual_total": 9,
      "has_pregame_forecast": false,
      "evaluation_status": "not graded: no archived pregame forecast"
    },
    {
      "game_id": 2026020218,
      "game": "STL @ DET",
      "start_utc": "2026-10-31T17:00:00Z",
      "state": "OFF",
      "actual_away": 5,
      "actual_home": 4,
      "actual_total": 9,
      "has_pregame_forecast": false,
      "evaluation_status": "not graded: no archived pregame forecast"
    },
    {
      "game_id": 2026020219,
      "game": "TBL @ NSH",
      "start_utc": "2026-10-31T18:00:00Z",
      "state": "OFF",
      "actual_away": 4,
      "actual_home": 5,
      "actual_total": 9,
      "has_pregame_forecast": false,
      "evaluation_status": "not graded: no archived pregame forecast"
    },
    {
      "game_id": 2026020220,
      "game": "EDM @ NYI",
      "start_utc": "2026-10-31T18:00:00Z",
      "state": "OFF",
      "actual_away": 4,
      "actual_home": 0,
      "actual_total": 4,
      "has_pregame_forecast": false,
      "evaluation_status": "not graded: no archived pregame forecast"
    }
  ],
  "earliest_saved_forecast_at": "2026-10-31T19:21:29.863997+00:00",
  "coverage_note": "Scores apply only to six archived forecasts, not all ten NHL games. The four uncovered games started before the first saved forecast; none was reconstructed after results.",
  "primary_selection": "latest eligible pregame",
  "first_latest_different_games": 0,
  "model_families": [
    "goalie-v2-unified"
  ],
  "goalie_input_status_counts": {
    "estimated": 12
  },
  "latest": {
    "probabilities": {
      "5.5": {
        "n": 6,
        "actual_under": 2,
        "actual_push": 0,
        "actual_over": 4,
        "mean_p_under": 0.40367400405216625,
        "mean_p_push": 0.0,
        "mean_p_over": 0.5963259959478338,
        "observed_over_rate": 0.6666666666666666,
        "over_rate_wilson95": [
          0.299993315138392,
          0.9032285888942195
        ],
        "categorical_brier_sum": 0.41357597168637544,
        "categorical_logloss": 0.6042650580800534,
        "binary_brier": 0.20678798584318772,
        "binary_logloss": 0.6042650580800534,
        "reference50_brier": 0.25,
        "reference50_logloss": 0.6931471805599453,
        "direction_correct": 4,
        "direction_n": 6,
        "p_over_min": 0.5526880104081058,
        "p_over_max": 0.6559852137091323
      },
      "6": {
        "n": 6,
        "actual_under": 2,
        "actual_push": 2,
        "actual_over": 2,
        "mean_p_under": 0.40367400405216625,
        "mean_p_push": 0.1589086206861812,
        "mean_p_over": 0.43741737526165253,
        "observed_over_rate": 0.3333333333333333,
        "over_rate_wilson95": [
          0.09677141110578041,
          0.700006684861608
        ],
        "categorical_brier_sum": 0.6934574344179497,
        "categorical_logloss": 1.167951147886834
      },
      "6.5": {
        "n": 6,
        "actual_under": 4,
        "actual_push": 0,
        "actual_over": 2,
        "mean_p_under": 0.5625826247383474,
        "mean_p_push": 0.0,
        "mean_p_over": 0.43741737526165253,
        "observed_over_rate": 0.3333333333333333,
        "over_rate_wilson95": [
          0.09677141110578041,
          0.700006684861608
        ],
        "categorical_brier_sum": 0.46595156245204133,
        "categorical_logloss": 0.6587637070550574,
        "binary_brier": 0.23297578122602067,
        "binary_logloss": 0.6587637070550574,
        "reference50_brier": 0.25,
        "reference50_logloss": 0.6931471805599453,
        "direction_correct": 3,
        "direction_n": 6,
        "p_over_min": 0.3920662509900231,
        "p_over_max": 0.5009517539790718
      },
      "7": {
        "n": 6,
        "actual_under": 4,
        "actual_push": 1,
        "actual_over": 1,
        "mean_p_under": 0.5625826247383474,
        "mean_p_push": 0.14236043109002317,
        "mean_p_over": 0.29505694417162937,
        "observed_over_rate": 0.16666666666666666,
        "over_rate_wilson95": [
          0.030053369748306635,
          0.5635028221864702
        ],
        "categorical_brier_sum": 0.5182559677318171,
        "categorical_logloss": 0.8970295221416311
      }
    },
    "calibration": [
      {
        "line": 5.5,
        "bin_lo": 0.4,
        "bin_hi": 0.6000000000000001,
        "n": 4,
        "mean_predicted": 0.5717666568407958,
        "observed": 0.5,
        "observed_wilson95": [
          0.15003898915214947,
          0.8499610108478506
        ]
      },
      {
        "line": 5.5,
        "bin_lo": 0.6000000000000001,
        "bin_hi": 0.8,
        "n": 2,
        "mean_predicted": 0.6454446741619095,
        "observed": 1.0,
        "observed_wilson95": [
          0.34238022750665303,
          1.0
        ]
      },
      {
        "line": 6.5,
        "bin_lo": 0.2,
        "bin_hi": 0.4,
        "n": 1,
        "mean_predicted": 0.3920662509900231,
        "observed": 0.0,
        "observed_wilson95": [
          0.0,
          0.7934506856227626
        ]
      },
      {
        "line": 6.5,
        "bin_lo": 0.4,
        "bin_hi": 0.6000000000000001,
        "n": 5,
        "mean_predicted": 0.4464876001159784,
        "observed": 0.4,
        "observed_wilson95": [
          0.11762077423264783,
          0.769275718723987
        ]
      }
    ],
    "goals": {
      "n": 6,
      "mean_predicted": 6.274278228789395,
      "mean_actual": 6.166666666666667,
      "total_mae": 1.24782321866492,
      "total_rmse": 1.4591484363306673,
      "total_bias_pred_minus_actual": 0.107611562122729,
      "team_mae": 1.0067353321117032,
      "count_logloss": 1.9961898535405804
    }
  },
  "first": {
    "probabilities": {
      "5.5": {
        "n": 6,
        "actual_under": 2,
        "actual_push": 0,
        "actual_over": 4,
        "mean_p_under": 0.40367400405216625,
        "mean_p_push": 0.0,
        "mean_p_over": 0.5963259959478338,
        "observed_over_rate": 0.6666666666666666,
        "over_rate_wilson95": [
          0.299993315138392,
          0.9032285888942195
        ],
        "categorical_brier_sum": 0.41357597168637544,
        "categorical_logloss": 0.6042650580800534,
        "binary_brier": 0.20678798584318772,
        "binary_logloss": 0.6042650580800534,
        "reference50_brier": 0.25,
        "reference50_logloss": 0.6931471805599453,
        "direction_correct": 4,
        "direction_n": 6,
        "p_over_min": 0.5526880104081058,
        "p_over_max": 0.6559852137091323
      },
      "6": {
        "n": 6,
        "actual_under": 2,
        "actual_push": 2,
        "actual_over": 2,
        "mean_p_under": 0.40367400405216625,
        "mean_p_push": 0.1589086206861812,
        "mean_p_over": 0.43741737526165253,
        "observed_over_rate": 0.3333333333333333,
        "over_rate_wilson95": [
          0.09677141110578041,
          0.700006684861608
        ],
        "categorical_brier_sum": 0.6934574344179497,
        "categorical_logloss": 1.167951147886834
      },
      "6.5": {
        "n": 6,
        "actual_under": 4,
        "actual_push": 0,
        "actual_over": 2,
        "mean_p_under": 0.5625826247383474,
        "mean_p_push": 0.0,
        "mean_p_over": 0.43741737526165253,
        "observed_over_rate": 0.3333333333333333,
        "over_rate_wilson95": [
          0.09677141110578041,
          0.700006684861608
        ],
        "categorical_brier_sum": 0.46595156245204133,
        "categorical_logloss": 0.6587637070550574,
        "binary_brier": 0.23297578122602067,
        "binary_logloss": 0.6587637070550574,
        "reference50_brier": 0.25,
        "reference50_logloss": 0.6931471805599453,
        "direction_correct": 3,
        "direction_n": 6,
        "p_over_min": 0.3920662509900231,
        "p_over_max": 0.5009517539790718
      },
      "7": {
        "n": 6,
        "actual_under": 4,
        "actual_push": 1,
        "actual_over": 1,
        "mean_p_under": 0.5625826247383474,
        "mean_p_push": 0.14236043109002317,
        "mean_p_over": 0.29505694417162937,
        "observed_over_rate": 0.16666666666666666,
        "over_rate_wilson95": [
          0.030053369748306635,
          0.5635028221864702
        ],
        "categorical_brier_sum": 0.5182559677318171,
        "categorical_logloss": 0.8970295221416311
      }
    },
    "calibration": [
      {
        "line": 5.5,
        "bin_lo": 0.4,
        "bin_hi": 0.6000000000000001,
        "n": 4,
        "mean_predicted": 0.5717666568407958,
        "observed": 0.5,
        "observed_wilson95": [
          0.15003898915214947,
          0.8499610108478506
        ]
      },
      {
        "line": 5.5,
        "bin_lo": 0.6000000000000001,
        "bin_hi": 0.8,
        "n": 2,
        "mean_predicted": 0.6454446741619095,
        "observed": 1.0,
        "observed_wilson95": [
          0.34238022750665303,
          1.0
        ]
      },
      {
        "line": 6.5,
        "bin_lo": 0.2,
        "bin_hi": 0.4,
        "n": 1,
        "mean_predicted": 0.3920662509900231,
        "observed": 0.0,
        "observed_wilson95": [
          0.0,
          0.7934506856227626
        ]
      },
      {
        "line": 6.5,
        "bin_lo": 0.4,
        "bin_hi": 0.6000000000000001,
        "n": 5,
        "mean_predicted": 0.4464876001159784,
        "observed": 0.4,
        "observed_wilson95": [
          0.11762077423264783,
          0.769275718723987
        ]
      }
    ],
    "goals": {
      "n": 6,
      "mean_predicted": 6.274278228789395,
      "mean_actual": 6.166666666666667,
      "total_mae": 1.24782321866492,
      "total_rmse": 1.4591484363306673,
      "total_bias_pred_minus_actual": 0.107611562122729,
      "team_mae": 1.0067353321117032,
      "count_logloss": 1.9961898535405804
    }
  },
  "methodology": {
    "forecasts": "Original archived probabilities, no regeneration or parameter fitting.",
    "target": "Official final goals including OT and shootout winner bonus.",
    "half_goal_scoring": "Binary Over Brier and natural-log loss.",
    "integer_scoring": "Under/Push/Over three-class Brier (sum, range 0..2) and categorical log-loss; pushes are separate outcomes.",
    "benchmarks": "Fixed 50% Over reference for half-goal lines, not fitted to results.",
    "calibration": "Five fixed bins; Wilson intervals for observed frequencies.",
    "limits": "Six evaluated games, 60% nonrandom slate coverage; cannot establish full-slate accuracy, stable calibration or betting profitability."
  }
}
