{
  "schema": "mithrandir.strikeout_props",
  "schema_version": 2,
  "strikeout_epoch": "strikeout_v2_2026-08-09",
  "date": "2026-09-21",
  "captured_at": "2026-09-22T03:36:55.084143+00:00",
  "generated_at": "2026-09-21T23:36:55.084302",
  "projection_type": "strikeout_props",
  "model_version": "strikeout_props_v2_calibrated_ladder",
  "baseline_model_version": "pitcher_k_v1_regular_16f",
  "matchup_model_version": "matchup_engine_v1_1_deterministic",
  "assumptions": {
    "baseline_projection_type": "pitcher_strikeouts",
    "baseline_model_version": "pitcher_k_v1_regular_16f",
    "matchup_projection_type": "matchups",
    "matchup_model_version": "matchup_engine_v1_1_deterministic",
    "methodology": "Baseline strikeout projections from the pitcher strikeout model are adjusted with a bounded matchup multiplier derived from lineup-level strikeout pressure, projected batting-order context, and pitch-matchup interaction. Threshold probabilities are generated from the matchup-adjusted mean using a deterministic negative-binomial-style count model with empirically estimated overdispersion.",
    "distribution": {
      "name": "negative_binomial_style",
      "alpha": 0.0619,
      "variance_formula": "variance = mean + alpha * mean^2",
      "thresholds": [
        4,
        5,
        6,
        7,
        8
      ]
    },
    "adjustment_bounds": {
      "matchup_ratio_blend": 0.35,
      "score_multiplier_range": [
        0.94,
        1.06
      ],
      "final_multiplier_range": [
        0.85,
        1.15
      ]
    }
  },
  "projected_start_count": 2,
  "skipped_start_count": 4,
  "predictions": [
    {
      "date": "2026-09-21",
      "game_pk": 824787,
      "pitcher_id": 669358,
      "pitcher_name": "Shane Baz",
      "team_id": 110,
      "team_abbr": "BAL",
      "opponent_team_id": 141,
      "opponent_abbr": "TOR",
      "starter_confidence": "probable",
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "temperature_f": 65.8,
      "wind_speed_mph": 7.6,
      "wind_direction": "in",
      "environment_summary": "neutral",
      "environment_k_multiplier": 1.0,
      "expected_strikeouts": 5.04,
      "skill_score": 24.4,
      "opportunity_score": 61.6,
      "opponent_weakness_score": 34.1,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 33.9,
      "suppression_tier": "MILD_SUPPRESSION",
      "suppression_label": "Mild Suppression",
      "suppression_note": "Some workload drag is present, but the strikeout path remains mostly intact.",
      "interaction_tier": "NEUTRAL_ALIGNMENT",
      "interaction_label": "Neutral Alignment",
      "interaction_note": "The signal stack is mixed and better used as context than conviction.",
      "trust_modifier": "NEUTRAL",
      "trust_label": "Neutral",
      "trust_note": "The strikeout trust picture is mixed and better used as context than conviction.",
      "baseline_projected_strikeouts": 5.05,
      "matchup_adjusted_projected_strikeouts": 5.04,
      "adjustment_delta": -0.01,
      "adjustment_multiplier": 0.998,
      "strikeout_epoch": "strikeout_v2_2026-08-09",
      "probability_semantics": "final_starter_strikeouts_at_least_threshold",
      "calibration_status": "tracking_identity",
      "calibration_version": null,
      "raw_prob_4_plus": 0.702,
      "raw_prob_5_plus": 0.5422,
      "raw_prob_6_plus": 0.3891,
      "raw_prob_7_plus": 0.2607,
      "raw_prob_8_plus": 0.1641,
      "prob_4_plus": 0.702,
      "prob_5_plus": 0.5422,
      "prob_6_plus": 0.3891,
      "prob_7_plus": 0.2607,
      "prob_8_plus": 0.1641,
      "context": {
        "aggregate_matchup_score": 46.5,
        "lineup_expected_strikeouts": 5.06,
        "lineup_source": "projected",
        "lineup_confidence": "projected",
        "confirmed_lineup_flag": false,
        "pitch_mix_sample_size": 18414.0,
        "temperature_f": 65.8,
        "wind_speed_mph": 7.6,
        "wind_direction": "in",
        "environment_summary": "neutral",
        "environment_k_multiplier": 1.0,
        "environment_hr_multiplier": 0.964,
        "projected_batting_order_top_5": [
          {
            "spot": 1,
            "hitter_name": "George Springer",
            "weight": 1.08
          },
          {
            "spot": 2,
            "hitter_name": "Vladimir Guerrero Jr.",
            "weight": 1.05
          },
          {
            "spot": 3,
            "hitter_name": "Anthony Santander",
            "weight": 1.03
          },
          {
            "spot": 4,
            "hitter_name": "Daulton Varsho",
            "weight": 1.02
          },
          {
            "spot": 5,
            "hitter_name": "Jes\u00fas S\u00e1nchez",
            "weight": 1.0
          }
        ],
        "top_hitter_matchups": [
          {
            "hitter_name": "Davis Schneider",
            "matchup_score": 64.8,
            "expected_strikeout_likelihood": 138.2,
            "expected_contact_quality": 103.9
          },
          {
            "hitter_name": "Daulton Varsho",
            "matchup_score": 60.5,
            "expected_strikeout_likelihood": 110.9,
            "expected_contact_quality": 81.7
          },
          {
            "hitter_name": "Andr\u00e9s Gim\u00e9nez",
            "matchup_score": 49.7,
            "expected_strikeout_likelihood": 91.7,
            "expected_contact_quality": 60.0
          }
        ],
        "opponent_team_k_rate": 0.1943
      },
      "captured_at": "2026-09-22T03:36:55.084143+00:00"
    },
    {
      "date": "2026-09-21",
      "game_pk": 823169,
      "pitcher_id": 805673,
      "pitcher_name": "Zebby Matthews",
      "team_id": 142,
      "team_abbr": "MIN",
      "opponent_team_id": 137,
      "opponent_abbr": "SF",
      "starter_confidence": "probable",
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "temperature_f": 56.1,
      "wind_speed_mph": 10.7,
      "wind_direction": "out",
      "environment_summary": "neutral",
      "environment_k_multiplier": 0.99,
      "expected_strikeouts": 4.81,
      "skill_score": 9.3,
      "opportunity_score": 54.8,
      "opponent_weakness_score": 40.4,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 43.8,
      "suppression_tier": "MILD_SUPPRESSION",
      "suppression_label": "Mild Suppression",
      "suppression_note": "Some workload drag is present, but the strikeout path remains mostly intact.",
      "interaction_tier": "NEUTRAL_ALIGNMENT",
      "interaction_label": "Neutral Alignment",
      "interaction_note": "The signal stack is mixed and better used as context than conviction.",
      "trust_modifier": "NEUTRAL",
      "trust_label": "Neutral",
      "trust_note": "The strikeout trust picture is mixed and better used as context than conviction.",
      "baseline_projected_strikeouts": 4.69,
      "matchup_adjusted_projected_strikeouts": 4.81,
      "adjustment_delta": 0.12,
      "adjustment_multiplier": 1.036,
      "strikeout_epoch": "strikeout_v2_2026-08-09",
      "probability_semantics": "final_starter_strikeouts_at_least_threshold",
      "calibration_status": "tracking_identity",
      "calibration_version": null,
      "raw_prob_4_plus": 0.6716,
      "raw_prob_5_plus": 0.5065,
      "raw_prob_6_plus": 0.3538,
      "raw_prob_7_plus": 0.2302,
      "raw_prob_8_plus": 0.1405,
      "prob_4_plus": 0.6716,
      "prob_5_plus": 0.5065,
      "prob_6_plus": 0.3538,
      "prob_7_plus": 0.2302,
      "prob_8_plus": 0.1405,
      "context": {
        "aggregate_matchup_score": 52.4,
        "lineup_expected_strikeouts": 5.14,
        "lineup_source": "projected",
        "lineup_confidence": "projected",
        "confirmed_lineup_flag": false,
        "pitch_mix_sample_size": 9633.0,
        "temperature_f": 56.1,
        "wind_speed_mph": 10.7,
        "wind_direction": "out",
        "environment_summary": "neutral",
        "environment_k_multiplier": 0.99,
        "environment_hr_multiplier": 0.965,
        "projected_batting_order_top_5": [
          {
            "spot": 1,
            "hitter_name": "Luis Arraez",
            "weight": 1.08
          },
          {
            "spot": 2,
            "hitter_name": "Rafael Devers",
            "weight": 1.05
          },
          {
            "spot": 3,
            "hitter_name": "Matt Chapman",
            "weight": 1.03
          },
          {
            "spot": 4,
            "hitter_name": "Willy Adames",
            "weight": 1.02
          },
          {
            "spot": 5,
            "hitter_name": "Heliot Ramos",
            "weight": 1.0
          }
        ],
        "top_hitter_matchups": [
          {
            "hitter_name": "Tyler Fitzgerald",
            "matchup_score": 76.9,
            "expected_strikeout_likelihood": 137.7,
            "expected_contact_quality": 60.4
          },
          {
            "hitter_name": "Harrison Bader",
            "matchup_score": 64.8,
            "expected_strikeout_likelihood": 119.5,
            "expected_contact_quality": 81.8
          },
          {
            "hitter_name": "Casey Schmitt",
            "matchup_score": 64.0,
            "expected_strikeout_likelihood": 116.5,
            "expected_contact_quality": 73.2
          }
        ],
        "opponent_team_k_rate": 0.2357
      },
      "captured_at": "2026-09-22T03:36:55.084143+00:00"
    }
  ],
  "skipped_starts": [
    {
      "pitcher_id": 702056,
      "pitcher_name": "Trey Yesavage",
      "reason": "No lineup-level matchup context was available for this starter."
    },
    {
      "pitcher_id": 689981,
      "pitcher_name": "River Ryan",
      "reason": "No lineup-level matchup context was available for this starter."
    },
    {
      "pitcher_id": 687792,
      "pitcher_name": "DJ Herz",
      "reason": "No lineup-level matchup context was available for this starter."
    },
    {
      "pitcher_id": 694918,
      "pitcher_name": "Blade Tidwell",
      "reason": "No lineup-level matchup context was available for this starter."
    }
  ]
}