{
  "date": "2026-05-28",
  "generated_at": "2026-05-28T13:35:42.425599",
  "artifact_type": "strikeout_edges",
  "market_type": "pitcher_strikeouts",
  "model_version": "strikeout_edges_v1_overlay",
  "projection_model_version": "strikeout_props_v1_nb_overlay",
  "projection_date": "2026-05-28",
  "sportsbook_input_summary": {
    "input_type": "canonical_processed_sportsbook_input",
    "source_count": 0,
    "row_count": 0,
    "matched_count": 0,
    "unmatched_count": 0
  },
  "assumptions": {
    "methodology": "Sportsbook strikeout lines are matched against the saved Mithrandir strikeout props artifact. Model over, under, and push probabilities are derived from the existing matchup-adjusted strikeout distribution. Raw implied probabilities are calculated directly from American odds, and optional no-vig implied probabilities are computed by renormalizing both sides when both odds are present.",
    "distribution": {
      "name": "negative_binomial_style",
      "alpha": 0.0619,
      "whole_line_handling": "Over = P(K >= line + 1), Under = P(K <= line - 1), Push = P(K = line).",
      "half_line_handling": "Over = P(K >= ceil(line)), Under = 1 - Over, Push = 0."
    },
    "recommendation_thresholds": {
      "no_play_edge_threshold": 0.015,
      "lean_edge_threshold": 0.03,
      "strong_edge_threshold": 0.05
    }
  },
  "summary": {
    "raw_row_count": 0,
    "grouped_pitcher_count": 0,
    "sportsbook_count": 0
  },
  "edge_count": 0,
  "edges": [],
  "unmatched_inputs": []
}