| 20260918 | 20260918_ATL@HOU | away | Tyler Mahle | Tyler Mahle | True | 6.0 | 6.0 | 0 | 3 | 1 | -2 | 3/3 | 3/1 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9130434782608696,
"WHIP": 1.2463768115942029,
"IP": 138.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.52,
"recent_avg_IP": 6.267,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0122,
"sample_weight": 1.0,
"run_prevention_factor": 0.999,
"strikeout_factor": 0.9903,
"walk_factor": 0.968,
"homer_factor": 0.9847,
"regression_flag": "neutral",
"k_percent": 22.3,
"bb_percent": 7.5,
"woba": 0.312,
"xwoba": 0.31,
"barrel_percent": 6.6,
"hard_hit_percent": 37.8,
"whiff_percent": 23.0
},
"espn_rank": {
"rank": 110,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641816",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 5.0,
"R": 7.0,
"H": 27.0,
"BB": 4.0,
"SO": 22.0,
"HR": 3.0,
"BF": 122.0,
"Pitches": 450.0
},
"per_game": {
"IP": 6.1,
"ER": 1.0,
"R": 1.4,
"H": 5.4,
"BB": 0.8,
"SO": 4.4,
"HR": 0.6,
"BF": 24.4,
"Pitches": 90.0
},
"rates": {
"ERA": 1.4362,
"WHIP": 0.9894,
"ER_per_IP": 0.15957,
"H_per_IP": 0.8617,
"BB_per_IP": 0.12766,
"SO_per_IP": 0.70213,
"HR_per_IP": 0.09574
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 14.0,
"R": 16.0,
"H": 47.0,
"BB": 11.0,
"SO": 54.0,
"HR": 6.0,
"BF": 233.0,
"Pitches": 913.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.6,
"H": 4.7,
"BB": 1.1,
"SO": 5.4,
"HR": 0.6,
"BF": 23.3,
"Pitches": 91.3
},
"rates": {
"ERA": 2.1,
"WHIP": 0.9667,
"ER_per_IP": 0.23333,
"H_per_IP": 0.78333,
"BB_per_IP": 0.18333,
"SO_per_IP": 0.9,
"HR_per_IP": 0.1
}
},
"season": {
"games": 25,
"totals": {
"IP": 138.0,
"ER": 60.0,
"R": 63.0,
"H": 129.0,
"BB": 43.0,
"SO": 127.0,
"HR": 18.0,
"BF": 570.0,
"Pitches": 2213.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.52,
"H": 5.16,
"BB": 1.72,
"SO": 5.08,
"HR": 0.72,
"BF": 22.8,
"Pitches": 88.52
},
"rates": {
"ERA": 3.913,
"WHIP": 1.2464,
"ER_per_IP": 0.43478,
"H_per_IP": 0.93478,
"BB_per_IP": 0.31159,
"SO_per_IP": 0.92029,
"HR_per_IP": 0.13043
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.728,
"predicted_H": 5.282,
"predicted_BB": 1.309,
"predicted_SO": 5.07,
"predicted_HR": 0.676,
"predicted_ERA": 2.5626,
"predicted_WHIP": 1.0859
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.728,
"final": 2.2628,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.282,
"final": 4.3226,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.309,
"final": 2.0199,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.07,
"final": 4.6201,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.676,
"final": 0.3918,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5626,
"final": 2.5626,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0859,
"final": 1.0859,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 14,
"H": 47,
"BB": 11,
"SO": 54,
"HR": 6,
"ERA": 2.1,
"WHIP": 0.9666666666666667,
"K9": 8.1,
"HR9": 0.9,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.7273633262018218,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641816",
"player_name": "Tyler Mahle",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 153,
"wins": 89,
"losses": 64,
"win_pct": 0.5817,
"runs_scored": 706.0,
"runs_allowed": 595.0,
"run_differential": 111.0,
"run_differential_per_game": 0.7255,
"avg_runs_scored": 4.6144,
"avg_runs_allowed": 3.8889,
"offense_index": 1.0298,
"defense_index": 1.1522,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.0,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.1235
},
"opponent": {
"team": "HOU",
"games": 153,
"wins": 77,
"losses": 76,
"win_pct": 0.5033,
"runs_scored": 681.0,
"runs_allowed": 731.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3268,
"avg_runs_scored": 4.451,
"avg_runs_allowed": 4.7778,
"offense_index": 0.9934,
"defense_index": 0.9378,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.9,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0723
},
"edges": {
"quality_edge": 0.1958,
"offense_edge": 0.0298,
"opponent_offense_edge": -0.0066,
"defense_strength": 0.1522,
"opponent_defense_weakness": 0.0622,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0127,
"run_prevention": 0.9739,
"strikeout": 1.0064
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641816",
"profile": {
"available": true,
"pitcher_id": "641816",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 518.0,
"k_percent": 22.3,
"bb_percent": 7.5,
"woba": 0.312,
"xwoba": 0.31,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 37.8,
"avg_best_speed": 80.3633,
"avg_hyper_speed": 93.9328,
"whiff_percent": 23.0,
"swing_percent": 45.9
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0136,
"command_and_miss": -0.0007,
"regression_edge": 0.0571,
"xwoba_edge": 0.0571,
"barrel_edge": 0.1556,
"hard_hit_edge": 0.0286,
"whiff_edge": -0.2857,
"bb_edge": 0.4,
"pitch_design_score": -0.0121
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641816",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 89.64210131634411,
"release_spin_rate": 2138.975160992383,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 89.64210131634411,
"release_spin_rate": 2138.975160992383,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.6421,
"release_spin_rate": 2138.9752,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0121,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0861,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0122,
"sample_weight": 1.0,
"run_prevention_factor": 0.999,
"strikeout_factor": 0.9903,
"walk_factor": 0.968,
"homer_factor": 0.9847,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641816",
"espn_id": 34973,
"player_name": "Tyler Mahle",
"team": "ATL",
"role": "pitcher",
"espn_rank": 110,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 110,
"gp_value": 25.0,
"gp_rank": 337,
"gs_value": 25.0,
"gs_rank": 68,
"qs_value": 9.0,
"qs_rank": 66,
"era_value": 3.913,
"era_rank": null,
"w_value": 6.0,
"w_rank": 112,
"l_value": 10.0,
"l_rank": 22,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 138.0,
"ip_rank": 74,
"h_value": 129.0,
"h_rank": 69,
"er_value": 60.0,
"er_rank": 71,
"hr_value": 18.0,
"hr_rank": 68,
"bb_value": 43.0,
"bb_rank": 76,
"k_value": 127.0,
"k_rank": 63,
"k_per_9_value": 8.282609,
"k_per_9_rank": 22,
"whip_value": 1.2463,
"whip_rank": null,
"war_value": 1.67,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.999,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.999,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.968,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9847,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9903,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 109,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260918_ATL@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_ATL@HOU | home | Peter Lambert | Peter Lambert | True | 5.1 | 5.1 | 0 | 2 | 2 | 0 | 5/6 | 2/1 | 2/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7070938215102975,
"WHIP": 1.2219679633867278,
"IP": 145.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.603,
"recent_avg_IP": 5.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1907,
"sample_weight": 1.0,
"run_prevention_factor": 0.9838,
"strikeout_factor": 1.0057,
"walk_factor": 1.0,
"homer_factor": 0.9586,
"regression_flag": "neutral",
"k_percent": 22.9,
"bb_percent": 9.1,
"woba": 0.294,
"xwoba": 0.297,
"barrel_percent": 6.4,
"hard_hit_percent": 35.8,
"whiff_percent": 25.1
},
"espn_rank": {
"rank": 33,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663567",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 19.0,
"R": 20.0,
"H": 31.0,
"BB": 10.0,
"SO": 24.0,
"HR": 2.0,
"BF": 123.0,
"Pitches": 468.0
},
"per_game": {
"IP": 5.1,
"ER": 3.8,
"R": 4.0,
"H": 6.2,
"BB": 2.0,
"SO": 4.8,
"HR": 0.4,
"BF": 24.6,
"Pitches": 93.6
},
"rates": {
"ERA": 6.3333,
"WHIP": 1.5185,
"ER_per_IP": 0.7037,
"H_per_IP": 1.14815,
"BB_per_IP": 0.37037,
"SO_per_IP": 0.88889,
"HR_per_IP": 0.07407
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 29.0,
"R": 31.0,
"H": 56.0,
"BB": 20.0,
"SO": 50.0,
"HR": 3.0,
"BF": 238.0,
"Pitches": 923.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9,
"R": 3.1,
"H": 5.6,
"BB": 2.0,
"SO": 5.0,
"HR": 0.3,
"BF": 23.8,
"Pitches": 92.3
},
"rates": {
"ERA": 4.8634,
"WHIP": 1.4161,
"ER_per_IP": 0.54037,
"H_per_IP": 1.04348,
"BB_per_IP": 0.37267,
"SO_per_IP": 0.93168,
"HR_per_IP": 0.0559
}
},
"season": {
"games": 26,
"totals": {
"IP": 145.2,
"ER": 60.0,
"R": 62.0,
"H": 122.0,
"BB": 56.0,
"SO": 141.0,
"HR": 14.0,
"BF": 617.0,
"Pitches": 2453.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3077,
"R": 2.3846,
"H": 4.6923,
"BB": 2.1538,
"SO": 5.4231,
"HR": 0.5385,
"BF": 23.7308,
"Pitches": 94.3462
},
"rates": {
"ERA": 3.7071,
"WHIP": 1.222,
"ER_per_IP": 0.4119,
"H_per_IP": 0.83753,
"BB_per_IP": 0.38444,
"SO_per_IP": 0.96796,
"HR_per_IP": 0.09611
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.099,
"predicted_H": 5.592,
"predicted_BB": 2.016,
"predicted_SO": 4.972,
"predicted_HR": 0.454,
"predicted_ERA": 5.1745,
"predicted_WHIP": 1.4117
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.099,
"final": 2.6395,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.592,
"final": 5.3445,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.016,
"final": 2.0093,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.972,
"final": 3.7293,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.454,
"final": 0.6823,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1745,
"final": 5.1745,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4117,
"final": 1.4117,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 29,
"H": 56,
"BB": 20,
"SO": 50,
"HR": 3,
"ERA": 4.86335403726708,
"WHIP": 1.4161490683229812,
"K9": 8.385093167701863,
"HR9": 0.5031055900621118,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 1.0494777154357762,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663567",
"player_name": "Peter Lambert",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 153,
"wins": 77,
"losses": 76,
"win_pct": 0.5033,
"runs_scored": 681.0,
"runs_allowed": 731.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3268,
"avg_runs_scored": 4.451,
"avg_runs_allowed": 4.7778,
"offense_index": 0.9934,
"defense_index": 0.9378,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.9,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0723
},
"opponent": {
"team": "ATL",
"games": 153,
"wins": 89,
"losses": 64,
"win_pct": 0.5817,
"runs_scored": 706.0,
"runs_allowed": 595.0,
"run_differential": 111.0,
"run_differential_per_game": 0.7255,
"avg_runs_scored": 4.6144,
"avg_runs_allowed": 3.8889,
"offense_index": 1.0298,
"defense_index": 1.1522,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.0,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.1235
},
"edges": {
"quality_edge": -0.1958,
"offense_edge": -0.0066,
"opponent_offense_edge": 0.0298,
"defense_strength": -0.0622,
"opponent_defense_weakness": -0.1522,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9891,
"run_prevention": 1.0208,
"strikeout": 0.9917
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663567",
"profile": {
"available": true,
"pitcher_id": "663567",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 592.0,
"k_percent": 22.9,
"bb_percent": 9.1,
"woba": 0.294,
"xwoba": 0.297,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 35.8,
"avg_best_speed": 77.5842,
"avg_hyper_speed": 93.5146,
"whiff_percent": 25.1,
"swing_percent": 48.9
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3306,
"command_and_miss": 0.0629,
"regression_edge": -0.0857,
"xwoba_edge": 0.4286,
"barrel_edge": 0.2,
"hard_hit_edge": 0.3143,
"whiff_edge": 0.0143,
"bb_edge": 0.0,
"pitch_design_score": -0.0274
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663567",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 89.36729137576222,
"release_spin_rate": 2207.1400693760265,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 89.36729137576222,
"release_spin_rate": 2207.1400693760265,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.3673,
"release_spin_rate": 2207.1401,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0274,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.196,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1907,
"sample_weight": 1.0,
"run_prevention_factor": 0.9838,
"strikeout_factor": 1.0057,
"walk_factor": 1.0,
"homer_factor": 0.9586,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663567",
"espn_id": 39898,
"player_name": "Peter Lambert",
"team": "HOU",
"role": "pitcher",
"espn_rank": 33,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 33,
"gp_value": 26.0,
"gp_rank": 324,
"gs_value": 26.0,
"gs_rank": 61,
"qs_value": 10.0,
"qs_rank": 61,
"era_value": 3.707,
"era_rank": null,
"w_value": 8.0,
"w_rank": 71,
"l_value": 9.0,
"l_rank": 36,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 145.2,
"ip_rank": 60,
"h_value": 122.0,
"h_rank": 85,
"er_value": 60.0,
"er_rank": 71,
"hr_value": 14.0,
"hr_rank": 110,
"bb_value": 56.0,
"bb_rank": 28,
"k_value": 141.0,
"k_rank": 48,
"k_per_9_value": 8.711671,
"k_per_9_rank": 21,
"whip_value": 1.2219,
"whip_rank": null,
"war_value": 3.08,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9838,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9838,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9586,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0057,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260918_ATL@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_BOS@TB | away | Ranger Suarez | Ranger Suarez | True | 5.2 | 5.2 | 0 | 2 | 1 | -1 | 6/3 | 2/5 | 10/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3341404358353515,
"WHIP": 1.1912832929782082,
"IP": 137.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.295,
"recent_avg_IP": 5.933,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1982,
"sample_weight": 1.0,
"run_prevention_factor": 0.9832,
"strikeout_factor": 0.988,
"walk_factor": 0.958,
"homer_factor": 0.9306,
"regression_flag": "neutral",
"k_percent": 22.8,
"bb_percent": 7.0,
"woba": 0.288,
"xwoba": 0.297,
"barrel_percent": 5.6,
"hard_hit_percent": 33.4,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 65,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "624133",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 12.0,
"R": 12.0,
"H": 27.0,
"BB": 9.0,
"SO": 20.0,
"HR": 3.0,
"BF": 124.0,
"Pitches": 474.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.4,
"H": 5.4,
"BB": 1.8,
"SO": 4.0,
"HR": 0.6,
"BF": 24.8,
"Pitches": 94.8
},
"rates": {
"ERA": 3.6404,
"WHIP": 1.2135,
"ER_per_IP": 0.40449,
"H_per_IP": 0.91011,
"BB_per_IP": 0.30337,
"SO_per_IP": 0.67416,
"HR_per_IP": 0.10112
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 22.0,
"R": 23.0,
"H": 50.0,
"BB": 14.0,
"SO": 38.0,
"HR": 4.0,
"BF": 208.0,
"Pitches": 807.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.3,
"H": 5.0,
"BB": 1.4,
"SO": 3.8,
"HR": 0.4,
"BF": 20.8,
"Pitches": 80.7
},
"rates": {
"ERA": 4.0408,
"WHIP": 1.3061,
"ER_per_IP": 0.44898,
"H_per_IP": 1.02041,
"BB_per_IP": 0.28571,
"SO_per_IP": 0.77551,
"HR_per_IP": 0.08163
}
},
"season": {
"games": 26,
"totals": {
"IP": 137.2,
"ER": 51.0,
"R": 54.0,
"H": 124.0,
"BB": 40.0,
"SO": 130.0,
"HR": 9.0,
"BF": 569.0,
"Pitches": 2200.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9615,
"R": 2.0769,
"H": 4.7692,
"BB": 1.5385,
"SO": 5.0,
"HR": 0.3462,
"BF": 21.8846,
"Pitches": 84.6154
},
"rates": {
"ERA": 3.3341,
"WHIP": 1.1913,
"ER_per_IP": 0.37046,
"H_per_IP": 0.90073,
"BB_per_IP": 0.29056,
"SO_per_IP": 0.94431,
"HR_per_IP": 0.06538
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.373,
"predicted_H": 5.273,
"predicted_BB": 1.703,
"predicted_SO": 4.386,
"predicted_HR": 0.537,
"predicted_ERA": 3.8541,
"predicted_WHIP": 1.2591
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.373,
"final": 2.217,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.273,
"final": 5.577,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.703,
"final": 1.8272,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 4.386,
"final": 6.3153,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.537,
"final": 0.7306,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8541,
"final": 3.8541,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2591,
"final": 1.2591,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.0,
"ER": 22,
"H": 50,
"BB": 14,
"SO": 38,
"HR": 4,
"ERA": 4.040816326530613,
"WHIP": 1.306122448979592,
"K9": 6.979591836734695,
"HR9": 0.7346938775510206,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.9541915574943388,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 9.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "624133",
"player_name": "Ranger Suarez",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 10.0,
"delta": 1.0,
"percent_delta": 0.1111,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 9.0,
"after": 10.0,
"delta": 1.0,
"percent_delta": 0.1111,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 10.0,
"delta": 1.0,
"percent_delta": 0.1111,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 9.0,
"after": 10.0,
"delta": 1.0,
"percent_delta": 0.1111,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 153,
"wins": 83,
"losses": 70,
"win_pct": 0.5425,
"runs_scored": 672.0,
"runs_allowed": 589.0,
"run_differential": 83.0,
"run_differential_per_game": 0.5425,
"avg_runs_scored": 4.3922,
"avg_runs_allowed": 3.8497,
"offense_index": 0.9792,
"defense_index": 1.1652,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.4,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.1026
},
"opponent": {
"team": "TB",
"games": 152,
"wins": 93,
"losses": 59,
"win_pct": 0.6118,
"runs_scored": 698.0,
"runs_allowed": 618.0,
"run_differential": 80.0,
"run_differential_per_game": 0.5263,
"avg_runs_scored": 4.5921,
"avg_runs_allowed": 4.0658,
"offense_index": 1.0237,
"defense_index": 1.1033,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 2.6,
"run_differential": 31.0
},
"available": true,
"quality_score": 0.2646
},
"edges": {
"quality_edge": -0.162,
"offense_edge": -0.0208,
"opponent_offense_edge": 0.0237,
"defense_strength": 0.1652,
"opponent_defense_weakness": -0.1033,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9975,
"run_prevention": 0.9954,
"strikeout": 0.9932
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "624133",
"profile": {
"available": true,
"pitcher_id": "624133",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 542.0,
"k_percent": 22.8,
"bb_percent": 7.0,
"woba": 0.288,
"xwoba": 0.297,
"sweet_spot_percent": 37.2,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 33.4,
"avg_best_speed": 75.3202,
"avg_hyper_speed": 93.2307,
"whiff_percent": 22.1,
"swing_percent": 45.6
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4258,
"command_and_miss": 0.0114,
"regression_edge": -0.2571,
"xwoba_edge": 0.4286,
"barrel_edge": 0.3778,
"hard_hit_edge": 0.6571,
"whiff_edge": -0.4143,
"bb_edge": 0.525,
"pitch_design_score": -0.2185
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "624133",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 85.9555235383389,
"release_spin_rate": 1973.3237414061118,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 85.9555235383389,
"release_spin_rate": 1973.3237414061118,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.9555,
"release_spin_rate": 1973.3237,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2185,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5607,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1982,
"sample_weight": 1.0,
"run_prevention_factor": 0.9832,
"strikeout_factor": 0.988,
"walk_factor": 0.958,
"homer_factor": 0.9306,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "624133",
"espn_id": 39817,
"player_name": "Ranger Suarez",
"team": "BOS",
"role": "pitcher",
"espn_rank": 65,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 65,
"gp_value": 26.0,
"gp_rank": 324,
"gs_value": 26.0,
"gs_rank": 61,
"qs_value": 9.0,
"qs_rank": 66,
"era_value": 3.3341,
"era_rank": null,
"w_value": 7.0,
"w_rank": 90,
"l_value": 4.0,
"l_rank": 196,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 137.2,
"ip_rank": 75,
"h_value": 124.0,
"h_rank": 79,
"er_value": 51.0,
"er_rank": 107,
"hr_value": 9.0,
"hr_rank": 184,
"bb_value": 40.0,
"bb_rank": 96,
"k_value": 130.0,
"k_rank": 61,
"k_per_9_value": 8.49879,
"k_per_9_rank": 21,
"whip_value": 1.1912,
"whip_rank": null,
"war_value": 2.31,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9832,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9832,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.958,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9306,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.988,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 10,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 109,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260918_BOS@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_BOS@TB | home | Ian Seymour | Ian Seymour | True | 5.0 | 5.0 | 0 | 1 | 4 | 3 | 3/7 | 0/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.899182561307902,
"WHIP": 1.103542234332425,
"IP": 122.1,
"games_started": null,
"games_pitched": 43,
"role_avg_IP": 4.786,
"recent_avg_IP": 5.267,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3727,
"sample_weight": 1.0,
"run_prevention_factor": 0.9683,
"strikeout_factor": 1.0703,
"walk_factor": 0.952,
"homer_factor": 1.0249,
"regression_flag": "neutral",
"k_percent": 29.5,
"bb_percent": 6.7,
"woba": 0.31,
"xwoba": 0.289,
"barrel_percent": 10.0,
"hard_hit_percent": 37.4,
"whiff_percent": 29.8
},
"espn_rank": {
"rank": 283,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.809,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8323,
"prior_weight": 0.1677
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693855",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 43,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 14.0,
"R": 16.0,
"H": 28.0,
"BB": 3.0,
"SO": 35.0,
"HR": 8.0,
"BF": 110.0,
"Pitches": 420.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 3.2,
"H": 5.6,
"BB": 0.6,
"SO": 7.0,
"HR": 1.6,
"BF": 22.0,
"Pitches": 84.0
},
"rates": {
"ERA": 4.8462,
"WHIP": 1.1923,
"ER_per_IP": 0.53846,
"H_per_IP": 1.07692,
"BB_per_IP": 0.11538,
"SO_per_IP": 1.34615,
"HR_per_IP": 0.30769
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 22.0,
"R": 24.0,
"H": 53.0,
"BB": 8.0,
"SO": 71.0,
"HR": 11.0,
"BF": 226.0,
"Pitches": 859.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.4,
"H": 5.3,
"BB": 0.8,
"SO": 7.1,
"HR": 1.1,
"BF": 22.6,
"Pitches": 85.9
},
"rates": {
"ERA": 3.622,
"WHIP": 1.1159,
"ER_per_IP": 0.40244,
"H_per_IP": 0.96951,
"BB_per_IP": 0.14634,
"SO_per_IP": 1.29878,
"HR_per_IP": 0.20122
}
},
"season": {
"games": 43,
"totals": {
"IP": 122.1,
"ER": 53.0,
"R": 58.0,
"H": 101.0,
"BB": 34.0,
"SO": 150.0,
"HR": 23.0,
"BF": 504.0,
"Pitches": 1955.0
},
"per_game": {
"IP": 3.0,
"ER": 1.2326,
"R": 1.3488,
"H": 2.3488,
"BB": 0.7907,
"SO": 3.4884,
"HR": 0.5349,
"BF": 11.7209,
"Pitches": 45.4651
},
"rates": {
"ERA": 3.8992,
"WHIP": 1.1035,
"ER_per_IP": 0.43324,
"H_per_IP": 0.82561,
"BB_per_IP": 0.27793,
"SO_per_IP": 1.22616,
"HR_per_IP": 0.18801
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.327,
"predicted_H": 4.826,
"predicted_BB": 0.953,
"predicted_SO": 6.081,
"predicted_HR": 1.124,
"predicted_ERA": 4.2832,
"predicted_WHIP": 1.1819
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4209,
"form_weight": 0.5791,
"form_reliability": 0.8323,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.809,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8323,
"prior_weight": 0.1677
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.327,
"final": 1.7685,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.826,
"final": 4.0575,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.953,
"final": 0.5519,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.081,
"final": 4.7844,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.124,
"final": 0.651,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2832,
"final": 4.2832,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1819,
"final": 1.1819,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.2,
"ER": 22,
"H": 53,
"BB": 8,
"SO": 71,
"HR": 11,
"ERA": 3.6219512195121952,
"WHIP": 1.1158536585365855,
"K9": 11.689024390243903,
"HR9": 1.8109756097560976,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.9023125131936918,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.809,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8323,
"prior_weight": 0.1677
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693855",
"player_name": "Ian Seymour",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 152,
"wins": 93,
"losses": 59,
"win_pct": 0.6118,
"runs_scored": 698.0,
"runs_allowed": 618.0,
"run_differential": 80.0,
"run_differential_per_game": 0.5263,
"avg_runs_scored": 4.5921,
"avg_runs_allowed": 4.0658,
"offense_index": 1.0237,
"defense_index": 1.1033,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 2.6,
"run_differential": 31.0
},
"available": true,
"quality_score": 0.2646
},
"opponent": {
"team": "BOS",
"games": 153,
"wins": 83,
"losses": 70,
"win_pct": 0.5425,
"runs_scored": 672.0,
"runs_allowed": 589.0,
"run_differential": 83.0,
"run_differential_per_game": 0.5425,
"avg_runs_scored": 4.3922,
"avg_runs_allowed": 3.8497,
"offense_index": 0.9792,
"defense_index": 1.1652,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.4,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.1026
},
"edges": {
"quality_edge": 0.162,
"offense_edge": 0.0237,
"opponent_offense_edge": -0.0208,
"defense_strength": 0.1033,
"opponent_defense_weakness": -0.1652,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0104,
"run_prevention": 0.9782,
"strikeout": 1.0065
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693855",
"profile": {
"available": true,
"pitcher_id": "693855",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 477.0,
"k_percent": 29.5,
"bb_percent": 6.7,
"woba": 0.31,
"xwoba": 0.289,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 37.4,
"avg_best_speed": 77.1235,
"avg_hyper_speed": 93.7838,
"whiff_percent": 29.8,
"swing_percent": 51.3
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1974,
"command_and_miss": 0.8421,
"regression_edge": 0.6,
"xwoba_edge": 0.6571,
"barrel_edge": -0.6,
"hard_hit_edge": 0.0857,
"whiff_edge": 0.6857,
"bb_edge": 0.6,
"pitch_design_score": -0.2105
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693855",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 86.09853925454235,
"release_spin_rate": 1964.6166182010506,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 86.09853925454235,
"release_spin_rate": 1964.6166182010506,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.0985,
"release_spin_rate": 1964.6166,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2105,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5035,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.3727,
"sample_weight": 1.0,
"run_prevention_factor": 0.9683,
"strikeout_factor": 1.0703,
"walk_factor": 0.952,
"homer_factor": 1.0249,
"woba_minus_xwoba": 0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693855",
"espn_id": 4669425,
"player_name": "Ian Seymour",
"team": "TB",
"role": "pitcher",
"espn_rank": 283,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 283,
"gp_value": 44.0,
"gp_rank": 148,
"gs_value": 14.0,
"gs_rank": 150,
"qs_value": 6.0,
"qs_rank": 94,
"era_value": 4.267,
"era_rank": null,
"w_value": 9.0,
"w_rank": 45,
"l_value": 6.0,
"l_rank": 116,
"sv_value": 2.0,
"sv_rank": 96,
"hld_value": 10.0,
"hld_rank": 90,
"ip_value": 122.1,
"ip_rank": 96,
"h_value": 106.0,
"h_rank": 117,
"er_value": 58.0,
"er_rank": 86,
"hr_value": 23.0,
"hr_rank": 22,
"bb_value": 34.0,
"bb_rank": 139,
"k_value": 150.0,
"k_rank": 34,
"k_per_9_value": 11.035422,
"k_per_9_rank": 9,
"whip_value": 1.1444,
"whip_rank": null,
"war_value": 0.4,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9683,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9683,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0249,
"adjusted": 2
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0703,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 72,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260918_BOS@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_CHC@CIN | away | Clay Holmes | Clay Holmes | True | 5.2 | 5.1 | -1 | 3 | 6 | 3 | 2/3 | 1/5 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.847272727272727,
"WHIP": 1.1454545454545455,
"IP": 91.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 5.729,
"recent_avg_IP": 5.667,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0,
"sample_weight": 1.0,
"run_prevention_factor": 1.0,
"strikeout_factor": 0.9651,
"walk_factor": 0.998,
"homer_factor": 0.9677,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.9,
"bb_percent": 9.0,
"woba": 0.266,
"xwoba": 0.307,
"barrel_percent": 4.5,
"hard_hit_percent": 41.8,
"whiff_percent": 22.0
},
"espn_rank": {
"rank": 59,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605280",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 11.0,
"R": 12.0,
"H": 24.0,
"BB": 13.0,
"SO": 22.0,
"HR": 2.0,
"BF": 121.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.4,
"H": 4.8,
"BB": 2.6,
"SO": 4.4,
"HR": 0.4,
"BF": 24.2,
"Pitches": 92.0
},
"rates": {
"ERA": 3.4941,
"WHIP": 1.3059,
"ER_per_IP": 0.38824,
"H_per_IP": 0.84706,
"BB_per_IP": 0.45882,
"SO_per_IP": 0.77647,
"HR_per_IP": 0.07059
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.2,
"ER": 22.0,
"R": 23.0,
"H": 47.0,
"BB": 23.0,
"SO": 46.0,
"HR": 3.0,
"BF": 234.0,
"Pitches": 907.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.3,
"H": 4.7,
"BB": 2.3,
"SO": 4.6,
"HR": 0.3,
"BF": 23.4,
"Pitches": 90.7
},
"rates": {
"ERA": 3.5569,
"WHIP": 1.2575,
"ER_per_IP": 0.39521,
"H_per_IP": 0.84431,
"BB_per_IP": 0.41317,
"SO_per_IP": 0.82635,
"HR_per_IP": 0.05389
}
},
"season": {
"games": 16,
"totals": {
"IP": 91.2,
"ER": 29.0,
"R": 30.0,
"H": 71.0,
"BB": 34.0,
"SO": 71.0,
"HR": 6.0,
"BF": 376.0,
"Pitches": 1438.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8125,
"R": 1.875,
"H": 4.4375,
"BB": 2.125,
"SO": 4.4375,
"HR": 0.375,
"BF": 23.5,
"Pitches": 89.875
},
"rates": {
"ERA": 2.8473,
"WHIP": 1.1455,
"ER_per_IP": 0.31636,
"H_per_IP": 0.77455,
"BB_per_IP": 0.37091,
"SO_per_IP": 0.77455,
"HR_per_IP": 0.06545
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.308,
"predicted_H": 4.908,
"predicted_BB": 2.341,
"predicted_SO": 4.691,
"predicted_HR": 0.474,
"predicted_ERA": 3.665,
"predicted_WHIP": 1.2793
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.308,
"final": 2.6198,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.908,
"final": 3.5977,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.341,
"final": 1.7367,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.691,
"final": 3.4784,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.474,
"final": 0.711,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.665,
"final": 3.665,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2793,
"final": 1.2793,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.2,
"ER": 22,
"H": 47,
"BB": 23,
"SO": 46,
"HR": 3,
"ERA": 3.556886227544911,
"WHIP": 1.25748502994012,
"K9": 7.437125748502996,
"HR9": 0.4850299401197606,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.8985334858824605,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605280",
"player_name": "Clay Holmes",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 153,
"wins": 85,
"losses": 68,
"win_pct": 0.5556,
"runs_scored": 817.0,
"runs_allowed": 674.0,
"run_differential": 143.0,
"run_differential_per_game": 0.9346,
"avg_runs_scored": 5.3399,
"avg_runs_allowed": 4.4052,
"offense_index": 1.1904,
"defense_index": 1.0183,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.8,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.1269
},
"opponent": {
"team": "CIN",
"games": 153,
"wins": 71,
"losses": 82,
"win_pct": 0.4641,
"runs_scored": 633.0,
"runs_allowed": 787.0,
"run_differential": -154.0,
"run_differential_per_game": -1.0065,
"avg_runs_scored": 4.1373,
"avg_runs_allowed": 5.1438,
"offense_index": 0.9223,
"defense_index": 0.8721,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 7.7,
"run_differential": -49.0
},
"available": true,
"quality_score": -0.2589
},
"edges": {
"quality_edge": 0.3858,
"offense_edge": 0.1904,
"opponent_offense_edge": -0.0777,
"defense_strength": 0.0183,
"opponent_defense_weakness": 0.1279,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0191,
"run_prevention": 0.9664,
"strikeout": 1.0178
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605280",
"profile": {
"available": true,
"pitcher_id": "605280",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 348.0,
"k_percent": 18.9,
"bb_percent": 9.0,
"woba": 0.266,
"xwoba": 0.307,
"sweet_spot_percent": 26.9,
"barrel_batted_rate": 4.5,
"hard_hit_percent": 41.8,
"avg_best_speed": 79.0798,
"avg_hyper_speed": 94.3111,
"whiff_percent": 22.0,
"swing_percent": 46.1
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3774,
"command_and_miss": -0.3443,
"regression_edge": -1.1714,
"xwoba_edge": 0.1429,
"barrel_edge": 0.6222,
"hard_hit_edge": -0.5429,
"whiff_edge": -0.4286,
"bb_edge": 0.025,
"pitch_design_score": -0.0584
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605280",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.81502590960419,
"release_spin_rate": 2161.4041416801842,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.81502590960419,
"release_spin_rate": 2161.4041416801842,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.815,
"release_spin_rate": 2161.4041,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0584,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4169,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0,
"sample_weight": 1.0,
"run_prevention_factor": 1.0,
"strikeout_factor": 0.9651,
"walk_factor": 0.998,
"homer_factor": 0.9677,
"woba_minus_xwoba": -0.041,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "605280",
"espn_id": 32827,
"player_name": "Clay Holmes",
"team": "CHC",
"role": "pitcher",
"espn_rank": 59,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 59,
"gp_value": 16.0,
"gp_rank": 452,
"gs_value": 16.0,
"gs_rank": 137,
"qs_value": 7.0,
"qs_rank": 84,
"era_value": 2.8472,
"era_rank": null,
"w_value": 6.0,
"w_rank": 112,
"l_value": 7.0,
"l_rank": 89,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 91.2,
"ip_rank": 145,
"h_value": 71.0,
"h_rank": 169,
"er_value": 29.0,
"er_rank": 207,
"hr_value": 6.0,
"hr_rank": 279,
"bb_value": 34.0,
"bb_rank": 139,
"k_value": 71.0,
"k_rank": 190,
"k_per_9_value": 6.970909,
"k_per_9_rank": 35,
"whip_value": 1.1454,
"whip_rank": null,
"war_value": 2.41,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9677,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9651,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260918_CHC@CIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_CHC@CIN | home | Chase Burns | Chase Burns | True | 5.0 | 3.0 | -6 | 3 | 2 | -1 | 5/4 | 2/2 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.7951541850220263,
"WHIP": 1.1497797356828192,
"IP": 151.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.405,
"recent_avg_IP": 4.067,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5114,
"sample_weight": 1.0,
"run_prevention_factor": 0.9565,
"strikeout_factor": 1.0829,
"walk_factor": 0.994,
"homer_factor": 0.9848,
"regression_flag": "neutral",
"k_percent": 29.4,
"bb_percent": 8.8,
"woba": 0.285,
"xwoba": 0.277,
"barrel_percent": 8.1,
"hard_hit_percent": 38.1,
"whiff_percent": 32.1
},
"espn_rank": {
"rank": 11,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 151.1,
"season_ERA": 2.795,
"season_WHIP": 1.15,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695505",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.1,
"ER": 11.0,
"R": 12.0,
"H": 23.0,
"BB": 8.0,
"SO": 30.0,
"HR": 3.0,
"BF": 89.0,
"Pitches": 368.0
},
"per_game": {
"IP": 4.0,
"ER": 2.2,
"R": 2.4,
"H": 4.6,
"BB": 1.6,
"SO": 6.0,
"HR": 0.6,
"BF": 17.8,
"Pitches": 73.6
},
"rates": {
"ERA": 4.8689,
"WHIP": 1.5246,
"ER_per_IP": 0.54098,
"H_per_IP": 1.13115,
"BB_per_IP": 0.39344,
"SO_per_IP": 1.47541,
"HR_per_IP": 0.14754
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.2,
"ER": 18.0,
"R": 23.0,
"H": 43.0,
"BB": 17.0,
"SO": 63.0,
"HR": 4.0,
"BF": 202.0,
"Pitches": 825.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 2.3,
"H": 4.3,
"BB": 1.7,
"SO": 6.3,
"HR": 0.4,
"BF": 20.2,
"Pitches": 82.5
},
"rates": {
"ERA": 3.3288,
"WHIP": 1.2329,
"ER_per_IP": 0.36986,
"H_per_IP": 0.88356,
"BB_per_IP": 0.34932,
"SO_per_IP": 1.29452,
"HR_per_IP": 0.08219
}
},
"season": {
"games": 28,
"totals": {
"IP": 151.1,
"ER": 47.0,
"R": 52.0,
"H": 120.0,
"BB": 54.0,
"SO": 181.0,
"HR": 16.0,
"BF": 615.0,
"Pitches": 2502.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6786,
"R": 1.8571,
"H": 4.2857,
"BB": 1.9286,
"SO": 6.4643,
"HR": 0.5714,
"BF": 21.9643,
"Pitches": 89.3571
},
"rates": {
"ERA": 2.7952,
"WHIP": 1.1498,
"ER_per_IP": 0.31057,
"H_per_IP": 0.79295,
"BB_per_IP": 0.35683,
"SO_per_IP": 1.19604,
"HR_per_IP": 0.10573
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.129,
"predicted_H": 4.665,
"predicted_BB": 1.773,
"predicted_SO": 6.174,
"predicted_HR": 0.578,
"predicted_ERA": 4.0121,
"predicted_WHIP": 1.3481
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 4.2,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.129,
"final": 2.4896,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.665,
"final": 4.8037,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.773,
"final": 1.867,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.174,
"final": 4.8599,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.578,
"final": 1.1667,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0121,
"final": 4.0121,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3481,
"final": 1.3481,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.2,
"ER": 18,
"H": 40,
"BB": 15,
"SO": 57,
"HR": 4,
"ERA": 3.7099236641221376,
"WHIP": 1.2595419847328244,
"K9": 11.748091603053435,
"HR9": 0.8244274809160306,
"games_pitched": 9,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-13T00:00:00"
},
"recent_form_boost": 0.9158016213672161,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695505",
"player_name": "Chase Burns",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 153,
"wins": 71,
"losses": 82,
"win_pct": 0.4641,
"runs_scored": 633.0,
"runs_allowed": 787.0,
"run_differential": -154.0,
"run_differential_per_game": -1.0065,
"avg_runs_scored": 4.1373,
"avg_runs_allowed": 5.1438,
"offense_index": 0.9223,
"defense_index": 0.8721,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 7.7,
"run_differential": -49.0
},
"available": true,
"quality_score": -0.2589
},
"opponent": {
"team": "CHC",
"games": 153,
"wins": 85,
"losses": 68,
"win_pct": 0.5556,
"runs_scored": 817.0,
"runs_allowed": 674.0,
"run_differential": 143.0,
"run_differential_per_game": 0.9346,
"avg_runs_scored": 5.3399,
"avg_runs_allowed": 4.4052,
"offense_index": 1.1904,
"defense_index": 1.0183,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.8,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.1269
},
"edges": {
"quality_edge": -0.3858,
"offense_edge": -0.0777,
"opponent_offense_edge": 0.1904,
"defense_strength": -0.1279,
"opponent_defense_weakness": -0.0183,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9731,
"run_prevention": 1.0625,
"strikeout": 0.9732
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695505",
"profile": {
"available": true,
"pitcher_id": "695505",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 594.0,
"k_percent": 29.4,
"bb_percent": 8.8,
"woba": 0.285,
"xwoba": 0.277,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 38.1,
"avg_best_speed": 79.7672,
"avg_hyper_speed": 93.762,
"whiff_percent": 32.1,
"swing_percent": 49.0
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4439,
"command_and_miss": 0.8457,
"regression_edge": 0.2286,
"xwoba_edge": 1.0,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.0143,
"whiff_edge": 1.0143,
"bb_edge": 0.075,
"pitch_design_score": 0.2512
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695505",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 94.34334516326507,
"release_spin_rate": 2643.804782319026,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 94.34334516326507,
"release_spin_rate": 2643.804782319026,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.3433,
"release_spin_rate": 2643.8048,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.2512,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.7944,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.5114,
"sample_weight": 1.0,
"run_prevention_factor": 0.9565,
"strikeout_factor": 1.0829,
"walk_factor": 0.994,
"homer_factor": 0.9848,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695505",
"espn_id": 4927516,
"player_name": "Chase Burns",
"team": "CIN",
"role": "pitcher",
"espn_rank": 11,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 11,
"gp_value": 28.0,
"gp_rank": 292,
"gs_value": 28.0,
"gs_rank": 40,
"qs_value": 11.0,
"qs_rank": 48,
"era_value": 2.7951,
"era_rank": null,
"w_value": 15.0,
"w_rank": 3,
"l_value": 3.0,
"l_rank": 250,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 151.1,
"ip_rank": 48,
"h_value": 120.0,
"h_rank": 89,
"er_value": 47.0,
"er_rank": 127,
"hr_value": 16.0,
"hr_rank": 93,
"bb_value": 54.0,
"bb_rank": 35,
"k_value": 181.0,
"k_rank": 16,
"k_per_9_value": 10.764317,
"k_per_9_rank": 9,
"whip_value": 1.1497,
"whip_rank": null,
"war_value": 4.92,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9565,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9565,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.994,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9848,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0829,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260918_CHC@CIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_DET@CHW | away | Andrew Sears | Andrew Sears | True | 4.2 | 0.2 | -12 | 2 | 0 | -2 | 1/1 | 1/3 | 6/0 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 5.3999999999999995,
"WHIP": 1.38,
"IP": 16.2,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.0,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1799,
"sample_weight": 0.45,
"run_prevention_factor": 0.9847,
"strikeout_factor": 0.9954,
"walk_factor": 0.9676,
"homer_factor": 0.9451,
"regression_flag": "positive_pitcher_regression",
"k_percent": 17.8,
"bb_percent": 5.5,
"woba": 0.362,
"xwoba": 0.273,
"barrel_percent": 5.6,
"hard_hit_percent": 27.8,
"whiff_percent": 27.4
},
"espn_rank": {
"rank": 599,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "808825",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 16.2,
"ER": 10.0,
"R": 10.0,
"H": 19.0,
"BB": 4.0,
"SO": 13.0,
"HR": 2.0,
"BF": 73.0,
"Pitches": 286.0
},
"per_game": {
"IP": 4.0,
"ER": 2.5,
"R": 2.5,
"H": 4.75,
"BB": 1.0,
"SO": 3.25,
"HR": 0.5,
"BF": 18.25,
"Pitches": 71.5
},
"rates": {
"ERA": 5.4,
"WHIP": 1.38,
"ER_per_IP": 0.6,
"H_per_IP": 1.14,
"BB_per_IP": 0.24,
"SO_per_IP": 0.78,
"HR_per_IP": 0.12
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 16.2,
"ER": 10.0,
"R": 10.0,
"H": 19.0,
"BB": 4.0,
"SO": 13.0,
"HR": 2.0,
"BF": 73.0,
"Pitches": 286.0
},
"per_game": {
"IP": 4.0,
"ER": 2.5,
"R": 2.5,
"H": 4.75,
"BB": 1.0,
"SO": 3.25,
"HR": 0.5,
"BF": 18.25,
"Pitches": 71.5
},
"rates": {
"ERA": 5.4,
"WHIP": 1.38,
"ER_per_IP": 0.6,
"H_per_IP": 1.14,
"BB_per_IP": 0.24,
"SO_per_IP": 0.78,
"HR_per_IP": 0.12
}
},
"season": {
"games": 4,
"totals": {
"IP": 16.2,
"ER": 10.0,
"R": 10.0,
"H": 19.0,
"BB": 4.0,
"SO": 13.0,
"HR": 2.0,
"BF": 73.0,
"Pitches": 286.0
},
"per_game": {
"IP": 4.0,
"ER": 2.5,
"R": 2.5,
"H": 4.75,
"BB": 1.0,
"SO": 3.25,
"HR": 0.5,
"BF": 18.25,
"Pitches": 71.5
},
"rates": {
"ERA": 5.4,
"WHIP": 1.38,
"ER_per_IP": 0.6,
"H_per_IP": 1.14,
"BB_per_IP": 0.24,
"SO_per_IP": 0.78,
"HR_per_IP": 0.12
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.496,
"predicted_H": 4.781,
"predicted_BB": 1.433,
"predicted_SO": 3.951,
"predicted_HR": 0.617,
"predicted_ERA": 4.9307,
"predicted_WHIP": 1.3639
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5847,
"form_weight": 0.4153,
"form_reliability": 0.4444,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.496,
"final": 2.206,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.781,
"final": 2.5701,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.433,
"final": 1.1798,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.951,
"final": 5.1491,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.617,
"final": 0.2562,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9307,
"final": 4.9307,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3639,
"final": 1.3639,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 16.2,
"ER": 10,
"H": 19,
"BB": 4,
"SO": 13,
"HR": 2,
"ERA": 5.4,
"WHIP": 1.3800000000000001,
"K9": 7.020000000000001,
"HR9": 1.08,
"games_pitched": 4,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 1.0598902320318435,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "808825",
"player_name": "Andrew Sears",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 153,
"wins": 72,
"losses": 81,
"win_pct": 0.4706,
"runs_scored": 684.0,
"runs_allowed": 610.0,
"run_differential": 74.0,
"run_differential_per_game": 0.4837,
"avg_runs_scored": 4.4706,
"avg_runs_allowed": 3.9869,
"offense_index": 0.9966,
"defense_index": 1.1251,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.3,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.1043
},
"opponent": {
"team": "CHW",
"games": 153,
"wins": 78,
"losses": 75,
"win_pct": 0.5098,
"runs_scored": 714.0,
"runs_allowed": 678.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2353,
"avg_runs_scored": 4.6667,
"avg_runs_allowed": 4.4314,
"offense_index": 1.0404,
"defense_index": 1.0122,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.7,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0328
},
"edges": {
"quality_edge": 0.1371,
"offense_edge": -0.0034,
"opponent_offense_edge": 0.0404,
"defense_strength": 0.1251,
"opponent_defense_weakness": -0.0122,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0076,
"run_prevention": 0.9871,
"strikeout": 1.0009
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "808825",
"profile": {
"available": true,
"pitcher_id": "808825",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 51.0,
"k_percent": 17.8,
"bb_percent": 5.5,
"woba": 0.362,
"xwoba": 0.273,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 27.8,
"avg_best_speed": 81.0695,
"avg_hyper_speed": 93.1632,
"whiff_percent": 27.4,
"swing_percent": 47.2
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3475,
"command_and_miss": 0.03,
"regression_edge": 2.0,
"xwoba_edge": 1.1143,
"barrel_edge": 0.3778,
"hard_hit_edge": 1.4571,
"whiff_edge": 0.3429,
"bb_edge": 0.9,
"pitch_design_score": -0.033
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "808825",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 70,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.26805469063534,
"release_spin_rate": 2178.948236254688,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.26805469063534,
"release_spin_rate": 2178.948236254688,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.2681,
"release_spin_rate": 2178.9482,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.033,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2357,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1799,
"sample_weight": 0.45,
"run_prevention_factor": 0.9847,
"strikeout_factor": 0.9954,
"walk_factor": 0.9676,
"homer_factor": 0.9451,
"woba_minus_xwoba": 0.089,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "808825",
"espn_id": 5140040,
"player_name": "Andrew Sears",
"team": "DET",
"role": "pitcher",
"espn_rank": 599,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 599,
"gp_value": 4.0,
"gp_rank": 680,
"gs_value": 2.0,
"gs_rank": 274,
"qs_value": 0.0,
"qs_rank": 214,
"era_value": 5.4,
"era_rank": null,
"w_value": 0.0,
"w_rank": 542,
"l_value": 1.0,
"l_rank": 435,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 16.2,
"ip_rank": 552,
"h_value": 19.0,
"h_rank": 537,
"er_value": 10.0,
"er_rank": 545,
"hr_value": 2.0,
"hr_rank": 537,
"bb_value": 4.0,
"bb_rank": 656,
"k_value": 13.0,
"k_rank": 566,
"k_per_9_value": 7.02,
"k_per_9_rank": 27,
"whip_value": 1.38,
"whip_rank": null,
"war_value": -0.11,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9931,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9931,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9854,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9753,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9979,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 16,
"Pitches": 78,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 4 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -12 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260918_DET@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_DET@CHW | home | David Sandlin | David Sandlin | True | 5.1 | 4.0 | -4 | 3 | 5 | 2 | 4/7 | 3/1 | 6/4 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 5.637362637362638,
"WHIP": 1.1868131868131868,
"IP": 30.1,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 5.417,
"recent_avg_IP": 5.417,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0651,
"sample_weight": 0.45,
"run_prevention_factor": 0.9945,
"strikeout_factor": 0.9997,
"walk_factor": 1.0036,
"homer_factor": 0.9909,
"regression_flag": "neutral",
"k_percent": 23.0,
"bb_percent": 9.5,
"woba": 0.306,
"xwoba": 0.299,
"barrel_percent": 8.3,
"hard_hit_percent": 33.3,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 702,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "689818",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 18.0,
"R": 21.0,
"H": 23.0,
"BB": 12.0,
"SO": 25.0,
"HR": 5.0,
"BF": 107.0,
"Pitches": 418.0
},
"per_game": {
"IP": 5.0,
"ER": 3.6,
"R": 4.2,
"H": 4.6,
"BB": 2.4,
"SO": 5.0,
"HR": 1.0,
"BF": 21.4,
"Pitches": 83.6
},
"rates": {
"ERA": 6.6575,
"WHIP": 1.4384,
"ER_per_IP": 0.73973,
"H_per_IP": 0.94521,
"BB_per_IP": 0.49315,
"SO_per_IP": 1.0274,
"HR_per_IP": 0.20548
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 30.1,
"ER": 19.0,
"R": 22.0,
"H": 24.0,
"BB": 12.0,
"SO": 29.0,
"HR": 6.0,
"BF": 126.0,
"Pitches": 479.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1667,
"R": 3.6667,
"H": 4.0,
"BB": 2.0,
"SO": 4.8333,
"HR": 1.0,
"BF": 21.0,
"Pitches": 79.8333
},
"rates": {
"ERA": 5.6374,
"WHIP": 1.1868,
"ER_per_IP": 0.62637,
"H_per_IP": 0.79121,
"BB_per_IP": 0.3956,
"SO_per_IP": 0.95604,
"HR_per_IP": 0.1978
}
},
"season": {
"games": 6,
"totals": {
"IP": 30.1,
"ER": 19.0,
"R": 22.0,
"H": 24.0,
"BB": 12.0,
"SO": 29.0,
"HR": 6.0,
"BF": 126.0,
"Pitches": 479.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1667,
"R": 3.6667,
"H": 4.0,
"BB": 2.0,
"SO": 4.8333,
"HR": 1.0,
"BF": 21.0,
"Pitches": 79.8333
},
"rates": {
"ERA": 5.6374,
"WHIP": 1.1868,
"ER_per_IP": 0.62637,
"H_per_IP": 0.79121,
"BB_per_IP": 0.3956,
"SO_per_IP": 0.95604,
"HR_per_IP": 0.1978
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.221,
"predicted_H": 4.885,
"predicted_BB": 2.225,
"predicted_SO": 5.054,
"predicted_HR": 0.92,
"predicted_ERA": 5.6272,
"predicted_WHIP": 1.3802
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.221,
"final": 3.1012,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.885,
"final": 4.4053,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.225,
"final": 2.6451,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.054,
"final": 5.5668,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.92,
"final": 0.4213,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.6272,
"final": 5.6272,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3802,
"final": 1.3802,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 30.1,
"ER": 19,
"H": 24,
"BB": 12,
"SO": 29,
"HR": 6,
"ERA": 5.637362637362638,
"WHIP": 1.1868131868131868,
"K9": 8.604395604395604,
"HR9": 1.7802197802197803,
"games_pitched": 6,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-13T00:00:00"
},
"recent_form_boost": 1.1308202859087815,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "689818",
"player_name": "David Sandlin",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 153,
"wins": 78,
"losses": 75,
"win_pct": 0.5098,
"runs_scored": 714.0,
"runs_allowed": 678.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2353,
"avg_runs_scored": 4.6667,
"avg_runs_allowed": 4.4314,
"offense_index": 1.0404,
"defense_index": 1.0122,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.7,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0328
},
"opponent": {
"team": "DET",
"games": 153,
"wins": 72,
"losses": 81,
"win_pct": 0.4706,
"runs_scored": 684.0,
"runs_allowed": 610.0,
"run_differential": 74.0,
"run_differential_per_game": 0.4837,
"avg_runs_scored": 4.4706,
"avg_runs_allowed": 3.9869,
"offense_index": 0.9966,
"defense_index": 1.1251,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.3,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.1043
},
"edges": {
"quality_edge": -0.1371,
"offense_edge": 0.0404,
"opponent_offense_edge": -0.0034,
"defense_strength": 0.0122,
"opponent_defense_weakness": -0.1251,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.995,
"run_prevention": 1.0051,
"strikeout": 0.9962
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "689818",
"profile": {
"available": true,
"pitcher_id": "689818",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 106.0,
"k_percent": 23.0,
"bb_percent": 9.5,
"woba": 0.306,
"xwoba": 0.299,
"sweet_spot_percent": 36.9,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 33.3,
"avg_best_speed": 75.6192,
"avg_hyper_speed": 92.9814,
"whiff_percent": 23.9,
"swing_percent": 45.5
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2184,
"command_and_miss": -0.0107,
"regression_edge": 0.2,
"xwoba_edge": 0.3714,
"barrel_edge": -0.2222,
"hard_hit_edge": 0.6714,
"whiff_edge": -0.1571,
"bb_edge": -0.1,
"pitch_design_score": 0.0643
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "689818",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 91.00485312956626,
"release_spin_rate": 2313.300879701911,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 91.00485312956626,
"release_spin_rate": 2313.300879701911,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.0049,
"release_spin_rate": 2313.3009,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0643,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.459,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.0651,
"sample_weight": 0.45,
"run_prevention_factor": 0.9945,
"strikeout_factor": 0.9997,
"walk_factor": 1.0036,
"homer_factor": 0.9909,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "689818",
"espn_id": 4960696,
"player_name": "David Sandlin",
"team": "CHW",
"role": "pitcher",
"espn_rank": 702,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 702,
"gp_value": 6.0,
"gp_rank": 622,
"gs_value": 4.0,
"gs_rank": 239,
"qs_value": 2.0,
"qs_rank": 159,
"era_value": 5.6373,
"era_rank": null,
"w_value": 2.0,
"w_rank": 325,
"l_value": 2.0,
"l_rank": 338,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 30.1,
"ip_rank": 443,
"h_value": 24.0,
"h_rank": 487,
"er_value": 19.0,
"er_rank": 350,
"hr_value": 6.0,
"hr_rank": 279,
"bb_value": 12.0,
"bb_rank": 451,
"k_value": 29.0,
"k_rank": 433,
"k_per_9_value": 8.604396,
"k_per_9_rank": 26,
"whip_value": 1.1868,
"whip_rank": null,
"war_value": -0.27,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9975,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9975,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0016,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9959,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9999,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260918_DET@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_KC@PIT | away | Randy Dobnak | Randy Dobnak | True | 6.0 | 3.2 | -7 | 3 | 4 | 1 | 2/7 | 0/2 | 7/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.7259615384615388,
"WHIP": 1.2692307692307694,
"IP": 69.1,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 5.424,
"recent_avg_IP": 5.533,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2548,
"sample_weight": 1.0,
"run_prevention_factor": 1.0217,
"strikeout_factor": 0.9383,
"walk_factor": 0.978,
"homer_factor": 0.9751,
"regression_flag": "neutral",
"k_percent": 16.3,
"bb_percent": 8.0,
"woba": 0.3,
"xwoba": 0.325,
"barrel_percent": 4.6,
"hard_hit_percent": 40.1,
"whiff_percent": 19.9
},
"espn_rank": {
"rank": 74,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 69.1,
"season_ERA": 2.726,
"season_WHIP": 1.269,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "677976",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 13.0,
"R": 13.0,
"H": 27.0,
"BB": 7.0,
"SO": 22.0,
"HR": 4.0,
"BF": 113.0,
"Pitches": 439.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 2.6,
"H": 5.4,
"BB": 1.4,
"SO": 4.4,
"HR": 0.8,
"BF": 22.6,
"Pitches": 87.8
},
"rates": {
"ERA": 4.2289,
"WHIP": 1.2289,
"ER_per_IP": 0.46988,
"H_per_IP": 0.9759,
"BB_per_IP": 0.25301,
"SO_per_IP": 0.79518,
"HR_per_IP": 0.14458
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 18.0,
"R": 18.0,
"H": 52.0,
"BB": 15.0,
"SO": 40.0,
"HR": 4.0,
"BF": 227.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 5.2,
"BB": 1.5,
"SO": 4.0,
"HR": 0.4,
"BF": 22.7,
"Pitches": 89.3
},
"rates": {
"ERA": 2.9277,
"WHIP": 1.2108,
"ER_per_IP": 0.3253,
"H_per_IP": 0.93976,
"BB_per_IP": 0.27108,
"SO_per_IP": 0.72289,
"HR_per_IP": 0.07229
}
},
"season": {
"games": 13,
"totals": {
"IP": 69.1,
"ER": 21.0,
"R": 21.0,
"H": 65.0,
"BB": 23.0,
"SO": 47.0,
"HR": 6.0,
"BF": 289.0,
"Pitches": 1148.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6154,
"R": 1.6154,
"H": 5.0,
"BB": 1.7692,
"SO": 3.6154,
"HR": 0.4615,
"BF": 22.2308,
"Pitches": 88.3077
},
"rates": {
"ERA": 2.726,
"WHIP": 1.2692,
"ER_per_IP": 0.30288,
"H_per_IP": 0.9375,
"BB_per_IP": 0.33173,
"SO_per_IP": 0.67788,
"HR_per_IP": 0.08654
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.395,
"predicted_H": 5.491,
"predicted_BB": 1.728,
"predicted_SO": 4.566,
"predicted_HR": 0.678,
"predicted_ERA": 3.7736,
"predicted_WHIP": 1.264
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4674,
"form_weight": 0.5326,
"form_reliability": 0.7222,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.395,
"final": 2.2104,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.491,
"final": 3.8594,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.728,
"final": 0.9204,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.566,
"final": 5.7036,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.678,
"final": 0.3611,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7736,
"final": 3.7736,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.264,
"final": 1.264,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.1,
"ER": 18,
"H": 52,
"BB": 15,
"SO": 40,
"HR": 4,
"ERA": 2.927710843373494,
"WHIP": 1.2108433734939759,
"K9": 6.506024096385542,
"HR9": 0.6506024096385542,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.8265852137520224,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677976",
"player_name": "Randy Dobnak",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 153,
"wins": 67,
"losses": 86,
"win_pct": 0.4379,
"runs_scored": 643.0,
"runs_allowed": 740.0,
"run_differential": -97.0,
"run_differential_per_game": -0.634,
"avg_runs_scored": 4.2026,
"avg_runs_allowed": 4.8366,
"offense_index": 0.9365,
"defense_index": 0.9278,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.6,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1655
},
"opponent": {
"team": "PIT",
"games": 153,
"wins": 76,
"losses": 77,
"win_pct": 0.4967,
"runs_scored": 730.0,
"runs_allowed": 706.0,
"run_differential": 24.0,
"run_differential_per_game": 0.1569,
"avg_runs_scored": 4.7712,
"avg_runs_allowed": 4.6144,
"offense_index": 1.0632,
"defense_index": 0.9725,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.8,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0514
},
"edges": {
"quality_edge": -0.2169,
"offense_edge": -0.0635,
"opponent_offense_edge": 0.0632,
"defense_strength": -0.0722,
"opponent_defense_weakness": 0.0275,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9866,
"run_prevention": 1.0282,
"strikeout": 0.9884
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677976",
"profile": {
"available": true,
"pitcher_id": "677976",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 266.0,
"k_percent": 16.3,
"bb_percent": 8.0,
"woba": 0.3,
"xwoba": 0.325,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 4.6,
"hard_hit_percent": 40.1,
"avg_best_speed": 79.6128,
"avg_hyper_speed": 94.66,
"whiff_percent": 19.9,
"swing_percent": 45.6
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0451,
"command_and_miss": -0.5664,
"regression_edge": -0.7143,
"xwoba_edge": -0.3714,
"barrel_edge": 0.6,
"hard_hit_edge": -0.3,
"whiff_edge": -0.7286,
"bb_edge": 0.275,
"pitch_design_score": -0.1356
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677976",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 87.43648624749672,
"release_spin_rate": 2022.6128494681118,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 87.43648624749672,
"release_spin_rate": 2022.6128494681118,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4365,
"release_spin_rate": 2022.6128,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1356,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9683,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2548,
"sample_weight": 1.0,
"run_prevention_factor": 1.0217,
"strikeout_factor": 0.9383,
"walk_factor": 0.978,
"homer_factor": 0.9751,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677976",
"espn_id": 42214,
"player_name": "Randy Dobnak",
"team": "KC",
"role": "pitcher",
"espn_rank": 74,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 74,
"gp_value": 13.0,
"gp_rank": 496,
"gs_value": 11.0,
"gs_rank": 166,
"qs_value": 3.0,
"qs_rank": 143,
"era_value": 2.7259,
"era_rank": null,
"w_value": 3.0,
"w_rank": 251,
"l_value": 4.0,
"l_rank": 196,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 69.1,
"ip_rank": 197,
"h_value": 65.0,
"h_rank": 188,
"er_value": 21.0,
"er_rank": 316,
"hr_value": 6.0,
"hr_rank": 279,
"bb_value": 23.0,
"bb_rank": 256,
"k_value": 47.0,
"k_rank": 319,
"k_per_9_value": 6.100961,
"k_per_9_rank": 43,
"whip_value": 1.2692,
"whip_rank": null,
"war_value": 2.04,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0217,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0217,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.978,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9751,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9383,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260918_KC@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_KC@PIT | home | Paul Skenes | Paul Skenes | True | 5.1 | 6.0 | 2 | 2 | 5 | 3 | 3/6 | 2/1 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7777777777777777,
"WHIP": 1.1296296296296295,
"IP": 162.0,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.4,
"recent_avg_IP": 5.467,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4902,
"sample_weight": 1.0,
"run_prevention_factor": 0.9583,
"strikeout_factor": 1.0491,
"walk_factor": 0.956,
"homer_factor": 0.9649,
"regression_flag": "neutral",
"k_percent": 27.8,
"bb_percent": 6.9,
"woba": 0.295,
"xwoba": 0.28,
"barrel_percent": 6.9,
"hard_hit_percent": 37.9,
"whiff_percent": 27.8
},
"espn_rank": {
"rank": 30,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694973",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 10.0,
"R": 10.0,
"H": 23.0,
"BB": 9.0,
"SO": 19.0,
"HR": 3.0,
"BF": 112.0,
"Pitches": 432.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0,
"H": 4.6,
"BB": 1.8,
"SO": 3.8,
"HR": 0.6,
"BF": 22.4,
"Pitches": 86.4
},
"rates": {
"ERA": 3.2927,
"WHIP": 1.1707,
"ER_per_IP": 0.36585,
"H_per_IP": 0.84146,
"BB_per_IP": 0.32927,
"SO_per_IP": 0.69512,
"HR_per_IP": 0.10976
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 25.0,
"R": 26.0,
"H": 50.0,
"BB": 22.0,
"SO": 55.0,
"HR": 6.0,
"BF": 225.0,
"Pitches": 895.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.6,
"H": 5.0,
"BB": 2.2,
"SO": 5.5,
"HR": 0.6,
"BF": 22.5,
"Pitches": 89.5
},
"rates": {
"ERA": 4.1925,
"WHIP": 1.3416,
"ER_per_IP": 0.46584,
"H_per_IP": 0.93168,
"BB_per_IP": 0.40994,
"SO_per_IP": 1.02484,
"HR_per_IP": 0.1118
}
},
"season": {
"games": 30,
"totals": {
"IP": 162.0,
"ER": 68.0,
"R": 76.0,
"H": 137.0,
"BB": 46.0,
"SO": 185.0,
"HR": 17.0,
"BF": 665.0,
"Pitches": 2705.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2667,
"R": 2.5333,
"H": 4.5667,
"BB": 1.5333,
"SO": 6.1667,
"HR": 0.5667,
"BF": 22.1667,
"Pitches": 90.1667
},
"rates": {
"ERA": 3.7778,
"WHIP": 1.1296,
"ER_per_IP": 0.41975,
"H_per_IP": 0.84568,
"BB_per_IP": 0.28395,
"SO_per_IP": 1.14198,
"HR_per_IP": 0.10494
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.267,
"predicted_H": 4.739,
"predicted_BB": 1.878,
"predicted_SO": 4.828,
"predicted_HR": 0.613,
"predicted_ERA": 3.8262,
"predicted_WHIP": 1.2407
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.267,
"final": 2.1574,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.739,
"final": 4.0254,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.878,
"final": 1.9281,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.828,
"final": 4.8986,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.613,
"final": 0.7718,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8262,
"final": 3.8262,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2407,
"final": 1.2407,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 25,
"H": 50,
"BB": 22,
"SO": 55,
"HR": 6,
"ERA": 4.192546583850932,
"WHIP": 1.3416149068322982,
"K9": 9.22360248447205,
"HR9": 1.0062111801242237,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.9721485228891924,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694973",
"player_name": "Paul Skenes",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 153,
"wins": 76,
"losses": 77,
"win_pct": 0.4967,
"runs_scored": 730.0,
"runs_allowed": 706.0,
"run_differential": 24.0,
"run_differential_per_game": 0.1569,
"avg_runs_scored": 4.7712,
"avg_runs_allowed": 4.6144,
"offense_index": 1.0632,
"defense_index": 0.9725,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.8,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0514
},
"opponent": {
"team": "KC",
"games": 153,
"wins": 67,
"losses": 86,
"win_pct": 0.4379,
"runs_scored": 643.0,
"runs_allowed": 740.0,
"run_differential": -97.0,
"run_differential_per_game": -0.634,
"avg_runs_scored": 4.2026,
"avg_runs_allowed": 4.8366,
"offense_index": 0.9365,
"defense_index": 0.9278,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.6,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1655
},
"edges": {
"quality_edge": 0.2169,
"offense_edge": 0.0632,
"opponent_offense_edge": -0.0635,
"defense_strength": -0.0275,
"opponent_defense_weakness": 0.0722,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0104,
"run_prevention": 0.9817,
"strikeout": 1.0116
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694973",
"profile": {
"available": true,
"pitcher_id": "694973",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 637.0,
"k_percent": 27.8,
"bb_percent": 6.9,
"woba": 0.295,
"xwoba": 0.28,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 37.9,
"avg_best_speed": 76.3493,
"avg_hyper_speed": 93.7643,
"whiff_percent": 27.8,
"swing_percent": 51.0
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4875,
"command_and_miss": 0.6229,
"regression_edge": 0.4286,
"xwoba_edge": 0.9143,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.0143,
"whiff_edge": 0.4,
"bb_edge": 0.55,
"pitch_design_score": 0.1555
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694973",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 92.63363570953892,
"release_spin_rate": 2105.473914410991,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 92.63363570953892,
"release_spin_rate": 2105.473914410991,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.6336,
"release_spin_rate": 2105.4739,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1555,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1105,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.4902,
"sample_weight": 1.0,
"run_prevention_factor": 0.9583,
"strikeout_factor": 1.0491,
"walk_factor": 0.956,
"homer_factor": 0.9649,
"woba_minus_xwoba": 0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694973",
"espn_id": 4719507,
"player_name": "Paul Skenes",
"team": "PIT",
"role": "pitcher",
"espn_rank": 30,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 30,
"gp_value": 30.0,
"gp_rank": 240,
"gs_value": 30.0,
"gs_rank": 9,
"qs_value": 12.0,
"qs_rank": 38,
"era_value": 3.7777,
"era_rank": 25.0,
"w_value": 10.0,
"w_rank": 35,
"l_value": 11.0,
"l_rank": 11,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 162.0,
"ip_rank": 33,
"h_value": 137.0,
"h_rank": 51,
"er_value": 68.0,
"er_rank": 45,
"hr_value": 17.0,
"hr_rank": 79,
"bb_value": 46.0,
"bb_rank": 61,
"k_value": 185.0,
"k_rank": 14,
"k_per_9_value": 10.277778,
"k_per_9_rank": 11,
"whip_value": 1.1296,
"whip_rank": 18.0,
"war_value": 3.14,
"war_rank": 20.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9583,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9583,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.956,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9649,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0491,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260918_KC@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_MIA@SD | away | Tyler Phillips | Tyler Phillips | True | 5.0 | 3.2 | -4 | 0 | 0 | 0 | 0/2 | 0/1 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5546218487394956,
"WHIP": 1.3277310924369747,
"IP": 119.0,
"games_started": null,
"games_pitched": 35,
"role_avg_IP": 4.574,
"recent_avg_IP": 4.733,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2955,
"sample_weight": 1.0,
"run_prevention_factor": 1.0251,
"strikeout_factor": 0.9891,
"walk_factor": 1.02,
"homer_factor": 1.0582,
"regression_flag": "neutral",
"k_percent": 18.9,
"bb_percent": 10.1,
"woba": 0.317,
"xwoba": 0.332,
"barrel_percent": 8.1,
"hard_hit_percent": 42.7,
"whiff_percent": 26.2
},
"espn_rank": {
"rank": 98,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 119.0,
"season_ERA": 3.555,
"season_WHIP": 1.328,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 35.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.875,
"prior_weight": 0.125
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663969",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 35,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.1,
"ER": 7.0,
"R": 7.0,
"H": 13.0,
"BB": 11.0,
"SO": 20.0,
"HR": 4.0,
"BF": 83.0,
"Pitches": 339.0
},
"per_game": {
"IP": 4.0,
"ER": 1.4,
"R": 1.4,
"H": 2.6,
"BB": 2.2,
"SO": 4.0,
"HR": 0.8,
"BF": 16.6,
"Pitches": 67.8
},
"rates": {
"ERA": 3.0984,
"WHIP": 1.1803,
"ER_per_IP": 0.34426,
"H_per_IP": 0.63934,
"BB_per_IP": 0.54098,
"SO_per_IP": 0.98361,
"HR_per_IP": 0.19672
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 44.0,
"ER": 18.0,
"R": 19.0,
"H": 38.0,
"BB": 16.0,
"SO": 40.0,
"HR": 9.0,
"BF": 183.0,
"Pitches": 701.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 1.9,
"H": 3.8,
"BB": 1.6,
"SO": 4.0,
"HR": 0.9,
"BF": 18.3,
"Pitches": 70.1
},
"rates": {
"ERA": 3.6818,
"WHIP": 1.2273,
"ER_per_IP": 0.40909,
"H_per_IP": 0.86364,
"BB_per_IP": 0.36364,
"SO_per_IP": 0.90909,
"HR_per_IP": 0.20455
}
},
"season": {
"games": 35,
"totals": {
"IP": 119.0,
"ER": 47.0,
"R": 50.0,
"H": 107.0,
"BB": 51.0,
"SO": 96.0,
"HR": 17.0,
"BF": 507.0,
"Pitches": 1914.0
},
"per_game": {
"IP": 3.1,
"ER": 1.3429,
"R": 1.4286,
"H": 3.0571,
"BB": 1.4571,
"SO": 2.7429,
"HR": 0.4857,
"BF": 14.4857,
"Pitches": 54.6857
},
"rates": {
"ERA": 3.5546,
"WHIP": 1.3277,
"ER_per_IP": 0.39496,
"H_per_IP": 0.89916,
"BB_per_IP": 0.42857,
"SO_per_IP": 0.80672,
"HR_per_IP": 0.14286
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.616,
"predicted_H": 3.271,
"predicted_BB": 1.834,
"predicted_SO": 3.798,
"predicted_HR": 0.755,
"predicted_ERA": 3.539,
"predicted_WHIP": 1.2418
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4028,
"form_weight": 0.5972,
"form_reliability": 0.875,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 35.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.875,
"prior_weight": 0.125
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.616,
"final": 0.9651,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 3.271,
"final": 1.9534,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.834,
"final": 1.0952,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.798,
"final": 4.2822,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.755,
"final": 0.4509,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.539,
"final": 3.539,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2418,
"final": 1.2418,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.0,
"ER": 18,
"H": 38,
"BB": 16,
"SO": 40,
"HR": 9,
"ERA": 3.681818181818181,
"WHIP": 1.227272727272727,
"K9": 8.18181818181818,
"HR9": 1.8409090909090906,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.9118330231715186,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 35.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.875,
"prior_weight": 0.125
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663969",
"player_name": "Tyler Phillips",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 153,
"wins": 76,
"losses": 77,
"win_pct": 0.4967,
"runs_scored": 681.0,
"runs_allowed": 673.0,
"run_differential": 8.0,
"run_differential_per_game": 0.0523,
"avg_runs_scored": 4.451,
"avg_runs_allowed": 4.3987,
"offense_index": 0.9902,
"defense_index": 1.0219,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 6.0,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0036
},
"opponent": {
"team": "SD",
"games": 153,
"wins": 84,
"losses": 69,
"win_pct": 0.549,
"runs_scored": 668.0,
"runs_allowed": 638.0,
"run_differential": 30.0,
"run_differential_per_game": 0.1961,
"avg_runs_scored": 4.366,
"avg_runs_allowed": 4.1699,
"offense_index": 0.9713,
"defense_index": 1.0779,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 6.6,
"avg_runs_allowed": 4.4,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.2056
},
"edges": {
"quality_edge": -0.202,
"offense_edge": -0.0098,
"opponent_offense_edge": -0.0287,
"defense_strength": 0.0219,
"opponent_defense_weakness": -0.0779,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9937,
"run_prevention": 1.0033,
"strikeout": 0.9962
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663969",
"profile": {
"available": true,
"pitcher_id": "663969",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 478.0,
"k_percent": 18.9,
"bb_percent": 10.1,
"woba": 0.317,
"xwoba": 0.332,
"sweet_spot_percent": 32.9,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 42.7,
"avg_best_speed": 79.3388,
"avg_hyper_speed": 94.3487,
"whiff_percent": 26.2,
"swing_percent": 45.8
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3544,
"command_and_miss": -0.1893,
"regression_edge": -0.4286,
"xwoba_edge": -0.5714,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.6714,
"whiff_edge": 0.1714,
"bb_edge": -0.25,
"pitch_design_score": -0.0618
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663969",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 72,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 88.75409445302893,
"release_spin_rate": 2053.928533016898,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 88.75409445302893,
"release_spin_rate": 2053.928533016898,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.7541,
"release_spin_rate": 2053.9285,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0618,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4413,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2955,
"sample_weight": 1.0,
"run_prevention_factor": 1.0251,
"strikeout_factor": 0.9891,
"walk_factor": 1.02,
"homer_factor": 1.0582,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663969",
"espn_id": 41247,
"player_name": "Tyler Phillips",
"team": "MIA",
"role": "pitcher",
"espn_rank": 98,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 98,
"gp_value": 35.0,
"gp_rank": 196,
"gs_value": 18.0,
"gs_rank": 121,
"qs_value": 2.0,
"qs_rank": 159,
"era_value": 3.5546,
"era_rank": null,
"w_value": 5.0,
"w_rank": 157,
"l_value": 6.0,
"l_rank": 116,
"sv_value": 2.0,
"sv_rank": 96,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 119.0,
"ip_rank": 98,
"h_value": 107.0,
"h_rank": 114,
"er_value": 47.0,
"er_rank": 127,
"hr_value": 17.0,
"hr_rank": 79,
"bb_value": 51.0,
"bb_rank": 45,
"k_value": 96.0,
"k_rank": 123,
"k_per_9_value": 7.2605042,
"k_per_9_rank": 33,
"whip_value": 1.3277,
"whip_rank": null,
"war_value": 1.83,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0251,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0251,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.02,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0582,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9891,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 0,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 17,
"Pitches": 75,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260918_MIA@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_MIA@SD | home | Nick Pivetta | Nick Pivetta | True | 5.0 | 5.0 | 0 | 3 | 1 | -2 | 1/4 | 3/1 | 6/4 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 3.6,
"WHIP": 1.0,
"IP": 25.0,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 4.167,
"recent_avg_IP": 4.4,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2468,
"sample_weight": 0.45,
"run_prevention_factor": 0.979,
"strikeout_factor": 1.0165,
"walk_factor": 0.9721,
"homer_factor": 0.9948,
"regression_flag": "neutral",
"k_percent": 31.0,
"bb_percent": 6.0,
"woba": 0.241,
"xwoba": 0.263,
"barrel_percent": 9.5,
"hard_hit_percent": 36.5,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 267,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 25.0,
"season_ERA": 3.6,
"season_WHIP": 1.0,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "601713",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.0,
"ER": 4.0,
"R": 4.0,
"H": 12.0,
"BB": 3.0,
"SO": 27.0,
"HR": 1.0,
"BF": 81.0,
"Pitches": 346.0
},
"per_game": {
"IP": 4.1,
"ER": 0.8,
"R": 0.8,
"H": 2.4,
"BB": 0.6,
"SO": 5.4,
"HR": 0.2,
"BF": 16.2,
"Pitches": 69.2
},
"rates": {
"ERA": 1.6364,
"WHIP": 0.6818,
"ER_per_IP": 0.18182,
"H_per_IP": 0.54545,
"BB_per_IP": 0.13636,
"SO_per_IP": 1.22727,
"HR_per_IP": 0.04545
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 25.0,
"ER": 10.0,
"R": 10.0,
"H": 19.0,
"BB": 6.0,
"SO": 31.0,
"HR": 1.0,
"BF": 100.0,
"Pitches": 415.0
},
"per_game": {
"IP": 4.0,
"ER": 1.6667,
"R": 1.6667,
"H": 3.1667,
"BB": 1.0,
"SO": 5.1667,
"HR": 0.1667,
"BF": 16.6667,
"Pitches": 69.1667
},
"rates": {
"ERA": 3.6,
"WHIP": 1.0,
"ER_per_IP": 0.4,
"H_per_IP": 0.76,
"BB_per_IP": 0.24,
"SO_per_IP": 1.24,
"HR_per_IP": 0.04
}
},
"season": {
"games": 6,
"totals": {
"IP": 25.0,
"ER": 10.0,
"R": 10.0,
"H": 19.0,
"BB": 6.0,
"SO": 31.0,
"HR": 1.0,
"BF": 100.0,
"Pitches": 415.0
},
"per_game": {
"IP": 4.0,
"ER": 1.6667,
"R": 1.6667,
"H": 3.1667,
"BB": 1.0,
"SO": 5.1667,
"HR": 0.1667,
"BF": 16.6667,
"Pitches": 69.1667
},
"rates": {
"ERA": 3.6,
"WHIP": 1.0,
"ER_per_IP": 0.4,
"H_per_IP": 0.76,
"BB_per_IP": 0.24,
"SO_per_IP": 1.24,
"HR_per_IP": 0.04
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.592,
"predicted_H": 3.493,
"predicted_BB": 1.162,
"predicted_SO": 5.056,
"predicted_HR": 0.422,
"predicted_ERA": 3.1073,
"predicted_WHIP": 1.0093
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.592,
"final": 2.8972,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.493,
"final": 2.1417,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.162,
"final": 2.1582,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.056,
"final": 5.5677,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.422,
"final": 0.1933,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1073,
"final": 3.1073,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0093,
"final": 1.0093,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 25.0,
"ER": 10,
"H": 19,
"BB": 6,
"SO": 31,
"HR": 1,
"ERA": 3.6,
"WHIP": 1.0,
"K9": 11.16,
"HR9": 0.36,
"games_pitched": 6,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-13T00:00:00"
},
"recent_form_boost": 0.9150241710241988,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 1.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "601713",
"player_name": "Nick Pivetta",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 153,
"wins": 84,
"losses": 69,
"win_pct": 0.549,
"runs_scored": 668.0,
"runs_allowed": 638.0,
"run_differential": 30.0,
"run_differential_per_game": 0.1961,
"avg_runs_scored": 4.366,
"avg_runs_allowed": 4.1699,
"offense_index": 0.9713,
"defense_index": 1.0779,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 6.6,
"avg_runs_allowed": 4.4,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.2056
},
"opponent": {
"team": "MIA",
"games": 153,
"wins": 76,
"losses": 77,
"win_pct": 0.4967,
"runs_scored": 681.0,
"runs_allowed": 673.0,
"run_differential": 8.0,
"run_differential_per_game": 0.0523,
"avg_runs_scored": 4.451,
"avg_runs_allowed": 4.3987,
"offense_index": 0.9902,
"defense_index": 1.0219,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 6.0,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0036
},
"edges": {
"quality_edge": 0.202,
"offense_edge": -0.0287,
"opponent_offense_edge": -0.0098,
"defense_strength": 0.0779,
"opponent_defense_weakness": -0.0219,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0108,
"run_prevention": 0.9805,
"strikeout": 1.0068
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "601713",
"profile": {
"available": true,
"pitcher_id": "601713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 83.0,
"k_percent": 31.0,
"bb_percent": 6.0,
"woba": 0.241,
"xwoba": 0.263,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 36.5,
"avg_best_speed": 78.5013,
"avg_hyper_speed": 93.6402,
"whiff_percent": 22.4,
"swing_percent": 47.2
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8171,
"command_and_miss": 0.6036,
"regression_edge": -0.6286,
"xwoba_edge": 1.4,
"barrel_edge": -0.4889,
"hard_hit_edge": 0.2143,
"whiff_edge": -0.3714,
"bb_edge": 0.775,
"pitch_design_score": -0.0396
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "601713",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 69,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 89.1507727002447,
"release_spin_rate": 2440.6144022359413,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 89.1507727002447,
"release_spin_rate": 2440.6144022359413,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.1508,
"release_spin_rate": 2440.6144,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0396,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2826,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.2468,
"sample_weight": 0.45,
"run_prevention_factor": 0.979,
"strikeout_factor": 1.0165,
"walk_factor": 0.9721,
"homer_factor": 0.9948,
"woba_minus_xwoba": -0.022,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "601713",
"espn_id": 36071,
"player_name": "Nick Pivetta",
"team": "SD",
"role": "pitcher",
"espn_rank": 267,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 267,
"gp_value": 6.0,
"gp_rank": 622,
"gs_value": 6.0,
"gs_rank": 211,
"qs_value": 0.0,
"qs_rank": 214,
"era_value": 3.6,
"era_rank": null,
"w_value": 2.0,
"w_rank": 325,
"l_value": 2.0,
"l_rank": 338,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 25.0,
"ip_rank": 492,
"h_value": 19.0,
"h_rank": 537,
"er_value": 10.0,
"er_rank": 545,
"hr_value": 1.0,
"hr_rank": 624,
"bb_value": 6.0,
"bb_rank": 593,
"k_value": 31.0,
"k_rank": 418,
"k_per_9_value": 11.160001,
"k_per_9_rank": 22,
"whip_value": 1.0,
"whip_rank": null,
"war_value": 0.45,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9906,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9906,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9874,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9977,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0074,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260918_MIA@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_MIL@BAL | away | Dustin May | Dustin May | True | 4.2 | 2.1 | -7 | 4 | 3 | -1 | 6/6 | 2/1 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.489156626506023,
"WHIP": 1.2867469879518072,
"IP": 138.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.94,
"recent_avg_IP": 3.267,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0968,
"sample_weight": 1.0,
"run_prevention_factor": 1.0082,
"strikeout_factor": 0.9931,
"walk_factor": 0.976,
"homer_factor": 1.0373,
"regression_flag": "neutral",
"k_percent": 22.8,
"bb_percent": 7.9,
"woba": 0.309,
"xwoba": 0.317,
"barrel_percent": 7.1,
"hard_hit_percent": 44.4,
"whiff_percent": 23.0
},
"espn_rank": {
"rank": 246,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669160",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 16.1,
"ER": 13.0,
"R": 13.0,
"H": 20.0,
"BB": 6.0,
"SO": 16.0,
"HR": 2.0,
"BF": 77.0,
"Pitches": 304.0
},
"per_game": {
"IP": 3.1,
"ER": 2.6,
"R": 2.6,
"H": 4.0,
"BB": 1.2,
"SO": 3.2,
"HR": 0.4,
"BF": 15.4,
"Pitches": 60.8
},
"rates": {
"ERA": 7.1633,
"WHIP": 1.5918,
"ER_per_IP": 0.79592,
"H_per_IP": 1.22449,
"BB_per_IP": 0.36735,
"SO_per_IP": 0.97959,
"HR_per_IP": 0.12245
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.1,
"ER": 22.0,
"R": 22.0,
"H": 43.0,
"BB": 18.0,
"SO": 44.0,
"HR": 4.0,
"BF": 195.0,
"Pitches": 741.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.2,
"H": 4.3,
"BB": 1.8,
"SO": 4.4,
"HR": 0.4,
"BF": 19.5,
"Pitches": 74.1
},
"rates": {
"ERA": 4.3676,
"WHIP": 1.3456,
"ER_per_IP": 0.48529,
"H_per_IP": 0.94853,
"BB_per_IP": 0.39706,
"SO_per_IP": 0.97059,
"HR_per_IP": 0.08824
}
},
"season": {
"games": 28,
"totals": {
"IP": 138.1,
"ER": 69.0,
"R": 72.0,
"H": 132.0,
"BB": 46.0,
"SO": 133.0,
"HR": 11.0,
"BF": 584.0,
"Pitches": 2235.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4643,
"R": 2.5714,
"H": 4.7143,
"BB": 1.6429,
"SO": 4.75,
"HR": 0.3929,
"BF": 20.8571,
"Pitches": 79.8214
},
"rates": {
"ERA": 4.4892,
"WHIP": 1.2867,
"ER_per_IP": 0.4988,
"H_per_IP": 0.95422,
"BB_per_IP": 0.33253,
"SO_per_IP": 0.96145,
"HR_per_IP": 0.07952
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.568,
"predicted_H": 4.463,
"predicted_BB": 1.565,
"predicted_SO": 4.077,
"predicted_HR": 0.459,
"predicted_ERA": 5.4842,
"predicted_WHIP": 1.4304
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.568,
"final": 3.1609,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.463,
"final": 5.0993,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.565,
"final": 1.7451,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.077,
"final": 4.0451,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.459,
"final": 0.683,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.4842,
"final": 5.4842,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4304,
"final": 1.4304,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.1,
"ER": 22,
"H": 43,
"BB": 18,
"SO": 44,
"HR": 4,
"ERA": 4.36764705882353,
"WHIP": 1.3455882352941178,
"K9": 8.73529411764706,
"HR9": 0.7941176470588236,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-11T00:00:00"
},
"recent_form_boost": 0.9919466595351553,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669160",
"player_name": "Dustin May",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 153,
"wins": 95,
"losses": 58,
"win_pct": 0.6209,
"runs_scored": 792.0,
"runs_allowed": 595.0,
"run_differential": 197.0,
"run_differential_per_game": 1.2876,
"avg_runs_scored": 5.1765,
"avg_runs_allowed": 3.8889,
"offense_index": 1.154,
"defense_index": 1.1535,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 7.4,
"avg_runs_allowed": 4.9,
"run_differential": 25.0
},
"available": true,
"quality_score": 0.3306
},
"opponent": {
"team": "BAL",
"games": 153,
"wins": 75,
"losses": 78,
"win_pct": 0.4902,
"runs_scored": 688.0,
"runs_allowed": 714.0,
"run_differential": -26.0,
"run_differential_per_game": -0.1699,
"avg_runs_scored": 4.4967,
"avg_runs_allowed": 4.6667,
"offense_index": 1.0025,
"defense_index": 0.9612,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.7,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0058
},
"edges": {
"quality_edge": 0.3248,
"offense_edge": 0.154,
"opponent_offense_edge": 0.0025,
"defense_strength": 0.1535,
"opponent_defense_weakness": 0.0388,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0175,
"run_prevention": 0.9688,
"strikeout": 1.0095
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669160",
"profile": {
"available": true,
"pitcher_id": "669160",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 559.0,
"k_percent": 22.8,
"bb_percent": 7.9,
"woba": 0.309,
"xwoba": 0.317,
"sweet_spot_percent": 36.0,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 44.4,
"avg_best_speed": 79.0481,
"avg_hyper_speed": 94.5812,
"whiff_percent": 23.0,
"swing_percent": 47.7
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.16,
"command_and_miss": 0.0114,
"regression_edge": -0.2286,
"xwoba_edge": -0.1429,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.9143,
"whiff_edge": -0.2857,
"bb_edge": 0.3,
"pitch_design_score": 0.1582
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669160",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 60,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 60,
"pitch_usage": 0.0,
"release_speed": 92.6827676573854,
"release_spin_rate": 2537.0196512514776,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 60,
"pitch_usage": 0.0,
"release_speed": 92.6827676573854,
"release_spin_rate": 2537.0196512514776,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.6828,
"release_spin_rate": 2537.0197,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1582,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1302,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0968,
"sample_weight": 1.0,
"run_prevention_factor": 1.0082,
"strikeout_factor": 0.9931,
"walk_factor": 0.976,
"homer_factor": 1.0373,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669160",
"espn_id": 40937,
"player_name": "Dustin May",
"team": "MIL",
"role": "pitcher",
"espn_rank": 246,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 246,
"gp_value": 28.0,
"gp_rank": 292,
"gs_value": 28.0,
"gs_rank": 40,
"qs_value": 13.0,
"qs_rank": 34,
"era_value": 4.4891,
"era_rank": null,
"w_value": 7.0,
"w_rank": 90,
"l_value": 9.0,
"l_rank": 36,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 138.1,
"ip_rank": 72,
"h_value": 132.0,
"h_rank": 65,
"er_value": 69.0,
"er_rank": 43,
"hr_value": 11.0,
"hr_rank": 152,
"bb_value": 46.0,
"bb_rank": 61,
"k_value": 133.0,
"k_rank": 56,
"k_per_9_value": 8.653012,
"k_per_9_rank": 21,
"whip_value": 1.2867,
"whip_rank": null,
"war_value": 0.6,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0082,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0082,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0373,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9931,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260918_MIL@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_MIL@BAL | home | Cade Povich | Cade Povich | True | 4.1 | 3.2 | -2 | 2 | 3 | 1 | 5/5 | 2/2 | 7/3 | Last 10 before this game (7 available){
"model_context": {
"embedded_season": {
"ERA": 4.05,
"WHIP": 1.44,
"IP": 33.1,
"games_started": null,
"games_pitched": 7,
"role_avg_IP": 4.611,
"recent_avg_IP": 4.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1172,
"sample_weight": 0.476,
"run_prevention_factor": 1.01,
"strikeout_factor": 0.984,
"walk_factor": 1.001,
"homer_factor": 1.0136,
"regression_flag": "neutral",
"k_percent": 17.6,
"bb_percent": 9.2,
"woba": 0.345,
"xwoba": 0.331,
"barrel_percent": 6.8,
"hard_hit_percent": 41.7,
"whiff_percent": 23.5
},
"espn_rank": {
"rank": 238,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.7627118644067797,
"last_10": 0.23728813559322032
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "700249",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 7,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 12.0,
"R": 12.0,
"H": 26.0,
"BB": 10.0,
"SO": 18.0,
"HR": 4.0,
"BF": 94.0,
"Pitches": 356.0
},
"per_game": {
"IP": 4.1,
"ER": 2.4,
"R": 2.4,
"H": 5.2,
"BB": 2.0,
"SO": 3.6,
"HR": 0.8,
"BF": 18.8,
"Pitches": 71.2
},
"rates": {
"ERA": 5.1429,
"WHIP": 1.7143,
"ER_per_IP": 0.57143,
"H_per_IP": 1.2381,
"BB_per_IP": 0.47619,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.19048
}
},
"last_10": {
"games": 7,
"totals": {
"IP": 33.1,
"ER": 15.0,
"R": 15.0,
"H": 35.0,
"BB": 13.0,
"SO": 25.0,
"HR": 5.0,
"BF": 142.0,
"Pitches": 540.0
},
"per_game": {
"IP": 4.2,
"ER": 2.1429,
"R": 2.1429,
"H": 5.0,
"BB": 1.8571,
"SO": 3.5714,
"HR": 0.7143,
"BF": 20.2857,
"Pitches": 77.1429
},
"rates": {
"ERA": 4.05,
"WHIP": 1.44,
"ER_per_IP": 0.45,
"H_per_IP": 1.05,
"BB_per_IP": 0.39,
"SO_per_IP": 0.75,
"HR_per_IP": 0.15
}
},
"season": {
"games": 7,
"totals": {
"IP": 33.1,
"ER": 15.0,
"R": 15.0,
"H": 35.0,
"BB": 13.0,
"SO": 25.0,
"HR": 5.0,
"BF": 142.0,
"Pitches": 540.0
},
"per_game": {
"IP": 4.2,
"ER": 2.1429,
"R": 2.1429,
"H": 5.0,
"BB": 1.8571,
"SO": 3.5714,
"HR": 0.7143,
"BF": 20.2857,
"Pitches": 77.1429
},
"rates": {
"ERA": 4.05,
"WHIP": 1.44,
"ER_per_IP": 0.45,
"H_per_IP": 1.05,
"BB_per_IP": 0.39,
"SO_per_IP": 0.75,
"HR_per_IP": 0.15
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.31,
"predicted_H": 4.832,
"predicted_BB": 1.847,
"predicted_SO": 3.835,
"predicted_HR": 0.732,
"predicted_ERA": 4.7468,
"predicted_WHIP": 1.5249
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5261,
"form_weight": 0.4739,
"form_reliability": 0.5833,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.31,
"final": 2.673,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.832,
"final": 4.9204,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.847,
"final": 1.9275,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.835,
"final": 5.5,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.732,
"final": 1.399,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7468,
"final": 4.7468,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5249,
"final": 1.5249,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 33.1,
"ER": 15,
"H": 35,
"BB": 13,
"SO": 25,
"HR": 5,
"ERA": 4.05,
"WHIP": 1.44,
"K9": 6.749999999999999,
"HR9": 1.3499999999999999,
"games_pitched": 7,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 7,
"error_prone": false
},
"games_count": 7,
"latest_game_date": "2026-08-31T00:00:00"
},
"recent_form_boost": 0.9585716595351551,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700249",
"player_name": "Cade Povich",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 153,
"wins": 75,
"losses": 78,
"win_pct": 0.4902,
"runs_scored": 688.0,
"runs_allowed": 714.0,
"run_differential": -26.0,
"run_differential_per_game": -0.1699,
"avg_runs_scored": 4.4967,
"avg_runs_allowed": 4.6667,
"offense_index": 1.0025,
"defense_index": 0.9612,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.7,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0058
},
"opponent": {
"team": "MIL",
"games": 153,
"wins": 95,
"losses": 58,
"win_pct": 0.6209,
"runs_scored": 792.0,
"runs_allowed": 595.0,
"run_differential": 197.0,
"run_differential_per_game": 1.2876,
"avg_runs_scored": 5.1765,
"avg_runs_allowed": 3.8889,
"offense_index": 1.154,
"defense_index": 1.1535,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 7.4,
"avg_runs_allowed": 4.9,
"run_differential": 25.0
},
"available": true,
"quality_score": 0.3306
},
"edges": {
"quality_edge": -0.3248,
"offense_edge": 0.0025,
"opponent_offense_edge": 0.154,
"defense_strength": -0.0388,
"opponent_defense_weakness": -0.1535,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9797,
"run_prevention": 1.0448,
"strikeout": 0.9779
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700249",
"profile": {
"available": true,
"pitcher_id": "700249",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 119.0,
"k_percent": 17.6,
"bb_percent": 9.2,
"woba": 0.345,
"xwoba": 0.331,
"sweet_spot_percent": 25.2,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 41.7,
"avg_best_speed": 79.7651,
"avg_hyper_speed": 94.7607,
"whiff_percent": 23.5,
"swing_percent": 46.5
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3211,
"command_and_miss": -0.3629,
"regression_edge": 0.4,
"xwoba_edge": -0.5429,
"barrel_edge": 0.1111,
"hard_hit_edge": -0.5286,
"whiff_edge": -0.2143,
"bb_edge": -0.025,
"pitch_design_score": -0.151
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700249",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 73,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 87.16154622741986,
"release_spin_rate": 2337.574666617456,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 87.16154622741986,
"release_spin_rate": 2337.574666617456,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.1615,
"release_spin_rate": 2337.5747,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.151,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0783,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1172,
"sample_weight": 0.476,
"run_prevention_factor": 1.01,
"strikeout_factor": 0.984,
"walk_factor": 1.001,
"homer_factor": 1.0136,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "700249",
"espn_id": 5085743,
"player_name": "Cade Povich",
"team": "BAL",
"role": "pitcher",
"espn_rank": 238,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 238,
"gp_value": 7.0,
"gp_rank": 595,
"gs_value": 6.0,
"gs_rank": 211,
"qs_value": 2.0,
"qs_rank": 159,
"era_value": 4.05,
"era_rank": null,
"w_value": 2.0,
"w_rank": 325,
"l_value": 1.0,
"l_rank": 435,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 33.1,
"ip_rank": 415,
"h_value": 35.0,
"h_rank": 384,
"er_value": 15.0,
"er_rank": 433,
"hr_value": 5.0,
"hr_rank": 332,
"bb_value": 13.0,
"bb_rank": 426,
"k_value": 25.0,
"k_rank": 460,
"k_per_9_value": 6.75,
"k_per_9_rank": 29,
"whip_value": 1.44,
"whip_rank": null,
"war_value": 0.62,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0048,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0048,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0005,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0065,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9924,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 7 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260918_MIL@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_MIN@LAA | away | Connor Prielipp | Connor Prielipp | True | 5.0 | 7.0 | 6 | 4 | 0 | -4 | 2/2 | 3/2 | 6/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.241176470588235,
"WHIP": 1.3411764705882354,
"IP": 113.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.217,
"recent_avg_IP": 5.333,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0185,
"sample_weight": 1.0,
"run_prevention_factor": 1.0016,
"strikeout_factor": 1.0034,
"walk_factor": 0.982,
"homer_factor": 1.0111,
"regression_flag": "neutral",
"k_percent": 24.0,
"bb_percent": 8.2,
"woba": 0.326,
"xwoba": 0.312,
"barrel_percent": 6.8,
"hard_hit_percent": 41.5,
"whiff_percent": 23.6
},
"espn_rank": {
"rank": 664,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687570",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 14.0,
"R": 14.0,
"H": 27.0,
"BB": 4.0,
"SO": 23.0,
"HR": 2.0,
"BF": 106.0,
"Pitches": 392.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 2.8,
"H": 5.4,
"BB": 0.8,
"SO": 4.6,
"HR": 0.4,
"BF": 21.2,
"Pitches": 78.4
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.2078,
"ER_per_IP": 0.54545,
"H_per_IP": 1.05195,
"BB_per_IP": 0.15584,
"SO_per_IP": 0.8961,
"HR_per_IP": 0.07792
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 32.0,
"R": 32.0,
"H": 50.0,
"BB": 17.0,
"SO": 52.0,
"HR": 8.0,
"BF": 215.0,
"Pitches": 825.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.2,
"H": 5.0,
"BB": 1.7,
"SO": 5.2,
"HR": 0.8,
"BF": 21.5,
"Pitches": 82.5
},
"rates": {
"ERA": 5.5742,
"WHIP": 1.2968,
"ER_per_IP": 0.61935,
"H_per_IP": 0.96774,
"BB_per_IP": 0.32903,
"SO_per_IP": 1.00645,
"HR_per_IP": 0.15484
}
},
"season": {
"games": 22,
"totals": {
"IP": 113.1,
"ER": 66.0,
"R": 74.0,
"H": 112.0,
"BB": 40.0,
"SO": 117.0,
"HR": 14.0,
"BF": 488.0,
"Pitches": 1898.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.3636,
"H": 5.0909,
"BB": 1.8182,
"SO": 5.3182,
"HR": 0.6364,
"BF": 22.1818,
"Pitches": 86.2727
},
"rates": {
"ERA": 5.2412,
"WHIP": 1.3412,
"ER_per_IP": 0.58235,
"H_per_IP": 0.98824,
"BB_per_IP": 0.35294,
"SO_per_IP": 1.03235,
"HR_per_IP": 0.12353
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.915,
"predicted_H": 5.176,
"predicted_BB": 1.432,
"predicted_SO": 4.937,
"predicted_HR": 0.62,
"predicted_ERA": 5.0874,
"predicted_WHIP": 1.2814
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.915,
"final": 3.3796,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.176,
"final": 3.8159,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.432,
"final": 2.1035,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.937,
"final": 5.3922,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.62,
"final": 1.211,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0874,
"final": 5.0874,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2814,
"final": 1.2814,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 32,
"H": 50,
"BB": 17,
"SO": 52,
"HR": 8,
"ERA": 5.574193548387097,
"WHIP": 1.2967741935483872,
"K9": 9.058064516129033,
"HR9": 1.3935483870967742,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 1.1264627885674132,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687570",
"player_name": "Connor Prielipp",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 153,
"wins": 71,
"losses": 82,
"win_pct": 0.4641,
"runs_scored": 696.0,
"runs_allowed": 770.0,
"run_differential": -74.0,
"run_differential_per_game": -0.4837,
"avg_runs_scored": 4.549,
"avg_runs_allowed": 5.0327,
"offense_index": 1.0121,
"defense_index": 0.8931,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 5.6,
"run_differential": -26.0
},
"available": true,
"quality_score": -0.1597
},
"opponent": {
"team": "LAA",
"games": 153,
"wins": 59,
"losses": 94,
"win_pct": 0.3856,
"runs_scored": 619.0,
"runs_allowed": 696.0,
"run_differential": -77.0,
"run_differential_per_game": -0.5033,
"avg_runs_scored": 4.0458,
"avg_runs_allowed": 4.549,
"offense_index": 0.9001,
"defense_index": 0.9881,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.2,
"run_differential": 0.0
},
"available": true,
"quality_score": -0.1588
},
"edges": {
"quality_edge": -0.0009,
"offense_edge": 0.0121,
"opponent_offense_edge": -0.0999,
"defense_strength": -0.1069,
"opponent_defense_weakness": 0.0119,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0008,
"run_prevention": 0.9948,
"strikeout": 1.008
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687570",
"profile": {
"available": true,
"pitcher_id": "687570",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 463.0,
"k_percent": 24.0,
"bb_percent": 8.2,
"woba": 0.326,
"xwoba": 0.312,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 41.5,
"avg_best_speed": 80.468,
"avg_hyper_speed": 94.2828,
"whiff_percent": 23.6,
"swing_percent": 47.7
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1535,
"command_and_miss": 0.1036,
"regression_edge": 0.4,
"xwoba_edge": 0.0,
"barrel_edge": 0.1111,
"hard_hit_edge": -0.5,
"whiff_edge": -0.2,
"bb_edge": 0.225,
"pitch_design_score": 0.0067
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687570",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 89.97658201561127,
"release_spin_rate": 2603.385200784157,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 89.97658201561127,
"release_spin_rate": 2603.385200784157,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.9766,
"release_spin_rate": 2603.3852,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0067,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0477,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0185,
"sample_weight": 1.0,
"run_prevention_factor": 1.0016,
"strikeout_factor": 1.0034,
"walk_factor": 0.982,
"homer_factor": 1.0111,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687570",
"espn_id": 4620001,
"player_name": "Connor Prielipp",
"team": "MIN",
"role": "pitcher",
"espn_rank": 664,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 664,
"gp_value": 22.0,
"gp_rank": 381,
"gs_value": 20.0,
"gs_rank": 103,
"qs_value": 3.0,
"qs_rank": 143,
"era_value": 5.2411,
"era_rank": null,
"w_value": 5.0,
"w_rank": 157,
"l_value": 7.0,
"l_rank": 89,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 113.1,
"ip_rank": 111,
"h_value": 112.0,
"h_rank": 107,
"er_value": 66.0,
"er_rank": 52,
"hr_value": 14.0,
"hr_rank": 110,
"bb_value": 40.0,
"bb_rank": 96,
"k_value": 117.0,
"k_rank": 81,
"k_per_9_value": 9.291177,
"k_per_9_rank": 19,
"whip_value": 1.3411,
"whip_rank": null,
"war_value": -0.2,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0016,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0016,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.982,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0111,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0034,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260918_MIN@LAA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_MIN@LAA | home | Grayson Rodriguez | Grayson Rodriguez | True | 5.0 | 6.2 | 5 | 3 | 3 | 0 | 3/8 | 2/0 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.103448275862069,
"WHIP": 1.5632183908045978,
"IP": 87.0,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 4.833,
"recent_avg_IP": 5.6,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5624,
"sample_weight": 1.0,
"run_prevention_factor": 1.0478,
"strikeout_factor": 0.9806,
"walk_factor": 1.012,
"homer_factor": 1.1096,
"regression_flag": "neutral",
"k_percent": 20.1,
"bb_percent": 9.7,
"woba": 0.365,
"xwoba": 0.356,
"barrel_percent": 8.9,
"hard_hit_percent": 45.6,
"whiff_percent": 23.5
},
"espn_rank": {
"rank": 848,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680570",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 12.0,
"R": 14.0,
"H": 32.0,
"BB": 10.0,
"SO": 24.0,
"HR": 4.0,
"BF": 122.0,
"Pitches": 468.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.8,
"H": 6.4,
"BB": 2.0,
"SO": 4.8,
"HR": 0.8,
"BF": 24.4,
"Pitches": 93.6
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.5,
"ER_per_IP": 0.42857,
"H_per_IP": 1.14286,
"BB_per_IP": 0.35714,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 27.0,
"R": 30.0,
"H": 53.0,
"BB": 21.0,
"SO": 52.0,
"HR": 9.0,
"BF": 225.0,
"Pitches": 916.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 3.0,
"H": 5.3,
"BB": 2.1,
"SO": 5.2,
"HR": 0.9,
"BF": 22.5,
"Pitches": 91.6
},
"rates": {
"ERA": 4.6731,
"WHIP": 1.4231,
"ER_per_IP": 0.51923,
"H_per_IP": 1.01923,
"BB_per_IP": 0.40385,
"SO_per_IP": 1.0,
"HR_per_IP": 0.17308
}
},
"season": {
"games": 18,
"totals": {
"IP": 87.0,
"ER": 59.0,
"R": 64.0,
"H": 98.0,
"BB": 38.0,
"SO": 79.0,
"HR": 14.0,
"BF": 393.0,
"Pitches": 1576.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2778,
"R": 3.5556,
"H": 5.4444,
"BB": 2.1111,
"SO": 4.3889,
"HR": 0.7778,
"BF": 21.8333,
"Pitches": 87.5556
},
"rates": {
"ERA": 6.1034,
"WHIP": 1.5632,
"ER_per_IP": 0.67816,
"H_per_IP": 1.12644,
"BB_per_IP": 0.43678,
"SO_per_IP": 0.90805,
"HR_per_IP": 0.16092
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.723,
"predicted_H": 5.723,
"predicted_BB": 2.064,
"predicted_SO": 4.927,
"predicted_HR": 0.829,
"predicted_ERA": 4.584,
"predicted_WHIP": 1.4564
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.723,
"final": 2.4035,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.723,
"final": 4.078,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.064,
"final": 2.0357,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.927,
"final": 4.5174,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.829,
"final": 0.9046,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.584,
"final": 4.584,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4564,
"final": 1.4564,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 27,
"H": 53,
"BB": 21,
"SO": 52,
"HR": 9,
"ERA": 4.673076923076923,
"WHIP": 1.4230769230769231,
"K9": 9.0,
"HR9": 1.5576923076923077,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-13T00:00:00"
},
"recent_form_boost": 1.028244736458232,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680570",
"player_name": "Grayson Rodriguez",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 153,
"wins": 59,
"losses": 94,
"win_pct": 0.3856,
"runs_scored": 619.0,
"runs_allowed": 696.0,
"run_differential": -77.0,
"run_differential_per_game": -0.5033,
"avg_runs_scored": 4.0458,
"avg_runs_allowed": 4.549,
"offense_index": 0.9001,
"defense_index": 0.9881,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.2,
"run_differential": 0.0
},
"available": true,
"quality_score": -0.1588
},
"opponent": {
"team": "MIN",
"games": 153,
"wins": 71,
"losses": 82,
"win_pct": 0.4641,
"runs_scored": 696.0,
"runs_allowed": 770.0,
"run_differential": -74.0,
"run_differential_per_game": -0.4837,
"avg_runs_scored": 4.549,
"avg_runs_allowed": 5.0327,
"offense_index": 1.0121,
"defense_index": 0.8931,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 5.6,
"run_differential": -26.0
},
"available": true,
"quality_score": -0.1597
},
"edges": {
"quality_edge": 0.0009,
"offense_edge": -0.0999,
"opponent_offense_edge": 0.0121,
"defense_strength": -0.0119,
"opponent_defense_weakness": 0.1069,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9992,
"run_prevention": 1.0031,
"strikeout": 0.9991
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680570",
"profile": {
"available": true,
"pitcher_id": "680570",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 358.0,
"k_percent": 20.1,
"bb_percent": 9.7,
"woba": 0.365,
"xwoba": 0.356,
"sweet_spot_percent": 35.6,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 45.6,
"avg_best_speed": 79.7845,
"avg_hyper_speed": 94.8949,
"whiff_percent": 23.5,
"swing_percent": 48.9
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.9463,
"command_and_miss": -0.2271,
"regression_edge": 0.2571,
"xwoba_edge": -1.2571,
"barrel_edge": -0.3556,
"hard_hit_edge": -1.0857,
"whiff_edge": -0.2143,
"bb_edge": -0.15,
"pitch_design_score": 0.0106
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680570",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 90.04614844057878,
"release_spin_rate": 2183.5396489967748,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 90.04614844057878,
"release_spin_rate": 2183.5396489967748,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.0461,
"release_spin_rate": 2183.5396,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0106,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0755,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.5624,
"sample_weight": 1.0,
"run_prevention_factor": 1.0478,
"strikeout_factor": 0.9806,
"walk_factor": 1.012,
"homer_factor": 1.1096,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680570",
"espn_id": 41196,
"player_name": "Grayson Rodriguez",
"team": "LAA",
"role": "pitcher",
"espn_rank": 848,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 848,
"gp_value": 18.0,
"gp_rank": 428,
"gs_value": 18.0,
"gs_rank": 121,
"qs_value": 2.0,
"qs_rank": 159,
"era_value": 6.1034,
"era_rank": null,
"w_value": 4.0,
"w_rank": 200,
"l_value": 7.0,
"l_rank": 89,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 87.0,
"ip_rank": 152,
"h_value": 98.0,
"h_rank": 123,
"er_value": 59.0,
"er_rank": 79,
"hr_value": 14.0,
"hr_rank": 110,
"bb_value": 38.0,
"bb_rank": 111,
"k_value": 79.0,
"k_rank": 161,
"k_per_9_value": 8.172414,
"k_per_9_rank": 28,
"whip_value": 1.5632,
"whip_rank": null,
"war_value": -1.04,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0478,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0478,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.012,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1096,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9806,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260918_MIN@LAA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_NYY@ARI | away | Gerrit Cole | Gerrit Cole | True | 5.2 | 6.0 | 1 | 2 | 2 | 0 | 4/4 | 5/0 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.667630057803468,
"WHIP": 1.1271676300578035,
"IP": 115.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.767,
"recent_avg_IP": 5.733,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0024,
"sample_weight": 1.0,
"run_prevention_factor": 1.0002,
"strikeout_factor": 0.9954,
"walk_factor": 0.91,
"homer_factor": 1.0653,
"regression_flag": "neutral",
"k_percent": 24.6,
"bb_percent": 4.6,
"woba": 0.307,
"xwoba": 0.303,
"barrel_percent": 8.9,
"hard_hit_percent": 45.8,
"whiff_percent": 21.6
},
"espn_rank": {
"rank": 66,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "543037",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 16.0,
"R": 16.0,
"H": 33.0,
"BB": 3.0,
"SO": 25.0,
"HR": 9.0,
"BF": 122.0,
"Pitches": 423.0
},
"per_game": {
"IP": 5.2,
"ER": 3.2,
"R": 3.2,
"H": 6.6,
"BB": 0.6,
"SO": 5.0,
"HR": 1.8,
"BF": 24.4,
"Pitches": 84.6
},
"rates": {
"ERA": 5.0233,
"WHIP": 1.2558,
"ER_per_IP": 0.55814,
"H_per_IP": 1.15116,
"BB_per_IP": 0.10465,
"SO_per_IP": 0.87209,
"HR_per_IP": 0.31395
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 23.0,
"R": 24.0,
"H": 56.0,
"BB": 10.0,
"SO": 62.0,
"HR": 11.0,
"BF": 245.0,
"Pitches": 883.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.4,
"H": 5.6,
"BB": 1.0,
"SO": 6.2,
"HR": 1.1,
"BF": 24.5,
"Pitches": 88.3
},
"rates": {
"ERA": 3.4309,
"WHIP": 1.0939,
"ER_per_IP": 0.38122,
"H_per_IP": 0.92818,
"BB_per_IP": 0.16575,
"SO_per_IP": 1.02762,
"HR_per_IP": 0.18232
}
},
"season": {
"games": 20,
"totals": {
"IP": 115.1,
"ER": 47.0,
"R": 48.0,
"H": 108.0,
"BB": 22.0,
"SO": 117.0,
"HR": 20.0,
"BF": 475.0,
"Pitches": 1756.0
},
"per_game": {
"IP": 5.2,
"ER": 2.35,
"R": 2.4,
"H": 5.4,
"BB": 1.1,
"SO": 5.85,
"HR": 1.0,
"BF": 23.75,
"Pitches": 87.8
},
"rates": {
"ERA": 3.6676,
"WHIP": 1.1272,
"ER_per_IP": 0.40751,
"H_per_IP": 0.93642,
"BB_per_IP": 0.19075,
"SO_per_IP": 1.01445,
"HR_per_IP": 0.17341
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.731,
"predicted_H": 5.872,
"predicted_BB": 1.091,
"predicted_SO": 5.48,
"predicted_HR": 1.275,
"predicted_ERA": 4.2669,
"predicted_WHIP": 1.2089
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.731,
"final": 2.4134,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.872,
"final": 5.0586,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.091,
"final": 2.7895,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.48,
"final": 4.8369,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.275,
"final": 1.1555,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2669,
"final": 4.2669,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2089,
"final": 1.2089,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.1,
"ER": 23,
"H": 56,
"BB": 10,
"SO": 62,
"HR": 11,
"ERA": 3.4309392265193375,
"WHIP": 1.0939226519337018,
"K9": 9.248618784530388,
"HR9": 1.6408839779005526,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.8802753888169232,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 5.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543037",
"player_name": "Gerrit Cole",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 152,
"wins": 88,
"losses": 64,
"win_pct": 0.5789,
"runs_scored": 697.0,
"runs_allowed": 561.0,
"run_differential": 136.0,
"run_differential_per_game": 0.8947,
"avg_runs_scored": 4.5855,
"avg_runs_allowed": 3.6908,
"offense_index": 1.0202,
"defense_index": 1.2178,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.6,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.2465
},
"opponent": {
"team": "ARI",
"games": 153,
"wins": 80,
"losses": 73,
"win_pct": 0.5229,
"runs_scored": 678.0,
"runs_allowed": 678.0,
"run_differential": 0.0,
"run_differential_per_game": 0.0,
"avg_runs_scored": 4.4314,
"avg_runs_allowed": 4.4314,
"offense_index": 0.9859,
"defense_index": 1.0143,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.3,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.0195
},
"edges": {
"quality_edge": 0.227,
"offense_edge": 0.0202,
"opponent_offense_edge": -0.0141,
"defense_strength": 0.2178,
"opponent_defense_weakness": -0.0143,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0162,
"run_prevention": 0.9646,
"strikeout": 1.0079
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543037",
"profile": {
"available": true,
"pitcher_id": "543037",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 448.0,
"k_percent": 24.6,
"bb_percent": 4.6,
"woba": 0.307,
"xwoba": 0.303,
"sweet_spot_percent": 36.1,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 45.8,
"avg_best_speed": 81.867,
"avg_hyper_speed": 94.6455,
"whiff_percent": 21.6,
"swing_percent": 49.7
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1453,
"command_and_miss": 0.2221,
"regression_edge": 0.1143,
"xwoba_edge": 0.2571,
"barrel_edge": -0.3556,
"hard_hit_edge": -1.1143,
"whiff_edge": -0.4857,
"bb_edge": 1.125,
"pitch_design_score": 0.1224
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543037",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 92.04362872020226,
"release_spin_rate": 2371.432008037648,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 92.04362872020226,
"release_spin_rate": 2371.432008037648,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.0436,
"release_spin_rate": 2371.432,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1224,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8745,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0024,
"sample_weight": 1.0,
"run_prevention_factor": 1.0002,
"strikeout_factor": 0.9954,
"walk_factor": 0.91,
"homer_factor": 1.0653,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "543037",
"espn_id": 32081,
"player_name": "Gerrit Cole",
"team": "NYY",
"role": "pitcher",
"espn_rank": 66,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 66,
"gp_value": 20.0,
"gp_rank": 400,
"gs_value": 20.0,
"gs_rank": 103,
"qs_value": 11.0,
"qs_rank": 48,
"era_value": 3.6676,
"era_rank": null,
"w_value": 8.0,
"w_rank": 71,
"l_value": 9.0,
"l_rank": 36,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 115.1,
"ip_rank": 106,
"h_value": 108.0,
"h_rank": 113,
"er_value": 47.0,
"er_rank": 127,
"hr_value": 20.0,
"hr_rank": 42,
"bb_value": 22.0,
"bb_rank": 279,
"k_value": 117.0,
"k_rank": 81,
"k_per_9_value": 9.130058,
"k_per_9_rank": 20,
"whip_value": 1.1271,
"whip_rank": null,
"war_value": 2.29,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0002,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0002,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.91,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0653,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9954,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 5,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 112,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260918_NYY@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_NYY@ARI | home | Eduardo Rodriguez | Eduardo Rodriguez | True | 6.0 | 5.1 | -2 | 4 | 7 | 3 | 8/5 | 2/4 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.6242990654205607,
"WHIP": 1.216822429906542,
"IP": 178.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.944,
"recent_avg_IP": 5.8,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0851,
"sample_weight": 1.0,
"run_prevention_factor": 1.0072,
"strikeout_factor": 0.9611,
"walk_factor": 0.976,
"homer_factor": 0.9775,
"regression_flag": "neutral",
"k_percent": 18.3,
"bb_percent": 7.9,
"woba": 0.295,
"xwoba": 0.317,
"barrel_percent": 7.4,
"hard_hit_percent": 33.0,
"whiff_percent": 21.9
},
"espn_rank": {
"rank": 10,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "593958",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 7.0,
"R": 10.0,
"H": 25.0,
"BB": 11.0,
"SO": 29.0,
"HR": 2.0,
"BF": 123.0,
"Pitches": 501.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 2.0,
"H": 5.0,
"BB": 2.2,
"SO": 5.8,
"HR": 0.4,
"BF": 24.6,
"Pitches": 100.2
},
"rates": {
"ERA": 2.1724,
"WHIP": 1.2414,
"ER_per_IP": 0.24138,
"H_per_IP": 0.86207,
"BB_per_IP": 0.37931,
"SO_per_IP": 1.0,
"HR_per_IP": 0.06897
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.2,
"ER": 18.0,
"R": 23.0,
"H": 58.0,
"BB": 17.0,
"SO": 53.0,
"HR": 4.0,
"BF": 258.0,
"Pitches": 1017.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 2.3,
"H": 5.8,
"BB": 1.7,
"SO": 5.3,
"HR": 0.4,
"BF": 25.8,
"Pitches": 101.7
},
"rates": {
"ERA": 2.627,
"WHIP": 1.2162,
"ER_per_IP": 0.29189,
"H_per_IP": 0.94054,
"BB_per_IP": 0.27568,
"SO_per_IP": 0.85946,
"HR_per_IP": 0.06486
}
},
"season": {
"games": 30,
"totals": {
"IP": 178.1,
"ER": 52.0,
"R": 59.0,
"H": 159.0,
"BB": 58.0,
"SO": 135.0,
"HR": 16.0,
"BF": 736.0,
"Pitches": 2872.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7333,
"R": 1.9667,
"H": 5.3,
"BB": 1.9333,
"SO": 4.5,
"HR": 0.5333,
"BF": 24.5333,
"Pitches": 95.7333
},
"rates": {
"ERA": 2.6243,
"WHIP": 1.2168,
"ER_per_IP": 0.29159,
"H_per_IP": 0.89159,
"BB_per_IP": 0.32523,
"SO_per_IP": 0.75701,
"HR_per_IP": 0.08972
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.779,
"predicted_H": 5.326,
"predicted_BB": 1.986,
"predicted_SO": 5.327,
"predicted_HR": 0.485,
"predicted_ERA": 2.7268,
"predicted_WHIP": 1.2453
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.779,
"final": 2.2801,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.326,
"final": 6.4233,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.986,
"final": 1.9917,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.327,
"final": 4.7824,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.485,
"final": 0.6963,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7268,
"final": 2.7268,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2453,
"final": 1.2453,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 61.2,
"ER": 18,
"H": 58,
"BB": 17,
"SO": 53,
"HR": 4,
"ERA": 2.627027027027027,
"WHIP": 1.2162162162162162,
"K9": 7.735135135135135,
"HR9": 0.5837837837837837,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-13T00:00:00"
},
"recent_form_boost": 0.792892605481101,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "593958",
"player_name": "Eduardo Rodriguez",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 153,
"wins": 80,
"losses": 73,
"win_pct": 0.5229,
"runs_scored": 678.0,
"runs_allowed": 678.0,
"run_differential": 0.0,
"run_differential_per_game": 0.0,
"avg_runs_scored": 4.4314,
"avg_runs_allowed": 4.4314,
"offense_index": 0.9859,
"defense_index": 1.0143,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.3,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.0195
},
"opponent": {
"team": "NYY",
"games": 152,
"wins": 88,
"losses": 64,
"win_pct": 0.5789,
"runs_scored": 697.0,
"runs_allowed": 561.0,
"run_differential": 136.0,
"run_differential_per_game": 0.8947,
"avg_runs_scored": 4.5855,
"avg_runs_allowed": 3.6908,
"offense_index": 1.0202,
"defense_index": 1.2178,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.6,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.2465
},
"edges": {
"quality_edge": -0.227,
"offense_edge": -0.0141,
"opponent_offense_edge": 0.0202,
"defense_strength": 0.0143,
"opponent_defense_weakness": -0.2178,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9905,
"run_prevention": 1.0132,
"strikeout": 0.9916
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "593958",
"profile": {
"available": true,
"pitcher_id": "593958",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 707.0,
"k_percent": 18.3,
"bb_percent": 7.9,
"woba": 0.295,
"xwoba": 0.317,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 33.0,
"avg_best_speed": 76.0809,
"avg_hyper_speed": 93.2496,
"whiff_percent": 21.9,
"swing_percent": 48.3
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1273,
"command_and_miss": -0.3329,
"regression_edge": -0.6286,
"xwoba_edge": -0.1429,
"barrel_edge": -0.0222,
"hard_hit_edge": 0.7143,
"whiff_edge": -0.4429,
"bb_edge": 0.3,
"pitch_design_score": -0.0876
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "593958",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 99,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 88.29294230788352,
"release_spin_rate": 2173.5971235910574,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 88.29294230788352,
"release_spin_rate": 2173.5971235910574,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.2929,
"release_spin_rate": 2173.5971,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0876,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6258,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.0851,
"sample_weight": 1.0,
"run_prevention_factor": 1.0072,
"strikeout_factor": 0.9611,
"walk_factor": 0.976,
"homer_factor": 0.9775,
"woba_minus_xwoba": -0.022,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "593958",
"espn_id": 32675,
"player_name": "Eduardo Rodriguez",
"team": "ARI",
"role": "pitcher",
"espn_rank": 10,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 10,
"gp_value": 30.0,
"gp_rank": 240,
"gs_value": 30.0,
"gs_rank": 9,
"qs_value": 18.0,
"qs_rank": 7,
"era_value": 2.6242,
"era_rank": 7.0,
"w_value": 15.0,
"w_rank": 3,
"l_value": 6.0,
"l_rank": 116,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 178.1,
"ip_rank": 7,
"h_value": 159.0,
"h_rank": 15,
"er_value": 52.0,
"er_rank": 104,
"hr_value": 16.0,
"hr_rank": 93,
"bb_value": 58.0,
"bb_rank": 22,
"k_value": 135.0,
"k_rank": 53,
"k_per_9_value": 6.8130836,
"k_per_9_rank": 204,
"whip_value": 1.2168,
"whip_rank": 28.0,
"war_value": 5.12,
"war_rank": 9.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0072,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0072,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9775,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9611,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 29,
"Pitches": 114,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260918_NYY@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_OAK@CLE | away | Mason Barnett | Mason Barnett | True | 3.2 | 3.1 | -1 | 3 | 3 | 0 | 6/7 | 3/4 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 7.081967213114755,
"WHIP": 1.6229508196721312,
"IP": 40.2,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 4.0,
"recent_avg_IP": 4.0,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3201,
"sample_weight": 0.664,
"run_prevention_factor": 1.0272,
"strikeout_factor": 0.9837,
"walk_factor": 1.0518,
"homer_factor": 1.0493,
"regression_flag": "positive_pitcher_regression",
"k_percent": 20.5,
"bb_percent": 13.0,
"woba": 0.388,
"xwoba": 0.35,
"barrel_percent": 9.9,
"hard_hit_percent": 37.2,
"whiff_percent": 22.2
},
"espn_rank": {
"rank": 499,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.247,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6226,
"prior_weight": 0.3774
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686930",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 8.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.1,
"ER": 21.0,
"R": 22.0,
"H": 25.0,
"BB": 12.0,
"SO": 17.0,
"HR": 7.0,
"BF": 95.0,
"Pitches": 359.0
},
"per_game": {
"IP": 4.0,
"ER": 4.2,
"R": 4.4,
"H": 5.0,
"BB": 2.4,
"SO": 3.4,
"HR": 1.4,
"BF": 19.0,
"Pitches": 71.8
},
"rates": {
"ERA": 9.7759,
"WHIP": 1.9138,
"ER_per_IP": 1.08621,
"H_per_IP": 1.2931,
"BB_per_IP": 0.62069,
"SO_per_IP": 0.87931,
"HR_per_IP": 0.36207
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 26.0,
"ER": 30.0,
"R": 31.0,
"H": 35.0,
"BB": 17.0,
"SO": 19.0,
"HR": 11.0,
"BF": 128.0,
"Pitches": 493.0
},
"per_game": {
"IP": 2.2,
"ER": 3.0,
"R": 3.1,
"H": 3.5,
"BB": 1.7,
"SO": 1.9,
"HR": 1.1,
"BF": 12.8,
"Pitches": 49.3
},
"rates": {
"ERA": 10.3846,
"WHIP": 2.0,
"ER_per_IP": 1.15385,
"H_per_IP": 1.34615,
"BB_per_IP": 0.65385,
"SO_per_IP": 0.73077,
"HR_per_IP": 0.42308
}
},
"season": {
"games": 18,
"totals": {
"IP": 40.2,
"ER": 32.0,
"R": 33.0,
"H": 42.0,
"BB": 24.0,
"SO": 38.0,
"HR": 12.0,
"BF": 185.0,
"Pitches": 743.0
},
"per_game": {
"IP": 2.1,
"ER": 1.7778,
"R": 1.8333,
"H": 2.3333,
"BB": 1.3333,
"SO": 2.1111,
"HR": 0.6667,
"BF": 10.2778,
"Pitches": 41.2778
},
"rates": {
"ERA": 7.082,
"WHIP": 1.623,
"ER_per_IP": 0.78689,
"H_per_IP": 1.03279,
"BB_per_IP": 0.59016,
"SO_per_IP": 0.93443,
"HR_per_IP": 0.29508
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 4.234,
"predicted_H": 5.778,
"predicted_BB": 2.661,
"predicted_SO": 4.388,
"predicted_HR": 1.434,
"predicted_ERA": 7.6029,
"predicted_WHIP": 1.6839
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5095,
"form_weight": 0.4905,
"form_reliability": 0.6226,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.247,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6226,
"prior_weight": 0.3774
},
"applied_metrics": {
"predicted_IP": {
"model": 8.0,
"form": 5.0,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 4.234,
"final": 3.0959,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.778,
"final": 5.3816,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.661,
"final": 2.8337,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.388,
"final": 4.1903,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.434,
"final": 0.7034,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 7.6029,
"final": 7.6029,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6839,
"final": 1.6839,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 26.0,
"ER": 30,
"H": 35,
"BB": 17,
"SO": 19,
"HR": 11,
"ERA": 10.384615384615385,
"WHIP": 2.0,
"K9": 6.576923076923077,
"HR9": 3.8076923076923075,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-17T00:00:00"
},
"recent_form_boost": 1.427115203479417,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 8.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.247,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6226,
"prior_weight": 0.3774
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686930",
"player_name": "Mason Barnett",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 8.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 3.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 8.0,
"after": 3.2,
"delta": -4.8,
"percent_delta": -0.6,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 8.0,
"after": 3.2,
"delta": -4.8,
"percent_delta": -0.6,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 3.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 3.2,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 8.0,
"after": 3.2,
"delta": -4.8,
"percent_delta": -0.6,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 8.0,
"after": 3.2,
"delta": -4.8,
"percent_delta": -0.6,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 153,
"wins": 61,
"losses": 92,
"win_pct": 0.3987,
"runs_scored": 661.0,
"runs_allowed": 875.0,
"run_differential": -214.0,
"run_differential_per_game": -1.3987,
"avg_runs_scored": 4.3203,
"avg_runs_allowed": 5.719,
"offense_index": 0.9631,
"defense_index": 0.7843,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 5.8,
"run_differential": -28.0
},
"available": true,
"quality_score": -0.2926
},
"opponent": {
"team": "CLE",
"games": 153,
"wins": 78,
"losses": 75,
"win_pct": 0.5098,
"runs_scored": 631.0,
"runs_allowed": 638.0,
"run_differential": -7.0,
"run_differential_per_game": -0.0458,
"avg_runs_scored": 4.1242,
"avg_runs_allowed": 4.1699,
"offense_index": 0.9194,
"defense_index": 1.0757,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 4.6,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0377
},
"edges": {
"quality_edge": -0.3303,
"offense_edge": -0.0369,
"opponent_offense_edge": -0.0806,
"defense_strength": -0.2157,
"opponent_defense_weakness": -0.0757,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9835,
"run_prevention": 1.0252,
"strikeout": 0.9965
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686930",
"profile": {
"available": true,
"pitcher_id": "686930",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 166.0,
"k_percent": 20.5,
"bb_percent": 13.0,
"woba": 0.388,
"xwoba": 0.35,
"sweet_spot_percent": 32.2,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 37.2,
"avg_best_speed": 78.802,
"avg_hyper_speed": 94.0706,
"whiff_percent": 22.2,
"swing_percent": 43.6
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.849,
"command_and_miss": -0.4314,
"regression_edge": 1.0857,
"xwoba_edge": -1.0857,
"barrel_edge": -0.5778,
"hard_hit_edge": 0.1143,
"whiff_edge": -0.4,
"bb_edge": -0.975,
"pitch_design_score": -0.0372
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686930",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 60,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 60,
"pitch_usage": 0.0,
"release_speed": 89.19305959460229,
"release_spin_rate": 2392.050138915066,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 60,
"pitch_usage": 0.0,
"release_speed": 89.19305959460229,
"release_spin_rate": 2392.050138915066,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.1931,
"release_spin_rate": 2392.0501,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0372,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2657,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3201,
"sample_weight": 0.664,
"run_prevention_factor": 1.0272,
"strikeout_factor": 0.9837,
"walk_factor": 1.0518,
"homer_factor": 1.0493,
"woba_minus_xwoba": 0.038,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "686930",
"espn_id": 4620704,
"player_name": "Mason Barnett",
"team": "ATH",
"role": "pitcher",
"espn_rank": 499,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 499,
"gp_value": 18.0,
"gp_rank": 428,
"gs_value": 4.0,
"gs_rank": 239,
"qs_value": 0.0,
"qs_rank": 214,
"era_value": 7.0819,
"era_rank": null,
"w_value": 1.0,
"w_rank": 418,
"l_value": 4.0,
"l_rank": 196,
"sv_value": 2.0,
"sv_rank": 96,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 40.2,
"ip_rank": 371,
"h_value": 42.0,
"h_rank": 319,
"er_value": 32.0,
"er_rank": 183,
"hr_value": 12.0,
"hr_rank": 141,
"bb_value": 24.0,
"bb_rank": 242,
"k_value": 38.0,
"k_rank": 372,
"k_per_9_value": 8.409836,
"k_per_9_rank": 27,
"whip_value": 1.6229,
"whip_rank": null,
"war_value": 0.0,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 1.0181,
"adjusted": 5
},
"predicted_H": {
"original": 6.0,
"factor": 1.0181,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0344,
"adjusted": 3
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0327,
"adjusted": 2
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9892,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 79,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260918_OAK@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_OAK@CLE | home | Daniel Espino | Daniel Espino | True | 3.0 | 1.0 | -6 | 1 | 3 | 2 | 2/1 | 2/3 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.918918918918919,
"WHIP": 1.2162162162162162,
"IP": 12.1,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 2.0,
"recent_avg_IP": 2.0,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4523,
"sample_weight": 0.45,
"run_prevention_factor": 0.9616,
"strikeout_factor": 1.0759,
"walk_factor": 0.9874,
"homer_factor": 1.0074,
"regression_flag": "positive_pitcher_regression",
"k_percent": 40.4,
"bb_percent": 7.7,
"woba": 0.294,
"xwoba": 0.259,
"barrel_percent": 11.1,
"hard_hit_percent": 37.0,
"whiff_percent": 37.0
},
"espn_rank": {
"rank": 334,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.501,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3334,
"prior_weight": 0.6666
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682982",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.1,
"ER": 1.0,
"R": 1.0,
"H": 6.0,
"BB": 0.0,
"SO": 9.0,
"HR": 1.0,
"BF": 25.0,
"Pitches": 96.0
},
"per_game": {
"IP": 1.1,
"ER": 0.2,
"R": 0.2,
"H": 1.2,
"BB": 0.0,
"SO": 1.8,
"HR": 0.2,
"BF": 5.0,
"Pitches": 19.2
},
"rates": {
"ERA": 1.4211,
"WHIP": 0.9474,
"ER_per_IP": 0.15789,
"H_per_IP": 0.94737,
"BB_per_IP": 0.0,
"SO_per_IP": 1.42105,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 11.1,
"ER": 4.0,
"R": 4.0,
"H": 11.0,
"BB": 4.0,
"SO": 19.0,
"HR": 2.0,
"BF": 49.0,
"Pitches": 204.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4,
"R": 0.4,
"H": 1.1,
"BB": 0.4,
"SO": 1.9,
"HR": 0.2,
"BF": 4.9,
"Pitches": 20.4
},
"rates": {
"ERA": 3.1765,
"WHIP": 1.3235,
"ER_per_IP": 0.35294,
"H_per_IP": 0.97059,
"BB_per_IP": 0.35294,
"SO_per_IP": 1.67647,
"HR_per_IP": 0.17647
}
},
"season": {
"games": 11,
"totals": {
"IP": 12.1,
"ER": 4.0,
"R": 4.0,
"H": 11.0,
"BB": 4.0,
"SO": 21.0,
"HR": 2.0,
"BF": 52.0,
"Pitches": 216.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3636,
"R": 0.3636,
"H": 1.0,
"BB": 0.3636,
"SO": 1.9091,
"HR": 0.1818,
"BF": 4.7273,
"Pitches": 19.6364
},
"rates": {
"ERA": 2.9189,
"WHIP": 1.2162,
"ER_per_IP": 0.32432,
"H_per_IP": 0.89189,
"BB_per_IP": 0.32432,
"SO_per_IP": 1.7027,
"HR_per_IP": 0.16216
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.481,
"predicted_H": 3.376,
"predicted_BB": 1.091,
"predicted_SO": 4.008,
"predicted_HR": 0.537,
"predicted_ERA": 3.8151,
"predicted_WHIP": 1.2782
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6316,
"form_weight": 0.3684,
"form_reliability": 0.3334,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.501,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3334,
"prior_weight": 0.6666
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.481,
"final": 1.1772,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.376,
"final": 2.5069,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.091,
"final": 1.6652,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.008,
"final": 5.2662,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.537,
"final": 0.1978,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8151,
"final": 3.8151,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2782,
"final": 1.2782,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 11.1,
"ER": 4,
"H": 11,
"BB": 4,
"SO": 19,
"HR": 2,
"ERA": 3.176470588235294,
"WHIP": 1.3235294117647058,
"K9": 15.088235294117647,
"HR9": 1.588235294117647,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-14T00:00:00"
},
"recent_form_boost": 0.946690137839354,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.501,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3334,
"prior_weight": 0.6666
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682982",
"player_name": "Daniel Espino",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.0,
"delta": -1.6667,
"percent_delta": -0.3571,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.0,
"delta": -1.6667,
"percent_delta": -0.3571,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.0,
"delta": -1.6667,
"percent_delta": -0.3571,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.0,
"delta": -1.6667,
"percent_delta": -0.3571,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 153,
"wins": 78,
"losses": 75,
"win_pct": 0.5098,
"runs_scored": 631.0,
"runs_allowed": 638.0,
"run_differential": -7.0,
"run_differential_per_game": -0.0458,
"avg_runs_scored": 4.1242,
"avg_runs_allowed": 4.1699,
"offense_index": 0.9194,
"defense_index": 1.0757,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 4.6,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0377
},
"opponent": {
"team": "OAK",
"games": 153,
"wins": 61,
"losses": 92,
"win_pct": 0.3987,
"runs_scored": 661.0,
"runs_allowed": 875.0,
"run_differential": -214.0,
"run_differential_per_game": -1.3987,
"avg_runs_scored": 4.3203,
"avg_runs_allowed": 5.719,
"offense_index": 0.9631,
"defense_index": 0.7843,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 5.8,
"run_differential": -28.0
},
"available": true,
"quality_score": -0.2926
},
"edges": {
"quality_edge": 0.3303,
"offense_edge": -0.0806,
"opponent_offense_edge": -0.0369,
"defense_strength": 0.0757,
"opponent_defense_weakness": 0.2157,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.017,
"run_prevention": 0.97,
"strikeout": 1.0129
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682982",
"profile": {
"available": true,
"pitcher_id": "682982",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 50.0,
"k_percent": 40.4,
"bb_percent": 7.7,
"woba": 0.294,
"xwoba": 0.259,
"sweet_spot_percent": 29.6,
"barrel_batted_rate": 11.1,
"hard_hit_percent": 37.0,
"avg_best_speed": 72.3489,
"avg_hyper_speed": 93.2474,
"whiff_percent": 37.0,
"swing_percent": 50.0
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7431,
"command_and_miss": 1.795,
"regression_edge": 1.0,
"xwoba_edge": 1.5143,
"barrel_edge": -0.8444,
"hard_hit_edge": 0.1429,
"whiff_edge": 1.7143,
"bb_edge": 0.35,
"pitch_design_score": 0.2787
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682982",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 20,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 20,
"pitch_usage": 0.0,
"release_speed": 94.8346356611225,
"release_spin_rate": 2414.361973655,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 20,
"pitch_usage": 0.0,
"release_speed": 94.8346356611225,
"release_spin_rate": 2414.361973655,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.8346,
"release_spin_rate": 2414.362,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.2787,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.9909,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.4523,
"sample_weight": 0.45,
"run_prevention_factor": 0.9616,
"strikeout_factor": 1.0759,
"walk_factor": 0.9874,
"homer_factor": 1.0074,
"woba_minus_xwoba": 0.035,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "682982",
"espn_id": 42438,
"player_name": "Daniel Espino",
"team": "CLE",
"role": "pitcher",
"espn_rank": 334,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 334,
"gp_value": 11.0,
"gp_rank": 522,
"gs_value": 1.0,
"gs_rank": 302,
"qs_value": 0.0,
"qs_rank": 214,
"era_value": 2.9189,
"era_rank": null,
"w_value": 0.0,
"w_rank": 542,
"l_value": 0.0,
"l_rank": 584,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 12.1,
"ip_rank": 603,
"h_value": 11.0,
"h_rank": 627,
"er_value": 4.0,
"er_rank": 693,
"hr_value": 2.0,
"hr_rank": 537,
"bb_value": 4.0,
"bb_rank": 656,
"k_value": 21.0,
"k_rank": 482,
"k_per_9_value": 15.324324,
"k_per_9_rank": 21,
"whip_value": 1.2162,
"whip_rank": null,
"war_value": 0.22,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9827,
"adjusted": 0
},
"predicted_H": {
"original": 2.0,
"factor": 0.9827,
"adjusted": 2
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9943,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0033,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0342,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 13,
"Pitches": 64,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260918_OAK@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_PHI@NYM | away | Tim Mayza | Tim Mayza | True | 5.0 | 0.1 | -14 | 2 | 3 | 1 | 2/3 | 2/1 | 10/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0618556701030926,
"WHIP": 1.0515463917525771,
"IP": 64.2,
"games_started": null,
"games_pitched": 56,
"role_avg_IP": 1.867,
"recent_avg_IP": 1.867,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3563,
"sample_weight": 0.968,
"run_prevention_factor": 0.9697,
"strikeout_factor": 1.0072,
"walk_factor": 0.9458,
"homer_factor": 0.9911,
"regression_flag": "neutral",
"k_percent": 24.7,
"bb_percent": 6.3,
"woba": 0.273,
"xwoba": 0.278,
"barrel_percent": 6.3,
"hard_hit_percent": 44.6,
"whiff_percent": 23.6
},
"espn_rank": {
"rank": 111,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 64.2,
"season_ERA": 3.062,
"season_WHIP": 1.052,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.114,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.724,
"prior_weight": 0.276
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641835",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 56,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.1,
"ER": 0.0,
"R": 0.0,
"H": 3.0,
"BB": 1.0,
"SO": 5.0,
"HR": 0.0,
"BF": 21.0,
"Pitches": 74.0
},
"per_game": {
"IP": 1.1,
"ER": 0.0,
"R": 0.0,
"H": 0.6,
"BB": 0.2,
"SO": 1.0,
"HR": 0.0,
"BF": 4.2,
"Pitches": 14.8
},
"rates": {
"ERA": 0.0,
"WHIP": 0.6316,
"ER_per_IP": 0.0,
"H_per_IP": 0.47368,
"BB_per_IP": 0.15789,
"SO_per_IP": 0.78947,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 11.1,
"ER": 1.0,
"R": 1.0,
"H": 7.0,
"BB": 3.0,
"SO": 12.0,
"HR": 1.0,
"BF": 42.0,
"Pitches": 160.0
},
"per_game": {
"IP": 1.0,
"ER": 0.1,
"R": 0.1,
"H": 0.7,
"BB": 0.3,
"SO": 1.2,
"HR": 0.1,
"BF": 4.2,
"Pitches": 16.0
},
"rates": {
"ERA": 0.7941,
"WHIP": 0.8824,
"ER_per_IP": 0.08824,
"H_per_IP": 0.61765,
"BB_per_IP": 0.26471,
"SO_per_IP": 1.05882,
"HR_per_IP": 0.08824
}
},
"season": {
"games": 56,
"totals": {
"IP": 64.2,
"ER": 22.0,
"R": 24.0,
"H": 52.0,
"BB": 16.0,
"SO": 63.0,
"HR": 6.0,
"BF": 255.0,
"Pitches": 1013.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3929,
"R": 0.4286,
"H": 0.9286,
"BB": 0.2857,
"SO": 1.125,
"HR": 0.1071,
"BF": 4.5536,
"Pitches": 18.0893
},
"rates": {
"ERA": 3.0619,
"WHIP": 1.0515,
"ER_per_IP": 0.34021,
"H_per_IP": 0.80412,
"BB_per_IP": 0.24742,
"SO_per_IP": 0.97423,
"HR_per_IP": 0.09278
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.506,
"predicted_H": 1.67,
"predicted_BB": 0.617,
"predicted_SO": 2.217,
"predicted_HR": 0.183,
"predicted_ERA": 1.9019,
"predicted_WHIP": 0.9545
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4666,
"form_weight": 0.5334,
"form_reliability": 0.724,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.114,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.724,
"prior_weight": 0.276
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 0.506,
"final": 1.2031,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 1.67,
"final": 1.824,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 0.617,
"final": 1.2623,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 10.0,
"form": 2.217,
"final": 5.8486,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.183,
"final": 0.0976,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.9019,
"final": 1.9019,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9545,
"final": 0.9545,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 11.1,
"ER": 1,
"H": 7,
"BB": 3,
"SO": 12,
"HR": 1,
"ERA": 0.7941176470588235,
"WHIP": 0.8823529411764706,
"K9": 9.529411764705882,
"HR9": 0.7941176470588235,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-17T00:00:00"
},
"recent_form_boost": 0.8423806383418013,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 10.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.114,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.724,
"prior_weight": 0.276
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 10,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 10,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641835",
"player_name": "Tim Mayza",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 10.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 153,
"wins": 85,
"losses": 68,
"win_pct": 0.5556,
"runs_scored": 684.0,
"runs_allowed": 650.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2222,
"avg_runs_scored": 4.4706,
"avg_runs_allowed": 4.2484,
"offense_index": 0.9966,
"defense_index": 1.0559,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.3,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0745
},
"opponent": {
"team": "NYM",
"games": 153,
"wins": 69,
"losses": 84,
"win_pct": 0.451,
"runs_scored": 650.0,
"runs_allowed": 696.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3007,
"avg_runs_scored": 4.2484,
"avg_runs_allowed": 4.549,
"offense_index": 0.9471,
"defense_index": 0.9861,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 5.2,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.1135
},
"edges": {
"quality_edge": 0.188,
"offense_edge": -0.0034,
"opponent_offense_edge": -0.0529,
"defense_strength": 0.0559,
"opponent_defense_weakness": 0.0139,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0113,
"run_prevention": 0.9765,
"strikeout": 1.0099
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641835",
"profile": {
"available": true,
"pitcher_id": "641835",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 242.0,
"k_percent": 24.7,
"bb_percent": 6.3,
"woba": 0.273,
"xwoba": 0.278,
"sweet_spot_percent": 32.6,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 44.6,
"avg_best_speed": 77.5832,
"avg_hyper_speed": 94.6719,
"whiff_percent": 23.6,
"swing_percent": 45.1
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5514,
"command_and_miss": 0.2436,
"regression_edge": -0.1429,
"xwoba_edge": 0.9714,
"barrel_edge": 0.2222,
"hard_hit_edge": -0.9429,
"whiff_edge": -0.2,
"bb_edge": 0.7,
"pitch_design_score": 0.1284
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641835",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 19,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 92.15028756257126,
"release_spin_rate": 2090.280196018808,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 92.15028756257126,
"release_spin_rate": 2090.280196018808,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.1503,
"release_spin_rate": 2090.2802,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1284,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.9172,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.3563,
"sample_weight": 0.968,
"run_prevention_factor": 0.9697,
"strikeout_factor": 1.0072,
"walk_factor": 0.9458,
"homer_factor": 0.9911,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641835",
"espn_id": 35773,
"player_name": "Tim Mayza",
"team": "PHI",
"role": "pitcher",
"espn_rank": 111,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 111,
"gp_value": 55.0,
"gp_rank": 87,
"gs_value": 5.0,
"gs_rank": 224,
"qs_value": 0.0,
"qs_rank": 214,
"era_value": 3.0777,
"era_rank": null,
"w_value": 3.0,
"w_rank": 251,
"l_value": 3.0,
"l_rank": 250,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 1.0,
"hld_rank": 276,
"ip_value": 64.1,
"ip_rank": 216,
"h_value": 52.0,
"h_rank": 247,
"er_value": 22.0,
"er_rank": 300,
"hr_value": 6.0,
"hr_rank": 279,
"bb_value": 15.0,
"bb_rank": 396,
"k_value": 63.0,
"k_rank": 226,
"k_per_9_value": 8.813472,
"k_per_9_rank": 28,
"whip_value": 1.0414,
"whip_rank": null,
"war_value": 1.66,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9707,
"adjusted": 0
},
"predicted_H": {
"original": 3.0,
"factor": 0.9707,
"adjusted": 3
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9475,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9914,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.007,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 10,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -14 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260918_PHI@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_PHI@NYM | home | Zac Thornton | Zac Thornton | True | 5.2 | 6.0 | 1 | 1 | 2 | 1 | 3/5 | 2/1 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4363636363636365,
"WHIP": 1.1590909090909092,
"IP": 73.1,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 5.641,
"recent_avg_IP": 5.6,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3305,
"sample_weight": 0.988,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9469,
"walk_factor": 0.9289,
"homer_factor": 1.0652,
"regression_flag": "neutral",
"k_percent": 18.8,
"bb_percent": 5.5,
"woba": 0.313,
"xwoba": 0.329,
"barrel_percent": 9.1,
"hard_hit_percent": 41.4,
"whiff_percent": 18.8
},
"espn_rank": {
"rank": 121,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "804267",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 14.0,
"R": 14.0,
"H": 32.0,
"BB": 3.0,
"SO": 26.0,
"HR": 8.0,
"BF": 116.0,
"Pitches": 448.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.8,
"H": 6.4,
"BB": 0.6,
"SO": 5.2,
"HR": 1.6,
"BF": 23.2,
"Pitches": 89.6
},
"rates": {
"ERA": 4.5,
"WHIP": 1.25,
"ER_per_IP": 0.5,
"H_per_IP": 1.14286,
"BB_per_IP": 0.10714,
"SO_per_IP": 0.92857,
"HR_per_IP": 0.28571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 23.0,
"R": 24.0,
"H": 58.0,
"BB": 11.0,
"SO": 40.0,
"HR": 11.0,
"BF": 226.0,
"Pitches": 847.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3,
"R": 2.4,
"H": 5.8,
"BB": 1.1,
"SO": 4.0,
"HR": 1.1,
"BF": 22.6,
"Pitches": 84.7
},
"rates": {
"ERA": 3.6964,
"WHIP": 1.2321,
"ER_per_IP": 0.41071,
"H_per_IP": 1.03571,
"BB_per_IP": 0.19643,
"SO_per_IP": 0.71429,
"HR_per_IP": 0.19643
}
},
"season": {
"games": 13,
"totals": {
"IP": 73.1,
"ER": 28.0,
"R": 29.0,
"H": 69.0,
"BB": 16.0,
"SO": 55.0,
"HR": 12.0,
"BF": 293.0,
"Pitches": 1087.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1538,
"R": 2.2308,
"H": 5.3077,
"BB": 1.2308,
"SO": 4.2308,
"HR": 0.9231,
"BF": 22.5385,
"Pitches": 83.6154
},
"rates": {
"ERA": 3.4364,
"WHIP": 1.1591,
"ER_per_IP": 0.38182,
"H_per_IP": 0.94091,
"BB_per_IP": 0.21818,
"SO_per_IP": 0.75,
"HR_per_IP": 0.16364
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.618,
"predicted_H": 5.896,
"predicted_BB": 1.246,
"predicted_SO": 4.822,
"predicted_HR": 1.174,
"predicted_ERA": 4.1586,
"predicted_WHIP": 1.2604
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4674,
"form_weight": 0.5326,
"form_reliability": 0.7222,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.618,
"final": 1.8618,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.896,
"final": 4.5425,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.246,
"final": 1.5984,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.822,
"final": 4.4378,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.174,
"final": 0.6253,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1586,
"final": 4.1586,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2604,
"final": 1.2604,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 23,
"H": 58,
"BB": 11,
"SO": 40,
"HR": 11,
"ERA": 3.696428571428571,
"WHIP": 1.232142857142857,
"K9": 6.428571428571428,
"HR9": 1.7678571428571426,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.9135984452494408,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "804267",
"player_name": "Zac Thornton",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 153,
"wins": 69,
"losses": 84,
"win_pct": 0.451,
"runs_scored": 650.0,
"runs_allowed": 696.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3007,
"avg_runs_scored": 4.2484,
"avg_runs_allowed": 4.549,
"offense_index": 0.9471,
"defense_index": 0.9861,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 5.2,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.1135
},
"opponent": {
"team": "PHI",
"games": 153,
"wins": 85,
"losses": 68,
"win_pct": 0.5556,
"runs_scored": 684.0,
"runs_allowed": 650.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2222,
"avg_runs_scored": 4.4706,
"avg_runs_allowed": 4.2484,
"offense_index": 0.9966,
"defense_index": 1.0559,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.3,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0745
},
"edges": {
"quality_edge": -0.188,
"offense_edge": -0.0529,
"opponent_offense_edge": -0.0034,
"defense_strength": -0.0139,
"opponent_defense_weakness": -0.0559,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9922,
"run_prevention": 1.0102,
"strikeout": 0.9946
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "804267",
"profile": {
"available": true,
"pitcher_id": "804267",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 247.0,
"k_percent": 18.8,
"bb_percent": 5.5,
"woba": 0.313,
"xwoba": 0.329,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 41.4,
"avg_best_speed": 78.3629,
"avg_hyper_speed": 94.3711,
"whiff_percent": 18.8,
"swing_percent": 52.4
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3398,
"command_and_miss": -0.3357,
"regression_edge": -0.4571,
"xwoba_edge": -0.4857,
"barrel_edge": -0.4,
"hard_hit_edge": -0.4857,
"whiff_edge": -0.8857,
"bb_edge": 0.9,
"pitch_design_score": -0.14
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "804267",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 87.35815004037315,
"release_spin_rate": 2356.122948121168,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 87.35815004037315,
"release_spin_rate": 2356.122948121168,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.3582,
"release_spin_rate": 2356.1229,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.14,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9997,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3305,
"sample_weight": 0.988,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9469,
"walk_factor": 0.9289,
"homer_factor": 1.0652,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "804267",
"espn_id": 5129576,
"player_name": "Zac Thornton",
"team": "NYM",
"role": "pitcher",
"espn_rank": 121,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 121,
"gp_value": 13.0,
"gp_rank": 496,
"gs_value": 13.0,
"gs_rank": 157,
"qs_value": 7.0,
"qs_rank": 84,
"era_value": 3.4363,
"era_rank": null,
"w_value": 4.0,
"w_rank": 200,
"l_value": 5.0,
"l_rank": 146,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 73.1,
"ip_rank": 185,
"h_value": 69.0,
"h_rank": 177,
"er_value": 28.0,
"er_rank": 224,
"hr_value": 12.0,
"hr_rank": 141,
"bb_value": 16.0,
"bb_rank": 371,
"k_value": 55.0,
"k_rank": 276,
"k_per_9_value": 6.7499995,
"k_per_9_rank": 40,
"whip_value": 1.159,
"whip_rank": null,
"war_value": 1.56,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0278,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0278,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9298,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0644,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9475,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260918_PHI@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_SEA@COL | away | Bryan Woo | Bryan Woo | True | 6.0 | 5.1 | -2 | 3 | 3 | 0 | 5/10 | 3/1 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8809034907597533,
"WHIP": 1.0472279260780286,
"IP": 162.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.798,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2462,
"sample_weight": 1.0,
"run_prevention_factor": 0.9791,
"strikeout_factor": 1.0143,
"walk_factor": 0.924,
"homer_factor": 1.0013,
"regression_flag": "neutral",
"k_percent": 24.8,
"bb_percent": 5.3,
"woba": 0.276,
"xwoba": 0.291,
"barrel_percent": 7.1,
"hard_hit_percent": 42.0,
"whiff_percent": 24.7
},
"espn_rank": {
"rank": 83,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693433",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 9.0,
"R": 11.0,
"H": 17.0,
"BB": 7.0,
"SO": 31.0,
"HR": 5.0,
"BF": 116.0,
"Pitches": 432.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 2.2,
"H": 3.4,
"BB": 1.4,
"SO": 6.2,
"HR": 1.0,
"BF": 23.2,
"Pitches": 86.4
},
"rates": {
"ERA": 2.7,
"WHIP": 0.8,
"ER_per_IP": 0.3,
"H_per_IP": 0.56667,
"BB_per_IP": 0.23333,
"SO_per_IP": 1.03333,
"HR_per_IP": 0.16667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 21.0,
"R": 24.0,
"H": 43.0,
"BB": 15.0,
"SO": 61.0,
"HR": 8.0,
"BF": 233.0,
"Pitches": 899.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1,
"R": 2.4,
"H": 4.3,
"BB": 1.5,
"SO": 6.1,
"HR": 0.8,
"BF": 23.3,
"Pitches": 89.9
},
"rates": {
"ERA": 3.2586,
"WHIP": 1.0,
"ER_per_IP": 0.36207,
"H_per_IP": 0.74138,
"BB_per_IP": 0.25862,
"SO_per_IP": 1.05172,
"HR_per_IP": 0.13793
}
},
"season": {
"games": 28,
"totals": {
"IP": 162.1,
"ER": 70.0,
"R": 76.0,
"H": 135.0,
"BB": 35.0,
"SO": 163.0,
"HR": 18.0,
"BF": 657.0,
"Pitches": 2475.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.7143,
"H": 4.8214,
"BB": 1.25,
"SO": 5.8214,
"HR": 0.6429,
"BF": 23.4643,
"Pitches": 88.3929
},
"rates": {
"ERA": 3.8809,
"WHIP": 1.0472,
"ER_per_IP": 0.43121,
"H_per_IP": 0.83162,
"BB_per_IP": 0.21561,
"SO_per_IP": 1.00411,
"HR_per_IP": 0.11088
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.174,
"predicted_H": 4.241,
"predicted_BB": 1.515,
"predicted_SO": 5.957,
"predicted_HR": 0.852,
"predicted_ERA": 3.3474,
"predicted_WHIP": 0.9848
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.174,
"final": 2.93,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.241,
"final": 4.5552,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.515,
"final": 2.1298,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.957,
"final": 5.1468,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.852,
"final": 0.9133,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3474,
"final": 3.3474,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9848,
"final": 0.9848,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.0,
"ER": 21,
"H": 43,
"BB": 15,
"SO": 61,
"HR": 8,
"ERA": 3.2586206896551726,
"WHIP": 1.0,
"K9": 9.46551724137931,
"HR9": 1.2413793103448276,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.858541487121362,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693433",
"player_name": "Bryan Woo",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 153,
"wins": 71,
"losses": 82,
"win_pct": 0.4641,
"runs_scored": 624.0,
"runs_allowed": 680.0,
"run_differential": -56.0,
"run_differential_per_game": -0.366,
"avg_runs_scored": 4.0784,
"avg_runs_allowed": 4.4444,
"offense_index": 0.9102,
"defense_index": 1.0082,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.0,
"run_differential": 17.0
},
"available": true,
"quality_score": -0.0754
},
"opponent": {
"team": "COL",
"games": 153,
"wins": 56,
"losses": 97,
"win_pct": 0.366,
"runs_scored": 717.0,
"runs_allowed": 894.0,
"run_differential": -177.0,
"run_differential_per_game": -1.1569,
"avg_runs_scored": 4.6863,
"avg_runs_allowed": 5.8431,
"offense_index": 1.0459,
"defense_index": 0.7668,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 1,
"losses": 9,
"win_pct": 0.1,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 7.5,
"run_differential": -37.0
},
"available": true,
"quality_score": -0.3959
},
"edges": {
"quality_edge": 0.3205,
"offense_edge": -0.0898,
"opponent_offense_edge": 0.0459,
"defense_strength": 0.0082,
"opponent_defense_weakness": 0.2332,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0112,
"run_prevention": 0.9905,
"strikeout": 1.0059
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693433",
"profile": {
"available": true,
"pitcher_id": "693433",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 631.0,
"k_percent": 24.8,
"bb_percent": 5.3,
"woba": 0.276,
"xwoba": 0.291,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 42.0,
"avg_best_speed": 78.5564,
"avg_hyper_speed": 94.2311,
"whiff_percent": 24.7,
"swing_percent": 53.3
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3276,
"command_and_miss": 0.355,
"regression_edge": -0.4286,
"xwoba_edge": 0.6,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.5714,
"whiff_edge": -0.0429,
"bb_edge": 0.95,
"pitch_design_score": 0.166
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693433",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 92.82167145261941,
"release_spin_rate": 2266.129276719887,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 92.82167145261941,
"release_spin_rate": 2266.129276719887,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.8217,
"release_spin_rate": 2266.1293,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.166,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1857,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.2462,
"sample_weight": 1.0,
"run_prevention_factor": 0.9791,
"strikeout_factor": 1.0143,
"walk_factor": 0.924,
"homer_factor": 1.0013,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693433",
"espn_id": 4629089,
"player_name": "Bryan Woo",
"team": "SEA",
"role": "pitcher",
"espn_rank": 83,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 83,
"gp_value": 28.0,
"gp_rank": 292,
"gs_value": 28.0,
"gs_rank": 40,
"qs_value": 16.0,
"qs_rank": 17,
"era_value": 3.8809,
"era_rank": 32.0,
"w_value": 12.0,
"w_rank": 19,
"l_value": 9.0,
"l_rank": 36,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 162.1,
"ip_rank": 31,
"h_value": 135.0,
"h_rank": 56,
"er_value": 70.0,
"er_rank": 37,
"hr_value": 18.0,
"hr_rank": 68,
"bb_value": 35.0,
"bb_rank": 130,
"k_value": 163.0,
"k_rank": 27,
"k_per_9_value": 9.036961,
"k_per_9_rank": 23,
"whip_value": 1.0472,
"whip_rank": 8.0,
"war_value": 1.95,
"war_rank": 31.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9791,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9791,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.924,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0013,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0143,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 115,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260918_SEA@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_SEA@COL | home | Gabriel Hughes | Gabriel Hughes | True | 4.0 | 4.2 | 2 | 6 | 3 | -3 | 7/5 | 2/1 | 2/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.370786516853932,
"WHIP": 1.449438202247191,
"IP": 59.1,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 4.694,
"recent_avg_IP": 4.333,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.098,
"sample_weight": 0.984,
"run_prevention_factor": 0.9917,
"strikeout_factor": 0.9539,
"walk_factor": 0.9921,
"homer_factor": 0.9111,
"regression_flag": "positive_pitcher_regression",
"k_percent": 19.0,
"bb_percent": 8.7,
"woba": 0.335,
"xwoba": 0.3,
"barrel_percent": 5.4,
"hard_hit_percent": 29.9,
"whiff_percent": 19.8
},
"espn_rank": {
"rank": 534,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687312",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 14.0,
"R": 15.0,
"H": 24.0,
"BB": 10.0,
"SO": 17.0,
"HR": 3.0,
"BF": 99.0,
"Pitches": 408.0
},
"per_game": {
"IP": 4.1,
"ER": 2.8,
"R": 3.0,
"H": 4.8,
"BB": 2.0,
"SO": 3.4,
"HR": 0.6,
"BF": 19.8,
"Pitches": 81.6
},
"rates": {
"ERA": 5.8154,
"WHIP": 1.5692,
"ER_per_IP": 0.64615,
"H_per_IP": 1.10769,
"BB_per_IP": 0.46154,
"SO_per_IP": 0.78462,
"HR_per_IP": 0.13846
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 37.0,
"R": 38.0,
"H": 52.0,
"BB": 18.0,
"SO": 36.0,
"HR": 6.0,
"BF": 207.0,
"Pitches": 818.0
},
"per_game": {
"IP": 4.2,
"ER": 3.7,
"R": 3.8,
"H": 5.2,
"BB": 1.8,
"SO": 3.6,
"HR": 0.6,
"BF": 20.7,
"Pitches": 81.8
},
"rates": {
"ERA": 7.4,
"WHIP": 1.5556,
"ER_per_IP": 0.82222,
"H_per_IP": 1.15556,
"BB_per_IP": 0.4,
"SO_per_IP": 0.8,
"HR_per_IP": 0.13333
}
},
"season": {
"games": 13,
"totals": {
"IP": 59.1,
"ER": 42.0,
"R": 43.0,
"H": 63.0,
"BB": 23.0,
"SO": 50.0,
"HR": 6.0,
"BF": 263.0,
"Pitches": 1047.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2308,
"R": 3.3077,
"H": 4.8462,
"BB": 1.7692,
"SO": 3.8462,
"HR": 0.4615,
"BF": 20.2308,
"Pitches": 80.5385
},
"rates": {
"ERA": 6.3708,
"WHIP": 1.4494,
"ER_per_IP": 0.70787,
"H_per_IP": 1.0618,
"BB_per_IP": 0.38764,
"SO_per_IP": 0.8427,
"HR_per_IP": 0.10112
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.95,
"predicted_H": 4.809,
"predicted_BB": 1.835,
"predicted_SO": 3.748,
"predicted_HR": 0.6,
"predicted_ERA": 5.9461,
"predicted_WHIP": 1.4878
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4674,
"form_weight": 0.5326,
"form_reliability": 0.7222,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 7.0,
"form": 2.95,
"final": 4.8429,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.809,
"final": 4.8983,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.835,
"final": 1.9121,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.748,
"final": 2.4637,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.6,
"final": 0.7869,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.9461,
"final": 5.9461,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4878,
"final": 1.4878,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.0,
"ER": 37,
"H": 52,
"BB": 18,
"SO": 36,
"HR": 6,
"ERA": 7.4,
"WHIP": 1.5555555555555556,
"K9": 7.2,
"HR9": 1.2,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-13T00:00:00"
},
"recent_form_boost": 1.338335548424044,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 7.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 7,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 1,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687312",
"player_name": "Gabriel Hughes",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 7.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 7.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 7.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 7.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 153,
"wins": 56,
"losses": 97,
"win_pct": 0.366,
"runs_scored": 717.0,
"runs_allowed": 894.0,
"run_differential": -177.0,
"run_differential_per_game": -1.1569,
"avg_runs_scored": 4.6863,
"avg_runs_allowed": 5.8431,
"offense_index": 1.0459,
"defense_index": 0.7668,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 1,
"losses": 9,
"win_pct": 0.1,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 7.5,
"run_differential": -37.0
},
"available": true,
"quality_score": -0.3959
},
"opponent": {
"team": "SEA",
"games": 153,
"wins": 71,
"losses": 82,
"win_pct": 0.4641,
"runs_scored": 624.0,
"runs_allowed": 680.0,
"run_differential": -56.0,
"run_differential_per_game": -0.366,
"avg_runs_scored": 4.0784,
"avg_runs_allowed": 4.4444,
"offense_index": 0.9102,
"defense_index": 1.0082,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.0,
"run_differential": 17.0
},
"available": true,
"quality_score": -0.0754
},
"edges": {
"quality_edge": -0.3205,
"offense_edge": 0.0459,
"opponent_offense_edge": -0.0898,
"defense_strength": -0.2332,
"opponent_defense_weakness": -0.0082,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9838,
"run_prevention": 1.025,
"strikeout": 0.9976
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687312",
"profile": {
"available": true,
"pitcher_id": "687312",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 246.0,
"k_percent": 19.0,
"bb_percent": 8.7,
"woba": 0.335,
"xwoba": 0.3,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 5.4,
"hard_hit_percent": 29.9,
"avg_best_speed": 77.1069,
"avg_hyper_speed": 92.7219,
"whiff_percent": 19.8,
"swing_percent": 47.7
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2044,
"command_and_miss": -0.4329,
"regression_edge": 1.0,
"xwoba_edge": 0.3429,
"barrel_edge": 0.4222,
"hard_hit_edge": 1.1571,
"whiff_edge": -0.7429,
"bb_edge": 0.1,
"pitch_design_score": -0.0292
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687312",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 89.33569831526704,
"release_spin_rate": 2163.3561875606615,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 89.33569831526704,
"release_spin_rate": 2163.3561875606615,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.3357,
"release_spin_rate": 2163.3562,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0292,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2087,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.098,
"sample_weight": 0.984,
"run_prevention_factor": 0.9917,
"strikeout_factor": 0.9539,
"walk_factor": 0.9921,
"homer_factor": 0.9111,
"woba_minus_xwoba": 0.035,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "687312",
"espn_id": 4634930,
"player_name": "Gabriel Hughes",
"team": "COL",
"role": "pitcher",
"espn_rank": 534,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 534,
"gp_value": 13.0,
"gp_rank": 496,
"gs_value": 12.0,
"gs_rank": 160,
"qs_value": 1.0,
"qs_rank": 179,
"era_value": 6.3707,
"era_rank": null,
"w_value": 0.0,
"w_rank": 542,
"l_value": 8.0,
"l_rank": 68,
"sv_value": 1.0,
"sv_rank": 141,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 59.1,
"ip_rank": 255,
"h_value": 63.0,
"h_rank": 193,
"er_value": 42.0,
"er_rank": 149,
"hr_value": 6.0,
"hr_rank": 279,
"bb_value": 23.0,
"bb_rank": 256,
"k_value": 50.0,
"k_rank": 302,
"k_per_9_value": 7.5842695,
"k_per_9_rank": 31,
"whip_value": 1.4494,
"whip_rank": null,
"war_value": -0.03,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9918,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9918,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9922,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9125,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9546,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 7,
"predicted_R": 7,
"predicted_ER": 7,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
}
],
"provenance": {
"prediction": "output/games/20260918_SEA@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_SF@LAD | away | Cesar Perdomo | Cesar Perdomo | True | 5.0 | 4.2 | -1 | 4 | 2 | -2 | 5/6 | 3/3 | 4/1 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 3.681818181818182,
"WHIP": 1.3636363636363638,
"IP": 14.2,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 5.333,
"recent_avg_IP": 5.333,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1124,
"sample_weight": 0.45,
"run_prevention_factor": 1.0096,
"strikeout_factor": 0.9884,
"walk_factor": 0.9775,
"homer_factor": 1.0223,
"regression_flag": "neutral",
"k_percent": 18.0,
"bb_percent": 6.6,
"woba": 0.329,
"xwoba": 0.321,
"barrel_percent": 6.5,
"hard_hit_percent": 47.8,
"whiff_percent": 24.5
},
"espn_rank": {
"rank": 343,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702885",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 14.2,
"ER": 6.0,
"R": 6.0,
"H": 16.0,
"BB": 4.0,
"SO": 11.0,
"HR": 2.0,
"BF": 61.0,
"Pitches": 215.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.0,
"H": 5.3333,
"BB": 1.3333,
"SO": 3.6667,
"HR": 0.6667,
"BF": 20.3333,
"Pitches": 71.6667
},
"rates": {
"ERA": 3.6818,
"WHIP": 1.3636,
"ER_per_IP": 0.40909,
"H_per_IP": 1.09091,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.75,
"HR_per_IP": 0.13636
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 14.2,
"ER": 6.0,
"R": 6.0,
"H": 16.0,
"BB": 4.0,
"SO": 11.0,
"HR": 2.0,
"BF": 61.0,
"Pitches": 215.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.0,
"H": 5.3333,
"BB": 1.3333,
"SO": 3.6667,
"HR": 0.6667,
"BF": 20.3333,
"Pitches": 71.6667
},
"rates": {
"ERA": 3.6818,
"WHIP": 1.3636,
"ER_per_IP": 0.40909,
"H_per_IP": 1.09091,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.75,
"HR_per_IP": 0.13636
}
},
"season": {
"games": 3,
"totals": {
"IP": 14.2,
"ER": 6.0,
"R": 6.0,
"H": 16.0,
"BB": 4.0,
"SO": 11.0,
"HR": 2.0,
"BF": 61.0,
"Pitches": 215.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.0,
"H": 5.3333,
"BB": 1.3333,
"SO": 3.6667,
"HR": 0.6667,
"BF": 20.3333,
"Pitches": 71.6667
},
"rates": {
"ERA": 3.6818,
"WHIP": 1.3636,
"ER_per_IP": 0.40909,
"H_per_IP": 1.09091,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.75,
"HR_per_IP": 0.13636
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.349,
"predicted_H": 5.098,
"predicted_BB": 1.68,
"predicted_SO": 4.335,
"predicted_HR": 0.717,
"predicted_ERA": 4.2278,
"predicted_WHIP": 1.3557
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6141,
"form_weight": 0.3859,
"form_reliability": 0.375,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.349,
"final": 3.3628,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.098,
"final": 5.0378,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.68,
"final": 2.4906,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.335,
"final": 4.1293,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.717,
"final": 0.2767,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2278,
"final": 4.2278,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3557,
"final": 1.3557,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 14.2,
"ER": 6,
"H": 16,
"BB": 4,
"SO": 11,
"HR": 2,
"ERA": 3.6818181818181817,
"WHIP": 1.3636363636363635,
"K9": 6.749999999999999,
"HR9": 1.227272727272727,
"games_pitched": 3,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 3,
"error_prone": false
},
"games_count": 3,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.958998016655201,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702885",
"player_name": "Cesar Perdomo",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 153,
"wins": 64,
"losses": 89,
"win_pct": 0.4183,
"runs_scored": 649.0,
"runs_allowed": 719.0,
"run_differential": -70.0,
"run_differential_per_game": -0.4575,
"avg_runs_scored": 4.2418,
"avg_runs_allowed": 4.6993,
"offense_index": 0.9437,
"defense_index": 0.9565,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.5,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.1254
},
"opponent": {
"team": "LAD",
"games": 153,
"wins": 93,
"losses": 60,
"win_pct": 0.6078,
"runs_scored": 759.0,
"runs_allowed": 580.0,
"run_differential": 179.0,
"run_differential_per_game": 1.1699,
"avg_runs_scored": 4.9608,
"avg_runs_allowed": 3.7908,
"offense_index": 1.1037,
"defense_index": 1.1857,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 2.7,
"run_differential": 27.0
},
"available": true,
"quality_score": 0.3048
},
"edges": {
"quality_edge": -0.4302,
"offense_edge": -0.0563,
"opponent_offense_edge": 0.1037,
"defense_strength": -0.0435,
"opponent_defense_weakness": -0.1857,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9773,
"run_prevention": 1.0425,
"strikeout": 0.9788
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702885",
"profile": {
"available": true,
"pitcher_id": "702885",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 35.0,
"k_percent": 18.0,
"bb_percent": 6.6,
"woba": 0.329,
"xwoba": 0.321,
"sweet_spot_percent": 37.0,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 47.8,
"avg_best_speed": 83.0646,
"avg_hyper_speed": 95.1813,
"whiff_percent": 24.5,
"swing_percent": 51.2
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4114,
"command_and_miss": -0.1571,
"regression_edge": 0.2286,
"xwoba_edge": -0.2571,
"barrel_edge": 0.1778,
"hard_hit_edge": -1.4,
"whiff_edge": -0.0714,
"bb_edge": 0.625,
"pitch_design_score": -0.0179
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702885",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 70,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.53713128375571,
"release_spin_rate": 2077.531262982967,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.53713128375571,
"release_spin_rate": 2077.531262982967,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.5371,
"release_spin_rate": 2077.5313,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0179,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1281,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1124,
"sample_weight": 0.45,
"run_prevention_factor": 1.0096,
"strikeout_factor": 0.9884,
"walk_factor": 0.9775,
"homer_factor": 1.0223,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "702885",
"espn_id": 5271881,
"player_name": "Cesar Perdomo",
"team": "SF",
"role": "pitcher",
"espn_rank": 343,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 343,
"gp_value": 3.0,
"gp_rank": 720,
"gs_value": 2.0,
"gs_rank": 274,
"qs_value": 1.0,
"qs_rank": 179,
"era_value": 3.6818,
"era_rank": null,
"w_value": 0.0,
"w_rank": 542,
"l_value": 1.0,
"l_rank": 435,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 14.2,
"ip_rank": 577,
"h_value": 16.0,
"h_rank": 571,
"er_value": 6.0,
"er_rank": 640,
"hr_value": 2.0,
"hr_rank": 537,
"bb_value": 4.0,
"bb_rank": 656,
"k_value": 11.0,
"k_rank": 590,
"k_per_9_value": 6.75,
"k_per_9_rank": 27,
"whip_value": 1.3636,
"whip_rank": null,
"war_value": 0.21,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0043,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0043,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9899,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.01,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9948,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 3 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260918_SF@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_SF@LAD | home | Tyler Glasnow | Tyler Glasnow | True | 5.2 | 6.0 | 1 | 2 | 2 | 0 | 2/3 | 1/2 | 6/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.502702702702703,
"WHIP": 0.972972972972973,
"IP": 61.2,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 5.606,
"recent_avg_IP": 4.6,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4218,
"sample_weight": 0.872,
"run_prevention_factor": 0.9641,
"strikeout_factor": 1.0767,
"walk_factor": 0.993,
"homer_factor": 1.0115,
"regression_flag": "neutral",
"k_percent": 32.0,
"bb_percent": 8.7,
"woba": 0.252,
"xwoba": 0.274,
"barrel_percent": 9.2,
"hard_hit_percent": 40.1,
"whiff_percent": 30.4
},
"espn_rank": {
"rank": 129,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 61.2,
"season_ERA": 3.503,
"season_WHIP": 0.973,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607192",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 13.0,
"R": 13.0,
"H": 20.0,
"BB": 8.0,
"SO": 30.0,
"HR": 2.0,
"BF": 97.0,
"Pitches": 380.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 4.0,
"BB": 1.6,
"SO": 6.0,
"HR": 0.4,
"BF": 19.4,
"Pitches": 76.0
},
"rates": {
"ERA": 5.087,
"WHIP": 1.2174,
"ER_per_IP": 0.56522,
"H_per_IP": 0.86957,
"BB_per_IP": 0.34783,
"SO_per_IP": 1.30435,
"HR_per_IP": 0.08696
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.2,
"ER": 22.0,
"R": 22.0,
"H": 35.0,
"BB": 20.0,
"SO": 71.0,
"HR": 6.0,
"BF": 218.0,
"Pitches": 870.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.2,
"H": 3.5,
"BB": 2.0,
"SO": 7.1,
"HR": 0.6,
"BF": 21.8,
"Pitches": 87.0
},
"rates": {
"ERA": 3.5569,
"WHIP": 0.988,
"ER_per_IP": 0.39521,
"H_per_IP": 0.62874,
"BB_per_IP": 0.35928,
"SO_per_IP": 1.27545,
"HR_per_IP": 0.10778
}
},
"season": {
"games": 11,
"totals": {
"IP": 61.2,
"ER": 24.0,
"R": 24.0,
"H": 39.0,
"BB": 21.0,
"SO": 77.0,
"HR": 6.0,
"BF": 241.0,
"Pitches": 960.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1818,
"R": 2.1818,
"H": 3.5455,
"BB": 1.9091,
"SO": 7.0,
"HR": 0.5455,
"BF": 21.9091,
"Pitches": 87.2727
},
"rates": {
"ERA": 3.5027,
"WHIP": 0.973,
"ER_per_IP": 0.38919,
"H_per_IP": 0.63243,
"BB_per_IP": 0.34054,
"SO_per_IP": 1.24865,
"HR_per_IP": 0.0973
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.631,
"predicted_H": 4.438,
"predicted_BB": 1.954,
"predicted_SO": 6.417,
"predicted_HR": 0.614,
"predicted_ERA": 4.3348,
"predicted_WHIP": 1.1703
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.482,
"form_weight": 0.518,
"form_reliability": 0.6875,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.631,
"final": 2.3268,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.438,
"final": 3.2628,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.954,
"final": 1.4941,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.417,
"final": 5.2519,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.614,
"final": 0.8001,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3348,
"final": 4.3348,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1703,
"final": 1.1703,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.2,
"ER": 22,
"H": 35,
"BB": 20,
"SO": 71,
"HR": 6,
"ERA": 3.55688622754491,
"WHIP": 0.9880239520958083,
"K9": 11.479041916167663,
"HR9": 0.9700598802395208,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.8917969589363528,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607192",
"player_name": "Tyler Glasnow",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.2,
"delta": -0.8,
"percent_delta": -0.1333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.2,
"delta": -0.8,
"percent_delta": -0.1333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.2,
"delta": -0.8,
"percent_delta": -0.1333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.2,
"delta": -0.8,
"percent_delta": -0.1333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 153,
"wins": 93,
"losses": 60,
"win_pct": 0.6078,
"runs_scored": 759.0,
"runs_allowed": 580.0,
"run_differential": 179.0,
"run_differential_per_game": 1.1699,
"avg_runs_scored": 4.9608,
"avg_runs_allowed": 3.7908,
"offense_index": 1.1037,
"defense_index": 1.1857,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 2.7,
"run_differential": 27.0
},
"available": true,
"quality_score": 0.3048
},
"opponent": {
"team": "SF",
"games": 153,
"wins": 64,
"losses": 89,
"win_pct": 0.4183,
"runs_scored": 649.0,
"runs_allowed": 719.0,
"run_differential": -70.0,
"run_differential_per_game": -0.4575,
"avg_runs_scored": 4.2418,
"avg_runs_allowed": 4.6993,
"offense_index": 0.9437,
"defense_index": 0.9565,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.5,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.1254
},
"edges": {
"quality_edge": 0.4302,
"offense_edge": 0.1037,
"opponent_offense_edge": -0.0563,
"defense_strength": 0.1857,
"opponent_defense_weakness": 0.0435,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.025,
"run_prevention": 0.9509,
"strikeout": 1.0174
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607192",
"profile": {
"available": true,
"pitcher_id": "607192",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 218.0,
"k_percent": 32.0,
"bb_percent": 8.7,
"woba": 0.252,
"xwoba": 0.274,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 40.1,
"avg_best_speed": 81.2617,
"avg_hyper_speed": 94.0906,
"whiff_percent": 30.4,
"swing_percent": 42.8
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5352,
"command_and_miss": 0.9329,
"regression_edge": -0.6286,
"xwoba_edge": 1.0857,
"barrel_edge": -0.4222,
"hard_hit_edge": -0.3,
"whiff_edge": 0.7714,
"bb_edge": 0.1,
"pitch_design_score": 0.0533
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607192",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 77,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 77,
"pitch_usage": 0.0,
"release_speed": 90.80878136555482,
"release_spin_rate": 2625.695301616364,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 77,
"pitch_usage": 0.0,
"release_speed": 90.80878136555482,
"release_spin_rate": 2625.695301616364,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.8088,
"release_spin_rate": 2625.6953,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0533,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3806,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.4218,
"sample_weight": 0.872,
"run_prevention_factor": 0.9641,
"strikeout_factor": 1.0767,
"walk_factor": 0.993,
"homer_factor": 1.0115,
"woba_minus_xwoba": -0.022,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607192",
"espn_id": 33190,
"player_name": "Tyler Glasnow",
"team": "LAD",
"role": "pitcher",
"espn_rank": 129,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 129,
"gp_value": 11.0,
"gp_rank": 522,
"gs_value": 11.0,
"gs_rank": 166,
"qs_value": 5.0,
"qs_rank": 112,
"era_value": 3.5027,
"era_rank": null,
"w_value": 4.0,
"w_rank": 200,
"l_value": 1.0,
"l_rank": 435,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 61.2,
"ip_rank": 239,
"h_value": 39.0,
"h_rank": 344,
"er_value": 24.0,
"er_rank": 271,
"hr_value": 6.0,
"hr_rank": 279,
"bb_value": 21.0,
"bb_rank": 298,
"k_value": 77.0,
"k_rank": 166,
"k_per_9_value": 11.237838,
"k_per_9_rank": 18,
"whip_value": 0.9729,
"whip_rank": null,
"war_value": 1.42,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9687,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9687,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9939,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.01,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0669,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 87,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260918_SF@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_TOR@TEX | away | Dylan Cease | Dylan Cease | True | 6.0 | 2.2 | -10 | 3 | 1 | -2 | 6/3 | 2/6 | 9/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.380761523046092,
"WHIP": 1.064128256513026,
"IP": 166.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.94,
"recent_avg_IP": 5.733,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.9238,
"sample_weight": 1.0,
"run_prevention_factor": 0.9215,
"strikeout_factor": 1.124,
"walk_factor": 1.034,
"homer_factor": 0.8868,
"regression_flag": "neutral",
"k_percent": 35.3,
"bb_percent": 10.8,
"woba": 0.249,
"xwoba": 0.26,
"barrel_percent": 5.4,
"hard_hit_percent": 31.9,
"whiff_percent": 33.4
},
"espn_rank": {
"rank": 4,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 166.1,
"season_ERA": 2.381,
"season_WHIP": 1.064,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656302",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 7.0,
"R": 8.0,
"H": 18.0,
"BB": 13.0,
"SO": 35.0,
"HR": 2.0,
"BF": 115.0,
"Pitches": 474.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 1.6,
"H": 3.6,
"BB": 2.6,
"SO": 7.0,
"HR": 0.4,
"BF": 23.0,
"Pitches": 94.8
},
"rates": {
"ERA": 2.1977,
"WHIP": 1.0814,
"ER_per_IP": 0.24419,
"H_per_IP": 0.62791,
"BB_per_IP": 0.45349,
"SO_per_IP": 1.22093,
"HR_per_IP": 0.06977
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.0,
"ER": 13.0,
"R": 14.0,
"H": 31.0,
"BB": 27.0,
"SO": 81.0,
"HR": 4.0,
"BF": 241.0,
"Pitches": 1002.0
},
"per_game": {
"IP": 6.1,
"ER": 1.3,
"R": 1.4,
"H": 3.1,
"BB": 2.7,
"SO": 8.1,
"HR": 0.4,
"BF": 24.1,
"Pitches": 100.2
},
"rates": {
"ERA": 1.8871,
"WHIP": 0.9355,
"ER_per_IP": 0.20968,
"H_per_IP": 0.5,
"BB_per_IP": 0.43548,
"SO_per_IP": 1.30645,
"HR_per_IP": 0.06452
}
},
"season": {
"games": 28,
"totals": {
"IP": 166.1,
"ER": 44.0,
"R": 50.0,
"H": 105.0,
"BB": 72.0,
"SO": 236.0,
"HR": 11.0,
"BF": 668.0,
"Pitches": 2821.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5714,
"R": 1.7857,
"H": 3.75,
"BB": 2.5714,
"SO": 8.4286,
"HR": 0.3929,
"BF": 23.8571,
"Pitches": 100.75
},
"rates": {
"ERA": 2.3808,
"WHIP": 1.0641,
"ER_per_IP": 0.26453,
"H_per_IP": 0.63126,
"BB_per_IP": 0.43287,
"SO_per_IP": 1.41884,
"HR_per_IP": 0.06613
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.655,
"predicted_H": 3.842,
"predicted_BB": 2.583,
"predicted_SO": 7.387,
"predicted_HR": 0.474,
"predicted_ERA": 2.4937,
"predicted_WHIP": 1.076
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.655,
"final": 1.7978,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.842,
"final": 4.7354,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.583,
"final": 2.3416,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 7.387,
"final": 7.2268,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.474,
"final": 0.6918,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4937,
"final": 2.4937,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.076,
"final": 1.076,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.0,
"ER": 13,
"H": 31,
"BB": 27,
"SO": 81,
"HR": 4,
"ERA": 1.8870967741935485,
"WHIP": 0.9354838709677419,
"K9": 11.758064516129032,
"HR9": 0.5806451612903226,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-13T00:00:00"
},
"recent_form_boost": 0.7026321434061229,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656302",
"player_name": "Dylan Cease",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 9.0,
"delta": 2.0,
"percent_delta": 0.2857,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 9.0,
"delta": 2.0,
"percent_delta": 0.2857,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 9.0,
"delta": 2.0,
"percent_delta": 0.2857,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 9.0,
"delta": 2.0,
"percent_delta": 0.2857,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 153,
"wins": 76,
"losses": 77,
"win_pct": 0.4967,
"runs_scored": 619.0,
"runs_allowed": 656.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2418,
"avg_runs_scored": 4.0458,
"avg_runs_allowed": 4.2876,
"offense_index": 0.9029,
"defense_index": 1.045,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.4,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0675
},
"opponent": {
"team": "TEX",
"games": 153,
"wins": 76,
"losses": 77,
"win_pct": 0.4967,
"runs_scored": 638.0,
"runs_allowed": 677.0,
"run_differential": -39.0,
"run_differential_per_game": -0.2549,
"avg_runs_scored": 4.1699,
"avg_runs_allowed": 4.4248,
"offense_index": 0.9306,
"defense_index": 1.0126,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.4,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.0009
},
"edges": {
"quality_edge": -0.0684,
"offense_edge": -0.0971,
"opponent_offense_edge": -0.0694,
"defense_strength": 0.045,
"opponent_defense_weakness": -0.0126,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0014,
"run_prevention": 0.9878,
"strikeout": 1.0035
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656302",
"profile": {
"available": true,
"pitcher_id": "656302",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 640.0,
"k_percent": 35.3,
"bb_percent": 10.8,
"woba": 0.249,
"xwoba": 0.26,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 5.4,
"hard_hit_percent": 31.9,
"avg_best_speed": 73.0052,
"avg_hyper_speed": 93.113,
"whiff_percent": 33.4,
"swing_percent": 46.1
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.1467,
"command_and_miss": 1.19,
"regression_edge": -0.3143,
"xwoba_edge": 1.4857,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.8714,
"whiff_edge": 1.2,
"bb_edge": -0.425,
"pitch_design_score": 0.046
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656302",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 90.67798012900272,
"release_spin_rate": 2480.007080965376,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 90.67798012900272,
"release_spin_rate": 2480.007080965376,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.678,
"release_spin_rate": 2480.0071,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.046,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3283,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.9238,
"sample_weight": 1.0,
"run_prevention_factor": 0.9215,
"strikeout_factor": 1.124,
"walk_factor": 1.034,
"homer_factor": 0.8868,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656302",
"espn_id": 34943,
"player_name": "Dylan Cease",
"team": "TOR",
"role": "pitcher",
"espn_rank": 4,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 4,
"gp_value": 28.0,
"gp_rank": 292,
"gs_value": 28.0,
"gs_rank": 40,
"qs_value": 15.0,
"qs_rank": 21,
"era_value": 2.3807,
"era_rank": 4.0,
"w_value": 11.0,
"w_rank": 26,
"l_value": 5.0,
"l_rank": 146,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 166.1,
"ip_rank": 22,
"h_value": 105.0,
"h_rank": 118,
"er_value": 44.0,
"er_rank": 138,
"hr_value": 11.0,
"hr_rank": 152,
"bb_value": 72.0,
"bb_rank": 6,
"k_value": 236.0,
"k_rank": 2,
"k_per_9_value": 12.769539,
"k_per_9_rank": 2,
"whip_value": 1.0641,
"whip_rank": 10.0,
"war_value": 6.04,
"war_rank": 4.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9215,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9215,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.034,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8868,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.124,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 114,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260918_TOR@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_TOR@TEX | home | Kumar Rocker | Kumar Rocker | True | 5.0 | 4.1 | -2 | 1 | 1 | 0 | 4/3 | 2/2 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.543269230769231,
"WHIP": 1.4278846153846154,
"IP": 138.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.84,
"recent_avg_IP": 4.533,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1541,
"sample_weight": 1.0,
"run_prevention_factor": 1.0131,
"strikeout_factor": 1.0051,
"walk_factor": 1.006,
"homer_factor": 1.0325,
"regression_flag": "neutral",
"k_percent": 21.7,
"bb_percent": 9.4,
"woba": 0.335,
"xwoba": 0.329,
"barrel_percent": 7.7,
"hard_hit_percent": 39.9,
"whiff_percent": 26.2
},
"espn_rank": {
"rank": 214,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "677958",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 12.0,
"R": 13.0,
"H": 26.0,
"BB": 10.0,
"SO": 26.0,
"HR": 4.0,
"BF": 103.0,
"Pitches": 409.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.6,
"H": 5.2,
"BB": 2.0,
"SO": 5.2,
"HR": 0.8,
"BF": 20.6,
"Pitches": 81.8
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.5882,
"ER_per_IP": 0.52941,
"H_per_IP": 1.14706,
"BB_per_IP": 0.44118,
"SO_per_IP": 1.14706,
"HR_per_IP": 0.17647
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.2,
"ER": 26.0,
"R": 27.0,
"H": 52.0,
"BB": 23.0,
"SO": 52.0,
"HR": 8.0,
"BF": 219.0,
"Pitches": 823.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.7,
"H": 5.2,
"BB": 2.3,
"SO": 5.2,
"HR": 0.8,
"BF": 21.9,
"Pitches": 82.3
},
"rates": {
"ERA": 4.8082,
"WHIP": 1.5411,
"ER_per_IP": 0.53425,
"H_per_IP": 1.06849,
"BB_per_IP": 0.4726,
"SO_per_IP": 1.06849,
"HR_per_IP": 0.16438
}
},
"season": {
"games": 28,
"totals": {
"IP": 138.2,
"ER": 70.0,
"R": 72.0,
"H": 141.0,
"BB": 57.0,
"SO": 132.0,
"HR": 20.0,
"BF": 609.0,
"Pitches": 2346.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5,
"R": 2.5714,
"H": 5.0357,
"BB": 2.0357,
"SO": 4.7143,
"HR": 0.7143,
"BF": 21.75,
"Pitches": 83.7857
},
"rates": {
"ERA": 4.5433,
"WHIP": 1.4279,
"ER_per_IP": 0.50481,
"H_per_IP": 1.01683,
"BB_per_IP": 0.41106,
"SO_per_IP": 0.95192,
"HR_per_IP": 0.14423
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.523,
"predicted_H": 5.188,
"predicted_BB": 2.099,
"predicted_SO": 5.106,
"predicted_HR": 0.786,
"predicted_ERA": 4.7083,
"predicted_WHIP": 1.5111
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.523,
"final": 1.8925,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.188,
"final": 4.6962,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.099,
"final": 2.058,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.106,
"final": 4.2341,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.786,
"final": 0.4606,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7083,
"final": 4.7083,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5111,
"final": 1.5111,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.2,
"ER": 26,
"H": 52,
"BB": 23,
"SO": 52,
"HR": 8,
"ERA": 4.808219178082192,
"WHIP": 1.541095890410959,
"K9": 9.616438356164384,
"HR9": 1.4794520547945207,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 1.0463987143296758,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677958",
"player_name": "Kumar Rocker",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 153,
"wins": 76,
"losses": 77,
"win_pct": 0.4967,
"runs_scored": 638.0,
"runs_allowed": 677.0,
"run_differential": -39.0,
"run_differential_per_game": -0.2549,
"avg_runs_scored": 4.1699,
"avg_runs_allowed": 4.4248,
"offense_index": 0.9306,
"defense_index": 1.0126,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.4,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.0009
},
"opponent": {
"team": "TOR",
"games": 153,
"wins": 76,
"losses": 77,
"win_pct": 0.4967,
"runs_scored": 619.0,
"runs_allowed": 656.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2418,
"avg_runs_scored": 4.0458,
"avg_runs_allowed": 4.2876,
"offense_index": 0.9029,
"defense_index": 1.045,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.4,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0675
},
"edges": {
"quality_edge": 0.0684,
"offense_edge": -0.0694,
"opponent_offense_edge": -0.0971,
"defense_strength": 0.0126,
"opponent_defense_weakness": -0.045,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.007,
"run_prevention": 0.9798,
"strikeout": 1.0098
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677958",
"profile": {
"available": true,
"pitcher_id": "677958",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 592.0,
"k_percent": 21.7,
"bb_percent": 9.4,
"woba": 0.335,
"xwoba": 0.329,
"sweet_spot_percent": 32.9,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 39.9,
"avg_best_speed": 77.9976,
"avg_hyper_speed": 94.3896,
"whiff_percent": 26.2,
"swing_percent": 47.9
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3125,
"command_and_miss": 0.0257,
"regression_edge": 0.1714,
"xwoba_edge": -0.4857,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.2714,
"whiff_edge": 0.1714,
"bb_edge": -0.075,
"pitch_design_score": -0.0368
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677958",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 89.2008955817396,
"release_spin_rate": 2137.9537949146843,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 89.2008955817396,
"release_spin_rate": 2137.9537949146843,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.2009,
"release_spin_rate": 2137.9538,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0368,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2626,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1541,
"sample_weight": 1.0,
"run_prevention_factor": 1.0131,
"strikeout_factor": 1.0051,
"walk_factor": 1.006,
"homer_factor": 1.0325,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677958",
"espn_id": 4414525,
"player_name": "Kumar Rocker",
"team": "TEX",
"role": "pitcher",
"espn_rank": 214,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 214,
"gp_value": 28.0,
"gp_rank": 292,
"gs_value": 25.0,
"gs_rank": 68,
"qs_value": 6.0,
"qs_rank": 94,
"era_value": 4.5432,
"era_rank": null,
"w_value": 5.0,
"w_rank": 157,
"l_value": 11.0,
"l_rank": 11,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 138.2,
"ip_rank": 69,
"h_value": 141.0,
"h_rank": 42,
"er_value": 70.0,
"er_rank": 37,
"hr_value": 20.0,
"hr_rank": 42,
"bb_value": 57.0,
"bb_rank": 26,
"k_value": 132.0,
"k_rank": 57,
"k_per_9_value": 8.567307,
"k_per_9_rank": 22,
"whip_value": 1.4278,
"whip_rank": null,
"war_value": 0.77,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0131,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0131,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.006,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0325,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0051,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260918_TOR@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_WAS@STL | away | Cade Cavalli | Cade Cavalli | True | 5.2 | 5.0 | -2 | 3 | 0 | -3 | 5/4 | 3/0 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.1153846153846154,
"WHIP": 1.1659919028340082,
"IP": 164.2,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 5.312,
"recent_avg_IP": 5.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.285,
"sample_weight": 1.0,
"run_prevention_factor": 0.9758,
"strikeout_factor": 1.0486,
"walk_factor": 0.958,
"homer_factor": 1.0011,
"regression_flag": "neutral",
"k_percent": 28.2,
"bb_percent": 7.0,
"woba": 0.295,
"xwoba": 0.298,
"barrel_percent": 7.3,
"hard_hit_percent": 40.3,
"whiff_percent": 27.3
},
"espn_rank": {
"rank": 23,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 164.2,
"season_ERA": 3.115,
"season_WHIP": 1.166,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676917",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 6.0,
"R": 6.0,
"H": 15.0,
"BB": 7.0,
"SO": 43.0,
"HR": 3.0,
"BF": 109.0,
"Pitches": 446.0
},
"per_game": {
"IP": 5.2,
"ER": 1.2,
"R": 1.2,
"H": 3.0,
"BB": 1.4,
"SO": 8.6,
"HR": 0.6,
"BF": 21.8,
"Pitches": 89.2
},
"rates": {
"ERA": 1.9286,
"WHIP": 0.7857,
"ER_per_IP": 0.21429,
"H_per_IP": 0.53571,
"BB_per_IP": 0.25,
"SO_per_IP": 1.53571,
"HR_per_IP": 0.10714
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 13.0,
"R": 15.0,
"H": 39.0,
"BB": 16.0,
"SO": 75.0,
"HR": 9.0,
"BF": 233.0,
"Pitches": 927.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.5,
"H": 3.9,
"BB": 1.6,
"SO": 7.5,
"HR": 0.9,
"BF": 23.3,
"Pitches": 92.7
},
"rates": {
"ERA": 1.95,
"WHIP": 0.9167,
"ER_per_IP": 0.21667,
"H_per_IP": 0.65,
"BB_per_IP": 0.26667,
"SO_per_IP": 1.25,
"HR_per_IP": 0.15
}
},
"season": {
"games": 31,
"totals": {
"IP": 164.2,
"ER": 57.0,
"R": 68.0,
"H": 144.0,
"BB": 48.0,
"SO": 194.0,
"HR": 18.0,
"BF": 687.0,
"Pitches": 2704.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8387,
"R": 2.1935,
"H": 4.6452,
"BB": 1.5484,
"SO": 6.2581,
"HR": 0.5806,
"BF": 22.1613,
"Pitches": 87.2258
},
"rates": {
"ERA": 3.1154,
"WHIP": 1.166,
"ER_per_IP": 0.34615,
"H_per_IP": 0.87449,
"BB_per_IP": 0.2915,
"SO_per_IP": 1.17814,
"HR_per_IP": 0.10931
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.589,
"predicted_H": 3.938,
"predicted_BB": 1.595,
"predicted_SO": 7.451,
"predicted_HR": 0.72,
"predicted_ERA": 2.5043,
"predicted_WHIP": 0.9692
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.589,
"final": 2.5743,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.938,
"final": 4.7807,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.595,
"final": 2.1692,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 7.451,
"final": 5.2233,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.72,
"final": 0.8344,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5043,
"final": 2.5043,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9692,
"final": 0.9692,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 13,
"H": 39,
"BB": 16,
"SO": 75,
"HR": 9,
"ERA": 1.95,
"WHIP": 0.9166666666666666,
"K9": 11.25,
"HR9": 1.35,
"games_pitched": 10,
"quality_starts": 9,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-11T00:00:00"
},
"recent_form_boost": 0.7092383262018218,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676917",
"player_name": "Cade Cavalli",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 153,
"wins": 71,
"losses": 82,
"win_pct": 0.4641,
"runs_scored": 778.0,
"runs_allowed": 775.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0196,
"avg_runs_scored": 5.085,
"avg_runs_allowed": 5.0654,
"offense_index": 1.1349,
"defense_index": 0.8846,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.9,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0631
},
"opponent": {
"team": "STL",
"games": 153,
"wins": 75,
"losses": 78,
"win_pct": 0.4902,
"runs_scored": 693.0,
"runs_allowed": 707.0,
"run_differential": -14.0,
"run_differential_per_game": -0.0915,
"avg_runs_scored": 4.5294,
"avg_runs_allowed": 4.6209,
"offense_index": 1.0109,
"defense_index": 0.9697,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.0546
},
"edges": {
"quality_edge": -0.0085,
"offense_edge": 0.1349,
"opponent_offense_edge": 0.0109,
"defense_strength": -0.1154,
"opponent_defense_weakness": 0.0303,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9958,
"run_prevention": 1.0137,
"strikeout": 0.9989
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676917",
"profile": {
"available": true,
"pitcher_id": "676917",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 658.0,
"k_percent": 28.2,
"bb_percent": 7.0,
"woba": 0.295,
"xwoba": 0.298,
"sweet_spot_percent": 32.6,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 40.3,
"avg_best_speed": 78.3102,
"avg_hyper_speed": 94.2339,
"whiff_percent": 27.3,
"swing_percent": 47.5
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2228,
"command_and_miss": 0.6186,
"regression_edge": -0.0857,
"xwoba_edge": 0.4,
"barrel_edge": 0.0,
"hard_hit_edge": -0.3286,
"whiff_edge": 0.3286,
"bb_edge": 0.525,
"pitch_design_score": 0.099
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676917",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 91.62449347520261,
"release_spin_rate": 2238.588098625802,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 91.62449347520261,
"release_spin_rate": 2238.588098625802,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.6245,
"release_spin_rate": 2238.5881,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.099,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7069,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.285,
"sample_weight": 1.0,
"run_prevention_factor": 0.9758,
"strikeout_factor": 1.0486,
"walk_factor": 0.958,
"homer_factor": 1.0011,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676917",
"espn_id": 4308037,
"player_name": "Cade Cavalli",
"team": "WSH",
"role": "pitcher",
"espn_rank": 23,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 23,
"gp_value": 31.0,
"gp_rank": 220,
"gs_value": 31.0,
"gs_rank": 3,
"qs_value": 18.0,
"qs_rank": 7,
"era_value": 3.1153,
"era_rank": 14.0,
"w_value": 12.0,
"w_rank": 19,
"l_value": 5.0,
"l_rank": 146,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 164.2,
"ip_rank": 28,
"h_value": 144.0,
"h_rank": 35,
"er_value": 57.0,
"er_rank": 87,
"hr_value": 18.0,
"hr_rank": 68,
"bb_value": 48.0,
"bb_rank": 53,
"k_value": 194.0,
"k_rank": 8,
"k_per_9_value": 10.603238,
"k_per_9_rank": 7,
"whip_value": 1.1659,
"whip_rank": 20.0,
"war_value": 3.53,
"war_rank": 19.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9758,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9758,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.958,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0011,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0486,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 110,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260918_WAS@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260918 | 20260918_WAS@STL | home | Kyle Leahy | Kyle Leahy | True | 5.0 | 3.0 | -6 | 1 | 6 | 5 | 2/5 | 2/3 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3333333333333335,
"WHIP": 1.3111111111111111,
"IP": 135.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.821,
"recent_avg_IP": 3.533,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3503,
"sample_weight": 1.0,
"run_prevention_factor": 1.0298,
"strikeout_factor": 0.9891,
"walk_factor": 0.952,
"homer_factor": 1.1147,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 6.7,
"woba": 0.322,
"xwoba": 0.334,
"barrel_percent": 9.8,
"hard_hit_percent": 47.0,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 45,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 135.0,
"season_ERA": 3.333,
"season_WHIP": 1.311,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681517",
"report_date": "20260918",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 17.2,
"ER": 6.0,
"R": 6.0,
"H": 17.0,
"BB": 3.0,
"SO": 23.0,
"HR": 2.0,
"BF": 72.0,
"Pitches": 297.0
},
"per_game": {
"IP": 3.2,
"ER": 1.2,
"R": 1.2,
"H": 3.4,
"BB": 0.6,
"SO": 4.6,
"HR": 0.4,
"BF": 14.4,
"Pitches": 59.4
},
"rates": {
"ERA": 3.0566,
"WHIP": 1.1321,
"ER_per_IP": 0.33962,
"H_per_IP": 0.96226,
"BB_per_IP": 0.16981,
"SO_per_IP": 1.30189,
"HR_per_IP": 0.11321
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.2,
"ER": 13.0,
"R": 13.0,
"H": 46.0,
"BB": 5.0,
"SO": 53.0,
"HR": 5.0,
"BF": 182.0,
"Pitches": 755.0
},
"per_game": {
"IP": 4.2,
"ER": 1.3,
"R": 1.3,
"H": 4.6,
"BB": 0.5,
"SO": 5.3,
"HR": 0.5,
"BF": 18.2,
"Pitches": 75.5
},
"rates": {
"ERA": 2.562,
"WHIP": 1.1168,
"ER_per_IP": 0.28467,
"H_per_IP": 1.0073,
"BB_per_IP": 0.10949,
"SO_per_IP": 1.16058,
"HR_per_IP": 0.10949
}
},
"season": {
"games": 28,
"totals": {
"IP": 135.0,
"ER": 50.0,
"R": 50.0,
"H": 139.0,
"BB": 38.0,
"SO": 128.0,
"HR": 14.0,
"BF": 570.0,
"Pitches": 2230.0
},
"per_game": {
"IP": 4.2,
"ER": 1.7857,
"R": 1.7857,
"H": 4.9643,
"BB": 1.3571,
"SO": 4.5714,
"HR": 0.5,
"BF": 20.3571,
"Pitches": 79.6429
},
"rates": {
"ERA": 3.3333,
"WHIP": 1.3111,
"ER_per_IP": 0.37037,
"H_per_IP": 1.02963,
"BB_per_IP": 0.28148,
"SO_per_IP": 0.94815,
"HR_per_IP": 0.1037
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.534,
"predicted_H": 4.289,
"predicted_BB": 0.875,
"predicted_SO": 4.962,
"predicted_HR": 0.502,
"predicted_ERA": 3.1837,
"predicted_WHIP": 1.1911
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.534,
"final": 1.3129,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.289,
"final": 3.3413,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 0.875,
"final": 1.3408,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.962,
"final": 5.3917,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.502,
"final": 0.2942,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1837,
"final": 3.1837,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1911,
"final": 1.1911,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.2,
"ER": 13,
"H": 46,
"BB": 5,
"SO": 53,
"HR": 5,
"ERA": 2.562043795620438,
"WHIP": 1.1167883211678833,
"K9": 10.445255474452555,
"HR9": 0.9854014598540146,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
},
"recent_form_boost": 0.7830962945716514,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681517",
"player_name": "Kyle Leahy",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 153,
"wins": 75,
"losses": 78,
"win_pct": 0.4902,
"runs_scored": 693.0,
"runs_allowed": 707.0,
"run_differential": -14.0,
"run_differential_per_game": -0.0915,
"avg_runs_scored": 4.5294,
"avg_runs_allowed": 4.6209,
"offense_index": 1.0109,
"defense_index": 0.9697,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.0546
},
"opponent": {
"team": "WAS",
"games": 153,
"wins": 71,
"losses": 82,
"win_pct": 0.4641,
"runs_scored": 778.0,
"runs_allowed": 775.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0196,
"avg_runs_scored": 5.085,
"avg_runs_allowed": 5.0654,
"offense_index": 1.1349,
"defense_index": 0.8846,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.9,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0631
},
"edges": {
"quality_edge": 0.0085,
"offense_edge": 0.0109,
"opponent_offense_edge": 0.1349,
"defense_strength": -0.0303,
"opponent_defense_weakness": 0.1154,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.994,
"run_prevention": 1.0242,
"strikeout": 0.9895
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681517",
"profile": {
"available": true,
"pitcher_id": "681517",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 557.0,
"k_percent": 22.5,
"bb_percent": 6.7,
"woba": 0.322,
"xwoba": 0.334,
"sweet_spot_percent": 36.4,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 47.0,
"avg_best_speed": 80.6741,
"avg_hyper_speed": 95.3166,
"whiff_percent": 22.6,
"swing_percent": 46.4
},
"league_medians": {
"pa": 133.5,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.317,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.5993,
"avg_hyper_speed": 93.92,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5765,
"command_and_miss": 0.0321,
"regression_edge": -0.3429,
"xwoba_edge": -0.6286,
"barrel_edge": -0.5556,
"hard_hit_edge": -1.2857,
"whiff_edge": -0.3429,
"bb_edge": 0.6,
"pitch_design_score": -0.0191
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681517",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 68,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 89.51558619108417,
"release_spin_rate": 2180.8533636882466,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 89.51558619108417,
"release_spin_rate": 2180.8533636882466,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.5156,
"release_spin_rate": 2180.8534,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0191,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1367,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3503,
"sample_weight": 1.0,
"run_prevention_factor": 1.0298,
"strikeout_factor": 0.9891,
"walk_factor": 0.952,
"homer_factor": 1.1147,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "681517",
"espn_id": 5006093,
"player_name": "Kyle Leahy",
"team": "STL",
"role": "pitcher",
"espn_rank": 45,
"espn_total_ranked": 863,
"metrics": {
"espn_rank": 45,
"gp_value": 28.0,
"gp_rank": 292,
"gs_value": 28.0,
"gs_rank": 40,
"qs_value": 6.0,
"qs_rank": 94,
"era_value": 3.3333,
"era_rank": null,
"w_value": 10.0,
"w_rank": 35,
"l_value": 4.0,
"l_rank": 196,
"sv_value": 0.0,
"sv_rank": 254,
"hld_value": 0.0,
"hld_rank": 358,
"ip_value": 135.0,
"ip_rank": 80,
"h_value": 139.0,
"h_rank": 48,
"er_value": 50.0,
"er_rank": 111,
"hr_value": 14.0,
"hr_rank": 110,
"bb_value": 38.0,
"bb_rank": 111,
"k_value": 128.0,
"k_rank": 62,
"k_per_9_value": 8.533334,
"k_per_9_rank": 20,
"whip_value": 1.3111,
"whip_rank": null,
"war_value": 2.69,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0298,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0298,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1147,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9891,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260918_WAS@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |