{
  "date": "2026-04-30",
  "generated_at": "2026-04-29T21:15:42.281154",
  "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-04-30",
  "sportsbook_input_summary": {
    "input_type": "canonical_processed_sportsbook_input",
    "source_count": 1,
    "row_count": 31,
    "matched_count": 28,
    "unmatched_count": 3
  },
  "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": 28,
    "grouped_pitcher_count": 13,
    "sportsbook_count": 3
  },
  "edge_count": 28,
  "edges": [
    {
      "pitcher_name": "Michael Soroka",
      "pitcher_id": 647336,
      "team_abbr": "AZ",
      "opponent_abbr": "MIL",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:47.000Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": -118,
      "under_odds": -112,
      "expected_strikeouts": 4.26,
      "baseline_projected_strikeouts": 4.27,
      "adjusted_projected_strikeouts": 4.26,
      "skill_score": 40.6,
      "opportunity_score": 58.3,
      "opponent_weakness_score": 28.9,
      "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.2694,
      "model_under_probability": 0.7306,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5413,
      "implied_under_probability_raw": 0.5283,
      "implied_over_probability_novig": 0.5061,
      "implied_under_probability_novig": 0.4939,
      "edge_over": -0.2719,
      "edge_under": 0.2023,
      "recommended_side": "Under",
      "recommended_edge": 0.2023,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.01,
      "adjustment_multiplier": 0.989,
      "aggregate_matchup_score": 33.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 11610.0,
      "lineup_expected_strikeouts": 4.29,
      "environment_summary": "neutral",
      "temperature_f": 42.1,
      "wind_speed_mph": 3.2,
      "wind_direction": "cross",
      "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": "MIL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": -118,
      "under_odds": -112,
      "expected_strikeouts": 4.26,
      "baseline_projected_strikeouts": 4.27,
      "adjusted_projected_strikeouts": 4.26,
      "skill_score": 40.6,
      "opportunity_score": 58.3,
      "opponent_weakness_score": 28.9,
      "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.2694,
      "model_under_probability": 0.7306,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5413,
      "implied_under_probability_raw": 0.5283,
      "implied_over_probability_novig": 0.5061,
      "implied_under_probability_novig": 0.4939,
      "edge_over": -0.2719,
      "edge_under": 0.2023,
      "recommended_side": "Under",
      "recommended_edge": 0.2023,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.01,
      "adjustment_multiplier": 0.989,
      "aggregate_matchup_score": 33.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 11610.0,
      "lineup_expected_strikeouts": 4.29,
      "environment_summary": "neutral",
      "temperature_f": 42.1,
      "wind_speed_mph": 3.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Noah Cameron",
      "pitcher_id": 702070,
      "team_abbr": "KC",
      "opponent_abbr": "ATH",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:09:04.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -148,
      "under_odds": 112,
      "expected_strikeouts": 4.43,
      "baseline_projected_strikeouts": 4.0,
      "adjusted_projected_strikeouts": 4.43,
      "skill_score": 16.8,
      "opportunity_score": 44.8,
      "opponent_weakness_score": 40.6,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 50.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.4443,
      "model_under_probability": 0.5557,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5968,
      "implied_under_probability_raw": 0.4717,
      "implied_over_probability_novig": 0.5585,
      "implied_under_probability_novig": 0.4415,
      "edge_over": -0.1525,
      "edge_under": 0.084,
      "recommended_side": "Under",
      "recommended_edge": 0.084,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.43,
      "adjustment_multiplier": 1.107,
      "aggregate_matchup_score": 45.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 10820.0,
      "lineup_expected_strikeouts": 5.26,
      "environment_summary": "neutral",
      "temperature_f": 74.5,
      "wind_speed_mph": 9.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Noah Cameron",
      "pitcher_id": 702070,
      "team_abbr": "KC",
      "opponent_abbr": "ATH",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -148,
      "under_odds": 112,
      "expected_strikeouts": 4.43,
      "baseline_projected_strikeouts": 4.0,
      "adjusted_projected_strikeouts": 4.43,
      "skill_score": 16.8,
      "opportunity_score": 44.8,
      "opponent_weakness_score": 40.6,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 50.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.4443,
      "model_under_probability": 0.5557,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5968,
      "implied_under_probability_raw": 0.4717,
      "implied_over_probability_novig": 0.5585,
      "implied_under_probability_novig": 0.4415,
      "edge_over": -0.1525,
      "edge_under": 0.084,
      "recommended_side": "Under",
      "recommended_edge": 0.084,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.43,
      "adjustment_multiplier": 1.107,
      "aggregate_matchup_score": 45.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 10820.0,
      "lineup_expected_strikeouts": 5.26,
      "environment_summary": "neutral",
      "temperature_f": 74.5,
      "wind_speed_mph": 9.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Paul Skenes",
      "pitcher_id": 694973,
      "team_abbr": "PIT",
      "opponent_abbr": "STL",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:37.000Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": -130,
      "under_odds": -102,
      "expected_strikeouts": 6.16,
      "baseline_projected_strikeouts": 5.7,
      "adjusted_projected_strikeouts": 6.16,
      "skill_score": 42.5,
      "opportunity_score": 28.6,
      "opponent_weakness_score": 54.4,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 98.7,
      "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.4142,
      "model_under_probability": 0.5858,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5652,
      "implied_under_probability_raw": 0.505,
      "implied_over_probability_novig": 0.5281,
      "implied_under_probability_novig": 0.4719,
      "edge_over": -0.151,
      "edge_under": 0.0808,
      "recommended_side": "Under",
      "recommended_edge": 0.0808,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.46,
      "adjustment_multiplier": 1.07,
      "aggregate_matchup_score": 80.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 23485.0,
      "lineup_expected_strikeouts": 6.43,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 48.0,
      "wind_speed_mph": 9.4,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Paul Skenes",
      "pitcher_id": 694973,
      "team_abbr": "PIT",
      "opponent_abbr": "STL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 6.5,
      "line_type": "half",
      "over_odds": -130,
      "under_odds": -102,
      "expected_strikeouts": 6.16,
      "baseline_projected_strikeouts": 5.7,
      "adjusted_projected_strikeouts": 6.16,
      "skill_score": 42.5,
      "opportunity_score": 28.6,
      "opponent_weakness_score": 54.4,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 98.7,
      "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.4142,
      "model_under_probability": 0.5858,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5652,
      "implied_under_probability_raw": 0.505,
      "implied_over_probability_novig": 0.5281,
      "implied_under_probability_novig": 0.4719,
      "edge_over": -0.151,
      "edge_under": 0.0808,
      "recommended_side": "Under",
      "recommended_edge": 0.0808,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.46,
      "adjustment_multiplier": 1.07,
      "aggregate_matchup_score": 80.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 23485.0,
      "lineup_expected_strikeouts": 6.43,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 48.0,
      "wind_speed_mph": 9.4,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Cristopher S\u00e1nchez",
      "pitcher_id": 650911,
      "team_abbr": "PHI",
      "opponent_abbr": "SF",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:26.777Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": 100,
      "under_odds": -127,
      "expected_strikeouts": 6.08,
      "baseline_projected_strikeouts": 6.21,
      "adjusted_projected_strikeouts": 6.08,
      "skill_score": 60.0,
      "opportunity_score": 70.3,
      "opponent_weakness_score": 39.3,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 24.0,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "STRONG_ALIGNMENT",
      "interaction_label": "Strong Alignment",
      "interaction_note": "The strikeout structure is favorable, but not as clean as the premium runway pocket.",
      "trust_modifier": "WATCHLIST_RUNWAY",
      "trust_label": "Watchlist Runway",
      "trust_note": "The strikeout structure is supportive and worth watching, but it is not as clean as the premium bucket.",
      "model_over_probability": 0.4033,
      "model_under_probability": 0.5967,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5,
      "implied_under_probability_raw": 0.5595,
      "implied_over_probability_novig": 0.4719,
      "implied_under_probability_novig": 0.5281,
      "edge_over": -0.0967,
      "edge_under": 0.0372,
      "recommended_side": "Under",
      "recommended_edge": 0.0372,
      "play_tier": "Play",
      "no_play_reason": null,
      "adjustment_delta": -0.13,
      "adjustment_multiplier": 0.979,
      "aggregate_matchup_score": 65.0,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30021.0,
      "lineup_expected_strikeouts": 5.64,
      "environment_summary": "hitter-friendly",
      "temperature_f": 63.5,
      "wind_speed_mph": 10.3,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Hunter Dobbins",
      "pitcher_id": 690928,
      "team_abbr": "STL",
      "opponent_abbr": "PIT",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:26.777Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": -112,
      "under_odds": -118,
      "expected_strikeouts": 3.36,
      "baseline_projected_strikeouts": 3.14,
      "adjusted_projected_strikeouts": 3.36,
      "skill_score": 7.3,
      "opportunity_score": 15.4,
      "opponent_weakness_score": 35.6,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 96.9,
      "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.4251,
      "model_under_probability": 0.5749,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5283,
      "implied_under_probability_raw": 0.5413,
      "implied_over_probability_novig": 0.4939,
      "implied_under_probability_novig": 0.5061,
      "edge_over": -0.1032,
      "edge_under": 0.0336,
      "recommended_side": "Under",
      "recommended_edge": 0.0336,
      "play_tier": "Play",
      "no_play_reason": null,
      "adjustment_delta": 0.22,
      "adjustment_multiplier": 1.059,
      "aggregate_matchup_score": 27.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 4095.0,
      "lineup_expected_strikeouts": 3.85,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 48.0,
      "wind_speed_mph": 9.4,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Hunter Dobbins",
      "pitcher_id": 690928,
      "team_abbr": "STL",
      "opponent_abbr": "PIT",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 3.5,
      "line_type": "half",
      "over_odds": -112,
      "under_odds": -118,
      "expected_strikeouts": 3.36,
      "baseline_projected_strikeouts": 3.14,
      "adjusted_projected_strikeouts": 3.36,
      "skill_score": 7.3,
      "opportunity_score": 15.4,
      "opponent_weakness_score": 35.6,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 96.9,
      "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.4251,
      "model_under_probability": 0.5749,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5283,
      "implied_under_probability_raw": 0.5413,
      "implied_over_probability_novig": 0.4939,
      "implied_under_probability_novig": 0.5061,
      "edge_over": -0.1032,
      "edge_under": 0.0336,
      "recommended_side": "Under",
      "recommended_edge": 0.0336,
      "play_tier": "Play",
      "no_play_reason": null,
      "adjustment_delta": 0.22,
      "adjustment_multiplier": 1.059,
      "aggregate_matchup_score": 27.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 4095.0,
      "lineup_expected_strikeouts": 3.85,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 48.0,
      "wind_speed_mph": 9.4,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Cristopher S\u00e1nchez",
      "pitcher_id": 650911,
      "team_abbr": "PHI",
      "opponent_abbr": "SF",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-29T21:37:08.000Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": -105,
      "under_odds": -130,
      "expected_strikeouts": 6.08,
      "baseline_projected_strikeouts": 6.21,
      "adjusted_projected_strikeouts": 6.08,
      "skill_score": 60.0,
      "opportunity_score": 70.3,
      "opponent_weakness_score": 39.3,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 24.0,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "STRONG_ALIGNMENT",
      "interaction_label": "Strong Alignment",
      "interaction_note": "The strikeout structure is favorable, but not as clean as the premium runway pocket.",
      "trust_modifier": "WATCHLIST_RUNWAY",
      "trust_label": "Watchlist Runway",
      "trust_note": "The strikeout structure is supportive and worth watching, but it is not as clean as the premium bucket.",
      "model_over_probability": 0.4033,
      "model_under_probability": 0.5967,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5122,
      "implied_under_probability_raw": 0.5652,
      "implied_over_probability_novig": 0.4754,
      "implied_under_probability_novig": 0.5246,
      "edge_over": -0.1089,
      "edge_under": 0.0315,
      "recommended_side": "Under",
      "recommended_edge": 0.0315,
      "play_tier": "Play",
      "no_play_reason": null,
      "adjustment_delta": -0.13,
      "adjustment_multiplier": 0.979,
      "aggregate_matchup_score": 65.0,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30021.0,
      "lineup_expected_strikeouts": 5.64,
      "environment_summary": "hitter-friendly",
      "temperature_f": 63.5,
      "wind_speed_mph": 10.3,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Kevin Gausman",
      "pitcher_id": 592332,
      "team_abbr": "TOR",
      "opponent_abbr": "MIN",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:59.000Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": -138,
      "under_odds": 104,
      "expected_strikeouts": 5.72,
      "baseline_projected_strikeouts": 5.54,
      "adjusted_projected_strikeouts": 5.72,
      "skill_score": 48.2,
      "opportunity_score": 50.0,
      "opponent_weakness_score": 41.1,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 39.0,
      "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.4901,
      "model_under_probability": 0.5099,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5798,
      "implied_under_probability_raw": 0.4902,
      "implied_over_probability_novig": 0.5419,
      "implied_under_probability_novig": 0.4581,
      "edge_over": -0.0897,
      "edge_under": 0.0197,
      "recommended_side": "Under",
      "recommended_edge": 0.0197,
      "play_tier": "Lean",
      "no_play_reason": null,
      "adjustment_delta": 0.18,
      "adjustment_multiplier": 1.023,
      "aggregate_matchup_score": 58.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 35829.0,
      "lineup_expected_strikeouts": 5.79,
      "environment_summary": "neutral",
      "temperature_f": 35.4,
      "wind_speed_mph": 2.5,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Kevin Gausman",
      "pitcher_id": 592332,
      "team_abbr": "TOR",
      "opponent_abbr": "MIN",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": -138,
      "under_odds": 104,
      "expected_strikeouts": 5.72,
      "baseline_projected_strikeouts": 5.54,
      "adjusted_projected_strikeouts": 5.72,
      "skill_score": 48.2,
      "opportunity_score": 50.0,
      "opponent_weakness_score": 41.1,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 39.0,
      "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.4901,
      "model_under_probability": 0.5099,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5798,
      "implied_under_probability_raw": 0.4902,
      "implied_over_probability_novig": 0.5419,
      "implied_under_probability_novig": 0.4581,
      "edge_over": -0.0897,
      "edge_under": 0.0197,
      "recommended_side": "Under",
      "recommended_edge": 0.0197,
      "play_tier": "Lean",
      "no_play_reason": null,
      "adjustment_delta": 0.18,
      "adjustment_multiplier": 1.023,
      "aggregate_matchup_score": 58.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 35829.0,
      "lineup_expected_strikeouts": 5.79,
      "environment_summary": "neutral",
      "temperature_f": 35.4,
      "wind_speed_mph": 2.5,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Logan Webb",
      "pitcher_id": 657277,
      "team_abbr": "SF",
      "opponent_abbr": "PHI",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-29T21:37:08.000Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": 120,
      "under_odds": -160,
      "expected_strikeouts": 5.56,
      "baseline_projected_strikeouts": 5.3,
      "adjusted_projected_strikeouts": 5.56,
      "skill_score": 17.8,
      "opportunity_score": 83.0,
      "opponent_weakness_score": 43.3,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 11.4,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "STRONG_ALIGNMENT",
      "interaction_label": "Strong Alignment",
      "interaction_note": "The strikeout structure is favorable, but not as clean as the premium runway pocket.",
      "trust_modifier": "WATCHLIST_RUNWAY",
      "trust_label": "Watchlist Runway",
      "trust_note": "The strikeout structure is supportive and worth watching, but it is not as clean as the premium bucket.",
      "model_over_probability": 0.467,
      "model_under_probability": 0.533,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4545,
      "implied_under_probability_raw": 0.6154,
      "implied_over_probability_novig": 0.4248,
      "implied_under_probability_novig": 0.5752,
      "edge_over": 0.0125,
      "edge_under": -0.0824,
      "recommended_side": "No Play",
      "recommended_edge": 0.0125,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.26,
      "adjustment_multiplier": 1.049,
      "aggregate_matchup_score": 56.5,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 38756.0,
      "lineup_expected_strikeouts": 5.96,
      "environment_summary": "hitter-friendly",
      "temperature_f": 63.5,
      "wind_speed_mph": 10.3,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Logan Webb",
      "pitcher_id": 657277,
      "team_abbr": "SF",
      "opponent_abbr": "PHI",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:26.777Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": 120,
      "under_odds": -154,
      "expected_strikeouts": 5.56,
      "baseline_projected_strikeouts": 5.3,
      "adjusted_projected_strikeouts": 5.56,
      "skill_score": 17.8,
      "opportunity_score": 83.0,
      "opponent_weakness_score": 43.3,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 11.4,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "STRONG_ALIGNMENT",
      "interaction_label": "Strong Alignment",
      "interaction_note": "The strikeout structure is favorable, but not as clean as the premium runway pocket.",
      "trust_modifier": "WATCHLIST_RUNWAY",
      "trust_label": "Watchlist Runway",
      "trust_note": "The strikeout structure is supportive and worth watching, but it is not as clean as the premium bucket.",
      "model_over_probability": 0.467,
      "model_under_probability": 0.533,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4545,
      "implied_under_probability_raw": 0.6063,
      "implied_over_probability_novig": 0.4285,
      "implied_under_probability_novig": 0.5715,
      "edge_over": 0.0125,
      "edge_under": -0.0733,
      "recommended_side": "No Play",
      "recommended_edge": 0.0125,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.26,
      "adjustment_multiplier": 1.049,
      "aggregate_matchup_score": 56.5,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 38756.0,
      "lineup_expected_strikeouts": 5.96,
      "environment_summary": "hitter-friendly",
      "temperature_f": 63.5,
      "wind_speed_mph": 10.3,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Brandon Woodruff",
      "pitcher_id": 605540,
      "team_abbr": "MIL",
      "opponent_abbr": "AZ",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:47.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -174,
      "under_odds": 130,
      "expected_strikeouts": 5.77,
      "baseline_projected_strikeouts": 5.63,
      "adjusted_projected_strikeouts": 5.77,
      "skill_score": 15.8,
      "opportunity_score": 45.0,
      "opponent_weakness_score": 44.3,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 50.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.6444,
      "model_under_probability": 0.3556,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.635,
      "implied_under_probability_raw": 0.4348,
      "implied_over_probability_novig": 0.5936,
      "implied_under_probability_novig": 0.4064,
      "edge_over": 0.0094,
      "edge_under": -0.0792,
      "recommended_side": "No Play",
      "recommended_edge": 0.0094,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.14,
      "adjustment_multiplier": 1.014,
      "aggregate_matchup_score": 69.8,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 7949.0,
      "lineup_expected_strikeouts": 5.6,
      "environment_summary": "neutral",
      "temperature_f": 42.1,
      "wind_speed_mph": 3.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Brandon Woodruff",
      "pitcher_id": 605540,
      "team_abbr": "MIL",
      "opponent_abbr": "AZ",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -174,
      "under_odds": 130,
      "expected_strikeouts": 5.77,
      "baseline_projected_strikeouts": 5.63,
      "adjusted_projected_strikeouts": 5.77,
      "skill_score": 15.8,
      "opportunity_score": 45.0,
      "opponent_weakness_score": 44.3,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 50.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.6444,
      "model_under_probability": 0.3556,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.635,
      "implied_under_probability_raw": 0.4348,
      "implied_over_probability_novig": 0.5936,
      "implied_under_probability_novig": 0.4064,
      "edge_over": 0.0094,
      "edge_under": -0.0792,
      "recommended_side": "No Play",
      "recommended_edge": 0.0094,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.14,
      "adjustment_multiplier": 1.014,
      "aggregate_matchup_score": 69.8,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 7949.0,
      "lineup_expected_strikeouts": 5.6,
      "environment_summary": "neutral",
      "temperature_f": 42.1,
      "wind_speed_mph": 3.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Cristopher S\u00e1nchez",
      "pitcher_id": 650911,
      "team_abbr": "PHI",
      "opponent_abbr": "SF",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:26.777Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": 108,
      "under_odds": -144,
      "expected_strikeouts": 6.08,
      "baseline_projected_strikeouts": 6.21,
      "adjusted_projected_strikeouts": 6.08,
      "skill_score": 60.0,
      "opportunity_score": 70.3,
      "opponent_weakness_score": 39.3,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 24.0,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "STRONG_ALIGNMENT",
      "interaction_label": "Strong Alignment",
      "interaction_note": "The strikeout structure is favorable, but not as clean as the premium runway pocket.",
      "trust_modifier": "WATCHLIST_RUNWAY",
      "trust_label": "Watchlist Runway",
      "trust_note": "The strikeout structure is supportive and worth watching, but it is not as clean as the premium bucket.",
      "model_over_probability": 0.4033,
      "model_under_probability": 0.5967,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4808,
      "implied_under_probability_raw": 0.5902,
      "implied_over_probability_novig": 0.4489,
      "implied_under_probability_novig": 0.5511,
      "edge_over": -0.0775,
      "edge_under": 0.0065,
      "recommended_side": "No Play",
      "recommended_edge": 0.0065,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.13,
      "adjustment_multiplier": 0.979,
      "aggregate_matchup_score": 65.0,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30021.0,
      "lineup_expected_strikeouts": 5.64,
      "environment_summary": "hitter-friendly",
      "temperature_f": 63.5,
      "wind_speed_mph": 10.3,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Bailey Ober",
      "pitcher_id": 641927,
      "team_abbr": "MIN",
      "opponent_abbr": "TOR",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:59.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 114,
      "under_odds": -152,
      "expected_strikeouts": 4.58,
      "baseline_projected_strikeouts": 4.34,
      "adjusted_projected_strikeouts": 4.58,
      "skill_score": 26.6,
      "opportunity_score": 45.0,
      "opponent_weakness_score": 39.7,
      "support_tier": "BALANCED_SUPPORT",
      "support_label": "Balanced Support",
      "support_note": "Support inputs are mixed but still healthy enough to trust contextually.",
      "suppression_score": 51.5,
      "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.4693,
      "model_under_probability": 0.5307,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4673,
      "implied_under_probability_raw": 0.6032,
      "implied_over_probability_novig": 0.4365,
      "implied_under_probability_novig": 0.5635,
      "edge_over": 0.002,
      "edge_under": -0.0725,
      "recommended_side": "No Play",
      "recommended_edge": 0.002,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.24,
      "adjustment_multiplier": 1.044,
      "aggregate_matchup_score": 48.1,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 29545.0,
      "lineup_expected_strikeouts": 4.91,
      "environment_summary": "neutral",
      "temperature_f": 35.4,
      "wind_speed_mph": 2.5,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Bailey Ober",
      "pitcher_id": 641927,
      "team_abbr": "MIN",
      "opponent_abbr": "TOR",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 114,
      "under_odds": -152,
      "expected_strikeouts": 4.58,
      "baseline_projected_strikeouts": 4.34,
      "adjusted_projected_strikeouts": 4.58,
      "skill_score": 26.6,
      "opportunity_score": 45.0,
      "opponent_weakness_score": 39.7,
      "support_tier": "BALANCED_SUPPORT",
      "support_label": "Balanced Support",
      "support_note": "Support inputs are mixed but still healthy enough to trust contextually.",
      "suppression_score": 51.5,
      "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.4693,
      "model_under_probability": 0.5307,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4673,
      "implied_under_probability_raw": 0.6032,
      "implied_over_probability_novig": 0.4365,
      "implied_under_probability_novig": 0.5635,
      "edge_over": 0.002,
      "edge_under": -0.0725,
      "recommended_side": "No Play",
      "recommended_edge": 0.002,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.24,
      "adjustment_multiplier": 1.044,
      "aggregate_matchup_score": 48.1,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 29545.0,
      "lineup_expected_strikeouts": 4.91,
      "environment_summary": "neutral",
      "temperature_f": 35.4,
      "wind_speed_mph": 2.5,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Chris Bassitt",
      "pitcher_id": 605135,
      "team_abbr": "BAL",
      "opponent_abbr": "HOU",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 116,
      "under_odds": -154,
      "expected_strikeouts": 4.19,
      "baseline_projected_strikeouts": 3.78,
      "adjusted_projected_strikeouts": 4.19,
      "skill_score": 10.5,
      "opportunity_score": 38.3,
      "opponent_weakness_score": 42.7,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 64.1,
      "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.4034,
      "model_under_probability": 0.5966,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.463,
      "implied_under_probability_raw": 0.6063,
      "implied_over_probability_novig": 0.433,
      "implied_under_probability_novig": 0.567,
      "edge_over": -0.0596,
      "edge_under": -0.0097,
      "recommended_side": "No Play",
      "recommended_edge": -0.0097,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.41,
      "adjustment_multiplier": 1.121,
      "aggregate_matchup_score": 50.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 35348.0,
      "lineup_expected_strikeouts": 5.33,
      "environment_summary": "hitter-friendly",
      "temperature_f": 64.8,
      "wind_speed_mph": 12.6,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Logan Webb",
      "pitcher_id": 657277,
      "team_abbr": "SF",
      "opponent_abbr": "PHI",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:26.777Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": 104,
      "under_odds": -138,
      "expected_strikeouts": 5.56,
      "baseline_projected_strikeouts": 5.3,
      "adjusted_projected_strikeouts": 5.56,
      "skill_score": 17.8,
      "opportunity_score": 83.0,
      "opponent_weakness_score": 43.3,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 11.4,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "STRONG_ALIGNMENT",
      "interaction_label": "Strong Alignment",
      "interaction_note": "The strikeout structure is favorable, but not as clean as the premium runway pocket.",
      "trust_modifier": "WATCHLIST_RUNWAY",
      "trust_label": "Watchlist Runway",
      "trust_note": "The strikeout structure is supportive and worth watching, but it is not as clean as the premium bucket.",
      "model_over_probability": 0.467,
      "model_under_probability": 0.533,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4902,
      "implied_under_probability_raw": 0.5798,
      "implied_over_probability_novig": 0.4581,
      "implied_under_probability_novig": 0.5419,
      "edge_over": -0.0232,
      "edge_under": -0.0468,
      "recommended_side": "No Play",
      "recommended_edge": -0.0232,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.26,
      "adjustment_multiplier": 1.049,
      "aggregate_matchup_score": 56.5,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 38756.0,
      "lineup_expected_strikeouts": 5.96,
      "environment_summary": "hitter-friendly",
      "temperature_f": 63.5,
      "wind_speed_mph": 10.3,
      "wind_direction": "cross",
      "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": "KC",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:09:04.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 110,
      "under_odds": -146,
      "expected_strikeouts": 4.35,
      "baseline_projected_strikeouts": 4.68,
      "adjusted_projected_strikeouts": 4.35,
      "skill_score": 34.9,
      "opportunity_score": 55.7,
      "opponent_weakness_score": 25.6,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 30.7,
      "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.4308,
      "model_under_probability": 0.5692,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4762,
      "implied_under_probability_raw": 0.5935,
      "implied_over_probability_novig": 0.4452,
      "implied_under_probability_novig": 0.5548,
      "edge_over": -0.0454,
      "edge_under": -0.0243,
      "recommended_side": "No Play",
      "recommended_edge": -0.0243,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.33,
      "adjustment_multiplier": 0.93,
      "aggregate_matchup_score": 32.1,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 16173.0,
      "lineup_expected_strikeouts": 3.92,
      "environment_summary": "neutral",
      "temperature_f": 74.5,
      "wind_speed_mph": 9.9,
      "wind_direction": "out",
      "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": "KC",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 110,
      "under_odds": -146,
      "expected_strikeouts": 4.35,
      "baseline_projected_strikeouts": 4.68,
      "adjusted_projected_strikeouts": 4.35,
      "skill_score": 34.9,
      "opportunity_score": 55.7,
      "opponent_weakness_score": 25.6,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 30.7,
      "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.4308,
      "model_under_probability": 0.5692,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4762,
      "implied_under_probability_raw": 0.5935,
      "implied_over_probability_novig": 0.4452,
      "implied_under_probability_novig": 0.5548,
      "edge_over": -0.0454,
      "edge_under": -0.0243,
      "recommended_side": "No Play",
      "recommended_edge": -0.0243,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.33,
      "adjustment_multiplier": 0.93,
      "aggregate_matchup_score": 32.1,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 16173.0,
      "lineup_expected_strikeouts": 3.92,
      "environment_summary": "neutral",
      "temperature_f": 74.5,
      "wind_speed_mph": 9.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Framber Valdez",
      "pitcher_id": 664285,
      "team_abbr": "DET",
      "opponent_abbr": "ATL",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:41.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -136,
      "under_odds": 102,
      "expected_strikeouts": 5.1,
      "baseline_projected_strikeouts": 4.56,
      "adjusted_projected_strikeouts": 5.1,
      "skill_score": 15.9,
      "opportunity_score": 59.5,
      "opponent_weakness_score": 41.6,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 31.1,
      "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.5513,
      "model_under_probability": 0.4487,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5763,
      "implied_under_probability_raw": 0.495,
      "implied_over_probability_novig": 0.5379,
      "implied_under_probability_novig": 0.4621,
      "edge_over": -0.025,
      "edge_under": -0.0463,
      "recommended_side": "No Play",
      "recommended_edge": -0.025,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.54,
      "adjustment_multiplier": 1.118,
      "aggregate_matchup_score": 48.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 33697.0,
      "lineup_expected_strikeouts": 6.12,
      "environment_summary": "neutral",
      "temperature_f": 70.0,
      "wind_speed_mph": 11.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Framber Valdez",
      "pitcher_id": 664285,
      "team_abbr": "DET",
      "opponent_abbr": "ATL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -136,
      "under_odds": 102,
      "expected_strikeouts": 5.1,
      "baseline_projected_strikeouts": 4.56,
      "adjusted_projected_strikeouts": 5.1,
      "skill_score": 15.9,
      "opportunity_score": 59.5,
      "opponent_weakness_score": 41.6,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 31.1,
      "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.5513,
      "model_under_probability": 0.4487,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5763,
      "implied_under_probability_raw": 0.495,
      "implied_over_probability_novig": 0.5379,
      "implied_under_probability_novig": 0.4621,
      "edge_over": -0.025,
      "edge_under": -0.0463,
      "recommended_side": "No Play",
      "recommended_edge": -0.025,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.54,
      "adjustment_multiplier": 1.118,
      "aggregate_matchup_score": 48.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 33697.0,
      "lineup_expected_strikeouts": 6.12,
      "environment_summary": "neutral",
      "temperature_f": 70.0,
      "wind_speed_mph": 11.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Bryce Elder",
      "pitcher_id": 693821,
      "team_abbr": "ATL",
      "opponent_abbr": "DET",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:41.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -138,
      "under_odds": 104,
      "expected_strikeouts": 5.11,
      "baseline_projected_strikeouts": 5.23,
      "adjusted_projected_strikeouts": 5.11,
      "skill_score": 17.6,
      "opportunity_score": 55.2,
      "opponent_weakness_score": 28.2,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 29.8,
      "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.5528,
      "model_under_probability": 0.4472,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5798,
      "implied_under_probability_raw": 0.4902,
      "implied_over_probability_novig": 0.5419,
      "implied_under_probability_novig": 0.4581,
      "edge_over": -0.027,
      "edge_under": -0.043,
      "recommended_side": "No Play",
      "recommended_edge": -0.027,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.12,
      "adjustment_multiplier": 0.978,
      "aggregate_matchup_score": 36.8,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24573.0,
      "lineup_expected_strikeouts": 5.05,
      "environment_summary": "neutral",
      "temperature_f": 70.0,
      "wind_speed_mph": 11.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Bryce Elder",
      "pitcher_id": 693821,
      "team_abbr": "ATL",
      "opponent_abbr": "DET",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -138,
      "under_odds": 104,
      "expected_strikeouts": 5.11,
      "baseline_projected_strikeouts": 5.23,
      "adjusted_projected_strikeouts": 5.11,
      "skill_score": 17.6,
      "opportunity_score": 55.2,
      "opponent_weakness_score": 28.2,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 29.8,
      "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.5528,
      "model_under_probability": 0.4472,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5798,
      "implied_under_probability_raw": 0.4902,
      "implied_over_probability_novig": 0.5419,
      "implied_under_probability_novig": 0.4581,
      "edge_over": -0.027,
      "edge_under": -0.043,
      "recommended_side": "No Play",
      "recommended_edge": -0.027,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.12,
      "adjustment_multiplier": 0.978,
      "aggregate_matchup_score": 36.8,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24573.0,
      "lineup_expected_strikeouts": 5.05,
      "environment_summary": "neutral",
      "temperature_f": 70.0,
      "wind_speed_mph": 11.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Chris Bassitt",
      "pitcher_id": 605135,
      "team_abbr": "BAL",
      "opponent_abbr": "HOU",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-04-30T01:08:50.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 132,
      "under_odds": -178,
      "expected_strikeouts": 4.19,
      "baseline_projected_strikeouts": 3.78,
      "adjusted_projected_strikeouts": 4.19,
      "skill_score": 10.5,
      "opportunity_score": 38.3,
      "opponent_weakness_score": 42.7,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 64.1,
      "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.4034,
      "model_under_probability": 0.5966,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.431,
      "implied_under_probability_raw": 0.6403,
      "implied_over_probability_novig": 0.4023,
      "implied_under_probability_novig": 0.5977,
      "edge_over": -0.0276,
      "edge_under": -0.0437,
      "recommended_side": "No Play",
      "recommended_edge": -0.0276,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.41,
      "adjustment_multiplier": 1.121,
      "aggregate_matchup_score": 50.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 35348.0,
      "lineup_expected_strikeouts": 5.33,
      "environment_summary": "hitter-friendly",
      "temperature_f": 64.8,
      "wind_speed_mph": 12.6,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    }
  ],
  "unmatched_inputs": [
    {
      "pitcher_name": "Luis Severino",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Michael Wacha",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Peter Lambert",
      "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."
    }
  ]
}