{
  "date": "2026-05-17",
  "generated_at": "2026-05-17T14:46:33.576727",
  "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-17",
  "sportsbook_input_summary": {
    "input_type": "canonical_processed_sportsbook_input",
    "source_count": 1,
    "row_count": 28,
    "matched_count": 21,
    "unmatched_count": 7
  },
  "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": 21,
    "grouped_pitcher_count": 6,
    "sportsbook_count": 3
  },
  "edge_count": 21,
  "edges": [
    {
      "pitcher_name": "Michael Soroka",
      "pitcher_id": 647336,
      "team_abbr": "AZ",
      "opponent_abbr": "COL",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:49.000Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": -105,
      "under_odds": -125,
      "expected_strikeouts": 4.57,
      "baseline_projected_strikeouts": 4.27,
      "adjusted_projected_strikeouts": 4.57,
      "skill_score": 20.0,
      "opportunity_score": 54.3,
      "opponent_weakness_score": 42.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 39.6,
      "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.",
      "model_over_probability": 0.3168,
      "model_under_probability": 0.6832,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5122,
      "implied_under_probability_raw": 0.5556,
      "implied_over_probability_novig": 0.4797,
      "implied_under_probability_novig": 0.5203,
      "edge_over": -0.1954,
      "edge_under": 0.1276,
      "recommended_side": "Under",
      "recommended_edge": 0.1276,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.3,
      "adjustment_multiplier": 1.071,
      "aggregate_matchup_score": 50.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 11610.0,
      "lineup_expected_strikeouts": 5.13,
      "environment_summary": "neutral",
      "temperature_f": 59.4,
      "wind_speed_mph": 7.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Michael Soroka",
      "pitcher_id": 647336,
      "team_abbr": "AZ",
      "opponent_abbr": "COL",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:26.000Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": -102,
      "under_odds": -130,
      "expected_strikeouts": 4.57,
      "baseline_projected_strikeouts": 4.27,
      "adjusted_projected_strikeouts": 4.57,
      "skill_score": 20.0,
      "opportunity_score": 54.3,
      "opponent_weakness_score": 42.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 39.6,
      "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.",
      "model_over_probability": 0.3168,
      "model_under_probability": 0.6832,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.505,
      "implied_under_probability_raw": 0.5652,
      "implied_over_probability_novig": 0.4719,
      "implied_under_probability_novig": 0.5281,
      "edge_over": -0.1882,
      "edge_under": 0.118,
      "recommended_side": "Under",
      "recommended_edge": 0.118,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.3,
      "adjustment_multiplier": 1.071,
      "aggregate_matchup_score": 50.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 11610.0,
      "lineup_expected_strikeouts": 5.13,
      "environment_summary": "neutral",
      "temperature_f": 59.4,
      "wind_speed_mph": 7.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Michael Soroka",
      "pitcher_id": 647336,
      "team_abbr": "AZ",
      "opponent_abbr": "COL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": -102,
      "under_odds": -130,
      "expected_strikeouts": 4.57,
      "baseline_projected_strikeouts": 4.27,
      "adjusted_projected_strikeouts": 4.57,
      "skill_score": 20.0,
      "opportunity_score": 54.3,
      "opponent_weakness_score": 42.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 39.6,
      "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.",
      "model_over_probability": 0.3168,
      "model_under_probability": 0.6832,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.505,
      "implied_under_probability_raw": 0.5652,
      "implied_over_probability_novig": 0.4719,
      "implied_under_probability_novig": 0.5281,
      "edge_over": -0.1882,
      "edge_under": 0.118,
      "recommended_side": "Under",
      "recommended_edge": 0.118,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.3,
      "adjustment_multiplier": 1.071,
      "aggregate_matchup_score": 50.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 11610.0,
      "lineup_expected_strikeouts": 5.13,
      "environment_summary": "neutral",
      "temperature_f": 59.4,
      "wind_speed_mph": 7.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Michael Soroka",
      "pitcher_id": 647336,
      "team_abbr": "AZ",
      "opponent_abbr": "COL",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:35.000Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": 104,
      "under_odds": -133,
      "expected_strikeouts": 4.57,
      "baseline_projected_strikeouts": 4.27,
      "adjusted_projected_strikeouts": 4.57,
      "skill_score": 20.0,
      "opportunity_score": 54.3,
      "opponent_weakness_score": 42.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 39.6,
      "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.",
      "model_over_probability": 0.3168,
      "model_under_probability": 0.6832,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4902,
      "implied_under_probability_raw": 0.5708,
      "implied_over_probability_novig": 0.462,
      "implied_under_probability_novig": 0.538,
      "edge_over": -0.1734,
      "edge_under": 0.1124,
      "recommended_side": "Under",
      "recommended_edge": 0.1124,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.3,
      "adjustment_multiplier": 1.071,
      "aggregate_matchup_score": 50.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 11610.0,
      "lineup_expected_strikeouts": 5.13,
      "environment_summary": "neutral",
      "temperature_f": 59.4,
      "wind_speed_mph": 7.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Michael Lorenzen",
      "pitcher_id": 547179,
      "team_abbr": "COL",
      "opponent_abbr": "AZ",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:49.000Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": 115,
      "under_odds": -155,
      "expected_strikeouts": 3.96,
      "baseline_projected_strikeouts": 4.13,
      "adjusted_projected_strikeouts": 3.96,
      "skill_score": 11.1,
      "opportunity_score": 41.5,
      "opponent_weakness_score": 26.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 55.2,
      "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.",
      "model_over_probability": 0.5381,
      "model_under_probability": 0.4619,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4651,
      "implied_under_probability_raw": 0.6078,
      "implied_over_probability_novig": 0.4335,
      "implied_under_probability_novig": 0.5665,
      "edge_over": 0.073,
      "edge_under": -0.1459,
      "recommended_side": "Over",
      "recommended_edge": 0.073,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.17,
      "adjustment_multiplier": 0.958,
      "aggregate_matchup_score": 26.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 26336.0,
      "lineup_expected_strikeouts": 3.85,
      "environment_summary": "neutral",
      "temperature_f": 59.4,
      "wind_speed_mph": 7.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Michael Lorenzen",
      "pitcher_id": 547179,
      "team_abbr": "COL",
      "opponent_abbr": "AZ",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:26.000Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": 110,
      "under_odds": -134,
      "expected_strikeouts": 3.96,
      "baseline_projected_strikeouts": 4.13,
      "adjusted_projected_strikeouts": 3.96,
      "skill_score": 11.1,
      "opportunity_score": 41.5,
      "opponent_weakness_score": 26.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 55.2,
      "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.",
      "model_over_probability": 0.5381,
      "model_under_probability": 0.4619,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4762,
      "implied_under_probability_raw": 0.5726,
      "implied_over_probability_novig": 0.454,
      "implied_under_probability_novig": 0.546,
      "edge_over": 0.0619,
      "edge_under": -0.1107,
      "recommended_side": "Over",
      "recommended_edge": 0.0619,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.17,
      "adjustment_multiplier": 0.958,
      "aggregate_matchup_score": 26.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 26336.0,
      "lineup_expected_strikeouts": 3.85,
      "environment_summary": "neutral",
      "temperature_f": 59.4,
      "wind_speed_mph": 7.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Michael Lorenzen",
      "pitcher_id": 547179,
      "team_abbr": "COL",
      "opponent_abbr": "AZ",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 3.5,
      "line_type": "half",
      "over_odds": 110,
      "under_odds": -134,
      "expected_strikeouts": 3.96,
      "baseline_projected_strikeouts": 4.13,
      "adjusted_projected_strikeouts": 3.96,
      "skill_score": 11.1,
      "opportunity_score": 41.5,
      "opponent_weakness_score": 26.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 55.2,
      "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.",
      "model_over_probability": 0.5381,
      "model_under_probability": 0.4619,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4762,
      "implied_under_probability_raw": 0.5726,
      "implied_over_probability_novig": 0.454,
      "implied_under_probability_novig": 0.546,
      "edge_over": 0.0619,
      "edge_under": -0.1107,
      "recommended_side": "Over",
      "recommended_edge": 0.0619,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.17,
      "adjustment_multiplier": 0.958,
      "aggregate_matchup_score": 26.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 26336.0,
      "lineup_expected_strikeouts": 3.85,
      "environment_summary": "neutral",
      "temperature_f": 59.4,
      "wind_speed_mph": 7.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Jeffrey Springs",
      "pitcher_id": 605488,
      "team_abbr": "ATH",
      "opponent_abbr": "SF",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:35.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -150,
      "under_odds": 110,
      "expected_strikeouts": 4.57,
      "baseline_projected_strikeouts": 4.68,
      "adjusted_projected_strikeouts": 4.57,
      "skill_score": 27.6,
      "opportunity_score": 37.5,
      "opponent_weakness_score": 28.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 58.8,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.4676,
      "model_under_probability": 0.5324,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.6,
      "implied_under_probability_raw": 0.4762,
      "implied_over_probability_novig": 0.5575,
      "implied_under_probability_novig": 0.4425,
      "edge_over": -0.1324,
      "edge_under": 0.0562,
      "recommended_side": "Under",
      "recommended_edge": 0.0562,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.11,
      "adjustment_multiplier": 0.968,
      "aggregate_matchup_score": 39.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 16173.0,
      "lineup_expected_strikeouts": 4.36,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 68.0,
      "wind_speed_mph": 15.0,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Jeffrey Springs",
      "pitcher_id": 605488,
      "team_abbr": "ATH",
      "opponent_abbr": "SF",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:43.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -141,
      "under_odds": 110,
      "expected_strikeouts": 4.57,
      "baseline_projected_strikeouts": 4.68,
      "adjusted_projected_strikeouts": 4.57,
      "skill_score": 27.6,
      "opportunity_score": 37.5,
      "opponent_weakness_score": 28.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 58.8,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.4676,
      "model_under_probability": 0.5324,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5851,
      "implied_under_probability_raw": 0.4762,
      "implied_over_probability_novig": 0.5513,
      "implied_under_probability_novig": 0.4487,
      "edge_over": -0.1175,
      "edge_under": 0.0562,
      "recommended_side": "Under",
      "recommended_edge": 0.0562,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.11,
      "adjustment_multiplier": 0.968,
      "aggregate_matchup_score": 39.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 16173.0,
      "lineup_expected_strikeouts": 4.36,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 68.0,
      "wind_speed_mph": 15.0,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Jeffrey Springs",
      "pitcher_id": 605488,
      "team_abbr": "ATH",
      "opponent_abbr": "SF",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:19.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -134,
      "under_odds": 110,
      "expected_strikeouts": 4.57,
      "baseline_projected_strikeouts": 4.68,
      "adjusted_projected_strikeouts": 4.57,
      "skill_score": 27.6,
      "opportunity_score": 37.5,
      "opponent_weakness_score": 28.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 58.8,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.4676,
      "model_under_probability": 0.5324,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5726,
      "implied_under_probability_raw": 0.4762,
      "implied_over_probability_novig": 0.546,
      "implied_under_probability_novig": 0.454,
      "edge_over": -0.105,
      "edge_under": 0.0562,
      "recommended_side": "Under",
      "recommended_edge": 0.0562,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.11,
      "adjustment_multiplier": 0.968,
      "aggregate_matchup_score": 39.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 16173.0,
      "lineup_expected_strikeouts": 4.36,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 68.0,
      "wind_speed_mph": 15.0,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Jeffrey Springs",
      "pitcher_id": 605488,
      "team_abbr": "ATH",
      "opponent_abbr": "SF",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -134,
      "under_odds": 110,
      "expected_strikeouts": 4.57,
      "baseline_projected_strikeouts": 4.68,
      "adjusted_projected_strikeouts": 4.57,
      "skill_score": 27.6,
      "opportunity_score": 37.5,
      "opponent_weakness_score": 28.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 58.8,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.4676,
      "model_under_probability": 0.5324,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5726,
      "implied_under_probability_raw": 0.4762,
      "implied_over_probability_novig": 0.546,
      "implied_under_probability_novig": 0.454,
      "edge_over": -0.105,
      "edge_under": 0.0562,
      "recommended_side": "Under",
      "recommended_edge": 0.0562,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.11,
      "adjustment_multiplier": 0.968,
      "aggregate_matchup_score": 39.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 16173.0,
      "lineup_expected_strikeouts": 4.36,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 68.0,
      "wind_speed_mph": 15.0,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Michael Lorenzen",
      "pitcher_id": 547179,
      "team_abbr": "COL",
      "opponent_abbr": "AZ",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:35.000Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": 107,
      "under_odds": -137,
      "expected_strikeouts": 3.96,
      "baseline_projected_strikeouts": 4.13,
      "adjusted_projected_strikeouts": 3.96,
      "skill_score": 11.1,
      "opportunity_score": 41.5,
      "opponent_weakness_score": 26.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 55.2,
      "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.",
      "model_over_probability": 0.5381,
      "model_under_probability": 0.4619,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4831,
      "implied_under_probability_raw": 0.5781,
      "implied_over_probability_novig": 0.4552,
      "implied_under_probability_novig": 0.5448,
      "edge_over": 0.055,
      "edge_under": -0.1162,
      "recommended_side": "Over",
      "recommended_edge": 0.055,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.17,
      "adjustment_multiplier": 0.958,
      "aggregate_matchup_score": 26.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 26336.0,
      "lineup_expected_strikeouts": 3.85,
      "environment_summary": "neutral",
      "temperature_f": 59.4,
      "wind_speed_mph": 7.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Adrian Houser",
      "pitcher_id": 605288,
      "team_abbr": "SF",
      "opponent_abbr": "ATH",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:43.000Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": 101,
      "under_odds": -128,
      "expected_strikeouts": 3.85,
      "baseline_projected_strikeouts": 3.42,
      "adjusted_projected_strikeouts": 3.85,
      "skill_score": 3.9,
      "opportunity_score": 36.4,
      "opponent_weakness_score": 39.2,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 57.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.",
      "model_over_probability": 0.5184,
      "model_under_probability": 0.4816,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4975,
      "implied_under_probability_raw": 0.5614,
      "implied_over_probability_novig": 0.4698,
      "implied_under_probability_novig": 0.5302,
      "edge_over": 0.0209,
      "edge_under": -0.0798,
      "recommended_side": "Over",
      "recommended_edge": 0.0209,
      "play_tier": "Lean",
      "no_play_reason": null,
      "adjustment_delta": 0.43,
      "adjustment_multiplier": 1.114,
      "aggregate_matchup_score": 42.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 17064.0,
      "lineup_expected_strikeouts": 5.11,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 68.0,
      "wind_speed_mph": 15.0,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Adrian Houser",
      "pitcher_id": 605288,
      "team_abbr": "SF",
      "opponent_abbr": "ATH",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:35.000Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": -105,
      "under_odds": -125,
      "expected_strikeouts": 3.85,
      "baseline_projected_strikeouts": 3.42,
      "adjusted_projected_strikeouts": 3.85,
      "skill_score": 3.9,
      "opportunity_score": 36.4,
      "opponent_weakness_score": 39.2,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 57.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.",
      "model_over_probability": 0.5184,
      "model_under_probability": 0.4816,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5122,
      "implied_under_probability_raw": 0.5556,
      "implied_over_probability_novig": 0.4797,
      "implied_under_probability_novig": 0.5203,
      "edge_over": 0.0062,
      "edge_under": -0.074,
      "recommended_side": "No Play",
      "recommended_edge": 0.0062,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.43,
      "adjustment_multiplier": 1.114,
      "aggregate_matchup_score": 42.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 17064.0,
      "lineup_expected_strikeouts": 5.11,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 68.0,
      "wind_speed_mph": 15.0,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Lucas Giolito",
      "pitcher_id": 608337,
      "team_abbr": "SD",
      "opponent_abbr": "SEA",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 100,
      "under_odds": -132,
      "expected_strikeouts": 4.33,
      "baseline_projected_strikeouts": 3.87,
      "adjusted_projected_strikeouts": 4.33,
      "skill_score": 10.0,
      "opportunity_score": 62.5,
      "opponent_weakness_score": 36.3,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 35.4,
      "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.",
      "model_over_probability": 0.4274,
      "model_under_probability": 0.5726,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5,
      "implied_under_probability_raw": 0.569,
      "implied_over_probability_novig": 0.4677,
      "implied_under_probability_novig": 0.5323,
      "edge_over": -0.0726,
      "edge_under": 0.0036,
      "recommended_side": "No Play",
      "recommended_edge": 0.0036,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.46,
      "adjustment_multiplier": 1.108,
      "aggregate_matchup_score": 36.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 21405.0,
      "lineup_expected_strikeouts": 5.42,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 49.8,
      "wind_speed_mph": 4.7,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "George Kirby",
      "pitcher_id": 669923,
      "team_abbr": "SEA",
      "opponent_abbr": "SD",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:31:55.000Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": 110,
      "under_odds": -150,
      "expected_strikeouts": 5.61,
      "baseline_projected_strikeouts": 5.62,
      "adjusted_projected_strikeouts": 5.61,
      "skill_score": 19.0,
      "opportunity_score": 66.2,
      "opponent_weakness_score": 37.4,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 23.5,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "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.",
      "model_over_probability": 0.4743,
      "model_under_probability": 0.5257,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4762,
      "implied_under_probability_raw": 0.6,
      "implied_over_probability_novig": 0.4425,
      "implied_under_probability_novig": 0.5575,
      "edge_over": -0.0019,
      "edge_under": -0.0743,
      "recommended_side": "No Play",
      "recommended_edge": -0.0019,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.01,
      "adjustment_multiplier": 0.989,
      "aggregate_matchup_score": 58.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30773.0,
      "lineup_expected_strikeouts": 5.34,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 49.8,
      "wind_speed_mph": 4.7,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Adrian Houser",
      "pitcher_id": 605288,
      "team_abbr": "SF",
      "opponent_abbr": "ATH",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:19.000Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": -114,
      "under_odds": -114,
      "expected_strikeouts": 3.85,
      "baseline_projected_strikeouts": 3.42,
      "adjusted_projected_strikeouts": 3.85,
      "skill_score": 3.9,
      "opportunity_score": 36.4,
      "opponent_weakness_score": 39.2,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 57.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.",
      "model_over_probability": 0.5184,
      "model_under_probability": 0.4816,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5327,
      "implied_under_probability_raw": 0.5327,
      "implied_over_probability_novig": 0.5,
      "implied_under_probability_novig": 0.5,
      "edge_over": -0.0143,
      "edge_under": -0.0511,
      "recommended_side": "No Play",
      "recommended_edge": -0.0143,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.43,
      "adjustment_multiplier": 1.114,
      "aggregate_matchup_score": 42.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 17064.0,
      "lineup_expected_strikeouts": 5.11,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 68.0,
      "wind_speed_mph": 15.0,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Adrian Houser",
      "pitcher_id": 605288,
      "team_abbr": "SF",
      "opponent_abbr": "ATH",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 3.5,
      "line_type": "half",
      "over_odds": -114,
      "under_odds": -114,
      "expected_strikeouts": 3.85,
      "baseline_projected_strikeouts": 3.42,
      "adjusted_projected_strikeouts": 3.85,
      "skill_score": 3.9,
      "opportunity_score": 36.4,
      "opponent_weakness_score": 39.2,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 57.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.",
      "model_over_probability": 0.5184,
      "model_under_probability": 0.4816,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5327,
      "implied_under_probability_raw": 0.5327,
      "implied_over_probability_novig": 0.5,
      "implied_under_probability_novig": 0.5,
      "edge_over": -0.0143,
      "edge_under": -0.0511,
      "recommended_side": "No Play",
      "recommended_edge": -0.0143,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.43,
      "adjustment_multiplier": 1.114,
      "aggregate_matchup_score": 42.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 17064.0,
      "lineup_expected_strikeouts": 5.11,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 68.0,
      "wind_speed_mph": 15.0,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "George Kirby",
      "pitcher_id": 669923,
      "team_abbr": "SEA",
      "opponent_abbr": "SD",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:49.000Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": 102,
      "under_odds": -130,
      "expected_strikeouts": 5.61,
      "baseline_projected_strikeouts": 5.62,
      "adjusted_projected_strikeouts": 5.61,
      "skill_score": 19.0,
      "opportunity_score": 66.2,
      "opponent_weakness_score": 37.4,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 23.5,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "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.",
      "model_over_probability": 0.4743,
      "model_under_probability": 0.5257,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.495,
      "implied_under_probability_raw": 0.5652,
      "implied_over_probability_novig": 0.4669,
      "implied_under_probability_novig": 0.5331,
      "edge_over": -0.0207,
      "edge_under": -0.0395,
      "recommended_side": "No Play",
      "recommended_edge": -0.0207,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.01,
      "adjustment_multiplier": 0.989,
      "aggregate_matchup_score": 58.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30773.0,
      "lineup_expected_strikeouts": 5.34,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 49.8,
      "wind_speed_mph": 4.7,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "George Kirby",
      "pitcher_id": 669923,
      "team_abbr": "SEA",
      "opponent_abbr": "SD",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-05-17T18:32:27.000Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": 100,
      "under_odds": -122,
      "expected_strikeouts": 5.61,
      "baseline_projected_strikeouts": 5.62,
      "adjusted_projected_strikeouts": 5.61,
      "skill_score": 19.0,
      "opportunity_score": 66.2,
      "opponent_weakness_score": 37.4,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 23.5,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "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.",
      "model_over_probability": 0.4743,
      "model_under_probability": 0.5257,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5,
      "implied_under_probability_raw": 0.5495,
      "implied_over_probability_novig": 0.4764,
      "implied_under_probability_novig": 0.5236,
      "edge_over": -0.0257,
      "edge_under": -0.0238,
      "recommended_side": "No Play",
      "recommended_edge": -0.0238,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.01,
      "adjustment_multiplier": 0.989,
      "aggregate_matchup_score": 58.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30773.0,
      "lineup_expected_strikeouts": 5.34,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 49.8,
      "wind_speed_mph": 4.7,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "George Kirby",
      "pitcher_id": 669923,
      "team_abbr": "SEA",
      "opponent_abbr": "SD",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": 100,
      "under_odds": -122,
      "expected_strikeouts": 5.61,
      "baseline_projected_strikeouts": 5.62,
      "adjusted_projected_strikeouts": 5.61,
      "skill_score": 19.0,
      "opportunity_score": 66.2,
      "opponent_weakness_score": 37.4,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 23.5,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "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.",
      "model_over_probability": 0.4743,
      "model_under_probability": 0.5257,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5,
      "implied_under_probability_raw": 0.5495,
      "implied_over_probability_novig": 0.4764,
      "implied_under_probability_novig": 0.5236,
      "edge_over": -0.0257,
      "edge_under": -0.0238,
      "recommended_side": "No Play",
      "recommended_edge": -0.0238,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.01,
      "adjustment_multiplier": 0.989,
      "aggregate_matchup_score": 58.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30773.0,
      "lineup_expected_strikeouts": 5.34,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 49.8,
      "wind_speed_mph": 4.7,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    }
  ],
  "unmatched_inputs": [
    {
      "pitcher_name": "Grayson Rodriguez",
      "team_abbr": "LAA",
      "opponent_abbr": "LAD",
      "sportsbook": "DraftKings",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Grayson Rodriguez",
      "team_abbr": "LAA",
      "opponent_abbr": "LAD",
      "sportsbook": "FanDuel",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Grayson Rodriguez",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Roki Sasaki",
      "team_abbr": "LAD",
      "opponent_abbr": "LAA",
      "sportsbook": "BetMGM",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Roki Sasaki",
      "team_abbr": "LAD",
      "opponent_abbr": "LAA",
      "sportsbook": "DraftKings",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Roki Sasaki",
      "team_abbr": "LAD",
      "opponent_abbr": "LAA",
      "sportsbook": "FanDuel",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Roki Sasaki",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    }
  ]
}