{
  "date": "2026-07-23",
  "generated_at": "2026-07-23T23:40:02.230499",
  "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-23",
  "sportsbook_input_summary": {
    "input_type": "canonical_processed_sportsbook_input",
    "source_count": 1,
    "row_count": 32,
    "matched_count": 18,
    "unmatched_count": 14
  },
  "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": 18,
    "grouped_pitcher_count": 6,
    "sportsbook_count": 3
  },
  "edge_count": 18,
  "edges": [
    {
      "pitcher_name": "Gavin Williams",
      "pitcher_id": 668909,
      "team_abbr": "CLE",
      "opponent_abbr": "MIN",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:48.354Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": -143,
      "under_odds": 111,
      "expected_strikeouts": 5.75,
      "baseline_projected_strikeouts": 5.9,
      "adjusted_projected_strikeouts": 5.75,
      "skill_score": 69.5,
      "opportunity_score": 54.3,
      "opponent_weakness_score": 32.9,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 36.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.358,
      "model_under_probability": 0.642,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5885,
      "implied_under_probability_raw": 0.4739,
      "implied_over_probability_novig": 0.5539,
      "implied_under_probability_novig": 0.4461,
      "edge_over": -0.2305,
      "edge_under": 0.1681,
      "recommended_side": "Under",
      "recommended_edge": 0.1681,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.15,
      "adjustment_multiplier": 0.974,
      "aggregate_matchup_score": 50.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.45,
      "environment_summary": "neutral",
      "temperature_f": 73.9,
      "wind_speed_mph": 9.2,
      "wind_direction": "cross",
      "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": "MIN",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:53.000Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": -140,
      "under_odds": 105,
      "expected_strikeouts": 5.75,
      "baseline_projected_strikeouts": 5.9,
      "adjusted_projected_strikeouts": 5.75,
      "skill_score": 69.5,
      "opportunity_score": 54.3,
      "opponent_weakness_score": 32.9,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 36.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.358,
      "model_under_probability": 0.642,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5833,
      "implied_under_probability_raw": 0.4878,
      "implied_over_probability_novig": 0.5446,
      "implied_under_probability_novig": 0.4554,
      "edge_over": -0.2253,
      "edge_under": 0.1542,
      "recommended_side": "Under",
      "recommended_edge": 0.1542,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.15,
      "adjustment_multiplier": 0.974,
      "aggregate_matchup_score": 50.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.45,
      "environment_summary": "neutral",
      "temperature_f": 73.9,
      "wind_speed_mph": 9.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Taj Bradley",
      "pitcher_id": 671737,
      "team_abbr": "MIN",
      "opponent_abbr": "CLE",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:53.000Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": -155,
      "under_odds": 115,
      "expected_strikeouts": 5.06,
      "baseline_projected_strikeouts": 5.01,
      "adjusted_projected_strikeouts": 5.06,
      "skill_score": 55.8,
      "opportunity_score": 64.7,
      "opponent_weakness_score": 39.9,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 19.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.3921,
      "model_under_probability": 0.6079,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.6078,
      "implied_under_probability_raw": 0.4651,
      "implied_over_probability_novig": 0.5665,
      "implied_under_probability_novig": 0.4335,
      "edge_over": -0.2157,
      "edge_under": 0.1428,
      "recommended_side": "Under",
      "recommended_edge": 0.1428,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.05,
      "adjustment_multiplier": 1.011,
      "aggregate_matchup_score": 58.8,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 25885.0,
      "lineup_expected_strikeouts": 5.06,
      "environment_summary": "neutral",
      "temperature_f": 73.9,
      "wind_speed_mph": 9.2,
      "wind_direction": "cross",
      "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": "MIN",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:53.817Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": -125,
      "under_odds": -102,
      "expected_strikeouts": 5.75,
      "baseline_projected_strikeouts": 5.9,
      "adjusted_projected_strikeouts": 5.75,
      "skill_score": 69.5,
      "opportunity_score": 54.3,
      "opponent_weakness_score": 32.9,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 36.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.358,
      "model_under_probability": 0.642,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5556,
      "implied_under_probability_raw": 0.505,
      "implied_over_probability_novig": 0.5239,
      "implied_under_probability_novig": 0.4761,
      "edge_over": -0.1976,
      "edge_under": 0.137,
      "recommended_side": "Under",
      "recommended_edge": 0.137,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.15,
      "adjustment_multiplier": 0.974,
      "aggregate_matchup_score": 50.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.45,
      "environment_summary": "neutral",
      "temperature_f": 73.9,
      "wind_speed_mph": 9.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Brandon Pfaadt",
      "pitcher_id": 694297,
      "team_abbr": "AZ",
      "opponent_abbr": "STL",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:53.817Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": 106,
      "under_odds": -136,
      "expected_strikeouts": 4.46,
      "baseline_projected_strikeouts": 4.08,
      "adjusted_projected_strikeouts": 4.46,
      "skill_score": 15.0,
      "opportunity_score": 34.5,
      "opponent_weakness_score": 42.1,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 58.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.6207,
      "model_under_probability": 0.3793,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4854,
      "implied_under_probability_raw": 0.5763,
      "implied_over_probability_novig": 0.4572,
      "implied_under_probability_novig": 0.5428,
      "edge_over": 0.1353,
      "edge_under": -0.197,
      "recommended_side": "Over",
      "recommended_edge": 0.1353,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.38,
      "adjustment_multiplier": 1.093,
      "aggregate_matchup_score": 49.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30360.0,
      "lineup_expected_strikeouts": 5.17,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 76.3,
      "wind_speed_mph": 3.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Taj Bradley",
      "pitcher_id": 671737,
      "team_abbr": "MIN",
      "opponent_abbr": "CLE",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:48.354Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": 119,
      "under_odds": -152,
      "expected_strikeouts": 5.06,
      "baseline_projected_strikeouts": 5.01,
      "adjusted_projected_strikeouts": 5.06,
      "skill_score": 55.8,
      "opportunity_score": 64.7,
      "opponent_weakness_score": 39.9,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 19.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.2634,
      "model_under_probability": 0.7366,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4566,
      "implied_under_probability_raw": 0.6032,
      "implied_over_probability_novig": 0.4308,
      "implied_under_probability_novig": 0.5692,
      "edge_over": -0.1932,
      "edge_under": 0.1334,
      "recommended_side": "Under",
      "recommended_edge": 0.1334,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.05,
      "adjustment_multiplier": 1.011,
      "aggregate_matchup_score": 58.8,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 25885.0,
      "lineup_expected_strikeouts": 5.06,
      "environment_summary": "neutral",
      "temperature_f": 73.9,
      "wind_speed_mph": 9.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Brandon Pfaadt",
      "pitcher_id": 694297,
      "team_abbr": "AZ",
      "opponent_abbr": "STL",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:59:12.000Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": 105,
      "under_odds": -140,
      "expected_strikeouts": 4.46,
      "baseline_projected_strikeouts": 4.08,
      "adjusted_projected_strikeouts": 4.46,
      "skill_score": 15.0,
      "opportunity_score": 34.5,
      "opponent_weakness_score": 42.1,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 58.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.6207,
      "model_under_probability": 0.3793,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4878,
      "implied_under_probability_raw": 0.5833,
      "implied_over_probability_novig": 0.4554,
      "implied_under_probability_novig": 0.5446,
      "edge_over": 0.1329,
      "edge_under": -0.204,
      "recommended_side": "Over",
      "recommended_edge": 0.1329,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.38,
      "adjustment_multiplier": 1.093,
      "aggregate_matchup_score": 49.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30360.0,
      "lineup_expected_strikeouts": 5.17,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 76.3,
      "wind_speed_mph": 3.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Taj Bradley",
      "pitcher_id": 671737,
      "team_abbr": "MIN",
      "opponent_abbr": "CLE",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:53.817Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": 120,
      "under_odds": -154,
      "expected_strikeouts": 5.06,
      "baseline_projected_strikeouts": 5.01,
      "adjusted_projected_strikeouts": 5.06,
      "skill_score": 55.8,
      "opportunity_score": 64.7,
      "opponent_weakness_score": 39.9,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 19.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.2634,
      "model_under_probability": 0.7366,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4545,
      "implied_under_probability_raw": 0.6063,
      "implied_over_probability_novig": 0.4285,
      "implied_under_probability_novig": 0.5715,
      "edge_over": -0.1911,
      "edge_under": 0.1303,
      "recommended_side": "Under",
      "recommended_edge": 0.1303,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.05,
      "adjustment_multiplier": 1.011,
      "aggregate_matchup_score": 58.8,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 25885.0,
      "lineup_expected_strikeouts": 5.06,
      "environment_summary": "neutral",
      "temperature_f": 73.9,
      "wind_speed_mph": 9.2,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Brandon Pfaadt",
      "pitcher_id": 694297,
      "team_abbr": "AZ",
      "opponent_abbr": "STL",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:48.354Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": -101,
      "under_odds": -124,
      "expected_strikeouts": 4.46,
      "baseline_projected_strikeouts": 4.08,
      "adjusted_projected_strikeouts": 4.46,
      "skill_score": 15.0,
      "opportunity_score": 34.5,
      "opponent_weakness_score": 42.1,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 58.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.6207,
      "model_under_probability": 0.3793,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5025,
      "implied_under_probability_raw": 0.5536,
      "implied_over_probability_novig": 0.4758,
      "implied_under_probability_novig": 0.5242,
      "edge_over": 0.1182,
      "edge_under": -0.1743,
      "recommended_side": "Over",
      "recommended_edge": 0.1182,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.38,
      "adjustment_multiplier": 1.093,
      "aggregate_matchup_score": 49.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30360.0,
      "lineup_expected_strikeouts": 5.17,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 76.3,
      "wind_speed_mph": 3.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Chris Sale",
      "pitcher_id": 519242,
      "team_abbr": "ATL",
      "opponent_abbr": "SD",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:48.354Z",
      "line": 7.5,
      "line_type": "half",
      "over_odds": -102,
      "under_odds": -125,
      "expected_strikeouts": 6.42,
      "baseline_projected_strikeouts": 6.52,
      "adjusted_projected_strikeouts": 6.42,
      "skill_score": 63.3,
      "opportunity_score": 49.5,
      "opponent_weakness_score": 45.0,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 51.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.3271,
      "model_under_probability": 0.6729,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.505,
      "implied_under_probability_raw": 0.5556,
      "implied_over_probability_novig": 0.4761,
      "implied_under_probability_novig": 0.5239,
      "edge_over": -0.1779,
      "edge_under": 0.1173,
      "recommended_side": "Under",
      "recommended_edge": 0.1173,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.1,
      "adjustment_multiplier": 1.006,
      "aggregate_matchup_score": 74.0,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 25945.0,
      "lineup_expected_strikeouts": 6.27,
      "environment_summary": "hitter-friendly",
      "temperature_f": 91.6,
      "wind_speed_mph": 11.5,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Shane Bieber",
      "pitcher_id": 669456,
      "team_abbr": "TOR",
      "opponent_abbr": "TB",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:48.354Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 123,
      "under_odds": -155,
      "expected_strikeouts": 4.98,
      "baseline_projected_strikeouts": 4.95,
      "adjusted_projected_strikeouts": 4.98,
      "skill_score": 9.1,
      "opportunity_score": 30.6,
      "opponent_weakness_score": 37.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 63.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.5331,
      "model_under_probability": 0.4669,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4484,
      "implied_under_probability_raw": 0.6078,
      "implied_over_probability_novig": 0.4245,
      "implied_under_probability_novig": 0.5755,
      "edge_over": 0.0847,
      "edge_under": -0.1409,
      "recommended_side": "Over",
      "recommended_edge": 0.0847,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.03,
      "adjustment_multiplier": 1.006,
      "aggregate_matchup_score": 52.5,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 9751.0,
      "lineup_expected_strikeouts": 5.01,
      "environment_summary": "neutral",
      "temperature_f": 65.8,
      "wind_speed_mph": 7.7,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Shane Bieber",
      "pitcher_id": 669456,
      "team_abbr": "TOR",
      "opponent_abbr": "TB",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:53.817Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 120,
      "under_odds": -154,
      "expected_strikeouts": 4.98,
      "baseline_projected_strikeouts": 4.95,
      "adjusted_projected_strikeouts": 4.98,
      "skill_score": 9.1,
      "opportunity_score": 30.6,
      "opponent_weakness_score": 37.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 63.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.5331,
      "model_under_probability": 0.4669,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4545,
      "implied_under_probability_raw": 0.6063,
      "implied_over_probability_novig": 0.4285,
      "implied_under_probability_novig": 0.5715,
      "edge_over": 0.0786,
      "edge_under": -0.1394,
      "recommended_side": "Over",
      "recommended_edge": 0.0786,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.03,
      "adjustment_multiplier": 1.006,
      "aggregate_matchup_score": 52.5,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 9751.0,
      "lineup_expected_strikeouts": 5.01,
      "environment_summary": "neutral",
      "temperature_f": 65.8,
      "wind_speed_mph": 7.7,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Chris Sale",
      "pitcher_id": 519242,
      "team_abbr": "ATL",
      "opponent_abbr": "SD",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:59.000Z",
      "line": 7.5,
      "line_type": "half",
      "over_odds": 110,
      "under_odds": -150,
      "expected_strikeouts": 6.42,
      "baseline_projected_strikeouts": 6.52,
      "adjusted_projected_strikeouts": 6.42,
      "skill_score": 63.3,
      "opportunity_score": 49.5,
      "opponent_weakness_score": 45.0,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 51.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.3271,
      "model_under_probability": 0.6729,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4762,
      "implied_under_probability_raw": 0.6,
      "implied_over_probability_novig": 0.4425,
      "implied_under_probability_novig": 0.5575,
      "edge_over": -0.1491,
      "edge_under": 0.0729,
      "recommended_side": "Under",
      "recommended_edge": 0.0729,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.1,
      "adjustment_multiplier": 1.006,
      "aggregate_matchup_score": 74.0,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 25945.0,
      "lineup_expected_strikeouts": 6.27,
      "environment_summary": "hitter-friendly",
      "temperature_f": 91.6,
      "wind_speed_mph": 11.5,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Chris Sale",
      "pitcher_id": 519242,
      "team_abbr": "ATL",
      "opponent_abbr": "SD",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:53.817Z",
      "line": 7.5,
      "line_type": "half",
      "over_odds": 118,
      "under_odds": -150,
      "expected_strikeouts": 6.42,
      "baseline_projected_strikeouts": 6.52,
      "adjusted_projected_strikeouts": 6.42,
      "skill_score": 63.3,
      "opportunity_score": 49.5,
      "opponent_weakness_score": 45.0,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 51.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.3271,
      "model_under_probability": 0.6729,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4587,
      "implied_under_probability_raw": 0.6,
      "implied_over_probability_novig": 0.4333,
      "implied_under_probability_novig": 0.5667,
      "edge_over": -0.1316,
      "edge_under": 0.0729,
      "recommended_side": "Under",
      "recommended_edge": 0.0729,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.1,
      "adjustment_multiplier": 1.006,
      "aggregate_matchup_score": 74.0,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 25945.0,
      "lineup_expected_strikeouts": 6.27,
      "environment_summary": "hitter-friendly",
      "temperature_f": 91.6,
      "wind_speed_mph": 11.5,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Shane Bieber",
      "pitcher_id": 669456,
      "team_abbr": "TOR",
      "opponent_abbr": "TB",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:35.000Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 115,
      "under_odds": -155,
      "expected_strikeouts": 4.98,
      "baseline_projected_strikeouts": 4.95,
      "adjusted_projected_strikeouts": 4.98,
      "skill_score": 9.1,
      "opportunity_score": 30.6,
      "opponent_weakness_score": 37.1,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 63.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.5331,
      "model_under_probability": 0.4669,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4651,
      "implied_under_probability_raw": 0.6078,
      "implied_over_probability_novig": 0.4335,
      "implied_under_probability_novig": 0.5665,
      "edge_over": 0.068,
      "edge_under": -0.1409,
      "recommended_side": "Over",
      "recommended_edge": 0.068,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.03,
      "adjustment_multiplier": 1.006,
      "aggregate_matchup_score": 52.5,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 9751.0,
      "lineup_expected_strikeouts": 5.01,
      "environment_summary": "neutral",
      "temperature_f": 65.8,
      "wind_speed_mph": 7.7,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Michael McGreevy",
      "pitcher_id": 700241,
      "team_abbr": "STL",
      "opponent_abbr": "AZ",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:59:12.000Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": 115,
      "under_odds": -155,
      "expected_strikeouts": 3.01,
      "baseline_projected_strikeouts": 2.96,
      "adjusted_projected_strikeouts": 3.01,
      "skill_score": 11.4,
      "opportunity_score": 53.5,
      "opponent_weakness_score": 33.1,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 42.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.3543,
      "model_under_probability": 0.6457,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4651,
      "implied_under_probability_raw": 0.6078,
      "implied_over_probability_novig": 0.4335,
      "implied_under_probability_novig": 0.5665,
      "edge_over": -0.1108,
      "edge_under": 0.0379,
      "recommended_side": "Under",
      "recommended_edge": 0.0379,
      "play_tier": "Play",
      "no_play_reason": null,
      "adjustment_delta": 0.05,
      "adjustment_multiplier": 1.017,
      "aggregate_matchup_score": 21.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 8017.0,
      "lineup_expected_strikeouts": 3.3,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 76.3,
      "wind_speed_mph": 3.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Michael McGreevy",
      "pitcher_id": 700241,
      "team_abbr": "STL",
      "opponent_abbr": "AZ",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:48.354Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": 130,
      "under_odds": -167,
      "expected_strikeouts": 3.01,
      "baseline_projected_strikeouts": 2.96,
      "adjusted_projected_strikeouts": 3.01,
      "skill_score": 11.4,
      "opportunity_score": 53.5,
      "opponent_weakness_score": 33.1,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 42.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.3543,
      "model_under_probability": 0.6457,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4348,
      "implied_under_probability_raw": 0.6255,
      "implied_over_probability_novig": 0.4101,
      "implied_under_probability_novig": 0.5899,
      "edge_over": -0.0805,
      "edge_under": 0.0202,
      "recommended_side": "Under",
      "recommended_edge": 0.0202,
      "play_tier": "Lean",
      "no_play_reason": null,
      "adjustment_delta": 0.05,
      "adjustment_multiplier": 1.017,
      "aggregate_matchup_score": 21.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 8017.0,
      "lineup_expected_strikeouts": 3.3,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 76.3,
      "wind_speed_mph": 3.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Michael McGreevy",
      "pitcher_id": 700241,
      "team_abbr": "STL",
      "opponent_abbr": "AZ",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-07-23T11:58:53.817Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": 142,
      "under_odds": -184,
      "expected_strikeouts": 3.01,
      "baseline_projected_strikeouts": 2.96,
      "adjusted_projected_strikeouts": 3.01,
      "skill_score": 11.4,
      "opportunity_score": 53.5,
      "opponent_weakness_score": 33.1,
      "support_tier": "STRONG_OPPORTUNITY",
      "support_label": "Strong Opportunity",
      "support_note": "Workload and batters-faced path are doing most of the support work.",
      "suppression_score": 42.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.3543,
      "model_under_probability": 0.6457,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4132,
      "implied_under_probability_raw": 0.6479,
      "implied_over_probability_novig": 0.3894,
      "implied_under_probability_novig": 0.6106,
      "edge_over": -0.0589,
      "edge_under": -0.0022,
      "recommended_side": "No Play",
      "recommended_edge": -0.0022,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.05,
      "adjustment_multiplier": 1.017,
      "aggregate_matchup_score": 21.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 8017.0,
      "lineup_expected_strikeouts": 3.3,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 76.3,
      "wind_speed_mph": 3.9,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    }
  ],
  "unmatched_inputs": [
    {
      "pitcher_name": "Griffin Canning",
      "team_abbr": "SD",
      "opponent_abbr": "ATL",
      "sportsbook": "BetMGM",
      "line": 3.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Griffin Canning",
      "team_abbr": "SD",
      "opponent_abbr": "ATL",
      "sportsbook": "DraftKings",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Griffin Canning",
      "team_abbr": "SD",
      "opponent_abbr": "ATL",
      "sportsbook": "FanDuel",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Ian Seymour",
      "team_abbr": "TB",
      "opponent_abbr": "TOR",
      "sportsbook": "BetMGM",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Ian Seymour",
      "team_abbr": "TB",
      "opponent_abbr": "TOR",
      "sportsbook": "DraftKings",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Ian Seymour",
      "team_abbr": "TB",
      "opponent_abbr": "TOR",
      "sportsbook": "FanDuel",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Randy Dobnak",
      "team_abbr": "KC",
      "opponent_abbr": "DET",
      "sportsbook": "BetMGM",
      "line": 2.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Randy Dobnak",
      "team_abbr": "KC",
      "opponent_abbr": "DET",
      "sportsbook": "DraftKings",
      "line": 3.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Randy Dobnak",
      "team_abbr": "KC",
      "opponent_abbr": "DET",
      "sportsbook": "FanDuel",
      "line": 3.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Troy Melton",
      "team_abbr": "DET",
      "opponent_abbr": "KC",
      "sportsbook": "BetMGM",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Troy Melton",
      "team_abbr": "DET",
      "opponent_abbr": "KC",
      "sportsbook": "DraftKings",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Troy Melton",
      "team_abbr": "DET",
      "opponent_abbr": "KC",
      "sportsbook": "FanDuel",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Zac Gallen",
      "team_abbr": "ARI",
      "opponent_abbr": "STL",
      "sportsbook": "DraftKings",
      "line": 3.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Zac Gallen",
      "team_abbr": "ARI",
      "opponent_abbr": "STL",
      "sportsbook": "FanDuel",
      "line": 3.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    }
  ]
}