{
  "date": "2026-07-17",
  "generated_at": "2026-07-16T23:33:52.890744",
  "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-07-17",
  "sportsbook_input_summary": {
    "input_type": "canonical_processed_sportsbook_input",
    "source_count": 1,
    "row_count": 45,
    "matched_count": 11,
    "unmatched_count": 34
  },
  "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": 11,
    "grouped_pitcher_count": 2,
    "sportsbook_count": 1
  },
  "edge_count": 11,
  "edges": [
    {
      "pitcher_name": "Gavin Williams",
      "pitcher_id": 668909,
      "team_abbr": "CLE",
      "opponent_abbr": "PIT",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 6.5,
      "line_type": "half",
      "over_odds": -158,
      "under_odds": 124,
      "expected_strikeouts": 5.69,
      "baseline_projected_strikeouts": 5.9,
      "adjusted_projected_strikeouts": 5.69,
      "skill_score": 56.4,
      "opportunity_score": 66.2,
      "opponent_weakness_score": 31.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 28.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.3497,
      "model_under_probability": 0.6503,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.6124,
      "implied_under_probability_raw": 0.4464,
      "implied_over_probability_novig": 0.5784,
      "implied_under_probability_novig": 0.4216,
      "edge_over": -0.2627,
      "edge_under": 0.2039,
      "recommended_side": "Under",
      "recommended_edge": 0.2039,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.21,
      "adjustment_multiplier": 0.965,
      "aggregate_matchup_score": 48.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.33,
      "environment_summary": "neutral",
      "temperature_f": 79.9,
      "wind_speed_mph": 3.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Sandy Alcantara",
      "pitcher_id": 645261,
      "team_abbr": "MIA",
      "opponent_abbr": "MIL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -136,
      "under_odds": 106,
      "expected_strikeouts": 4.77,
      "baseline_projected_strikeouts": 4.7,
      "adjusted_projected_strikeouts": 4.77,
      "skill_score": 12.2,
      "opportunity_score": 90.0,
      "opponent_weakness_score": 33.3,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 5.5,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "NEUTRAL_ALIGNMENT",
      "interaction_label": "Neutral Alignment",
      "interaction_note": "The signal stack is mixed and better used as context than conviction.",
      "trust_modifier": "NEUTRAL",
      "trust_label": "Neutral",
      "trust_note": "The strikeout trust picture is mixed and better used as context than conviction.",
      "model_over_probability": 0.5001,
      "model_under_probability": 0.4999,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5763,
      "implied_under_probability_raw": 0.4854,
      "implied_over_probability_novig": 0.5428,
      "implied_under_probability_novig": 0.4572,
      "edge_over": -0.0762,
      "edge_under": 0.0145,
      "recommended_side": "No Play",
      "recommended_edge": 0.0145,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.07,
      "adjustment_multiplier": 1.015,
      "aggregate_matchup_score": 39.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 22618.0,
      "lineup_expected_strikeouts": 5.02,
      "environment_summary": "neutral",
      "temperature_f": 82.9,
      "wind_speed_mph": 8.5,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Sandy Alcantara",
      "pitcher_id": 645261,
      "team_abbr": "MIA",
      "opponent_abbr": "MIL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 6.5,
      "line_type": "half",
      "over_odds": 350,
      "under_odds": null,
      "expected_strikeouts": 4.77,
      "baseline_projected_strikeouts": 4.7,
      "adjusted_projected_strikeouts": 4.77,
      "skill_score": 12.2,
      "opportunity_score": 90.0,
      "opponent_weakness_score": 33.3,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 5.5,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "NEUTRAL_ALIGNMENT",
      "interaction_label": "Neutral Alignment",
      "interaction_note": "The signal stack is mixed and better used as context than conviction.",
      "trust_modifier": "NEUTRAL",
      "trust_label": "Neutral",
      "trust_note": "The strikeout trust picture is mixed and better used as context than conviction.",
      "model_over_probability": 0.225,
      "model_under_probability": 0.775,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.2222,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": 0.0028,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": 0.0028,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.07,
      "adjustment_multiplier": 1.015,
      "aggregate_matchup_score": 39.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 22618.0,
      "lineup_expected_strikeouts": 5.02,
      "environment_summary": "neutral",
      "temperature_f": 82.9,
      "wind_speed_mph": 8.5,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Sandy Alcantara",
      "pitcher_id": 645261,
      "team_abbr": "MIA",
      "opponent_abbr": "MIL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": 172,
      "under_odds": null,
      "expected_strikeouts": 4.77,
      "baseline_projected_strikeouts": 4.7,
      "adjusted_projected_strikeouts": 4.77,
      "skill_score": 12.2,
      "opportunity_score": 90.0,
      "opponent_weakness_score": 33.3,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 5.5,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "NEUTRAL_ALIGNMENT",
      "interaction_label": "Neutral Alignment",
      "interaction_note": "The signal stack is mixed and better used as context than conviction.",
      "trust_modifier": "NEUTRAL",
      "trust_label": "Neutral",
      "trust_note": "The strikeout trust picture is mixed and better used as context than conviction.",
      "model_over_probability": 0.3476,
      "model_under_probability": 0.6524,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.3676,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.02,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.02,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.07,
      "adjustment_multiplier": 1.015,
      "aggregate_matchup_score": 39.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 22618.0,
      "lineup_expected_strikeouts": 5.02,
      "environment_summary": "neutral",
      "temperature_f": 82.9,
      "wind_speed_mph": 8.5,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Sandy Alcantara",
      "pitcher_id": 645261,
      "team_abbr": "MIA",
      "opponent_abbr": "MIL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 2.5,
      "line_type": "half",
      "over_odds": -1100,
      "under_odds": null,
      "expected_strikeouts": 4.77,
      "baseline_projected_strikeouts": 4.7,
      "adjusted_projected_strikeouts": 4.77,
      "skill_score": 12.2,
      "opportunity_score": 90.0,
      "opponent_weakness_score": 33.3,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 5.5,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "NEUTRAL_ALIGNMENT",
      "interaction_label": "Neutral Alignment",
      "interaction_note": "The signal stack is mixed and better used as context than conviction.",
      "trust_modifier": "NEUTRAL",
      "trust_label": "Neutral",
      "trust_note": "The strikeout trust picture is mixed and better used as context than conviction.",
      "model_over_probability": 0.8181,
      "model_under_probability": 0.1819,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.9167,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0986,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0986,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.07,
      "adjustment_multiplier": 1.015,
      "aggregate_matchup_score": 39.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 22618.0,
      "lineup_expected_strikeouts": 5.02,
      "environment_summary": "neutral",
      "temperature_f": 82.9,
      "wind_speed_mph": 8.5,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Sandy Alcantara",
      "pitcher_id": 645261,
      "team_abbr": "MIA",
      "opponent_abbr": "MIL",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 3.5,
      "line_type": "half",
      "over_odds": -340,
      "under_odds": null,
      "expected_strikeouts": 4.77,
      "baseline_projected_strikeouts": 4.7,
      "adjusted_projected_strikeouts": 4.77,
      "skill_score": 12.2,
      "opportunity_score": 90.0,
      "opponent_weakness_score": 33.3,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 5.5,
      "suppression_tier": "CLEAR_RUNWAY",
      "suppression_label": "Clear Runway",
      "suppression_note": "Workload and leash context support the strikeout projection cleanly.",
      "interaction_tier": "NEUTRAL_ALIGNMENT",
      "interaction_label": "Neutral Alignment",
      "interaction_note": "The signal stack is mixed and better used as context than conviction.",
      "trust_modifier": "NEUTRAL",
      "trust_label": "Neutral",
      "trust_note": "The strikeout trust picture is mixed and better used as context than conviction.",
      "model_over_probability": 0.6661,
      "model_under_probability": 0.3339,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.7727,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.1066,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.1066,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.07,
      "adjustment_multiplier": 1.015,
      "aggregate_matchup_score": 39.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 22618.0,
      "lineup_expected_strikeouts": 5.02,
      "environment_summary": "neutral",
      "temperature_f": 82.9,
      "wind_speed_mph": 8.5,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Gavin Williams",
      "pitcher_id": 668909,
      "team_abbr": "CLE",
      "opponent_abbr": "PIT",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 8.5,
      "line_type": "half",
      "over_odds": 260,
      "under_odds": null,
      "expected_strikeouts": 5.69,
      "baseline_projected_strikeouts": 5.9,
      "adjusted_projected_strikeouts": 5.69,
      "skill_score": 56.4,
      "opportunity_score": 66.2,
      "opponent_weakness_score": 31.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 28.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.1528,
      "model_under_probability": 0.8472,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.2778,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.125,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.125,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.21,
      "adjustment_multiplier": 0.965,
      "aggregate_matchup_score": 48.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.33,
      "environment_summary": "neutral",
      "temperature_f": 79.9,
      "wind_speed_mph": 3.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Gavin Williams",
      "pitcher_id": 668909,
      "team_abbr": "CLE",
      "opponent_abbr": "PIT",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 7.5,
      "line_type": "half",
      "over_odds": 132,
      "under_odds": null,
      "expected_strikeouts": 5.69,
      "baseline_projected_strikeouts": 5.9,
      "adjusted_projected_strikeouts": 5.69,
      "skill_score": 56.4,
      "opportunity_score": 66.2,
      "opponent_weakness_score": 31.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 28.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.2375,
      "model_under_probability": 0.7625,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.431,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.1935,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.1935,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.21,
      "adjustment_multiplier": 0.965,
      "aggregate_matchup_score": 48.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.33,
      "environment_summary": "neutral",
      "temperature_f": 79.9,
      "wind_speed_mph": 3.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Gavin Williams",
      "pitcher_id": 668909,
      "team_abbr": "CLE",
      "opponent_abbr": "PIT",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 3.5,
      "line_type": "half",
      "over_odds": -4000,
      "under_odds": null,
      "expected_strikeouts": 5.69,
      "baseline_projected_strikeouts": 5.9,
      "adjusted_projected_strikeouts": 5.69,
      "skill_score": 56.4,
      "opportunity_score": 66.2,
      "opponent_weakness_score": 31.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 28.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.7752,
      "model_under_probability": 0.2248,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.9756,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.2004,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.2004,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.21,
      "adjustment_multiplier": 0.965,
      "aggregate_matchup_score": 48.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.33,
      "environment_summary": "neutral",
      "temperature_f": 79.9,
      "wind_speed_mph": 3.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Gavin Williams",
      "pitcher_id": 668909,
      "team_abbr": "CLE",
      "opponent_abbr": "PIT",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 4.5,
      "line_type": "half",
      "over_odds": -850,
      "under_odds": null,
      "expected_strikeouts": 5.69,
      "baseline_projected_strikeouts": 5.9,
      "adjusted_projected_strikeouts": 5.69,
      "skill_score": 56.4,
      "opportunity_score": 66.2,
      "opponent_weakness_score": 31.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 28.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.6341,
      "model_under_probability": 0.3659,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.8947,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.2606,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.2606,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.21,
      "adjustment_multiplier": 0.965,
      "aggregate_matchup_score": 48.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.33,
      "environment_summary": "neutral",
      "temperature_f": 79.9,
      "wind_speed_mph": 3.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Gavin Williams",
      "pitcher_id": 668909,
      "team_abbr": "CLE",
      "opponent_abbr": "PIT",
      "sportsbook": "FanDuel",
      "source_provider": "fanduel",
      "timestamp": null,
      "line": 5.5,
      "line_type": "half",
      "over_odds": -340,
      "under_odds": null,
      "expected_strikeouts": 5.69,
      "baseline_projected_strikeouts": 5.9,
      "adjusted_projected_strikeouts": 5.69,
      "skill_score": 56.4,
      "opportunity_score": 66.2,
      "opponent_weakness_score": 31.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 28.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.4858,
      "model_under_probability": 0.5142,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.7727,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.2869,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.2869,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": -0.21,
      "adjustment_multiplier": 0.965,
      "aggregate_matchup_score": 48.4,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.33,
      "environment_summary": "neutral",
      "temperature_f": 79.9,
      "wind_speed_mph": 3.9,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    }
  ],
  "unmatched_inputs": [
    {
      "pitcher_name": "Anthony Kay",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 2.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Anthony Kay",
      "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": "Anthony Kay",
      "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": "Anthony Kay",
      "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": "Gavin Williams 10+ Strikeouts",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 9.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Gerrit Cole",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 2.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Gerrit Cole",
      "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": "Gerrit Cole",
      "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": "Gerrit Cole",
      "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": "Gerrit Cole",
      "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": "Gerrit Cole",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 7.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Griffin Jax",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 2.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Griffin Jax",
      "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": "Griffin Jax",
      "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": "Griffin Jax",
      "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": "Griffin Jax",
      "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": "Griffin Jax",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 7.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Jake Bennett",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 2.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Jake Bennett",
      "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": "Jake Bennett",
      "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": "Jake Bennett",
      "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": "Jake Bennett",
      "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": "Logan Henderson",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 2.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Logan Henderson",
      "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": "Logan Henderson",
      "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": "Logan Henderson",
      "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": "Logan Henderson",
      "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": "Logan Henderson",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 7.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": 2.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": 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."
    },
    {
      "pitcher_name": "Roki Sasaki",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Roki Sasaki",
      "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": "Roki Sasaki",
      "team_abbr": null,
      "opponent_abbr": null,
      "sportsbook": "FanDuel",
      "line": 7.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    }
  ]
}