{
  "date": "2026-03-25",
  "generated_at": "2026-03-25T08:28:36.630043",
  "artifact_type": "home_run_edges",
  "market_type": "home_run_over_0_5",
  "model_version": "home_run_edges_v1_overlay",
  "projection_model_version": "home_run_props_v1_deterministic",
  "projection_date": "2026-03-25",
  "sportsbook_input_summary": {
    "input_type": "manual_sportsbook_input",
    "source_count": 1,
    "row_count": 42,
    "matched_count": 42,
    "unmatched_count": 0
  },
  "assumptions": {
    "methodology": "Sportsbook home run props are matched against the saved Mithrandir home run props artifact. For the common 0.5 HR market, the model over probability is the saved 1+ HR probability and the model under probability is its complement. 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.",
    "market_handling": {
      "supported_market": "over_0_5_home_runs",
      "one_sided_format": "one_sided_hr",
      "two_sided_format": "two_sided_over_under",
      "model_push_probability": 0.0,
      "matching_order": [
        "hitter_id",
        "normalized_hitter_name_plus_team_abbr_plus_opponent_abbr"
      ]
    },
    "recommendation_thresholds": {
      "threshold_version": "v1_2_calibrated",
      "no_play_edge_threshold_below": 0.025,
      "lean_edge_threshold": 0.025,
      "play_edge_threshold": 0.045,
      "strong_edge_threshold": 0.07
    },
    "value_play_formula": {
      "version": "v2_value_score",
      "limit": 5,
      "formula": "value_score = max(0, (0.50 * edge_component + 0.30 * probability_component + 0.15 * payout_component + 0.05 * lineup_component - longshot_penalty)) * 100",
      "edge_component": "clamp((edge_over - 0.02) / 0.10, 0, 1)",
      "probability_component": "clamp((prob_1_plus_hr - 0.14) / 0.16, 0, 1)",
      "payout_component": "piecewise preference that peaks in the +200 to +350 range and fades above +350",
      "lineup_component": "1.0 if confirmed_lineup_flag else 0.92",
      "longshot_penalty": "0.10 * clamp((0.16 - prob_1_plus_hr) / 0.06, 0, 1) + 0.08 * clamp((over_odds - 400) / 200, 0, 1)",
      "eligibility": {
        "recommended_side": "Over",
        "play_tiers": [
          "Strong",
          "Play",
          "Lean"
        ],
        "plus_money_only": true,
        "minimum_probability": 0.14,
        "extreme_longshot_odds_threshold": 400,
        "extreme_longshot_minimum_probability": 0.2,
        "selection_rule": "Top 5 unique hitters by best value_score row per hitter per date"
      }
    }
  },
  "summary": {
    "total_rows": 42,
    "matched_rows": 42,
    "unmatched_rows": 0,
    "over_recommendation_count": 0,
    "under_recommendation_count": 2,
    "strong_count": 0,
    "play_count": 1,
    "lean_count": 1,
    "no_play_count": 40,
    "average_edge_over": -0.0269,
    "average_edge_under": -0.0109,
    "value_play_count": 0
  },
  "edge_count": 42,
  "edges": [
    {
      "hitter_name": "Aaron Judge",
      "hitter_id": 592450,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 215,
      "under_odds": -255,
      "expected_home_runs": 0.251,
      "prob_1_plus_hr": 0.222,
      "model_over_probability": 0.222,
      "model_under_probability": 0.778,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.3175,
      "implied_under_probability_raw": 0.7183,
      "implied_over_probability_novig": 0.3065,
      "implied_under_probability_novig": 0.6935,
      "edge_over": -0.0955,
      "edge_under": 0.0597,
      "recommended_side": "Under",
      "recommended_edge": 0.0597,
      "play_tier": "Play",
      "no_play_reason": null,
      "lineup_slot": 2,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.862,
      "pitch_mix_interaction_score": 95.9,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 2,
      "edge_direction_rank": 1,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Aaron Judge",
      "hitter_id": 592450,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 225,
      "under_odds": -275,
      "expected_home_runs": 0.251,
      "prob_1_plus_hr": 0.222,
      "model_over_probability": 0.222,
      "model_under_probability": 0.778,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.3077,
      "implied_under_probability_raw": 0.7333,
      "implied_over_probability_novig": 0.2956,
      "implied_under_probability_novig": 0.7044,
      "edge_over": -0.0857,
      "edge_under": 0.0447,
      "recommended_side": "Under",
      "recommended_edge": 0.0447,
      "play_tier": "Lean",
      "no_play_reason": null,
      "lineup_slot": 2,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.862,
      "pitch_mix_interaction_score": 95.9,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 4,
      "edge_direction_rank": 2,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Jazz Chisholm Jr.",
      "hitter_id": 665862,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 400,
      "under_odds": -510,
      "expected_home_runs": 0.1612,
      "prob_1_plus_hr": 0.1489,
      "model_over_probability": 0.1489,
      "model_under_probability": 0.8511,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.2,
      "implied_under_probability_raw": 0.8361,
      "implied_over_probability_novig": 0.193,
      "implied_under_probability_novig": 0.807,
      "edge_over": -0.0511,
      "edge_under": 0.015,
      "recommended_side": "No Play",
      "recommended_edge": 0.015,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 5,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.866,
      "pitch_mix_interaction_score": 97.8,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 12,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Jazz Chisholm Jr.",
      "hitter_id": 665862,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 410,
      "under_odds": -545,
      "expected_home_runs": 0.1612,
      "prob_1_plus_hr": 0.1489,
      "model_over_probability": 0.1489,
      "model_under_probability": 0.8511,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1961,
      "implied_under_probability_raw": 0.845,
      "implied_over_probability_novig": 0.1884,
      "implied_under_probability_novig": 0.8116,
      "edge_over": -0.0472,
      "edge_under": 0.0061,
      "recommended_side": "No Play",
      "recommended_edge": 0.0061,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 5,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.866,
      "pitch_mix_interaction_score": 97.8,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 26,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Ben Rice",
      "hitter_id": 700250,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 455,
      "under_odds": -615,
      "expected_home_runs": 0.2057,
      "prob_1_plus_hr": 0.1859,
      "model_over_probability": 0.1859,
      "model_under_probability": 0.8141,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1802,
      "implied_under_probability_raw": 0.8601,
      "implied_over_probability_novig": 0.1732,
      "implied_under_probability_novig": 0.8268,
      "edge_over": 0.0057,
      "edge_under": -0.046,
      "recommended_side": "No Play",
      "recommended_edge": 0.0057,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 6,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.926,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 28,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Willy Adames",
      "hitter_id": 642715,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 440,
      "under_odds": -565,
      "expected_home_runs": 0.1568,
      "prob_1_plus_hr": 0.1451,
      "model_over_probability": 0.1451,
      "model_under_probability": 0.8549,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1852,
      "implied_under_probability_raw": 0.8496,
      "implied_over_probability_novig": 0.179,
      "implied_under_probability_novig": 0.821,
      "edge_over": -0.0401,
      "edge_under": 0.0053,
      "recommended_side": "No Play",
      "recommended_edge": 0.0053,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 4,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 99.7,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 29,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Trent Grisham",
      "hitter_id": 663757,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 465,
      "under_odds": -635,
      "expected_home_runs": 0.2007,
      "prob_1_plus_hr": 0.1818,
      "model_over_probability": 0.1818,
      "model_under_probability": 0.8182,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.177,
      "implied_under_probability_raw": 0.8639,
      "implied_over_probability_novig": 0.17,
      "implied_under_probability_novig": 0.83,
      "edge_over": 0.0048,
      "edge_under": -0.0457,
      "recommended_side": "No Play",
      "recommended_edge": 0.0048,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 7,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.926,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 31,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Ben Rice",
      "hitter_id": 700250,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 450,
      "under_odds": null,
      "expected_home_runs": 0.2057,
      "prob_1_plus_hr": 0.1859,
      "model_over_probability": 0.1859,
      "model_under_probability": 0.8141,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1818,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": 0.0041,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": 0.0041,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 6,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.926,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 32,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Trent Grisham",
      "hitter_id": 663757,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 460,
      "under_odds": -595,
      "expected_home_runs": 0.2007,
      "prob_1_plus_hr": 0.1818,
      "model_over_probability": 0.1818,
      "model_under_probability": 0.8182,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1786,
      "implied_under_probability_raw": 0.8561,
      "implied_over_probability_novig": 0.1726,
      "implied_under_probability_novig": 0.8274,
      "edge_over": 0.0032,
      "edge_under": -0.0379,
      "recommended_side": "No Play",
      "recommended_edge": 0.0032,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 7,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.926,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 34,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Trent Grisham",
      "hitter_id": 663757,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 460,
      "under_odds": null,
      "expected_home_runs": 0.2007,
      "prob_1_plus_hr": 0.1818,
      "model_over_probability": 0.1818,
      "model_under_probability": 0.8182,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1786,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": 0.0032,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": 0.0032,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 7,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.926,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 35,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Ben Rice",
      "hitter_id": 700250,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 445,
      "under_odds": -575,
      "expected_home_runs": 0.2057,
      "prob_1_plus_hr": 0.1859,
      "model_over_probability": 0.1859,
      "model_under_probability": 0.8141,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1835,
      "implied_under_probability_raw": 0.8519,
      "implied_over_probability_novig": 0.1772,
      "implied_under_probability_novig": 0.8228,
      "edge_over": 0.0024,
      "edge_under": -0.0378,
      "recommended_side": "No Play",
      "recommended_edge": 0.0024,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 6,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.926,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 36,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Heliot Ramos",
      "hitter_id": 671218,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 570,
      "under_odds": -815,
      "expected_home_runs": 0.1624,
      "prob_1_plus_hr": 0.1499,
      "model_over_probability": 0.1499,
      "model_under_probability": 0.8501,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1493,
      "implied_under_probability_raw": 0.8907,
      "implied_over_probability_novig": 0.1436,
      "implied_under_probability_novig": 0.8564,
      "edge_over": 0.0006,
      "edge_under": -0.0406,
      "recommended_side": "No Play",
      "recommended_edge": 0.0006,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 5,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.957,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 39,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Matt Chapman",
      "hitter_id": 656305,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 490,
      "under_odds": -640,
      "expected_home_runs": 0.1449,
      "prob_1_plus_hr": 0.1349,
      "model_over_probability": 0.1349,
      "model_under_probability": 0.8651,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1695,
      "implied_under_probability_raw": 0.8649,
      "implied_over_probability_novig": 0.1639,
      "implied_under_probability_novig": 0.8361,
      "edge_over": -0.0346,
      "edge_under": 0.0002,
      "recommended_side": "No Play",
      "recommended_edge": 0.0002,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 3,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 101.8,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 42,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Heliot Ramos",
      "hitter_id": 671218,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 565,
      "under_odds": -770,
      "expected_home_runs": 0.1624,
      "prob_1_plus_hr": 0.1499,
      "model_over_probability": 0.1499,
      "model_under_probability": 0.8501,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1504,
      "implied_under_probability_raw": 0.8851,
      "implied_over_probability_novig": 0.1452,
      "implied_under_probability_novig": 0.8548,
      "edge_over": -0.0005,
      "edge_under": -0.035,
      "recommended_side": "No Play",
      "recommended_edge": -0.0005,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 5,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.957,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 40,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Heliot Ramos",
      "hitter_id": 671218,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 565,
      "under_odds": null,
      "expected_home_runs": 0.1624,
      "prob_1_plus_hr": 0.1499,
      "model_over_probability": 0.1499,
      "model_under_probability": 0.8501,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1504,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0005,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0005,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 5,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.957,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 41,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Rafael Devers",
      "hitter_id": 646240,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 370,
      "under_odds": -465,
      "expected_home_runs": 0.1959,
      "prob_1_plus_hr": 0.1779,
      "model_over_probability": 0.1779,
      "model_under_probability": 0.8221,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.2128,
      "implied_under_probability_raw": 0.823,
      "implied_over_probability_novig": 0.2054,
      "implied_under_probability_novig": 0.7946,
      "edge_over": -0.0349,
      "edge_under": -0.0009,
      "recommended_side": "No Play",
      "recommended_edge": -0.0009,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 2,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.917,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 38,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Luis Arraez",
      "hitter_id": 650333,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 1150,
      "under_odds": -2120,
      "expected_home_runs": 0.048,
      "prob_1_plus_hr": 0.0469,
      "model_over_probability": 0.0469,
      "model_under_probability": 0.9531,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.08,
      "implied_under_probability_raw": 0.955,
      "implied_over_probability_novig": 0.0773,
      "implied_under_probability_novig": 0.9227,
      "edge_over": -0.0331,
      "edge_under": -0.0019,
      "recommended_side": "No Play",
      "recommended_edge": -0.0019,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 1,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 100.8,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 37,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Willy Adames",
      "hitter_id": 642715,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 450,
      "under_odds": -605,
      "expected_home_runs": 0.1568,
      "prob_1_plus_hr": 0.1451,
      "model_over_probability": 0.1451,
      "model_under_probability": 0.8549,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1818,
      "implied_under_probability_raw": 0.8582,
      "implied_over_probability_novig": 0.1748,
      "implied_under_probability_novig": 0.8252,
      "edge_over": -0.0367,
      "edge_under": -0.0033,
      "recommended_side": "No Play",
      "recommended_edge": -0.0033,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 4,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 99.7,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 33,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Jos\u00e9 Caballero",
      "hitter_id": 676609,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 985,
      "under_odds": -1645,
      "expected_home_runs": 0.0645,
      "prob_1_plus_hr": 0.0625,
      "model_over_probability": 0.0625,
      "model_under_probability": 0.9375,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.0922,
      "implied_under_probability_raw": 0.9427,
      "implied_over_probability_novig": 0.0891,
      "implied_under_probability_novig": 0.9109,
      "edge_over": -0.0297,
      "edge_under": -0.0052,
      "recommended_side": "No Play",
      "recommended_edge": -0.0052,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 1,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.864,
      "pitch_mix_interaction_score": 101.4,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 30,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Tyler Fitzgerald",
      "hitter_id": 666149,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 635,
      "under_odds": -890,
      "expected_home_runs": 0.1131,
      "prob_1_plus_hr": 0.1069,
      "model_over_probability": 0.1069,
      "model_under_probability": 0.8931,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1361,
      "implied_under_probability_raw": 0.899,
      "implied_over_probability_novig": 0.1315,
      "implied_under_probability_novig": 0.8685,
      "edge_over": -0.0292,
      "edge_under": -0.0059,
      "recommended_side": "No Play",
      "recommended_edge": -0.0059,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 6,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 102.3,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 27,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Giancarlo Stanton",
      "hitter_id": 519317,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 295,
      "under_odds": -370,
      "expected_home_runs": 0.2833,
      "prob_1_plus_hr": 0.2467,
      "model_over_probability": 0.2467,
      "model_under_probability": 0.7533,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.2532,
      "implied_under_probability_raw": 0.7872,
      "implied_over_probability_novig": 0.2434,
      "implied_under_probability_novig": 0.7566,
      "edge_over": -0.0065,
      "edge_under": -0.0339,
      "recommended_side": "No Play",
      "recommended_edge": -0.0065,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 4,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 25,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Cody Bellinger",
      "hitter_id": 641355,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 455,
      "under_odds": -590,
      "expected_home_runs": 0.1642,
      "prob_1_plus_hr": 0.1514,
      "model_over_probability": 0.1514,
      "model_under_probability": 0.8486,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1802,
      "implied_under_probability_raw": 0.8551,
      "implied_over_probability_novig": 0.1741,
      "implied_under_probability_novig": 0.8259,
      "edge_over": -0.0288,
      "edge_under": -0.0065,
      "recommended_side": "No Play",
      "recommended_edge": -0.0065,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 3,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.876,
      "pitch_mix_interaction_score": 106.1,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 24,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Luis Arraez",
      "hitter_id": 650333,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 1150,
      "under_odds": -2400,
      "expected_home_runs": 0.048,
      "prob_1_plus_hr": 0.0469,
      "model_over_probability": 0.0469,
      "model_under_probability": 0.9531,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.08,
      "implied_under_probability_raw": 0.96,
      "implied_over_probability_novig": 0.0769,
      "implied_under_probability_novig": 0.9231,
      "edge_over": -0.0331,
      "edge_under": -0.0069,
      "recommended_side": "No Play",
      "recommended_edge": -0.0069,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 1,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 100.8,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 23,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Matt Chapman",
      "hitter_id": 656305,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 495,
      "under_odds": -685,
      "expected_home_runs": 0.1449,
      "prob_1_plus_hr": 0.1349,
      "model_over_probability": 0.1349,
      "model_under_probability": 0.8651,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1681,
      "implied_under_probability_raw": 0.8726,
      "implied_over_probability_novig": 0.1615,
      "implied_under_probability_novig": 0.8385,
      "edge_over": -0.0332,
      "edge_under": -0.0075,
      "recommended_side": "No Play",
      "recommended_edge": -0.0075,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 3,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 101.8,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 22,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Jos\u00e9 Caballero",
      "hitter_id": 676609,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 960,
      "under_odds": -1735,
      "expected_home_runs": 0.0645,
      "prob_1_plus_hr": 0.0625,
      "model_over_probability": 0.0625,
      "model_under_probability": 0.9375,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.0943,
      "implied_under_probability_raw": 0.9455,
      "implied_over_probability_novig": 0.0907,
      "implied_under_probability_novig": 0.9093,
      "edge_over": -0.0318,
      "edge_under": -0.008,
      "recommended_side": "No Play",
      "recommended_edge": -0.008,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 1,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.864,
      "pitch_mix_interaction_score": 101.4,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 21,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Jung Hoo Lee",
      "hitter_id": 808982,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 1150,
      "under_odds": -2120,
      "expected_home_runs": 0.073,
      "prob_1_plus_hr": 0.0704,
      "model_over_probability": 0.0704,
      "model_under_probability": 0.9296,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.08,
      "implied_under_probability_raw": 0.955,
      "implied_over_probability_novig": 0.0773,
      "implied_under_probability_novig": 0.9227,
      "edge_over": -0.0096,
      "edge_under": -0.0254,
      "recommended_side": "No Play",
      "recommended_edge": -0.0096,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 7,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.97,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 18,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Jung Hoo Lee",
      "hitter_id": 808982,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 1150,
      "under_odds": -2400,
      "expected_home_runs": 0.073,
      "prob_1_plus_hr": 0.0704,
      "model_over_probability": 0.0704,
      "model_under_probability": 0.9296,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.08,
      "implied_under_probability_raw": 0.96,
      "implied_over_probability_novig": 0.0769,
      "implied_under_probability_novig": 0.9231,
      "edge_over": -0.0096,
      "edge_under": -0.0304,
      "recommended_side": "No Play",
      "recommended_edge": -0.0096,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 7,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.97,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 19,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Jung Hoo Lee",
      "hitter_id": 808982,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 1150,
      "under_odds": null,
      "expected_home_runs": 0.073,
      "prob_1_plus_hr": 0.0704,
      "model_over_probability": 0.0704,
      "model_under_probability": 0.9296,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.08,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0096,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0096,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 7,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.97,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 20,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Giancarlo Stanton",
      "hitter_id": 519317,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 290,
      "under_odds": null,
      "expected_home_runs": 0.2833,
      "prob_1_plus_hr": 0.2467,
      "model_over_probability": 0.2467,
      "model_under_probability": 0.7533,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.2564,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0097,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0097,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 4,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 17,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Rafael Devers",
      "hitter_id": 646240,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 380,
      "under_odds": -495,
      "expected_home_runs": 0.1959,
      "prob_1_plus_hr": 0.1779,
      "model_over_probability": 0.1779,
      "model_under_probability": 0.8221,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.2083,
      "implied_under_probability_raw": 0.8319,
      "implied_over_probability_novig": 0.2002,
      "implied_under_probability_novig": 0.7998,
      "edge_over": -0.0304,
      "edge_under": -0.0098,
      "recommended_side": "No Play",
      "recommended_edge": -0.0098,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 2,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.917,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 16,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Tyler Fitzgerald",
      "hitter_id": 666149,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 635,
      "under_odds": -945,
      "expected_home_runs": 0.1131,
      "prob_1_plus_hr": 0.1069,
      "model_over_probability": 0.1069,
      "model_under_probability": 0.8931,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1361,
      "implied_under_probability_raw": 0.9043,
      "implied_over_probability_novig": 0.1308,
      "implied_under_probability_novig": 0.8692,
      "edge_over": -0.0292,
      "edge_under": -0.0112,
      "recommended_side": "No Play",
      "recommended_edge": -0.0112,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 6,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 102.3,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 15,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Giancarlo Stanton",
      "hitter_id": 519317,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "DraftKings",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 285,
      "under_odds": -345,
      "expected_home_runs": 0.2833,
      "prob_1_plus_hr": 0.2467,
      "model_over_probability": 0.2467,
      "model_under_probability": 0.7533,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.2597,
      "implied_under_probability_raw": 0.7753,
      "implied_over_probability_novig": 0.2509,
      "implied_under_probability_novig": 0.7491,
      "edge_over": -0.013,
      "edge_under": -0.022,
      "recommended_side": "No Play",
      "recommended_edge": -0.013,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 4,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 14,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Cody Bellinger",
      "hitter_id": 641355,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "FanDuel",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "two_sided_over_under",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 465,
      "under_odds": -630,
      "expected_home_runs": 0.1642,
      "prob_1_plus_hr": 0.1514,
      "model_over_probability": 0.1514,
      "model_under_probability": 0.8486,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.177,
      "implied_under_probability_raw": 0.863,
      "implied_over_probability_novig": 0.1702,
      "implied_under_probability_novig": 0.8298,
      "edge_over": -0.0256,
      "edge_under": -0.0144,
      "recommended_side": "No Play",
      "recommended_edge": -0.0144,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 3,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.876,
      "pitch_mix_interaction_score": 106.1,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 13,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Cody Bellinger",
      "hitter_id": 641355,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 460,
      "under_odds": null,
      "expected_home_runs": 0.1642,
      "prob_1_plus_hr": 0.1514,
      "model_over_probability": 0.1514,
      "model_under_probability": 0.8486,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1786,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0272,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0272,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 3,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.876,
      "pitch_mix_interaction_score": 106.1,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 11,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Tyler Fitzgerald",
      "hitter_id": 666149,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 635,
      "under_odds": null,
      "expected_home_runs": 0.1131,
      "prob_1_plus_hr": 0.1069,
      "model_over_probability": 0.1069,
      "model_under_probability": 0.8931,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1361,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0292,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0292,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 6,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 102.3,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 10,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Jos\u00e9 Caballero",
      "hitter_id": 676609,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 965,
      "under_odds": null,
      "expected_home_runs": 0.0645,
      "prob_1_plus_hr": 0.0625,
      "model_over_probability": 0.0625,
      "model_under_probability": 0.9375,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.0939,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0314,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0314,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 1,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.864,
      "pitch_mix_interaction_score": 101.4,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 9,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Rafael Devers",
      "hitter_id": 646240,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 375,
      "under_odds": null,
      "expected_home_runs": 0.1959,
      "prob_1_plus_hr": 0.1779,
      "model_over_probability": 0.1779,
      "model_under_probability": 0.8221,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.2105,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0326,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0326,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 2,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.917,
      "pitch_mix_interaction_score": 108.0,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 8,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Luis Arraez",
      "hitter_id": 650333,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 1150,
      "under_odds": null,
      "expected_home_runs": 0.048,
      "prob_1_plus_hr": 0.0469,
      "model_over_probability": 0.0469,
      "model_under_probability": 0.9531,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.08,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0331,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0331,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 1,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 100.8,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 7,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Matt Chapman",
      "hitter_id": 656305,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 490,
      "under_odds": null,
      "expected_home_runs": 0.1449,
      "prob_1_plus_hr": 0.1349,
      "model_over_probability": 0.1349,
      "model_under_probability": 0.8651,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1695,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0346,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0346,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 3,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 101.8,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 6,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Willy Adames",
      "hitter_id": 642715,
      "team_abbr": "SF",
      "opponent_abbr": "NYY",
      "pitcher_name": "Max Fried",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 445,
      "under_odds": null,
      "expected_home_runs": 0.1568,
      "prob_1_plus_hr": 0.1451,
      "model_over_probability": 0.1451,
      "model_under_probability": 0.8549,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.1835,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0384,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0384,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 4,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.904,
      "pitch_mix_interaction_score": 99.7,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 5,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Jazz Chisholm Jr.",
      "hitter_id": 665862,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 405,
      "under_odds": null,
      "expected_home_runs": 0.1612,
      "prob_1_plus_hr": 0.1489,
      "model_over_probability": 0.1489,
      "model_under_probability": 0.8511,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.198,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0491,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0491,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 5,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "opposite_side",
      "pitcher_hr_contact_allowance_multiplier": 0.866,
      "pitch_mix_interaction_score": 97.8,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 3,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    },
    {
      "hitter_name": "Aaron Judge",
      "hitter_id": 592450,
      "team_abbr": "NYY",
      "opponent_abbr": "SF",
      "pitcher_name": "Logan Webb",
      "sportsbook": "BetMGM",
      "timestamp": "2026-03-25T12:00:00",
      "market_type": "home_run_over_0_5",
      "market_format": "one_sided_hr",
      "recommendation_threshold_version": "v1_2_calibrated",
      "strong_threshold": 0.07,
      "play_threshold": 0.045,
      "lean_threshold": 0.025,
      "line": 0.5,
      "over_odds": 220,
      "under_odds": null,
      "expected_home_runs": 0.251,
      "prob_1_plus_hr": 0.222,
      "model_over_probability": 0.222,
      "model_under_probability": 0.778,
      "model_push_probability": 0.0,
      "implied_over_probability_raw": 0.3125,
      "implied_under_probability_raw": null,
      "implied_over_probability_novig": null,
      "implied_under_probability_novig": null,
      "edge_over": -0.0905,
      "edge_under": null,
      "recommended_side": "No Play",
      "recommended_edge": -0.0905,
      "play_tier": null,
      "no_play_reason": "Model edge did not clear the minimum threshold.",
      "lineup_slot": 2,
      "lineup_source": "projected",
      "lineup_confidence": "projected",
      "confirmed_lineup_flag": false,
      "handedness_matchup": "same_side",
      "pitcher_hr_contact_allowance_multiplier": 0.862,
      "pitch_mix_interaction_score": 95.9,
      "environment_summary": "pitcher-friendly",
      "hr_multiplier": 0.914,
      "source_file": "shadow_book_lines.csv",
      "matching_method": "hitter_id",
      "edge_abs_rank": 1,
      "edge_direction_rank": null,
      "value_score": null,
      "value_rank": null,
      "value_box_rank": null,
      "value_formula_version": "v2_value_score"
    }
  ],
  "value_plays": [],
  "unmatched_inputs": []
}