{
  "date": "2026-08-20",
  "generated_at": "2026-08-20T23:59:15.814951",
  "artifact_type": "strikeout_edges",
  "market_type": "pitcher_strikeouts",
  "model_version": "strikeout_edges_v1_overlay",
  "projection_model_version": "strikeout_props_v2_calibrated_ladder",
  "projection_date": "2026-08-20",
  "sportsbook_input_summary": {
    "input_type": "canonical_processed_sportsbook_input",
    "source_count": 1,
    "row_count": 54,
    "matched_count": 27,
    "unmatched_count": 27
  },
  "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": 27,
    "grouped_pitcher_count": 9,
    "sportsbook_count": 3
  },
  "edge_count": 27,
  "edges": [
    {
      "pitcher_name": "Gavin Williams",
      "pitcher_id": 668909,
      "team_abbr": "CLE",
      "opponent_abbr": "SF",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:57:54.828Z",
      "line": 7.5,
      "line_type": "half",
      "over_odds": -106,
      "under_odds": -121,
      "expected_strikeouts": 5.75,
      "baseline_projected_strikeouts": 5.93,
      "adjusted_projected_strikeouts": 5.75,
      "skill_score": 84.2,
      "opportunity_score": 61.8,
      "opponent_weakness_score": 33.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 30.9,
      "suppression_tier": "MILD_SUPPRESSION",
      "suppression_label": "Mild Suppression",
      "suppression_note": "Some workload drag is present, but the strikeout path remains mostly intact.",
      "interaction_tier": "NEUTRAL_ALIGNMENT",
      "interaction_label": "Neutral Alignment",
      "interaction_note": "The signal stack is mixed and better used as context than conviction.",
      "trust_modifier": "NEUTRAL",
      "trust_label": "Neutral",
      "trust_note": "The strikeout trust picture is mixed and better used as context than conviction.",
      "model_over_probability": 0.2446,
      "model_under_probability": 0.7554,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5146,
      "implied_under_probability_raw": 0.5475,
      "implied_over_probability_novig": 0.4845,
      "implied_under_probability_novig": 0.5155,
      "edge_over": -0.27,
      "edge_under": 0.2079,
      "recommended_side": "Under",
      "recommended_edge": 0.2079,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.18,
      "adjustment_multiplier": 0.961,
      "aggregate_matchup_score": 52.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.23,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 78.6,
      "wind_speed_mph": 13.8,
      "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": "CIN",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:45.116Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -135,
      "under_odds": -110,
      "expected_strikeouts": 3.49,
      "baseline_projected_strikeouts": 3.16,
      "adjusted_projected_strikeouts": 3.49,
      "skill_score": 4.9,
      "opportunity_score": 38.9,
      "opponent_weakness_score": 35.7,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 55.8,
      "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.281,
      "model_under_probability": 0.719,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5745,
      "implied_under_probability_raw": 0.5238,
      "implied_over_probability_novig": 0.5231,
      "implied_under_probability_novig": 0.4769,
      "edge_over": -0.2935,
      "edge_under": 0.1952,
      "recommended_side": "Under",
      "recommended_edge": 0.1952,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.33,
      "adjustment_multiplier": 1.105,
      "aggregate_matchup_score": 33.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 8017.0,
      "lineup_expected_strikeouts": 4.59,
      "environment_summary": "hitter-friendly",
      "temperature_f": 79.3,
      "wind_speed_mph": 4.7,
      "wind_direction": "cross",
      "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": "CIN",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:06.519Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -108,
      "under_odds": -118,
      "expected_strikeouts": 3.49,
      "baseline_projected_strikeouts": 3.16,
      "adjusted_projected_strikeouts": 3.49,
      "skill_score": 4.9,
      "opportunity_score": 38.9,
      "opponent_weakness_score": 35.7,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 55.8,
      "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.281,
      "model_under_probability": 0.719,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5192,
      "implied_under_probability_raw": 0.5413,
      "implied_over_probability_novig": 0.4896,
      "implied_under_probability_novig": 0.5104,
      "edge_over": -0.2382,
      "edge_under": 0.1777,
      "recommended_side": "Under",
      "recommended_edge": 0.1777,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.33,
      "adjustment_multiplier": 1.105,
      "aggregate_matchup_score": 33.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 8017.0,
      "lineup_expected_strikeouts": 4.59,
      "environment_summary": "hitter-friendly",
      "temperature_f": 79.3,
      "wind_speed_mph": 4.7,
      "wind_direction": "cross",
      "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": "CIN",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:57:54.828Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -104,
      "under_odds": -122,
      "expected_strikeouts": 3.49,
      "baseline_projected_strikeouts": 3.16,
      "adjusted_projected_strikeouts": 3.49,
      "skill_score": 4.9,
      "opportunity_score": 38.9,
      "opponent_weakness_score": 35.7,
      "support_tier": "WEAK_SUPPORT",
      "support_label": "Weak Support",
      "support_note": "The strikeout support stack is lighter across skill, workload, and opponent context.",
      "suppression_score": 55.8,
      "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.281,
      "model_under_probability": 0.719,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5098,
      "implied_under_probability_raw": 0.5495,
      "implied_over_probability_novig": 0.4813,
      "implied_under_probability_novig": 0.5187,
      "edge_over": -0.2288,
      "edge_under": 0.1695,
      "recommended_side": "Under",
      "recommended_edge": 0.1695,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.33,
      "adjustment_multiplier": 1.105,
      "aggregate_matchup_score": 33.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 8017.0,
      "lineup_expected_strikeouts": 4.59,
      "environment_summary": "hitter-friendly",
      "temperature_f": 79.3,
      "wind_speed_mph": 4.7,
      "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": "SF",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:06.519Z",
      "line": 7.5,
      "line_type": "half",
      "over_odds": 114,
      "under_odds": -146,
      "expected_strikeouts": 5.75,
      "baseline_projected_strikeouts": 5.93,
      "adjusted_projected_strikeouts": 5.75,
      "skill_score": 84.2,
      "opportunity_score": 61.8,
      "opponent_weakness_score": 33.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 30.9,
      "suppression_tier": "MILD_SUPPRESSION",
      "suppression_label": "Mild Suppression",
      "suppression_note": "Some workload drag is present, but the strikeout path remains mostly intact.",
      "interaction_tier": "NEUTRAL_ALIGNMENT",
      "interaction_label": "Neutral Alignment",
      "interaction_note": "The signal stack is mixed and better used as context than conviction.",
      "trust_modifier": "NEUTRAL",
      "trust_label": "Neutral",
      "trust_note": "The strikeout trust picture is mixed and better used as context than conviction.",
      "model_over_probability": 0.2446,
      "model_under_probability": 0.7554,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4673,
      "implied_under_probability_raw": 0.5935,
      "implied_over_probability_novig": 0.4405,
      "implied_under_probability_novig": 0.5595,
      "edge_over": -0.2227,
      "edge_under": 0.1619,
      "recommended_side": "Under",
      "recommended_edge": 0.1619,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.18,
      "adjustment_multiplier": 0.961,
      "aggregate_matchup_score": 52.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.23,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 78.6,
      "wind_speed_mph": 13.8,
      "wind_direction": "in",
      "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": "SF",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:42.419Z",
      "line": 7.5,
      "line_type": "half",
      "over_odds": 110,
      "under_odds": -160,
      "expected_strikeouts": 5.75,
      "baseline_projected_strikeouts": 5.93,
      "adjusted_projected_strikeouts": 5.75,
      "skill_score": 84.2,
      "opportunity_score": 61.8,
      "opponent_weakness_score": 33.7,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 30.9,
      "suppression_tier": "MILD_SUPPRESSION",
      "suppression_label": "Mild Suppression",
      "suppression_note": "Some workload drag is present, but the strikeout path remains mostly intact.",
      "interaction_tier": "NEUTRAL_ALIGNMENT",
      "interaction_label": "Neutral Alignment",
      "interaction_note": "The signal stack is mixed and better used as context than conviction.",
      "trust_modifier": "NEUTRAL",
      "trust_label": "Neutral",
      "trust_note": "The strikeout trust picture is mixed and better used as context than conviction.",
      "model_over_probability": 0.2446,
      "model_under_probability": 0.7554,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4762,
      "implied_under_probability_raw": 0.6154,
      "implied_over_probability_novig": 0.4362,
      "implied_under_probability_novig": 0.5638,
      "edge_over": -0.2316,
      "edge_under": 0.14,
      "recommended_side": "Under",
      "recommended_edge": 0.14,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.18,
      "adjustment_multiplier": 0.961,
      "aggregate_matchup_score": 52.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 24255.0,
      "lineup_expected_strikeouts": 5.23,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 78.6,
      "wind_speed_mph": 13.8,
      "wind_direction": "in",
      "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-08-20T11:57:54.828Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": -123,
      "under_odds": -104,
      "expected_strikeouts": 4.75,
      "baseline_projected_strikeouts": 4.59,
      "adjusted_projected_strikeouts": 4.75,
      "skill_score": 0.6,
      "opportunity_score": 34.4,
      "opponent_weakness_score": 40.3,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 68.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.6633,
      "model_under_probability": 0.3367,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5516,
      "implied_under_probability_raw": 0.5098,
      "implied_over_probability_novig": 0.5197,
      "implied_under_probability_novig": 0.4803,
      "edge_over": 0.1117,
      "edge_under": -0.1731,
      "recommended_side": "Over",
      "recommended_edge": 0.1117,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.16,
      "adjustment_multiplier": 1.034,
      "aggregate_matchup_score": 52.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 9751.0,
      "lineup_expected_strikeouts": 5.01,
      "environment_summary": "neutral",
      "temperature_f": 89.4,
      "wind_speed_mph": 7.8,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Shane Bieber",
      "pitcher_id": 669456,
      "team_abbr": "TOR",
      "opponent_abbr": "TB",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:06.519Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": -125,
      "under_odds": -102,
      "expected_strikeouts": 4.75,
      "baseline_projected_strikeouts": 4.59,
      "adjusted_projected_strikeouts": 4.75,
      "skill_score": 0.6,
      "opportunity_score": 34.4,
      "opponent_weakness_score": 40.3,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 68.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.6633,
      "model_under_probability": 0.3367,
      "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.1077,
      "edge_under": -0.1683,
      "recommended_side": "Over",
      "recommended_edge": 0.1077,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.16,
      "adjustment_multiplier": 1.034,
      "aggregate_matchup_score": 52.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 9751.0,
      "lineup_expected_strikeouts": 5.01,
      "environment_summary": "neutral",
      "temperature_f": 89.4,
      "wind_speed_mph": 7.8,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Jacob deGrom",
      "pitcher_id": 594798,
      "team_abbr": "TEX",
      "opponent_abbr": "WSH",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:57:54.828Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": 111,
      "under_odds": -142,
      "expected_strikeouts": 5.51,
      "baseline_projected_strikeouts": 5.6,
      "adjusted_projected_strikeouts": 5.51,
      "skill_score": 47.1,
      "opportunity_score": 30.3,
      "opponent_weakness_score": 40.4,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 89.1,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.3248,
      "model_under_probability": 0.6752,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4739,
      "implied_under_probability_raw": 0.5868,
      "implied_over_probability_novig": 0.4468,
      "implied_under_probability_novig": 0.5532,
      "edge_over": -0.1491,
      "edge_under": 0.0884,
      "recommended_side": "Under",
      "recommended_edge": 0.0884,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.09,
      "adjustment_multiplier": 0.993,
      "aggregate_matchup_score": 65.1,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 15111.0,
      "lineup_expected_strikeouts": 5.3,
      "environment_summary": "hitter-friendly",
      "temperature_f": 93.9,
      "wind_speed_mph": 7.8,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Jacob deGrom",
      "pitcher_id": 594798,
      "team_abbr": "TEX",
      "opponent_abbr": "WSH",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:06.519Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": 112,
      "under_odds": -142,
      "expected_strikeouts": 5.51,
      "baseline_projected_strikeouts": 5.6,
      "adjusted_projected_strikeouts": 5.51,
      "skill_score": 47.1,
      "opportunity_score": 30.3,
      "opponent_weakness_score": 40.4,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 89.1,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.3248,
      "model_under_probability": 0.6752,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4717,
      "implied_under_probability_raw": 0.5868,
      "implied_over_probability_novig": 0.4456,
      "implied_under_probability_novig": 0.5544,
      "edge_over": -0.1469,
      "edge_under": 0.0884,
      "recommended_side": "Under",
      "recommended_edge": 0.0884,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.09,
      "adjustment_multiplier": 0.993,
      "aggregate_matchup_score": 65.1,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 15111.0,
      "lineup_expected_strikeouts": 5.3,
      "environment_summary": "hitter-friendly",
      "temperature_f": 93.9,
      "wind_speed_mph": 7.8,
      "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-08-20T11:58:08.375Z",
      "line": 3.5,
      "line_type": "half",
      "over_odds": -140,
      "under_odds": -105,
      "expected_strikeouts": 4.75,
      "baseline_projected_strikeouts": 4.59,
      "adjusted_projected_strikeouts": 4.75,
      "skill_score": 0.6,
      "opportunity_score": 34.4,
      "opponent_weakness_score": 40.3,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 68.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.6633,
      "model_under_probability": 0.3367,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5833,
      "implied_under_probability_raw": 0.5122,
      "implied_over_probability_novig": 0.5325,
      "implied_under_probability_novig": 0.4675,
      "edge_over": 0.08,
      "edge_under": -0.1755,
      "recommended_side": "Over",
      "recommended_edge": 0.08,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.16,
      "adjustment_multiplier": 1.034,
      "aggregate_matchup_score": 52.7,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 9751.0,
      "lineup_expected_strikeouts": 5.01,
      "environment_summary": "neutral",
      "temperature_f": 89.4,
      "wind_speed_mph": 7.8,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Jacob deGrom",
      "pitcher_id": 594798,
      "team_abbr": "TEX",
      "opponent_abbr": "WSH",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:52.635Z",
      "line": 6.5,
      "line_type": "half",
      "over_odds": 105,
      "under_odds": -155,
      "expected_strikeouts": 5.51,
      "baseline_projected_strikeouts": 5.6,
      "adjusted_projected_strikeouts": 5.51,
      "skill_score": 47.1,
      "opportunity_score": 30.3,
      "opponent_weakness_score": 40.4,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 89.1,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.3248,
      "model_under_probability": 0.6752,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4878,
      "implied_under_probability_raw": 0.6078,
      "implied_over_probability_novig": 0.4452,
      "implied_under_probability_novig": 0.5548,
      "edge_over": -0.163,
      "edge_under": 0.0674,
      "recommended_side": "Under",
      "recommended_edge": 0.0674,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": -0.09,
      "adjustment_multiplier": 0.993,
      "aggregate_matchup_score": 65.1,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 15111.0,
      "lineup_expected_strikeouts": 5.3,
      "environment_summary": "hitter-friendly",
      "temperature_f": 93.9,
      "wind_speed_mph": 7.8,
      "wind_direction": "out",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Grant Holmes",
      "pitcher_id": 656550,
      "team_abbr": "ATL",
      "opponent_abbr": "CWS",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:57:54.828Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 123,
      "under_odds": -157,
      "expected_strikeouts": 4.84,
      "baseline_projected_strikeouts": 4.63,
      "adjusted_projected_strikeouts": 4.84,
      "skill_score": 21.2,
      "opportunity_score": 24.8,
      "opponent_weakness_score": 42.5,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 74.6,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.5112,
      "model_under_probability": 0.4888,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4484,
      "implied_under_probability_raw": 0.6109,
      "implied_over_probability_novig": 0.4233,
      "implied_under_probability_novig": 0.5767,
      "edge_over": 0.0628,
      "edge_under": -0.1221,
      "recommended_side": "Over",
      "recommended_edge": 0.0628,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.21,
      "adjustment_multiplier": 1.046,
      "aggregate_matchup_score": 55.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 11879.0,
      "lineup_expected_strikeouts": 5.18,
      "environment_summary": "neutral",
      "temperature_f": 72.0,
      "wind_speed_mph": 6.5,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Brady Singer",
      "pitcher_id": 663903,
      "team_abbr": "CIN",
      "opponent_abbr": "STL",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:06.519Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 112,
      "under_odds": -142,
      "expected_strikeouts": 4.94,
      "baseline_projected_strikeouts": 4.62,
      "adjusted_projected_strikeouts": 4.94,
      "skill_score": 20.9,
      "opportunity_score": 59.0,
      "opponent_weakness_score": 44.0,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 37.6,
      "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.5269,
      "model_under_probability": 0.4731,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4717,
      "implied_under_probability_raw": 0.5868,
      "implied_over_probability_novig": 0.4456,
      "implied_under_probability_novig": 0.5544,
      "edge_over": 0.0552,
      "edge_under": -0.1137,
      "recommended_side": "Over",
      "recommended_edge": 0.0552,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.32,
      "adjustment_multiplier": 1.069,
      "aggregate_matchup_score": 53.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 33950.0,
      "lineup_expected_strikeouts": 5.49,
      "environment_summary": "hitter-friendly",
      "temperature_f": 79.3,
      "wind_speed_mph": 4.7,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Grant Holmes",
      "pitcher_id": 656550,
      "team_abbr": "ATL",
      "opponent_abbr": "CWS",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:06.519Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 118,
      "under_odds": -150,
      "expected_strikeouts": 4.84,
      "baseline_projected_strikeouts": 4.63,
      "adjusted_projected_strikeouts": 4.84,
      "skill_score": 21.2,
      "opportunity_score": 24.8,
      "opponent_weakness_score": 42.5,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 74.6,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.5112,
      "model_under_probability": 0.4888,
      "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.0525,
      "edge_under": -0.1112,
      "recommended_side": "Over",
      "recommended_edge": 0.0525,
      "play_tier": "Strong",
      "no_play_reason": null,
      "adjustment_delta": 0.21,
      "adjustment_multiplier": 1.046,
      "aggregate_matchup_score": 55.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 11879.0,
      "lineup_expected_strikeouts": 5.18,
      "environment_summary": "neutral",
      "temperature_f": 72.0,
      "wind_speed_mph": 6.5,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Brady Singer",
      "pitcher_id": 663903,
      "team_abbr": "CIN",
      "opponent_abbr": "STL",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:57:54.828Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 108,
      "under_odds": -137,
      "expected_strikeouts": 4.94,
      "baseline_projected_strikeouts": 4.62,
      "adjusted_projected_strikeouts": 4.94,
      "skill_score": 20.9,
      "opportunity_score": 59.0,
      "opponent_weakness_score": 44.0,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 37.6,
      "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.5269,
      "model_under_probability": 0.4731,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4808,
      "implied_under_probability_raw": 0.5781,
      "implied_over_probability_novig": 0.4541,
      "implied_under_probability_novig": 0.5459,
      "edge_over": 0.0461,
      "edge_under": -0.105,
      "recommended_side": "Over",
      "recommended_edge": 0.0461,
      "play_tier": "Play",
      "no_play_reason": null,
      "adjustment_delta": 0.32,
      "adjustment_multiplier": 1.069,
      "aggregate_matchup_score": 53.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 33950.0,
      "lineup_expected_strikeouts": 5.49,
      "environment_summary": "hitter-friendly",
      "temperature_f": 79.3,
      "wind_speed_mph": 4.7,
      "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": "MIL",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:06.519Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -130,
      "under_odds": 102,
      "expected_strikeouts": 5.32,
      "baseline_projected_strikeouts": 5.28,
      "adjusted_projected_strikeouts": 5.32,
      "skill_score": 15.8,
      "opportunity_score": 53.2,
      "opponent_weakness_score": 40.2,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 48.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.5835,
      "model_under_probability": 0.4165,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5652,
      "implied_under_probability_raw": 0.495,
      "implied_over_probability_novig": 0.5331,
      "implied_under_probability_novig": 0.4669,
      "edge_over": 0.0183,
      "edge_under": -0.0785,
      "recommended_side": "Over",
      "recommended_edge": 0.0183,
      "play_tier": "Lean",
      "no_play_reason": null,
      "adjustment_delta": 0.04,
      "adjustment_multiplier": 1.008,
      "aggregate_matchup_score": 60.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30773.0,
      "lineup_expected_strikeouts": 5.27,
      "environment_summary": "neutral",
      "temperature_f": 74.5,
      "wind_speed_mph": 7.3,
      "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": "MIL",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:57:54.828Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -133,
      "under_odds": 104,
      "expected_strikeouts": 5.32,
      "baseline_projected_strikeouts": 5.28,
      "adjusted_projected_strikeouts": 5.32,
      "skill_score": 15.8,
      "opportunity_score": 53.2,
      "opponent_weakness_score": 40.2,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 48.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.5835,
      "model_under_probability": 0.4165,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5708,
      "implied_under_probability_raw": 0.4902,
      "implied_over_probability_novig": 0.538,
      "implied_under_probability_novig": 0.462,
      "edge_over": 0.0127,
      "edge_under": -0.0737,
      "recommended_side": "No Play",
      "recommended_edge": 0.0127,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.04,
      "adjustment_multiplier": 1.008,
      "aggregate_matchup_score": 60.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30773.0,
      "lineup_expected_strikeouts": 5.27,
      "environment_summary": "neutral",
      "temperature_f": 74.5,
      "wind_speed_mph": 7.3,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Grant Holmes",
      "pitcher_id": 656550,
      "team_abbr": "ATL",
      "opponent_abbr": "CWS",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:39.471Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 100,
      "under_odds": -150,
      "expected_strikeouts": 4.84,
      "baseline_projected_strikeouts": 4.63,
      "adjusted_projected_strikeouts": 4.84,
      "skill_score": 21.2,
      "opportunity_score": 24.8,
      "opponent_weakness_score": 42.5,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 74.6,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.5112,
      "model_under_probability": 0.4888,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5,
      "implied_under_probability_raw": 0.6,
      "implied_over_probability_novig": 0.4545,
      "implied_under_probability_novig": 0.5455,
      "edge_over": 0.0112,
      "edge_under": -0.1112,
      "recommended_side": "No Play",
      "recommended_edge": 0.0112,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.21,
      "adjustment_multiplier": 1.046,
      "aggregate_matchup_score": 55.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 11879.0,
      "lineup_expected_strikeouts": 5.18,
      "environment_summary": "neutral",
      "temperature_f": 72.0,
      "wind_speed_mph": 6.5,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Brady Singer",
      "pitcher_id": 663903,
      "team_abbr": "CIN",
      "opponent_abbr": "STL",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:45.116Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": -110,
      "under_odds": -135,
      "expected_strikeouts": 4.94,
      "baseline_projected_strikeouts": 4.62,
      "adjusted_projected_strikeouts": 4.94,
      "skill_score": 20.9,
      "opportunity_score": 59.0,
      "opponent_weakness_score": 44.0,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 37.6,
      "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.5269,
      "model_under_probability": 0.4731,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5238,
      "implied_under_probability_raw": 0.5745,
      "implied_over_probability_novig": 0.4769,
      "implied_under_probability_novig": 0.5231,
      "edge_over": 0.0031,
      "edge_under": -0.1014,
      "recommended_side": "No Play",
      "recommended_edge": 0.0031,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.32,
      "adjustment_multiplier": 1.069,
      "aggregate_matchup_score": 53.2,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 33950.0,
      "lineup_expected_strikeouts": 5.49,
      "environment_summary": "hitter-friendly",
      "temperature_f": 79.3,
      "wind_speed_mph": 4.7,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Landen Roupp",
      "pitcher_id": 694738,
      "team_abbr": "SF",
      "opponent_abbr": "CLE",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:57:54.828Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 117,
      "under_odds": -149,
      "expected_strikeouts": 4.27,
      "baseline_projected_strikeouts": 4.27,
      "adjusted_projected_strikeouts": 4.27,
      "skill_score": 18.5,
      "opportunity_score": 49.4,
      "opponent_weakness_score": 32.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": 48.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.4171,
      "model_under_probability": 0.5829,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4608,
      "implied_under_probability_raw": 0.5984,
      "implied_over_probability_novig": 0.435,
      "implied_under_probability_novig": 0.565,
      "edge_over": -0.0437,
      "edge_under": -0.0155,
      "recommended_side": "No Play",
      "recommended_edge": -0.0155,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.0,
      "adjustment_multiplier": 0.991,
      "aggregate_matchup_score": 44.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 10559.0,
      "lineup_expected_strikeouts": 4.21,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 78.6,
      "wind_speed_mph": 13.8,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Landen Roupp",
      "pitcher_id": 694738,
      "team_abbr": "SF",
      "opponent_abbr": "CLE",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:06.519Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 118,
      "under_odds": -150,
      "expected_strikeouts": 4.27,
      "baseline_projected_strikeouts": 4.27,
      "adjusted_projected_strikeouts": 4.27,
      "skill_score": 18.5,
      "opportunity_score": 49.4,
      "opponent_weakness_score": 32.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": 48.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.4171,
      "model_under_probability": 0.5829,
      "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.0416,
      "edge_under": -0.0171,
      "recommended_side": "No Play",
      "recommended_edge": -0.0171,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.0,
      "adjustment_multiplier": 0.991,
      "aggregate_matchup_score": 44.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 10559.0,
      "lineup_expected_strikeouts": 4.21,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 78.6,
      "wind_speed_mph": 13.8,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Kyle Bradish",
      "pitcher_id": 680694,
      "team_abbr": "BAL",
      "opponent_abbr": "NYY",
      "sportsbook": "FanDuel",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:06.519Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": -138,
      "under_odds": 108,
      "expected_strikeouts": 6.22,
      "baseline_projected_strikeouts": 6.07,
      "adjusted_projected_strikeouts": 6.22,
      "skill_score": 8.0,
      "opportunity_score": 38.3,
      "opponent_weakness_score": 42.6,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 58.8,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.5589,
      "model_under_probability": 0.4411,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5798,
      "implied_under_probability_raw": 0.4808,
      "implied_over_probability_novig": 0.5467,
      "implied_under_probability_novig": 0.4533,
      "edge_over": -0.0209,
      "edge_under": -0.0397,
      "recommended_side": "No Play",
      "recommended_edge": -0.0209,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.15,
      "adjustment_multiplier": 1.024,
      "aggregate_matchup_score": 61.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 13080.0,
      "lineup_expected_strikeouts": 6.32,
      "environment_summary": "neutral",
      "temperature_f": 74.7,
      "wind_speed_mph": 2.1,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Kyle Bradish",
      "pitcher_id": 680694,
      "team_abbr": "BAL",
      "opponent_abbr": "NYY",
      "sportsbook": "DraftKings",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:57:54.828Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": -144,
      "under_odds": 112,
      "expected_strikeouts": 6.22,
      "baseline_projected_strikeouts": 6.07,
      "adjusted_projected_strikeouts": 6.22,
      "skill_score": 8.0,
      "opportunity_score": 38.3,
      "opponent_weakness_score": 42.6,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 58.8,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.5589,
      "model_under_probability": 0.4411,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5902,
      "implied_under_probability_raw": 0.4717,
      "implied_over_probability_novig": 0.5558,
      "implied_under_probability_novig": 0.4442,
      "edge_over": -0.0313,
      "edge_under": -0.0306,
      "recommended_side": "No Play",
      "recommended_edge": -0.0306,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.15,
      "adjustment_multiplier": 1.024,
      "aggregate_matchup_score": 61.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 13080.0,
      "lineup_expected_strikeouts": 6.32,
      "environment_summary": "neutral",
      "temperature_f": 74.7,
      "wind_speed_mph": 2.1,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Landen Roupp",
      "pitcher_id": 694738,
      "team_abbr": "SF",
      "opponent_abbr": "CLE",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:42.419Z",
      "line": 4.5,
      "line_type": "half",
      "over_odds": 110,
      "under_odds": -160,
      "expected_strikeouts": 4.27,
      "baseline_projected_strikeouts": 4.27,
      "adjusted_projected_strikeouts": 4.27,
      "skill_score": 18.5,
      "opportunity_score": 49.4,
      "opponent_weakness_score": 32.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": 48.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.4171,
      "model_under_probability": 0.5829,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4762,
      "implied_under_probability_raw": 0.6154,
      "implied_over_probability_novig": 0.4362,
      "implied_under_probability_novig": 0.5638,
      "edge_over": -0.0591,
      "edge_under": -0.0325,
      "recommended_side": "No Play",
      "recommended_edge": -0.0325,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.0,
      "adjustment_multiplier": 0.991,
      "aggregate_matchup_score": 44.6,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 10559.0,
      "lineup_expected_strikeouts": 4.21,
      "environment_summary": "pitcher-friendly",
      "temperature_f": 78.6,
      "wind_speed_mph": 13.8,
      "wind_direction": "in",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    },
    {
      "pitcher_name": "Kyle Bradish",
      "pitcher_id": 680694,
      "team_abbr": "BAL",
      "opponent_abbr": "NYY",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:59:19.562Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": -145,
      "under_odds": 100,
      "expected_strikeouts": 6.22,
      "baseline_projected_strikeouts": 6.07,
      "adjusted_projected_strikeouts": 6.22,
      "skill_score": 8.0,
      "opportunity_score": 38.3,
      "opponent_weakness_score": 42.6,
      "support_tier": "STRONG_OPPONENT",
      "support_label": "Strong Opponent",
      "support_note": "Opponent strikeout pressure is the clearest support input.",
      "suppression_score": 58.8,
      "suppression_tier": "HEAVY_SUPPRESSION",
      "suppression_label": "Heavy Suppression",
      "suppression_note": "Leash or workload context materially weakens the strikeout conversion path.",
      "interaction_tier": "SUPPRESSED_ALIGNMENT",
      "interaction_label": "Suppressed Alignment",
      "interaction_note": "Runway drag or weak alignment materially softens the strikeout path.",
      "trust_modifier": "SUPPRESSED",
      "trust_label": "Suppressed",
      "trust_note": "Leash or alignment drag is materially weakening the strikeout trust case.",
      "model_over_probability": 0.5589,
      "model_under_probability": 0.4411,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.5918,
      "implied_under_probability_raw": 0.5,
      "implied_over_probability_novig": 0.542,
      "implied_under_probability_novig": 0.458,
      "edge_over": -0.0329,
      "edge_under": -0.0589,
      "recommended_side": "No Play",
      "recommended_edge": -0.0329,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.15,
      "adjustment_multiplier": 1.024,
      "aggregate_matchup_score": 61.9,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 13080.0,
      "lineup_expected_strikeouts": 6.32,
      "environment_summary": "neutral",
      "temperature_f": 74.7,
      "wind_speed_mph": 2.1,
      "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": "MIL",
      "sportsbook": "BetMGM",
      "source_provider": "sportsgameodds",
      "timestamp": "2026-08-20T11:58:39.215Z",
      "line": 5.5,
      "line_type": "half",
      "over_odds": 115,
      "under_odds": -165,
      "expected_strikeouts": 5.32,
      "baseline_projected_strikeouts": 5.28,
      "adjusted_projected_strikeouts": 5.32,
      "skill_score": 15.8,
      "opportunity_score": 53.2,
      "opponent_weakness_score": 40.2,
      "support_tier": "DUAL_SUPPORT",
      "support_label": "Dual Support",
      "support_note": "Two of the three strikeout support layers align cleanly.",
      "suppression_score": 48.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.4315,
      "model_under_probability": 0.5685,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.4651,
      "implied_under_probability_raw": 0.6226,
      "implied_over_probability_novig": 0.4276,
      "implied_under_probability_novig": 0.5724,
      "edge_over": -0.0336,
      "edge_under": -0.0541,
      "recommended_side": "No Play",
      "recommended_edge": -0.0336,
      "play_tier": "No Play",
      "no_play_reason": "Best edge did not clear the minimum play threshold.",
      "adjustment_delta": 0.04,
      "adjustment_multiplier": 1.008,
      "aggregate_matchup_score": 60.3,
      "lineup_confidence": "projected",
      "pitch_mix_sample_size": 30773.0,
      "lineup_expected_strikeouts": 5.27,
      "environment_summary": "neutral",
      "temperature_f": 74.5,
      "wind_speed_mph": 7.3,
      "wind_direction": "cross",
      "starter_confidence": "probable",
      "projection_model_version": "negative_binomial_style",
      "source_file": "canonical_all_providers.json"
    }
  ],
  "unmatched_inputs": [
    {
      "pitcher_name": "Andrew Alvarez",
      "team_abbr": "WSH",
      "opponent_abbr": "TEX",
      "sportsbook": "BetMGM",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Andrew Alvarez",
      "team_abbr": "WSH",
      "opponent_abbr": "TEX",
      "sportsbook": "DraftKings",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Andrew Alvarez",
      "team_abbr": "WSH",
      "opponent_abbr": "TEX",
      "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": "CWS",
      "opponent_abbr": "ATL",
      "sportsbook": "BetMGM",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Anthony Kay",
      "team_abbr": "CWS",
      "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": "Anthony Kay",
      "team_abbr": "CWS",
      "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": "Gage Jump",
      "team_abbr": "OAK",
      "opponent_abbr": "KC",
      "sportsbook": "BetMGM",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Gage Jump",
      "team_abbr": "OAK",
      "opponent_abbr": "KC",
      "sportsbook": "DraftKings",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Gage Jump",
      "team_abbr": "OAK",
      "opponent_abbr": "KC",
      "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": "NYY",
      "opponent_abbr": "BAL",
      "sportsbook": "BetMGM",
      "line": 6.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Gerrit Cole",
      "team_abbr": "NYY",
      "opponent_abbr": "BAL",
      "sportsbook": "DraftKings",
      "line": 6.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Gerrit Cole",
      "team_abbr": "NYY",
      "opponent_abbr": "BAL",
      "sportsbook": "FanDuel",
      "line": 6.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Grayson Rodriguez",
      "team_abbr": "LAA",
      "opponent_abbr": "HOU",
      "sportsbook": "BetMGM",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Grayson Rodriguez",
      "team_abbr": "LAA",
      "opponent_abbr": "HOU",
      "sportsbook": "DraftKings",
      "line": 4.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Grayson Rodriguez",
      "team_abbr": "LAA",
      "opponent_abbr": "HOU",
      "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": 5.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": 5.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": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Peter Lambert",
      "team_abbr": "HOU",
      "opponent_abbr": "LAA",
      "sportsbook": "BetMGM",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Peter Lambert",
      "team_abbr": "HOU",
      "opponent_abbr": "LAA",
      "sportsbook": "DraftKings",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Peter Lambert",
      "team_abbr": "HOU",
      "opponent_abbr": "LAA",
      "sportsbook": "FanDuel",
      "line": 5.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": "OAK",
      "sportsbook": "BetMGM",
      "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": "OAK",
      "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": "OAK",
      "sportsbook": "FanDuel",
      "line": 3.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Robert Gasser",
      "team_abbr": "MIL",
      "opponent_abbr": "SEA",
      "sportsbook": "BetMGM",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Robert Gasser",
      "team_abbr": "MIL",
      "opponent_abbr": "SEA",
      "sportsbook": "DraftKings",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    },
    {
      "pitcher_name": "Robert Gasser",
      "team_abbr": "MIL",
      "opponent_abbr": "SEA",
      "sportsbook": "FanDuel",
      "line": 5.5,
      "source_file": "canonical_all_providers.json",
      "reason": "No matching Mithrandir strikeout props row was found."
    }
  ]
}