{
  "date": "2026-05-23",
  "generated_at": "2026-05-22T23:35:59.743599",
  "artifact_type": "strikeout_edges",
  "market_type": "pitcher_strikeouts",
  "model_version": "strikeout_edges_v1_overlay",
  "projection_model_version": "strikeout_props_v1_nb_overlay",
  "projection_date": "2026-05-23",
  "sportsbook_input_summary": {
    "input_type": "canonical_processed_sportsbook_input",
    "source_count": 1,
    "row_count": 14,
    "matched_count": 12,
    "unmatched_count": 2
  },
  "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": 12,
    "grouped_pitcher_count": 12,
    "sportsbook_count": 1
  },
  "edge_count": 12,
  "edges": [
    {
      "pitcher_name": "Max Meyer",
      "pitcher_id": 676974,
      "team_abbr": "MIA",
      "opponent_abbr": "NYM",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": -144,
      "under_odds": 118,
      "expected_strikeouts": 4.91,
      "baseline_projected_strikeouts": 4.96,
      "adjusted_projected_strikeouts": 4.91,
      "skill_score": 44.1,
      "opportunity_score": 41.0,
      "opponent_weakness_score": 29.1,
      "support_tier": "BALANCED_SUPPORT",
      "support_label": "Balanced Support",
      "support_note": "Support inputs are mixed but still healthy enough to trust contextually.",
      "suppression_score": 52.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.3692,
      "model_under_probability": 0.6308,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5902,
      "implied_under_probability_raw": 0.4587,
      "implied_over_probability_novig": 0.5627,
      "implied_under_probability_novig": 0.4373,
      "edge_over": -0.221,
      "edge_under": 0.1721,
      "recommended_side": "Under",
      "recommended_edge": 0.1721,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.05,
      "adjustment_multiplier": 0.99,
      "aggregate_matchup_score": 32.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 9067.0,
      "lineup_expected_strikeouts": 5.01,
      "environment_summary": "neutral",
      "temperature_f": 81.5,
      "wind_speed_mph": 8.5,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Drew Rasmussen",
      "pitcher_id": 656876,
      "team_abbr": "TB",
      "opponent_abbr": "NYY",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": 118,
      "under_odds": -144,
      "expected_strikeouts": 4.2,
      "baseline_projected_strikeouts": 3.9,
      "adjusted_projected_strikeouts": 4.2,
      "skill_score": 20.1,
      "opportunity_score": 52.6,
      "opponent_weakness_score": 41.3,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 53.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.2603,
      "model_under_probability": 0.7397,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4587,
      "implied_under_probability_raw": 0.5902,
      "implied_over_probability_novig": 0.4373,
      "implied_under_probability_novig": 0.5627,
      "edge_over": -0.1984,
      "edge_under": 0.1495,
      "recommended_side": "Under",
      "recommended_edge": 0.1495,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.3,
      "adjustment_multiplier": 1.076,
      "aggregate_matchup_score": 47.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 14022.0,
      "lineup_expected_strikeouts": 4.77,
      "environment_summary": "hitter-friendly",
      "temperature_f": 57.7,
      "wind_speed_mph": 8.6,
      "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": "TOR",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 6.5,
      "line_type": "half",
      "over_odds": -105,
      "under_odds": -115,
      "expected_strikeouts": 5.78,
      "baseline_projected_strikeouts": 5.33,
      "adjusted_projected_strikeouts": 5.78,
      "skill_score": 55.4,
      "opportunity_score": 58.6,
      "opponent_weakness_score": 51.0,
      "support_tier": "TRIPLE_SUPPORT",
      "support_label": "Triple Support",
      "support_note": "Skill, workload, and opponent pressure all support a stronger strikeout environment.",
      "suppression_score": 55.3,
      "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.3621,
      "model_under_probability": 0.6379,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5122,
      "implied_under_probability_raw": 0.5349,
      "implied_over_probability_novig": 0.4892,
      "implied_under_probability_novig": 0.5108,
      "edge_over": -0.1501,
      "edge_under": 0.103,
      "recommended_side": "Under",
      "recommended_edge": 0.103,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.45,
      "adjustment_multiplier": 1.063,
      "aggregate_matchup_score": 73.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 23485.0,
      "lineup_expected_strikeouts": 5.99,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 49.6,
      "wind_speed_mph": 20.6,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Ryan Weathers",
      "pitcher_id": 677960,
      "team_abbr": "NYY",
      "opponent_abbr": "TB",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": -102,
      "under_odds": -120,
      "expected_strikeouts": 4.85,
      "baseline_projected_strikeouts": 5.25,
      "adjusted_projected_strikeouts": 4.85,
      "skill_score": 54.6,
      "opportunity_score": 49.4,
      "opponent_weakness_score": 27.3,
      "support_tier": "STRONG_SKILL",
      "support_label": "Strong Skill",
      "support_note": "Underlying strikeout skill is the clearest support input.",
      "suppression_score": 40.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.3599,
      "model_under_probability": 0.6401,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.505,
      "implied_under_probability_raw": 0.5455,
      "implied_over_probability_novig": 0.4807,
      "implied_under_probability_novig": 0.5193,
      "edge_over": -0.1451,
      "edge_under": 0.0946,
      "recommended_side": "Under",
      "recommended_edge": 0.0946,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.4,
      "adjustment_multiplier": 0.923,
      "aggregate_matchup_score": 38.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 11703.0,
      "lineup_expected_strikeouts": 4.22,
      "environment_summary": "hitter-friendly",
      "temperature_f": 57.7,
      "wind_speed_mph": 8.6,
      "wind_direction": "cross",
      "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": "PHI",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 110,
      "under_odds": -134,
      "expected_strikeouts": 4.04,
      "baseline_projected_strikeouts": 3.8,
      "adjusted_projected_strikeouts": 4.04,
      "skill_score": 11.8,
      "opportunity_score": 42.3,
      "opponent_weakness_score": 36.0,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 50.3,
      "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.3773,
      "model_under_probability": 0.6227,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4762,
      "implied_under_probability_raw": 0.5726,
      "implied_over_probability_novig": 0.454,
      "implied_under_probability_novig": 0.546,
      "edge_over": -0.0989,
      "edge_under": 0.0501,
      "recommended_side": "Under",
      "recommended_edge": 0.0501,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.24,
      "adjustment_multiplier": 1.064,
      "aggregate_matchup_score": 35.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 15077.0,
      "lineup_expected_strikeouts": 4.63,
      "environment_summary": "neutral",
      "temperature_f": 52.0,
      "wind_speed_mph": 8.6,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Erick Fedde",
      "pitcher_id": 607200,
      "team_abbr": "CWS",
      "opponent_abbr": "SF",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 3.5,
      "line_type": "half",
      "over_odds": 128,
      "under_odds": -158,
      "expected_strikeouts": 3.59,
      "baseline_projected_strikeouts": 3.27,
      "adjusted_projected_strikeouts": 3.59,
      "skill_score": 8.8,
      "opportunity_score": 36.3,
      "opponent_weakness_score": 37.0,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 64.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.47,
      "model_under_probability": 0.53,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4386,
      "implied_under_probability_raw": 0.6124,
      "implied_over_probability_novig": 0.4173,
      "implied_under_probability_novig": 0.5827,
      "edge_over": 0.0314,
      "edge_under": -0.0824,
      "recommended_side": "Over",
      "recommended_edge": 0.0314,
      "play_tier": "Play",
      "no_play_reason": null,
      "adjustment_delta": 0.32,
      "adjustment_multiplier": 1.109,
      "aggregate_matchup_score": 37.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 21694.0,
      "lineup_expected_strikeouts": 4.5,
      "environment_summary": "neutral",
      "temperature_f": 56.8,
      "wind_speed_mph": 10.6,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Adrian Houser",
      "pitcher_id": 605288,
      "team_abbr": "SF",
      "opponent_abbr": "CWS",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 3.5,
      "line_type": "half",
      "over_odds": -160,
      "under_odds": 130,
      "expected_strikeouts": 3.95,
      "baseline_projected_strikeouts": 3.8,
      "adjusted_projected_strikeouts": 3.95,
      "skill_score": 3.9,
      "opportunity_score": 43.4,
      "opponent_weakness_score": 37.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": 56.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.5363,
      "model_under_probability": 0.4637,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.6154,
      "implied_under_probability_raw": 0.4348,
      "implied_over_probability_novig": 0.586,
      "implied_under_probability_novig": 0.414,
      "edge_over": -0.0791,
      "edge_under": 0.0289,
      "recommended_side": "Under",
      "recommended_edge": 0.0289,
      "play_tier": "Lean",
      "no_play_reason": null,
      "adjustment_delta": 0.15,
      "adjustment_multiplier": 1.051,
      "aggregate_matchup_score": 40.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 17064.0,
      "lineup_expected_strikeouts": 4.44,
      "environment_summary": "neutral",
      "temperature_f": 56.8,
      "wind_speed_mph": 10.6,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Zack Wheeler",
      "pitcher_id": 554430,
      "team_abbr": "PHI",
      "opponent_abbr": "CLE",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": -162,
      "under_odds": 132,
      "expected_strikeouts": 6.9,
      "baseline_projected_strikeouts": 6.77,
      "adjusted_projected_strikeouts": 6.9,
      "skill_score": 34.2,
      "opportunity_score": 65.7,
      "opponent_weakness_score": 49.4,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 21.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.6425,
      "model_under_probability": 0.3575,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.6183,
      "implied_under_probability_raw": 0.431,
      "implied_over_probability_novig": 0.5892,
      "implied_under_probability_novig": 0.4108,
      "edge_over": 0.0242,
      "edge_under": -0.0735,
      "recommended_side": "Over",
      "recommended_edge": 0.0242,
      "play_tier": "Lean",
      "no_play_reason": null,
      "adjustment_delta": 0.13,
      "adjustment_multiplier": 1.019,
      "aggregate_matchup_score": 82.0,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 33971.0,
      "lineup_expected_strikeouts": 6.65,
      "environment_summary": "neutral",
      "temperature_f": 52.0,
      "wind_speed_mph": 8.6,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Patrick Corbin",
      "pitcher_id": 571578,
      "team_abbr": "TOR",
      "opponent_abbr": "PIT",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -106,
      "under_odds": -114,
      "expected_strikeouts": 4.45,
      "baseline_projected_strikeouts": 4.11,
      "adjusted_projected_strikeouts": 4.45,
      "skill_score": 9.8,
      "opportunity_score": 22.3,
      "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": 78.0,
      "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.4476,
      "model_under_probability": 0.5524,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5146,
      "implied_under_probability_raw": 0.5327,
      "implied_over_probability_novig": 0.4914,
      "implied_under_probability_novig": 0.5086,
      "edge_over": -0.067,
      "edge_under": 0.0197,
      "recommended_side": "Under",
      "recommended_edge": 0.0197,
      "play_tier": "Lean",
      "no_play_reason": null,
      "adjustment_delta": 0.34,
      "adjustment_multiplier": 1.061,
      "aggregate_matchup_score": 33.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 33148.0,
      "lineup_expected_strikeouts": 5.0,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 49.6,
      "wind_speed_mph": 20.6,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Freddy Peralta",
      "pitcher_id": 642547,
      "team_abbr": "NYM",
      "opponent_abbr": "MIA",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": 100,
      "under_odds": -122,
      "expected_strikeouts": 5.85,
      "baseline_projected_strikeouts": 5.54,
      "adjusted_projected_strikeouts": 5.85,
      "skill_score": 31.1,
      "opportunity_score": 58.3,
      "opponent_weakness_score": 49.9,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 35.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.5085,
      "model_under_probability": 0.4915,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5,
      "implied_under_probability_raw": 0.5495,
      "implied_over_probability_novig": 0.4764,
      "implied_under_probability_novig": 0.5236,
      "edge_over": 0.0085,
      "edge_under": -0.058,
      "recommended_side": "No Play",
      "recommended_edge": 0.0085,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.31,
      "adjustment_multiplier": 1.056,
      "aggregate_matchup_score": 72.8,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 36211.0,
      "lineup_expected_strikeouts": 6.12,
      "environment_summary": "neutral",
      "temperature_f": 81.5,
      "wind_speed_mph": 8.5,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "George Kirby",
      "pitcher_id": 669923,
      "team_abbr": "SEA",
      "opponent_abbr": "KC",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": 132,
      "under_odds": -162,
      "expected_strikeouts": 5.23,
      "baseline_projected_strikeouts": 5.25,
      "adjusted_projected_strikeouts": 5.23,
      "skill_score": 21.8,
      "opportunity_score": 65.4,
      "opponent_weakness_score": 37.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": 24.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.418,
      "model_under_probability": 0.582,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.431,
      "implied_under_probability_raw": 0.6183,
      "implied_over_probability_novig": 0.4108,
      "implied_under_probability_novig": 0.5892,
      "edge_over": -0.013,
      "edge_under": -0.0363,
      "recommended_side": "No Play",
      "recommended_edge": -0.013,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.02,
      "adjustment_multiplier": 0.997,
      "aggregate_matchup_score": 57.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30773.0,
      "lineup_expected_strikeouts": 5.11,
      "environment_summary": "neutral",
      "temperature_f": 73.0,
      "wind_speed_mph": 4.4,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Stephen Kolek",
      "pitcher_id": 663568,
      "team_abbr": "KC",
      "opponent_abbr": "SEA",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": 134,
      "under_odds": -164,
      "expected_strikeouts": 4.25,
      "baseline_projected_strikeouts": 4.11,
      "adjusted_projected_strikeouts": 4.25,
      "skill_score": 4.9,
      "opportunity_score": 57.1,
      "opponent_weakness_score": 34.4,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 41.3,
      "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.4137,
      "model_under_probability": 0.5863,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4274,
      "implied_under_probability_raw": 0.6212,
      "implied_over_probability_novig": 0.4076,
      "implied_under_probability_novig": 0.5924,
      "edge_over": -0.0137,
      "edge_under": -0.0349,
      "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.14,
      "adjustment_multiplier": 1.034,
      "aggregate_matchup_score": 28.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 8445.0,
      "lineup_expected_strikeouts": 4.72,
      "environment_summary": "neutral",
      "temperature_f": 73.0,
      "wind_speed_mph": 4.4,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    }
  ],
  "unmatched_inputs": [
    {
      "pitcher_name": "Robert Gasser",
      "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": "Roki Sasaki",
      "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."
    }
  ]
}