{
  "date": "2026-04-15",
  "generated_at": "2026-04-15T08:10:02.637500",
  "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-15",
  "sportsbook_input_summary": {
    "input_type": "canonical_processed_sportsbook_input",
    "source_count": 1,
    "row_count": 21,
    "matched_count": 17,
    "unmatched_count": 4
  },
  "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": 17,
    "grouped_pitcher_count": 17,
    "sportsbook_count": 1
  },
  "edge_count": 17,
  "edges": [
    {
      "pitcher_name": "Shota Imanaga",
      "pitcher_id": 684007,
      "team_abbr": "CHC",
      "opponent_abbr": "PHI",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": -125,
      "under_odds": -106,
      "expected_strikeouts": 4.75,
      "baseline_projected_strikeouts": 4.37,
      "adjusted_projected_strikeouts": 4.75,
      "skill_score": 44.3,
      "opportunity_score": 36.6,
      "opponent_weakness_score": 43.5,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 59.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.3445,
      "model_under_probability": 0.6555,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5556,
      "implied_under_probability_raw": 0.5146,
      "implied_over_probability_novig": 0.5192,
      "implied_under_probability_novig": 0.4808,
      "edge_over": -0.2111,
      "edge_under": 0.1409,
      "recommended_side": "Under",
      "recommended_edge": 0.1409,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.38,
      "adjustment_multiplier": 1.086,
      "aggregate_matchup_score": 52.1,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 21240.0,
      "lineup_expected_strikeouts": 5.42,
      "environment_summary": "hitter-friendly",
      "temperature_f": 76.6,
      "wind_speed_mph": 3.7,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Tyler Mahle",
      "pitcher_id": 641816,
      "team_abbr": "SF",
      "opponent_abbr": "CIN",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": 124,
      "under_odds": -166,
      "expected_strikeouts": 4.28,
      "baseline_projected_strikeouts": 3.94,
      "adjusted_projected_strikeouts": 4.28,
      "skill_score": 20.9,
      "opportunity_score": 49.6,
      "opponent_weakness_score": 42.3,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 53.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.2724,
      "model_under_probability": 0.7276,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4464,
      "implied_under_probability_raw": 0.6241,
      "implied_over_probability_novig": 0.417,
      "implied_under_probability_novig": 0.583,
      "edge_over": -0.174,
      "edge_under": 0.1035,
      "recommended_side": "Under",
      "recommended_edge": 0.1035,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.34,
      "adjustment_multiplier": 1.087,
      "aggregate_matchup_score": 49.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 9084.0,
      "lineup_expected_strikeouts": 4.93,
      "environment_summary": "hitter-friendly",
      "temperature_f": 75.6,
      "wind_speed_mph": 5.0,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Dylan Cease",
      "pitcher_id": 656302,
      "team_abbr": "TOR",
      "opponent_abbr": "MIL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 6.5,
      "line_type": "half",
      "over_odds": -136,
      "under_odds": 102,
      "expected_strikeouts": 6.37,
      "baseline_projected_strikeouts": 6.39,
      "adjusted_projected_strikeouts": 6.37,
      "skill_score": 88.9,
      "opportunity_score": 53.3,
      "opponent_weakness_score": 42.4,
      "support_tier": "TRIPLE_SUPPORT",
      "support_label": "Triple Support",
      "support_note": "Skill, workload, and opponent pressure all support a stronger strikeout environment.",
      "suppression_score": 47.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": "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.4425,
      "model_under_probability": 0.5575,
      "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.1338,
      "edge_under": 0.0625,
      "recommended_side": "Under",
      "recommended_edge": 0.0625,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.02,
      "adjustment_multiplier": 0.997,
      "aggregate_matchup_score": 69.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 37758.0,
      "lineup_expected_strikeouts": 6.06,
      "environment_summary": "neutral",
      "temperature_f": 58.6,
      "wind_speed_mph": 7.9,
      "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": "MIA",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 116,
      "under_odds": -154,
      "expected_strikeouts": 4.93,
      "baseline_projected_strikeouts": 4.97,
      "adjusted_projected_strikeouts": 4.93,
      "skill_score": 23.2,
      "opportunity_score": 50.4,
      "opponent_weakness_score": 31.5,
      "support_tier": "BALANCED_SUPPORT",
      "support_label": "Balanced Support",
      "support_note": "Support inputs are mixed but still healthy enough to trust contextually.",
      "suppression_score": 44.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.5253,
      "model_under_probability": 0.4747,
      "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.0623,
      "edge_under": -0.1316,
      "recommended_side": "Over",
      "recommended_edge": 0.0623,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.04,
      "adjustment_multiplier": 0.993,
      "aggregate_matchup_score": 41.0,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24573.0,
      "lineup_expected_strikeouts": 4.97,
      "environment_summary": "neutral",
      "temperature_f": 68.0,
      "wind_speed_mph": 3.4,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Eduardo Rodriguez",
      "pitcher_id": 593958,
      "team_abbr": "AZ",
      "opponent_abbr": "BAL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -148,
      "under_odds": 112,
      "expected_strikeouts": 4.57,
      "baseline_projected_strikeouts": 4.32,
      "adjusted_projected_strikeouts": 4.57,
      "skill_score": 11.5,
      "opportunity_score": 70.6,
      "opponent_weakness_score": 38.5,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 19.1,
      "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.4676,
      "model_under_probability": 0.5324,
      "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.1292,
      "edge_under": 0.0607,
      "recommended_side": "Under",
      "recommended_edge": 0.0607,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.25,
      "adjustment_multiplier": 1.079,
      "aggregate_matchup_score": 41.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 23520.0,
      "lineup_expected_strikeouts": 5.39,
      "environment_summary": "hitter-friendly",
      "temperature_f": 93.2,
      "wind_speed_mph": 11.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Jack Flaherty",
      "pitcher_id": 656427,
      "team_abbr": "DET",
      "opponent_abbr": "KC",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": 114,
      "under_odds": -152,
      "expected_strikeouts": 5.9,
      "baseline_projected_strikeouts": 6.17,
      "adjusted_projected_strikeouts": 5.9,
      "skill_score": 35.8,
      "opportunity_score": 38.8,
      "opponent_weakness_score": 35.9,
      "support_tier": "BALANCED_SUPPORT",
      "support_label": "Balanced Support",
      "support_note": "Support inputs are mixed but still healthy enough to trust contextually.",
      "suppression_score": 64.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.5155,
      "model_under_probability": 0.4845,
      "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.0482,
      "edge_under": -0.1187,
      "recommended_side": "Over",
      "recommended_edge": 0.0482,
      "play_tier": "Play",
      "no_play_reason": null,
      "adjustment_delta": -0.27,
      "adjustment_multiplier": 0.956,
      "aggregate_matchup_score": 57.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 32117.0,
      "lineup_expected_strikeouts": 5.29,
      "environment_summary": "neutral",
      "temperature_f": 64.2,
      "wind_speed_mph": 4.0,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Jack Kochanowicz",
      "pitcher_id": 686799,
      "team_abbr": "LAA",
      "opponent_abbr": "NYY",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 3.5,
      "line_type": "half",
      "over_odds": 112,
      "under_odds": -148,
      "expected_strikeouts": 3.16,
      "baseline_projected_strikeouts": 2.9,
      "adjusted_projected_strikeouts": 3.16,
      "skill_score": 8.0,
      "opportunity_score": 42.4,
      "opponent_weakness_score": 35.7,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 54.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.3849,
      "model_under_probability": 0.6151,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4717,
      "implied_under_probability_raw": 0.5968,
      "implied_over_probability_novig": 0.4415,
      "implied_under_probability_novig": 0.5585,
      "edge_over": -0.0868,
      "edge_under": 0.0183,
      "recommended_side": "Under",
      "recommended_edge": 0.0183,
      "play_tier": "Lean",
      "no_play_reason": null,
      "adjustment_delta": 0.26,
      "adjustment_multiplier": 1.091,
      "aggregate_matchup_score": 17.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 12726.0,
      "lineup_expected_strikeouts": 4.49,
      "environment_summary": "hitter-friendly",
      "temperature_f": 76.8,
      "wind_speed_mph": 7.6,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Sean Burke",
      "pitcher_id": 680732,
      "team_abbr": "CWS",
      "opponent_abbr": "TB",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 112,
      "under_odds": -148,
      "expected_strikeouts": 4.11,
      "baseline_projected_strikeouts": 4.19,
      "adjusted_projected_strikeouts": 4.11,
      "skill_score": 17.8,
      "opportunity_score": 26.4,
      "opponent_weakness_score": 29.4,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 88.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.3895,
      "model_under_probability": 0.6105,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4717,
      "implied_under_probability_raw": 0.5968,
      "implied_over_probability_novig": 0.4415,
      "implied_under_probability_novig": 0.5585,
      "edge_over": -0.0822,
      "edge_under": 0.0137,
      "recommended_side": "No Play",
      "recommended_edge": 0.0137,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.08,
      "adjustment_multiplier": 0.99,
      "aggregate_matchup_score": 36.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 10284.0,
      "lineup_expected_strikeouts": 4.2,
      "environment_summary": "hitter-friendly",
      "temperature_f": 64.4,
      "wind_speed_mph": 19.2,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Kyle Bradish",
      "pitcher_id": 680694,
      "team_abbr": "BAL",
      "opponent_abbr": "AZ",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": 108,
      "under_odds": -144,
      "expected_strikeouts": 5.72,
      "baseline_projected_strikeouts": 6.14,
      "adjusted_projected_strikeouts": 5.72,
      "skill_score": 43.1,
      "opportunity_score": 32.9,
      "opponent_weakness_score": 36.9,
      "support_tier": "BALANCED_SUPPORT",
      "support_label": "Balanced Support",
      "support_note": "Support inputs are mixed but still healthy enough to trust contextually.",
      "suppression_score": 74.3,
      "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.4901,
      "model_under_probability": 0.5099,
      "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.0093,
      "edge_under": -0.0803,
      "recommended_side": "No Play",
      "recommended_edge": 0.0093,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.42,
      "adjustment_multiplier": 0.951,
      "aggregate_matchup_score": 59.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 13080.0,
      "lineup_expected_strikeouts": 5.16,
      "environment_summary": "hitter-friendly",
      "temperature_f": 93.2,
      "wind_speed_mph": 11.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Luis Gil",
      "pitcher_id": 661563,
      "team_abbr": "NYY",
      "opponent_abbr": "LAA",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -114,
      "under_odds": -114,
      "expected_strikeouts": 4.95,
      "baseline_projected_strikeouts": 4.43,
      "adjusted_projected_strikeouts": 4.95,
      "skill_score": 5.6,
      "opportunity_score": 27.4,
      "opponent_weakness_score": 43.8,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 78.4,
      "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.5284,
      "model_under_probability": 0.4716,
      "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.0043,
      "edge_under": -0.0611,
      "recommended_side": "No Play",
      "recommended_edge": -0.0043,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.52,
      "adjustment_multiplier": 1.118,
      "aggregate_matchup_score": 52.8,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 15506.0,
      "lineup_expected_strikeouts": 5.89,
      "environment_summary": "hitter-friendly",
      "temperature_f": 76.8,
      "wind_speed_mph": 7.6,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Slade Cecconi",
      "pitcher_id": 677944,
      "team_abbr": "CLE",
      "opponent_abbr": "STL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 112,
      "under_odds": -148,
      "expected_strikeouts": 4.23,
      "baseline_projected_strikeouts": 4.19,
      "adjusted_projected_strikeouts": 4.23,
      "skill_score": 19.4,
      "opportunity_score": 38.8,
      "opponent_weakness_score": 33.8,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 54.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.4103,
      "model_under_probability": 0.5897,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4717,
      "implied_under_probability_raw": 0.5968,
      "implied_over_probability_novig": 0.4415,
      "implied_under_probability_novig": 0.5585,
      "edge_over": -0.0614,
      "edge_under": -0.0071,
      "recommended_side": "No Play",
      "recommended_edge": -0.0071,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.04,
      "adjustment_multiplier": 1.019,
      "aggregate_matchup_score": 39.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 15077.0,
      "lineup_expected_strikeouts": 4.52,
      "environment_summary": "neutral",
      "temperature_f": 82.0,
      "wind_speed_mph": 10.4,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Chad Patrick",
      "pitcher_id": 694477,
      "team_abbr": "MIL",
      "opponent_abbr": "TOR",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 104,
      "under_odds": -138,
      "expected_strikeouts": 4.66,
      "baseline_projected_strikeouts": 4.43,
      "adjusted_projected_strikeouts": 4.66,
      "skill_score": 19.6,
      "opportunity_score": 22.0,
      "opponent_weakness_score": 42.4,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 95.6,
      "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.4824,
      "model_under_probability": 0.5176,
      "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.0078,
      "edge_under": -0.0622,
      "recommended_side": "No Play",
      "recommended_edge": -0.0078,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.23,
      "adjustment_multiplier": 1.052,
      "aggregate_matchup_score": 53.0,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 9640.0,
      "lineup_expected_strikeouts": 5.06,
      "environment_summary": "neutral",
      "temperature_f": 58.6,
      "wind_speed_mph": 7.9,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Jake Irvin",
      "pitcher_id": 663623,
      "team_abbr": "WSH",
      "opponent_abbr": "PIT",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 124,
      "under_odds": -166,
      "expected_strikeouts": 4.11,
      "baseline_projected_strikeouts": 3.96,
      "adjusted_projected_strikeouts": 4.11,
      "skill_score": 33.1,
      "opportunity_score": 35.9,
      "opponent_weakness_score": 34.8,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 62.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.3895,
      "model_under_probability": 0.6105,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4464,
      "implied_under_probability_raw": 0.6241,
      "implied_over_probability_novig": 0.417,
      "implied_under_probability_novig": 0.583,
      "edge_over": -0.0569,
      "edge_under": -0.0136,
      "recommended_side": "No Play",
      "recommended_edge": -0.0136,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.15,
      "adjustment_multiplier": 1.038,
      "aggregate_matchup_score": 29.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 33345.0,
      "lineup_expected_strikeouts": 4.58,
      "environment_summary": "neutral",
      "temperature_f": 70.5,
      "wind_speed_mph": 7.8,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Chris Paddack",
      "pitcher_id": 663978,
      "team_abbr": "MIA",
      "opponent_abbr": "ATL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 3.5,
      "line_type": "half",
      "over_odds": 100,
      "under_odds": -132,
      "expected_strikeouts": 3.66,
      "baseline_projected_strikeouts": 3.54,
      "adjusted_projected_strikeouts": 3.66,
      "skill_score": 24.0,
      "opportunity_score": 30.0,
      "opponent_weakness_score": 35.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": 77.3,
      "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.4833,
      "model_under_probability": 0.5167,
      "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.0167,
      "edge_under": -0.0523,
      "recommended_side": "No Play",
      "recommended_edge": -0.0167,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.12,
      "adjustment_multiplier": 1.034,
      "aggregate_matchup_score": 21.8,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 17770.0,
      "lineup_expected_strikeouts": 4.13,
      "environment_summary": "neutral",
      "temperature_f": 68.0,
      "wind_speed_mph": 3.4,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Dustin May",
      "pitcher_id": 669160,
      "team_abbr": "STL",
      "opponent_abbr": "CLE",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 3.5,
      "line_type": "half",
      "over_odds": -160,
      "under_odds": 120,
      "expected_strikeouts": 4.3,
      "baseline_projected_strikeouts": 4.29,
      "adjusted_projected_strikeouts": 4.3,
      "skill_score": 5.7,
      "opportunity_score": 19.8,
      "opponent_weakness_score": 33.8,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 83.2,
      "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.5955,
      "model_under_probability": 0.4045,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.6154,
      "implied_under_probability_raw": 0.4545,
      "implied_over_probability_novig": 0.5752,
      "implied_under_probability_novig": 0.4248,
      "edge_over": -0.0199,
      "edge_under": -0.05,
      "recommended_side": "No Play",
      "recommended_edge": -0.0199,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.01,
      "adjustment_multiplier": 1.012,
      "aggregate_matchup_score": 41.5,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 12285.0,
      "lineup_expected_strikeouts": 4.52,
      "environment_summary": "neutral",
      "temperature_f": 82.0,
      "wind_speed_mph": 10.4,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Seth Lugo",
      "pitcher_id": 607625,
      "team_abbr": "KC",
      "opponent_abbr": "DET",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -108,
      "under_odds": -122,
      "expected_strikeouts": 4.65,
      "baseline_projected_strikeouts": 4.39,
      "adjusted_projected_strikeouts": 4.65,
      "skill_score": 21.7,
      "opportunity_score": 48.5,
      "opponent_weakness_score": 40.4,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 52.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.4807,
      "model_under_probability": 0.5193,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5192,
      "implied_under_probability_raw": 0.5495,
      "implied_over_probability_novig": 0.4858,
      "implied_under_probability_novig": 0.5142,
      "edge_over": -0.0385,
      "edge_under": -0.0302,
      "recommended_side": "No Play",
      "recommended_edge": -0.0302,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.26,
      "adjustment_multiplier": 1.06,
      "aggregate_matchup_score": 45.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 31476.0,
      "lineup_expected_strikeouts": 5.19,
      "environment_summary": "neutral",
      "temperature_f": 64.2,
      "wind_speed_mph": 4.0,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Simeon Woods Richardson",
      "pitcher_id": 680573,
      "team_abbr": "MIN",
      "opponent_abbr": "BOS",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 114,
      "under_odds": -152,
      "expected_strikeouts": 4.33,
      "baseline_projected_strikeouts": 4.43,
      "adjusted_projected_strikeouts": 4.33,
      "skill_score": 9.4,
      "opportunity_score": 29.4,
      "opponent_weakness_score": 27.7,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 67.5,
      "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.4274,
      "model_under_probability": 0.5726,
      "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.0399,
      "edge_under": -0.0306,
      "recommended_side": "No Play",
      "recommended_edge": -0.0306,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.1,
      "adjustment_multiplier": 0.976,
      "aggregate_matchup_score": 33.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 17855.0,
      "lineup_expected_strikeouts": 4.3,
      "environment_summary": "neutral",
      "temperature_f": 62.8,
      "wind_speed_mph": 4.3,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    }
  ],
  "unmatched_inputs": [
    {
      "pitcher_name": "Connelly Early",
      "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": "Jesse Scholtens",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 3.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Jesus Luzardo",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 6.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Rhett Lowder",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 3.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    }
  ]
}