| 20260911 | 20260911_BAL@TOR | away | Chris Bassitt | Chris Bassitt | True | 5.0 | 5.0 | 0 | 4 | 2 | -2 | 8/6 | 1/3 | 2/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.95703125,
"WHIP": 1.58203125,
"IP": 85.1,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.8,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3408,
"sample_weight": 1.0,
"run_prevention_factor": 1.029,
"strikeout_factor": 0.9446,
"walk_factor": 0.986,
"homer_factor": 0.974,
"regression_flag": "neutral",
"k_percent": 15.7,
"bb_percent": 8.5,
"woba": 0.355,
"xwoba": 0.343,
"barrel_percent": 4.9,
"hard_hit_percent": 35.4,
"whiff_percent": 21.6
},
"espn_rank": {
"rank": 287,
"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": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605135",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 14.0,
"R": 14.0,
"H": 32.0,
"BB": 11.0,
"SO": 24.0,
"HR": 3.0,
"BF": 127.0,
"Pitches": 472.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.8,
"H": 6.4,
"BB": 2.2,
"SO": 4.8,
"HR": 0.6,
"BF": 25.4,
"Pitches": 94.4
},
"rates": {
"ERA": 4.3448,
"WHIP": 1.4828,
"ER_per_IP": 0.48276,
"H_per_IP": 1.10345,
"BB_per_IP": 0.37931,
"SO_per_IP": 0.82759,
"HR_per_IP": 0.10345
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 26.0,
"R": 26.0,
"H": 58.0,
"BB": 16.0,
"SO": 41.0,
"HR": 6.0,
"BF": 232.0,
"Pitches": 842.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.6,
"H": 5.8,
"BB": 1.6,
"SO": 4.1,
"HR": 0.6,
"BF": 23.2,
"Pitches": 84.2
},
"rates": {
"ERA": 4.3875,
"WHIP": 1.3875,
"ER_per_IP": 0.4875,
"H_per_IP": 1.0875,
"BB_per_IP": 0.3,
"SO_per_IP": 0.76875,
"HR_per_IP": 0.1125
}
},
"season": {
"games": 17,
"totals": {
"IP": 85.1,
"ER": 47.0,
"R": 48.0,
"H": 102.0,
"BB": 33.0,
"SO": 61.0,
"HR": 9.0,
"BF": 388.0,
"Pitches": 1451.0
},
"per_game": {
"IP": 5.0,
"ER": 2.7647,
"R": 2.8235,
"H": 6.0,
"BB": 1.9412,
"SO": 3.5882,
"HR": 0.5294,
"BF": 22.8235,
"Pitches": 85.3529
},
"rates": {
"ERA": 4.957,
"WHIP": 1.582,
"ER_per_IP": 0.55078,
"H_per_IP": 1.19531,
"BB_per_IP": 0.38672,
"SO_per_IP": 0.71484,
"HR_per_IP": 0.10547
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.694,
"predicted_H": 5.848,
"predicted_BB": 1.927,
"predicted_SO": 4.426,
"predicted_HR": 0.626,
"predicted_ERA": 4.4922,
"predicted_WHIP": 1.4404
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.694,
"final": 3.2765,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.848,
"final": 6.8079,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.927,
"final": 1.5135,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.426,
"final": 3.3439,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.626,
"final": 1.6849,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4922,
"final": 4.4922,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4404,
"final": 1.4404,
"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.1,
"ER": 26,
"H": 58,
"BB": 16,
"SO": 41,
"HR": 6,
"ERA": 4.3875,
"WHIP": 1.3875000000000002,
"K9": 6.91875,
"HR9": 1.0125000000000002,
"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-05T00:00:00"
},
"recent_form_boost": 0.998700752425999,
"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": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 3.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
},
{
"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": 8,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 3
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605135",
"player_name": "Chris Bassitt",
"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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 3.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 3.0,
"predicted_IP": 5.0,
"predicted_SO": 2.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": 4.0,
"after": 4.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": 3.0,
"after": 3.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": 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.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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 3.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 2.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": 4.0,
"after": 4.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": 3.0,
"after": 3.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": 2.0,
"after": 2.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": 4.0,
"after": 4.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": 3.0,
"after": 3.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": 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.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": "BAL",
"games": 147,
"wins": 71,
"losses": 76,
"win_pct": 0.483,
"runs_scored": 661.0,
"runs_allowed": 688.0,
"run_differential": -27.0,
"run_differential_per_game": -0.1837,
"avg_runs_scored": 4.4966,
"avg_runs_allowed": 4.6803,
"offense_index": 1.0003,
"defense_index": 0.9605,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.1069
},
"opponent": {
"team": "TOR",
"games": 147,
"wins": 73,
"losses": 74,
"win_pct": 0.4966,
"runs_scored": 589.0,
"runs_allowed": 628.0,
"run_differential": -39.0,
"run_differential_per_game": -0.2653,
"avg_runs_scored": 4.0068,
"avg_runs_allowed": 4.2721,
"offense_index": 0.8913,
"defense_index": 1.0523,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 3.0,
"run_differential": 18.0
},
"available": true,
"quality_score": -0.0003
},
"edges": {
"quality_edge": -0.1066,
"offense_edge": 0.0003,
"opponent_offense_edge": -0.1087,
"defense_strength": -0.0395,
"opponent_defense_weakness": -0.0523,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9989,
"run_prevention": 0.9919,
"strikeout": 1.0055
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605135",
"profile": {
"available": true,
"pitcher_id": "605135",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 309.0,
"k_percent": 15.7,
"bb_percent": 8.5,
"woba": 0.355,
"xwoba": 0.343,
"sweet_spot_percent": 31.6,
"barrel_batted_rate": 4.9,
"hard_hit_percent": 35.4,
"avg_best_speed": 76.3788,
"avg_hyper_speed": 93.5126,
"whiff_percent": 21.6,
"swing_percent": 45.9
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3806,
"command_and_miss": -0.54,
"regression_edge": 0.3429,
"xwoba_edge": -0.9143,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.3571,
"whiff_edge": -0.4857,
"bb_edge": 0.175,
"pitch_design_score": -0.2688
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605135",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 80,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 85.07424126102447,
"release_spin_rate": 2163.0290515294796,
"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": 80,
"pitch_usage": 0.0,
"release_speed": 85.07424126102447,
"release_spin_rate": 2163.0290515294796,
"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.0742,
"release_spin_rate": 2163.0291,
"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.2688,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.9204,
"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.3408,
"sample_weight": 1.0,
"run_prevention_factor": 1.029,
"strikeout_factor": 0.9446,
"walk_factor": 0.986,
"homer_factor": 0.974,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605135",
"espn_id": 33148,
"player_name": "Chris Bassitt",
"team": "BAL",
"role": "pitcher",
"espn_rank": 287,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 287,
"gp_value": 17.0,
"gp_rank": 434,
"gs_value": 15.0,
"gs_rank": 136,
"qs_value": 3.0,
"qs_rank": 140,
"era_value": 4.957,
"era_rank": null,
"w_value": 6.0,
"w_rank": 104,
"l_value": 5.0,
"l_rank": 136,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 85.1,
"ip_rank": 153,
"h_value": 102.0,
"h_rank": 114,
"er_value": 47.0,
"er_rank": 121,
"hr_value": 9.0,
"hr_rank": 176,
"bb_value": 33.0,
"bb_rank": 138,
"k_value": 61.0,
"k_rank": 225,
"k_per_9_value": 6.4335938,
"k_per_9_rank": 39,
"whip_value": 1.582,
"whip_rank": null,
"war_value": 0.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.029,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.029,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.986,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.974,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9446,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 8,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 25,
"Pitches": 91,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260911_BAL@TOR.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"
}
} |
| 20260911 | 20260911_BAL@TOR | home | Max Scherzer | Max Scherzer | True | 5.0 | 5.0 | 0 | 3 | 6 | 3 | 4/7 | 0/1 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.031914893617022,
"WHIP": 1.3563829787234043,
"IP": 62.2,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 4.476,
"recent_avg_IP": 5.333,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1644,
"sample_weight": 0.804,
"run_prevention_factor": 1.014,
"strikeout_factor": 0.9564,
"walk_factor": 1.0113,
"homer_factor": 1.0153,
"regression_flag": "neutral",
"k_percent": 17.6,
"bb_percent": 9.9,
"woba": 0.334,
"xwoba": 0.317,
"barrel_percent": 9.2,
"hard_hit_percent": 33.8,
"whiff_percent": 19.9
},
"espn_rank": {
"rank": 710,
"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": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "453286",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 13.0,
"R": 13.0,
"H": 18.0,
"BB": 12.0,
"SO": 21.0,
"HR": 2.0,
"BF": 111.0,
"Pitches": 430.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.6,
"H": 3.6,
"BB": 2.4,
"SO": 4.2,
"HR": 0.4,
"BF": 22.2,
"Pitches": 86.0
},
"rates": {
"ERA": 4.3875,
"WHIP": 1.125,
"ER_per_IP": 0.4875,
"H_per_IP": 0.675,
"BB_per_IP": 0.45,
"SO_per_IP": 0.7875,
"HR_per_IP": 0.075
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.1,
"ER": 29.0,
"R": 29.0,
"H": 42.0,
"BB": 22.0,
"SO": 38.0,
"HR": 9.0,
"BF": 204.0,
"Pitches": 837.0
},
"per_game": {
"IP": 4.2,
"ER": 2.9,
"R": 2.9,
"H": 4.2,
"BB": 2.2,
"SO": 3.8,
"HR": 0.9,
"BF": 20.4,
"Pitches": 83.7
},
"rates": {
"ERA": 5.6331,
"WHIP": 1.3813,
"ER_per_IP": 0.6259,
"H_per_IP": 0.90647,
"BB_per_IP": 0.47482,
"SO_per_IP": 0.82014,
"HR_per_IP": 0.19424
}
},
"season": {
"games": 14,
"totals": {
"IP": 62.2,
"ER": 42.0,
"R": 42.0,
"H": 58.0,
"BB": 27.0,
"SO": 48.0,
"HR": 13.0,
"BF": 272.0,
"Pitches": 1098.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.0,
"H": 4.1429,
"BB": 1.9286,
"SO": 3.4286,
"HR": 0.9286,
"BF": 19.4286,
"Pitches": 78.4286
},
"rates": {
"ERA": 6.0319,
"WHIP": 1.3564,
"ER_per_IP": 0.67021,
"H_per_IP": 0.92553,
"BB_per_IP": 0.43085,
"SO_per_IP": 0.76596,
"HR_per_IP": 0.20745
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.73,
"predicted_H": 4.186,
"predicted_BB": 2.131,
"predicted_SO": 4.104,
"predicted_HR": 0.71,
"predicted_ERA": 4.9876,
"predicted_WHIP": 1.2824
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4612,
"form_weight": 0.5388,
"form_reliability": 0.7368,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.73,
"final": 2.3933,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.186,
"final": 2.7166,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.131,
"final": 1.1482,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.104,
"final": 4.056,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.71,
"final": 0.3825,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9876,
"final": 4.9876,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2824,
"final": 1.2824,
"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": 46.1,
"ER": 29,
"H": 42,
"BB": 22,
"SO": 38,
"HR": 9,
"ERA": 5.633093525179855,
"WHIP": 1.3812949640287766,
"K9": 7.3812949640287755,
"HR9": 1.7482014388489204,
"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-05T00:00:00"
},
"recent_form_boost": 1.138674898109452,
"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": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
}
},
{
"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": 4,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "453286",
"player_name": "Max Scherzer",
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 1.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": "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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.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": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"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": 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_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "worse",
"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": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.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": 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.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": 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": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"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": 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_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 147,
"wins": 73,
"losses": 74,
"win_pct": 0.4966,
"runs_scored": 589.0,
"runs_allowed": 628.0,
"run_differential": -39.0,
"run_differential_per_game": -0.2653,
"avg_runs_scored": 4.0068,
"avg_runs_allowed": 4.2721,
"offense_index": 0.8913,
"defense_index": 1.0523,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 3.0,
"run_differential": 18.0
},
"available": true,
"quality_score": -0.0003
},
"opponent": {
"team": "BAL",
"games": 147,
"wins": 71,
"losses": 76,
"win_pct": 0.483,
"runs_scored": 661.0,
"runs_allowed": 688.0,
"run_differential": -27.0,
"run_differential_per_game": -0.1837,
"avg_runs_scored": 4.4966,
"avg_runs_allowed": 4.6803,
"offense_index": 1.0003,
"defense_index": 0.9605,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.1069
},
"edges": {
"quality_edge": 0.1066,
"offense_edge": -0.1087,
"opponent_offense_edge": 0.0003,
"defense_strength": 0.0523,
"opponent_defense_weakness": 0.0395,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0058,
"run_prevention": 0.9895,
"strikeout": 1.0032
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "453286",
"profile": {
"available": true,
"pitcher_id": "453286",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 201.0,
"k_percent": 17.6,
"bb_percent": 9.9,
"woba": 0.334,
"xwoba": 0.317,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 33.8,
"avg_best_speed": 76.9401,
"avg_hyper_speed": 93.3815,
"whiff_percent": 19.9,
"swing_percent": 49.5
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1683,
"command_and_miss": -0.5729,
"regression_edge": 0.4857,
"xwoba_edge": -0.1714,
"barrel_edge": -0.4667,
"hard_hit_edge": 0.5857,
"whiff_edge": -0.7286,
"bb_edge": -0.175,
"pitch_design_score": -0.1233
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "453286",
"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": 87.67251054611137,
"release_spin_rate": 2262.3263033136295,
"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": 87.67251054611137,
"release_spin_rate": 2262.3263033136295,
"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.6725,
"release_spin_rate": 2262.3263,
"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.1233,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.881,
"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.1644,
"sample_weight": 0.804,
"run_prevention_factor": 1.014,
"strikeout_factor": 0.9564,
"walk_factor": 1.0113,
"homer_factor": 1.0153,
"woba_minus_xwoba": 0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "453286",
"espn_id": 28976,
"player_name": "Max Scherzer",
"team": "TOR",
"role": "pitcher",
"espn_rank": 710,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 710,
"gp_value": 14.0,
"gp_rank": 474,
"gs_value": 14.0,
"gs_rank": 145,
"qs_value": 4.0,
"qs_rank": 125,
"era_value": 6.0319,
"era_rank": null,
"w_value": 2.0,
"w_rank": 316,
"l_value": 7.0,
"l_rank": 84,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 62.2,
"ip_rank": 214,
"h_value": 58.0,
"h_rank": 199,
"er_value": 42.0,
"er_rank": 145,
"hr_value": 13.0,
"hr_rank": 124,
"bb_value": 27.0,
"bb_rank": 194,
"k_value": 48.0,
"k_rank": 304,
"k_per_9_value": 6.8936167,
"k_per_9_rank": 38,
"whip_value": 1.3563,
"whip_rank": null,
"war_value": -0.31,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0113,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0113,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0091,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0123,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9649,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 80,
"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/20260911_BAL@TOR.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"
}
} |
| 20260911 | 20260911_CHW@STL | away | Anthony Kay | Anthony Kay | True | 5.0 | 4.0 | -3 | 4 | 3 | -1 | 5/5 | 3/1 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.468085106382978,
"WHIP": 1.3617021276595744,
"IP": 141.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 4.963,
"recent_avg_IP": 5.0,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3338,
"sample_weight": 1.0,
"run_prevention_factor": 1.0284,
"strikeout_factor": 0.9686,
"walk_factor": 0.974,
"homer_factor": 1.0577,
"regression_flag": "neutral",
"k_percent": 18.3,
"bb_percent": 7.9,
"woba": 0.34,
"xwoba": 0.34,
"barrel_percent": 8.4,
"hard_hit_percent": 39.6,
"whiff_percent": 23.2
},
"espn_rank": {
"rank": 106,
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641743",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 19.0,
"R": 20.0,
"H": 29.0,
"BB": 7.0,
"SO": 22.0,
"HR": 5.0,
"BF": 114.0,
"Pitches": 450.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 4.0,
"H": 5.8,
"BB": 1.4,
"SO": 4.4,
"HR": 1.0,
"BF": 22.8,
"Pitches": 90.0
},
"rates": {
"ERA": 6.84,
"WHIP": 1.44,
"ER_per_IP": 0.76,
"H_per_IP": 1.16,
"BB_per_IP": 0.28,
"SO_per_IP": 0.88,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 28.0,
"R": 29.0,
"H": 54.0,
"BB": 15.0,
"SO": 45.0,
"HR": 8.0,
"BF": 230.0,
"Pitches": 881.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 2.9,
"H": 5.4,
"BB": 1.5,
"SO": 4.5,
"HR": 0.8,
"BF": 23.0,
"Pitches": 88.1
},
"rates": {
"ERA": 4.8774,
"WHIP": 1.3355,
"ER_per_IP": 0.54194,
"H_per_IP": 1.04516,
"BB_per_IP": 0.29032,
"SO_per_IP": 0.87097,
"HR_per_IP": 0.15484
}
},
"season": {
"games": 29,
"totals": {
"IP": 141.0,
"ER": 70.0,
"R": 75.0,
"H": 142.0,
"BB": 50.0,
"SO": 116.0,
"HR": 20.0,
"BF": 633.0,
"Pitches": 2516.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4138,
"R": 2.5862,
"H": 4.8966,
"BB": 1.7241,
"SO": 4.0,
"HR": 0.6897,
"BF": 21.8276,
"Pitches": 86.7586
},
"rates": {
"ERA": 4.4681,
"WHIP": 1.3617,
"ER_per_IP": 0.49645,
"H_per_IP": 1.00709,
"BB_per_IP": 0.35461,
"SO_per_IP": 0.8227,
"HR_per_IP": 0.14184
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.122,
"predicted_H": 5.467,
"predicted_BB": 1.576,
"predicted_SO": 4.469,
"predicted_HR": 0.861,
"predicted_ERA": 5.5092,
"predicted_WHIP": 1.3811
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.122,
"final": 3.4839,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.467,
"final": 5.2745,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.576,
"final": 2.1629,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.469,
"final": 4.6879,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.861,
"final": 0.9183,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5092,
"final": 5.5092,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3811,
"final": 1.3811,
"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": 28,
"H": 54,
"BB": 15,
"SO": 45,
"HR": 8,
"ERA": 4.877419354838709,
"WHIP": 1.335483870967742,
"K9": 7.838709677419354,
"HR9": 1.393548387096774,
"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-05T00:00:00"
},
"recent_form_boost": 1.0525162766195473,
"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": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641743",
"player_name": "Anthony Kay",
"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": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.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": 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.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": 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": 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": 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": "CHW",
"games": 146,
"wins": 75,
"losses": 71,
"win_pct": 0.5137,
"runs_scored": 685.0,
"runs_allowed": 646.0,
"run_differential": 39.0,
"run_differential_per_game": 0.2671,
"avg_runs_scored": 4.6918,
"avg_runs_allowed": 4.4247,
"offense_index": 1.0437,
"defense_index": 1.016,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.8,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0257
},
"opponent": {
"team": "STL",
"games": 147,
"wins": 72,
"losses": 75,
"win_pct": 0.4898,
"runs_scored": 668.0,
"runs_allowed": 680.0,
"run_differential": -12.0,
"run_differential_per_game": -0.0816,
"avg_runs_scored": 4.5442,
"avg_runs_allowed": 4.6259,
"offense_index": 1.0109,
"defense_index": 0.9718,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 6.2,
"avg_runs_allowed": 6.0,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.0537
},
"edges": {
"quality_edge": 0.028,
"offense_edge": 0.0437,
"opponent_offense_edge": 0.0109,
"defense_strength": 0.016,
"opponent_defense_weakness": 0.0282,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0012,
"run_prevention": 0.9987,
"strikeout": 1.0
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641743",
"profile": {
"available": true,
"pitcher_id": "641743",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 531.0,
"k_percent": 18.3,
"bb_percent": 7.9,
"woba": 0.34,
"xwoba": 0.34,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 39.6,
"avg_best_speed": 76.5589,
"avg_hyper_speed": 94.2815,
"whiff_percent": 23.2,
"swing_percent": 47.1
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4757,
"command_and_miss": -0.2629,
"regression_edge": 0.0,
"xwoba_edge": -0.8286,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.2429,
"whiff_edge": -0.2571,
"bb_edge": 0.325,
"pitch_design_score": 0.0112
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641743",
"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": 90.07512309635388,
"release_spin_rate": 2281.5022496307865,
"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": 90.07512309635388,
"release_spin_rate": 2281.5022496307865,
"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.0751,
"release_spin_rate": 2281.5022,
"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.0112,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.08,
"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.3338,
"sample_weight": 1.0,
"run_prevention_factor": 1.0284,
"strikeout_factor": 0.9686,
"walk_factor": 0.974,
"homer_factor": 1.0577,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641743",
"espn_id": 40947,
"player_name": "Anthony Kay",
"team": "CHW",
"role": "pitcher",
"espn_rank": 106,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 106,
"gp_value": 29.0,
"gp_rank": 237,
"gs_value": 27.0,
"gs_rank": 38,
"qs_value": 6.0,
"qs_rank": 92,
"era_value": 4.468,
"era_rank": null,
"w_value": 9.0,
"w_rank": 42,
"l_value": 8.0,
"l_rank": 60,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 141.0,
"ip_rank": 57,
"h_value": 142.0,
"h_rank": 30,
"er_value": 70.0,
"er_rank": 31,
"hr_value": 20.0,
"hr_rank": 38,
"bb_value": 50.0,
"bb_rank": 42,
"k_value": 116.0,
"k_rank": 78,
"k_per_9_value": 7.4042554,
"k_per_9_rank": 36,
"whip_value": 1.3617,
"whip_rank": null,
"war_value": 1.63,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0284,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0284,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0577,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9686,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 102,
"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."
}
],
"provenance": {
"prediction": "output/games/20260911_CHW@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"
}
} |
| 20260911 | 20260911_CHW@STL | home | Matthew Liberatore | Matthew Liberatore | True | 5.0 | 4.1 | -2 | 2 | 2 | 0 | 3/6 | 1/3 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.568345323741007,
"WHIP": 1.4676258992805755,
"IP": 139.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.964,
"recent_avg_IP": 5.067,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3281,
"sample_weight": 1.0,
"run_prevention_factor": 1.0279,
"strikeout_factor": 1.0046,
"walk_factor": 0.978,
"homer_factor": 1.0831,
"regression_flag": "neutral",
"k_percent": 23.7,
"bb_percent": 8.1,
"woba": 0.353,
"xwoba": 0.337,
"barrel_percent": 9.3,
"hard_hit_percent": 41.7,
"whiff_percent": 24.1
},
"espn_rank": {
"rank": 850,
"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": "669461",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 21.0,
"R": 22.0,
"H": 25.0,
"BB": 6.0,
"SO": 34.0,
"HR": 5.0,
"BF": 108.0,
"Pitches": 462.0
},
"per_game": {
"IP": 5.0,
"ER": 4.2,
"R": 4.4,
"H": 5.0,
"BB": 1.2,
"SO": 6.8,
"HR": 1.0,
"BF": 21.6,
"Pitches": 92.4
},
"rates": {
"ERA": 7.4605,
"WHIP": 1.2237,
"ER_per_IP": 0.82895,
"H_per_IP": 0.98684,
"BB_per_IP": 0.23684,
"SO_per_IP": 1.34211,
"HR_per_IP": 0.19737
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 34.0,
"R": 35.0,
"H": 56.0,
"BB": 14.0,
"SO": 62.0,
"HR": 8.0,
"BF": 218.0,
"Pitches": 874.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4,
"R": 3.5,
"H": 5.6,
"BB": 1.4,
"SO": 6.2,
"HR": 0.8,
"BF": 21.8,
"Pitches": 87.4
},
"rates": {
"ERA": 5.961,
"WHIP": 1.3636,
"ER_per_IP": 0.66234,
"H_per_IP": 1.09091,
"BB_per_IP": 0.27273,
"SO_per_IP": 1.20779,
"HR_per_IP": 0.15584
}
},
"season": {
"games": 28,
"totals": {
"IP": 139.0,
"ER": 86.0,
"R": 92.0,
"H": 155.0,
"BB": 49.0,
"SO": 144.0,
"HR": 25.0,
"BF": 608.0,
"Pitches": 2376.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0714,
"R": 3.2857,
"H": 5.5357,
"BB": 1.75,
"SO": 5.1429,
"HR": 0.8929,
"BF": 21.7143,
"Pitches": 84.8571
},
"rates": {
"ERA": 5.5683,
"WHIP": 1.4676,
"ER_per_IP": 0.61871,
"H_per_IP": 1.11511,
"BB_per_IP": 0.35252,
"SO_per_IP": 1.03597,
"HR_per_IP": 0.17986
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.472,
"predicted_H": 5.186,
"predicted_BB": 1.437,
"predicted_SO": 5.947,
"predicted_HR": 0.872,
"predicted_ERA": 6.2496,
"predicted_WHIP": 1.3246
}
},
"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": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.472,
"final": 2.8626,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.186,
"final": 4.281,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.437,
"final": 1.2561,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.947,
"final": 5.9689,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.872,
"final": 0.925,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.2496,
"final": 6.2496,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3246,
"final": 1.3246,
"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.1,
"ER": 34,
"H": 56,
"BB": 14,
"SO": 62,
"HR": 8,
"ERA": 5.961038961038961,
"WHIP": 1.3636363636363635,
"K9": 10.870129870129869,
"HR9": 1.4025974025974026,
"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-05T00:00:00"
},
"recent_form_boost": 1.1751272946337912,
"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": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 6.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": "669461",
"player_name": "Matthew Liberatore",
"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": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 7.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": 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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 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": 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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": "STL",
"games": 147,
"wins": 72,
"losses": 75,
"win_pct": 0.4898,
"runs_scored": 668.0,
"runs_allowed": 680.0,
"run_differential": -12.0,
"run_differential_per_game": -0.0816,
"avg_runs_scored": 4.5442,
"avg_runs_allowed": 4.6259,
"offense_index": 1.0109,
"defense_index": 0.9718,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 6.2,
"avg_runs_allowed": 6.0,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.0537
},
"opponent": {
"team": "CHW",
"games": 146,
"wins": 75,
"losses": 71,
"win_pct": 0.5137,
"runs_scored": 685.0,
"runs_allowed": 646.0,
"run_differential": 39.0,
"run_differential_per_game": 0.2671,
"avg_runs_scored": 4.6918,
"avg_runs_allowed": 4.4247,
"offense_index": 1.0437,
"defense_index": 1.016,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.8,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0257
},
"edges": {
"quality_edge": -0.028,
"offense_edge": 0.0109,
"opponent_offense_edge": 0.0437,
"defense_strength": -0.0282,
"opponent_defense_weakness": -0.016,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9963,
"run_prevention": 1.0112,
"strikeout": 0.9957
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669461",
"profile": {
"available": true,
"pitcher_id": "669461",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 540.0,
"k_percent": 23.7,
"bb_percent": 8.1,
"woba": 0.353,
"xwoba": 0.337,
"sweet_spot_percent": 40.2,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 41.7,
"avg_best_speed": 79.8188,
"avg_hyper_speed": 94.5545,
"whiff_percent": 24.1,
"swing_percent": 46.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.715,
"command_and_miss": 0.1193,
"regression_edge": 0.4571,
"xwoba_edge": -0.7429,
"barrel_edge": -0.4889,
"hard_hit_edge": -0.5429,
"whiff_edge": -0.1286,
"bb_edge": 0.275,
"pitch_design_score": -0.0557
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669461",
"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": 88.88051548154917,
"release_spin_rate": 2373.4956500680873,
"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": 88.88051548154917,
"release_spin_rate": 2373.4956500680873,
"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.8805,
"release_spin_rate": 2373.4957,
"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.0557,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3978,
"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.3281,
"sample_weight": 1.0,
"run_prevention_factor": 1.0279,
"strikeout_factor": 1.0046,
"walk_factor": 0.978,
"homer_factor": 1.0831,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669461",
"espn_id": 41173,
"player_name": "Matthew Liberatore",
"team": "STL",
"role": "pitcher",
"espn_rank": 850,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 850,
"gp_value": 28.0,
"gp_rank": 262,
"gs_value": 28.0,
"gs_rank": 25,
"qs_value": 6.0,
"qs_rank": 92,
"era_value": 5.5683,
"era_rank": null,
"w_value": 5.0,
"w_rank": 146,
"l_value": 14.0,
"l_rank": 3,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 139.0,
"ip_rank": 62,
"h_value": 155.0,
"h_rank": 11,
"er_value": 86.0,
"er_rank": 5,
"hr_value": 25.0,
"hr_rank": 14,
"bb_value": 49.0,
"bb_rank": 45,
"k_value": 144.0,
"k_rank": 37,
"k_per_9_value": 9.323741,
"k_per_9_rank": 16,
"whip_value": 1.4676,
"whip_rank": null,
"war_value": -1.2,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0279,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 1.0279,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.978,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0831,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0046,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 7,
"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."
}
],
"provenance": {
"prediction": "output/games/20260911_CHW@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"
}
} |
| 20260911 | 20260911_CIN@MIL | away | Andrew Abbott | Andrew Abbott | True | 4.2 | 2.0 | -8 | 5 | 8 | 3 | 7/9 | 1/0 | 3/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.431072210065645,
"WHIP": 1.4245076586433258,
"IP": 152.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.253,
"recent_avg_IP": 4.733,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4035,
"sample_weight": 1.0,
"run_prevention_factor": 1.0343,
"strikeout_factor": 0.9629,
"walk_factor": 1.026,
"homer_factor": 1.0444,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 10.5,
"woba": 0.327,
"xwoba": 0.338,
"barrel_percent": 8.2,
"hard_hit_percent": 38.2,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 80,
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "671096",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 19.0,
"R": 20.0,
"H": 29.0,
"BB": 9.0,
"SO": 21.0,
"HR": 5.0,
"BF": 109.0,
"Pitches": 405.0
},
"per_game": {
"IP": 4.2,
"ER": 3.8,
"R": 4.0,
"H": 5.8,
"BB": 1.8,
"SO": 4.2,
"HR": 1.0,
"BF": 21.8,
"Pitches": 81.0
},
"rates": {
"ERA": 7.2254,
"WHIP": 1.6056,
"ER_per_IP": 0.80282,
"H_per_IP": 1.22535,
"BB_per_IP": 0.38028,
"SO_per_IP": 0.88732,
"HR_per_IP": 0.21127
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 31.0,
"R": 33.0,
"H": 50.0,
"BB": 25.0,
"SO": 39.0,
"HR": 6.0,
"BF": 226.0,
"Pitches": 870.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1,
"R": 3.3,
"H": 5.0,
"BB": 2.5,
"SO": 3.9,
"HR": 0.6,
"BF": 22.6,
"Pitches": 87.0
},
"rates": {
"ERA": 5.4351,
"WHIP": 1.461,
"ER_per_IP": 0.6039,
"H_per_IP": 0.97403,
"BB_per_IP": 0.48701,
"SO_per_IP": 0.75974,
"HR_per_IP": 0.11688
}
},
"season": {
"games": 29,
"totals": {
"IP": 152.1,
"ER": 75.0,
"R": 80.0,
"H": 147.0,
"BB": 70.0,
"SO": 120.0,
"HR": 22.0,
"BF": 664.0,
"Pitches": 2628.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5862,
"R": 2.7586,
"H": 5.069,
"BB": 2.4138,
"SO": 4.1379,
"HR": 0.7586,
"BF": 22.8966,
"Pitches": 90.6207
},
"rates": {
"ERA": 4.4311,
"WHIP": 1.4245,
"ER_per_IP": 0.49234,
"H_per_IP": 0.96499,
"BB_per_IP": 0.45952,
"SO_per_IP": 0.78775,
"HR_per_IP": 0.14442
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.186,
"predicted_H": 5.267,
"predicted_BB": 2.091,
"predicted_SO": 4.141,
"predicted_HR": 0.799,
"predicted_ERA": 5.8173,
"predicted_WHIP": 1.4928
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 3.186,
"final": 4.3458,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.267,
"final": 5.9813,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.091,
"final": 1.6413,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.141,
"final": 3.6707,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.799,
"final": 1.294,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.8173,
"final": 5.8173,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4928,
"final": 1.4928,
"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.1,
"ER": 31,
"H": 50,
"BB": 25,
"SO": 39,
"HR": 6,
"ERA": 5.435064935064935,
"WHIP": 1.4610389610389611,
"K9": 6.837662337662338,
"HR9": 1.051948051948052,
"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-05T00:00:00"
},
"recent_form_boost": 1.1183902816467781,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"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": 6,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "671096",
"player_name": "Andrew Abbott",
"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": 1.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_HR": 2.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_SO": 3.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.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": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.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": 6.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 6.0,
"predicted_SO": 3.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.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.2,
"after": 4.2,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.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": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.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": "CIN",
"games": 146,
"wins": 69,
"losses": 77,
"win_pct": 0.4726,
"runs_scored": 611.0,
"runs_allowed": 733.0,
"run_differential": -122.0,
"run_differential_per_game": -0.8356,
"avg_runs_scored": 4.1849,
"avg_runs_allowed": 5.0205,
"offense_index": 0.9309,
"defense_index": 0.8954,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 6.0,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1255
},
"opponent": {
"team": "MIL",
"games": 147,
"wins": 91,
"losses": 56,
"win_pct": 0.619,
"runs_scored": 742.0,
"runs_allowed": 570.0,
"run_differential": 172.0,
"run_differential_per_game": 1.1701,
"avg_runs_scored": 5.0476,
"avg_runs_allowed": 3.8776,
"offense_index": 1.1228,
"defense_index": 1.1593,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 6.4,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.2793
},
"edges": {
"quality_edge": -0.4048,
"offense_edge": -0.0691,
"opponent_offense_edge": 0.1228,
"defense_strength": -0.1046,
"opponent_defense_weakness": -0.1593,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9758,
"run_prevention": 1.0503,
"strikeout": 0.978
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "671096",
"profile": {
"available": true,
"pitcher_id": "671096",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 571.0,
"k_percent": 18.1,
"bb_percent": 10.5,
"woba": 0.327,
"xwoba": 0.338,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 38.2,
"avg_best_speed": 79.4233,
"avg_hyper_speed": 94.0823,
"whiff_percent": 22.4,
"swing_percent": 46.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.437,
"command_and_miss": -0.4457,
"regression_edge": -0.3143,
"xwoba_edge": -0.7714,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.0429,
"whiff_edge": -0.3714,
"bb_edge": -0.325,
"pitch_design_score": -0.1436
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671096",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 87.31119791616489,
"release_spin_rate": 2448.5271060794216,
"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": 93,
"pitch_usage": 0.0,
"release_speed": 87.31119791616489,
"release_spin_rate": 2448.5271060794216,
"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.3112,
"release_spin_rate": 2448.5271,
"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.1436,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0256,
"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.4035,
"sample_weight": 1.0,
"run_prevention_factor": 1.0343,
"strikeout_factor": 0.9629,
"walk_factor": 1.026,
"homer_factor": 1.0444,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "671096",
"espn_id": 4414528,
"player_name": "Andrew Abbott",
"team": "CIN",
"role": "pitcher",
"espn_rank": 80,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 80,
"gp_value": 29.0,
"gp_rank": 237,
"gs_value": 29.0,
"gs_rank": 9,
"qs_value": 11.0,
"qs_rank": 46,
"era_value": 4.431,
"era_rank": 44.0,
"w_value": 6.0,
"w_rank": 104,
"l_value": 10.0,
"l_rank": 18,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 152.1,
"ip_rank": 39,
"h_value": 147.0,
"h_rank": 24,
"er_value": 75.0,
"er_rank": 19,
"hr_value": 22.0,
"hr_rank": 26,
"bb_value": 70.0,
"bb_rank": 6,
"k_value": 120.0,
"k_rank": 69,
"k_per_9_value": 7.0897155,
"k_per_9_rank": 47,
"whip_value": 1.4245,
"whip_rank": 48.0,
"war_value": 1.87,
"war_rank": 33.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0343,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0343,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.026,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0444,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9629,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 7,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"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": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260911_CIN@MIL.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"
}
} |
| 20260911 | 20260911_CIN@MIL | home | Dustin May | Dustin May | True | 4.2 | 6.0 | 4 | 4 | 0 | -4 | 7/2 | 1/1 | 3/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.692695214105793,
"WHIP": 1.322418136020151,
"IP": 132.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 4.901,
"recent_avg_IP": 3.467,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1374,
"sample_weight": 1.0,
"run_prevention_factor": 1.0117,
"strikeout_factor": 0.9909,
"walk_factor": 0.976,
"homer_factor": 1.0469,
"regression_flag": "neutral",
"k_percent": 22.6,
"bb_percent": 8.0,
"woba": 0.317,
"xwoba": 0.319,
"barrel_percent": 7.2,
"hard_hit_percent": 44.6,
"whiff_percent": 22.8
},
"espn_rank": {
"rank": 337,
"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": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669160",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 17.1,
"ER": 14.0,
"R": 14.0,
"H": 22.0,
"BB": 7.0,
"SO": 16.0,
"HR": 3.0,
"BF": 80.0,
"Pitches": 303.0
},
"per_game": {
"IP": 3.1,
"ER": 2.8,
"R": 2.8,
"H": 4.4,
"BB": 1.4,
"SO": 3.2,
"HR": 0.6,
"BF": 16.0,
"Pitches": 60.6
},
"rates": {
"ERA": 7.2692,
"WHIP": 1.6731,
"ER_per_IP": 0.80769,
"H_per_IP": 1.26923,
"BB_per_IP": 0.40385,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.17308
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.1,
"ER": 24.0,
"R": 24.0,
"H": 43.0,
"BB": 21.0,
"SO": 42.0,
"HR": 4.0,
"BF": 193.0,
"Pitches": 741.0
},
"per_game": {
"IP": 4.1,
"ER": 2.4,
"R": 2.4,
"H": 4.3,
"BB": 2.1,
"SO": 4.2,
"HR": 0.4,
"BF": 19.3,
"Pitches": 74.1
},
"rates": {
"ERA": 4.9846,
"WHIP": 1.4769,
"ER_per_IP": 0.55385,
"H_per_IP": 0.99231,
"BB_per_IP": 0.48462,
"SO_per_IP": 0.96923,
"HR_per_IP": 0.09231
}
},
"season": {
"games": 27,
"totals": {
"IP": 132.1,
"ER": 69.0,
"R": 72.0,
"H": 130.0,
"BB": 45.0,
"SO": 127.0,
"HR": 11.0,
"BF": 562.0,
"Pitches": 2151.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5556,
"R": 2.6667,
"H": 4.8148,
"BB": 1.6667,
"SO": 4.7037,
"HR": 0.4074,
"BF": 20.8148,
"Pitches": 79.6667
},
"rates": {
"ERA": 4.6927,
"WHIP": 1.3224,
"ER_per_IP": 0.52141,
"H_per_IP": 0.98237,
"BB_per_IP": 0.34005,
"SO_per_IP": 0.9597,
"HR_per_IP": 0.08312
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.622,
"predicted_H": 4.5,
"predicted_BB": 1.695,
"predicted_SO": 3.894,
"predicted_HR": 0.535,
"predicted_ERA": 5.7312,
"predicted_WHIP": 1.5043
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.622,
"final": 3.1952,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.5,
"final": 5.54,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.695,
"final": 1.4059,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.894,
"final": 3.5221,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.535,
"final": 0.7284,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7312,
"final": 5.7312,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5043,
"final": 1.5043,
"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.1,
"ER": 24,
"H": 43,
"BB": 21,
"SO": 42,
"HR": 4,
"ERA": 4.984615384615385,
"WHIP": 1.4769230769230768,
"K9": 8.723076923076922,
"HR9": 0.8307692307692307,
"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-05T00:00:00"
},
"recent_form_boost": 1.0681118101183067,
"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": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 3.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.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": 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": 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": 1.0,
"after": 1.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": 7.0,
"after": 7.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": 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": 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": 147,
"wins": 91,
"losses": 56,
"win_pct": 0.619,
"runs_scored": 742.0,
"runs_allowed": 570.0,
"run_differential": 172.0,
"run_differential_per_game": 1.1701,
"avg_runs_scored": 5.0476,
"avg_runs_allowed": 3.8776,
"offense_index": 1.1228,
"defense_index": 1.1593,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 6.4,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.2793
},
"opponent": {
"team": "CIN",
"games": 146,
"wins": 69,
"losses": 77,
"win_pct": 0.4726,
"runs_scored": 611.0,
"runs_allowed": 733.0,
"run_differential": -122.0,
"run_differential_per_game": -0.8356,
"avg_runs_scored": 4.1849,
"avg_runs_allowed": 5.0205,
"offense_index": 0.9309,
"defense_index": 0.8954,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 6.0,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1255
},
"edges": {
"quality_edge": 0.4048,
"offense_edge": 0.1228,
"opponent_offense_edge": -0.0691,
"defense_strength": 0.1593,
"opponent_defense_weakness": 0.1046,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0237,
"run_prevention": 0.9528,
"strikeout": 1.0177
},
"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": 520.0,
"k_percent": 22.6,
"bb_percent": 8.0,
"woba": 0.317,
"xwoba": 0.319,
"sweet_spot_percent": 36.4,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 44.6,
"avg_best_speed": 79.0948,
"avg_hyper_speed": 94.5836,
"whiff_percent": 22.8,
"swing_percent": 47.5
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.251,
"command_and_miss": -0.0114,
"regression_edge": -0.0571,
"xwoba_edge": -0.2286,
"barrel_edge": -0.0222,
"hard_hit_edge": -0.9571,
"whiff_edge": -0.3143,
"bb_edge": 0.3,
"pitch_design_score": 0.1479
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669160",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 92.51580093046432,
"release_spin_rate": 2533.5004535710195,
"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": 82,
"pitch_usage": 0.0,
"release_speed": 92.51580093046432,
"release_spin_rate": 2533.5004535710195,
"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.5158,
"release_spin_rate": 2533.5005,
"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.1479,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0563,
"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.1374,
"sample_weight": 1.0,
"run_prevention_factor": 1.0117,
"strikeout_factor": 0.9909,
"walk_factor": 0.976,
"homer_factor": 1.0469,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669160",
"espn_id": 40937,
"player_name": "Dustin May",
"team": "MIL",
"role": "pitcher",
"espn_rank": 337,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 337,
"gp_value": 27.0,
"gp_rank": 289,
"gs_value": 27.0,
"gs_rank": 38,
"qs_value": 12.0,
"qs_rank": 34,
"era_value": 4.6926,
"era_rank": null,
"w_value": 6.0,
"w_rank": 104,
"l_value": 9.0,
"l_rank": 32,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 132.1,
"ip_rank": 76,
"h_value": 130.0,
"h_rank": 60,
"er_value": 69.0,
"er_rank": 38,
"hr_value": 11.0,
"hr_rank": 147,
"bb_value": 45.0,
"bb_rank": 60,
"k_value": 127.0,
"k_rank": 55,
"k_per_9_value": 8.6372795,
"k_per_9_rank": 19,
"whip_value": 1.3224,
"whip_rank": null,
"war_value": 0.23,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0117,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0117,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0469,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9909,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 95,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"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/20260911_CIN@MIL.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"
}
} |
| 20260911 | 20260911_CLE@MIN | away | Parker Messick | Parker Messick | True | 6.0 | 5.1 | -2 | 3 | 1 | -2 | 6/3 | 1/2 | 9/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.532934131736527,
"WHIP": 1.035928143712575,
"IP": 167.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.964,
"recent_avg_IP": 6.067,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.595,
"sample_weight": 1.0,
"run_prevention_factor": 0.9494,
"strikeout_factor": 1.0309,
"walk_factor": 0.952,
"homer_factor": 0.8987,
"regression_flag": "neutral",
"k_percent": 26.1,
"bb_percent": 6.8,
"woba": 0.269,
"xwoba": 0.271,
"barrel_percent": 5.0,
"hard_hit_percent": 32.7,
"whiff_percent": 26.3
},
"espn_rank": {
"rank": 7,
"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": "800048",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 8.0,
"R": 8.0,
"H": 24.0,
"BB": 7.0,
"SO": 37.0,
"HR": 3.0,
"BF": 121.0,
"Pitches": 502.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 4.8,
"BB": 1.4,
"SO": 7.4,
"HR": 0.6,
"BF": 24.2,
"Pitches": 100.4
},
"rates": {
"ERA": 2.3736,
"WHIP": 1.022,
"ER_per_IP": 0.26374,
"H_per_IP": 0.79121,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.21978,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.0,
"ER": 14.0,
"R": 16.0,
"H": 45.0,
"BB": 13.0,
"SO": 64.0,
"HR": 7.0,
"BF": 240.0,
"Pitches": 963.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.6,
"H": 4.5,
"BB": 1.3,
"SO": 6.4,
"HR": 0.7,
"BF": 24.0,
"Pitches": 96.3
},
"rates": {
"ERA": 2.0656,
"WHIP": 0.9508,
"ER_per_IP": 0.22951,
"H_per_IP": 0.7377,
"BB_per_IP": 0.21311,
"SO_per_IP": 1.04918,
"HR_per_IP": 0.11475
}
},
"season": {
"games": 28,
"totals": {
"IP": 167.0,
"ER": 47.0,
"R": 51.0,
"H": 128.0,
"BB": 45.0,
"SO": 173.0,
"HR": 16.0,
"BF": 663.0,
"Pitches": 2607.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6786,
"R": 1.8214,
"H": 4.5714,
"BB": 1.6071,
"SO": 6.1786,
"HR": 0.5714,
"BF": 23.6786,
"Pitches": 93.1071
},
"rates": {
"ERA": 2.5329,
"WHIP": 1.0359,
"ER_per_IP": 0.28144,
"H_per_IP": 0.76647,
"BB_per_IP": 0.26946,
"SO_per_IP": 1.03593,
"HR_per_IP": 0.09581
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.757,
"predicted_H": 4.791,
"predicted_BB": 1.519,
"predicted_SO": 6.574,
"predicted_HR": 0.662,
"predicted_ERA": 2.6353,
"predicted_WHIP": 1.0517
}
},
"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": 1.757,
"final": 2.6856,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.791,
"final": 5.2915,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.519,
"final": 1.3041,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 6.574,
"final": 7.5784,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.662,
"final": 0.8019,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6353,
"final": 2.6353,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0517,
"final": 1.0517,
"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.0,
"ER": 14,
"H": 45,
"BB": 13,
"SO": 64,
"HR": 7,
"ERA": 2.0655737704918034,
"WHIP": 0.9508196721311475,
"K9": 9.442622950819672,
"HR9": 1.0327868852459017,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-05T00:00:00"
},
"recent_form_boost": 0.7265670434096055,
"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": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 9.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": 6,
"predicted_BB": 1,
"predicted_SO": 9,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800048",
"player_name": "Parker Messick",
"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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"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": "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": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 9.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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 9.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": 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": 9.0,
"after": 9.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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.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": "CLE",
"games": 147,
"wins": 74,
"losses": 73,
"win_pct": 0.5034,
"runs_scored": 598.0,
"runs_allowed": 614.0,
"run_differential": -16.0,
"run_differential_per_game": -0.1088,
"avg_runs_scored": 4.068,
"avg_runs_allowed": 4.1769,
"offense_index": 0.9049,
"defense_index": 1.0763,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.5,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.0104
},
"opponent": {
"team": "MIN",
"games": 146,
"wins": 69,
"losses": 77,
"win_pct": 0.4726,
"runs_scored": 675.0,
"runs_allowed": 728.0,
"run_differential": -53.0,
"run_differential_per_game": -0.363,
"avg_runs_scored": 4.6233,
"avg_runs_allowed": 4.9863,
"offense_index": 1.0284,
"defense_index": 0.9016,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 4.7,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0677
},
"edges": {
"quality_edge": 0.0573,
"offense_edge": -0.0951,
"opponent_offense_edge": 0.0284,
"defense_strength": 0.0763,
"opponent_defense_weakness": 0.0984,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0034,
"run_prevention": 0.994,
"strikeout": 0.9994
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800048",
"profile": {
"available": true,
"pitcher_id": "800048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 586.0,
"k_percent": 26.1,
"bb_percent": 6.8,
"woba": 0.269,
"xwoba": 0.271,
"sweet_spot_percent": 31.8,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 32.7,
"avg_best_speed": 76.143,
"avg_hyper_speed": 93.3266,
"whiff_percent": 26.3,
"swing_percent": 48.3
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8641,
"command_and_miss": 0.4486,
"regression_edge": -0.0571,
"xwoba_edge": 1.1429,
"barrel_edge": 0.4667,
"hard_hit_edge": 0.7429,
"whiff_edge": 0.1857,
"bb_edge": 0.6,
"pitch_design_score": 0.0023
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800048",
"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": 89.91564892850265,
"release_spin_rate": 2099.092261917475,
"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": 89.91564892850265,
"release_spin_rate": 2099.092261917475,
"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.9156,
"release_spin_rate": 2099.0923,
"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.0023,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0162,
"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.595,
"sample_weight": 1.0,
"run_prevention_factor": 0.9494,
"strikeout_factor": 1.0309,
"walk_factor": 0.952,
"homer_factor": 0.8987,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "800048",
"espn_id": 4619898,
"player_name": "Parker Messick",
"team": "CLE",
"role": "pitcher",
"espn_rank": 7,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 7,
"gp_value": 28.0,
"gp_rank": 262,
"gs_value": 28.0,
"gs_rank": 25,
"qs_value": 13.0,
"qs_rank": 31,
"era_value": 2.5329,
"era_rank": 5.0,
"w_value": 11.0,
"w_rank": 23,
"l_value": 9.0,
"l_rank": 32,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 167.0,
"ip_rank": 14,
"h_value": 128.0,
"h_rank": 65,
"er_value": 47.0,
"er_rank": 121,
"hr_value": 16.0,
"hr_rank": 84,
"bb_value": 45.0,
"bb_rank": 60,
"k_value": 173.0,
"k_rank": 16,
"k_per_9_value": 9.323354,
"k_per_9_rank": 30,
"whip_value": 1.0359,
"whip_rank": 7.0,
"war_value": 5.42,
"war_rank": 6.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9494,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9494,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.8987,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0309,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 9,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 108,
"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": "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/20260911_CLE@MIN.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"
}
} |
| 20260911 | 20260911_CLE@MIN | home | Taj Bradley | Taj Bradley | True | 5.2 | 6.0 | 1 | 3 | 0 | -3 | 3/1 | 1/4 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.953974895397489,
"WHIP": 1.2615062761506275,
"IP": 159.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.69,
"recent_avg_IP": 5.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0001,
"sample_weight": 1.0,
"run_prevention_factor": 1.0,
"strikeout_factor": 1.0411,
"walk_factor": 1.018,
"homer_factor": 1.076,
"regression_flag": "neutral",
"k_percent": 27.3,
"bb_percent": 10.1,
"woba": 0.305,
"xwoba": 0.306,
"barrel_percent": 9.3,
"hard_hit_percent": 45.1,
"whiff_percent": 26.9
},
"espn_rank": {
"rank": 22,
"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": "671737",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 15.0,
"R": 15.0,
"H": 24.0,
"BB": 13.0,
"SO": 36.0,
"HR": 6.0,
"BF": 119.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 4.8,
"BB": 2.6,
"SO": 7.2,
"HR": 1.2,
"BF": 23.8,
"Pitches": 92.0
},
"rates": {
"ERA": 4.8795,
"WHIP": 1.3373,
"ER_per_IP": 0.54217,
"H_per_IP": 0.86747,
"BB_per_IP": 0.46988,
"SO_per_IP": 1.3012,
"HR_per_IP": 0.21687
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 29.0,
"R": 29.0,
"H": 48.0,
"BB": 28.0,
"SO": 66.0,
"HR": 8.0,
"BF": 244.0,
"Pitches": 956.0
},
"per_game": {
"IP": 5.2,
"ER": 2.9,
"R": 2.9,
"H": 4.8,
"BB": 2.8,
"SO": 6.6,
"HR": 0.8,
"BF": 24.4,
"Pitches": 95.6
},
"rates": {
"ERA": 4.6059,
"WHIP": 1.3412,
"ER_per_IP": 0.51176,
"H_per_IP": 0.84706,
"BB_per_IP": 0.49412,
"SO_per_IP": 1.16471,
"HR_per_IP": 0.14118
}
},
"season": {
"games": 28,
"totals": {
"IP": 159.1,
"ER": 70.0,
"R": 70.0,
"H": 133.0,
"BB": 68.0,
"SO": 184.0,
"HR": 23.0,
"BF": 675.0,
"Pitches": 2701.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.5,
"H": 4.75,
"BB": 2.4286,
"SO": 6.5714,
"HR": 0.8214,
"BF": 24.1071,
"Pitches": 96.4643
},
"rates": {
"ERA": 3.954,
"WHIP": 1.2615,
"ER_per_IP": 0.43933,
"H_per_IP": 0.83473,
"BB_per_IP": 0.42678,
"SO_per_IP": 1.15481,
"HR_per_IP": 0.14435
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.889,
"predicted_H": 4.94,
"predicted_BB": 2.577,
"predicted_SO": 6.693,
"predicted_HR": 0.972,
"predicted_ERA": 4.5877,
"predicted_WHIP": 1.3264
}
},
"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": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.889,
"final": 2.935,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.94,
"final": 4.1368,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.577,
"final": 1.9241,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.693,
"final": 5.5781,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.972,
"final": 0.5696,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5877,
"final": 4.5877,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3264,
"final": 1.3264,
"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.2,
"ER": 29,
"H": 48,
"BB": 28,
"SO": 66,
"HR": 8,
"ERA": 4.605882352941176,
"WHIP": 1.3411764705882352,
"K9": 10.482352941176469,
"HR9": 1.2705882352941176,
"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-05T00:00:00"
},
"recent_form_boost": 1.022110678896587,
"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": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 4.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "671737",
"player_name": "Taj Bradley",
"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": 1.0,
"predicted_ER": 3.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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"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": 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": 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": 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": 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": "MIN",
"games": 146,
"wins": 69,
"losses": 77,
"win_pct": 0.4726,
"runs_scored": 675.0,
"runs_allowed": 728.0,
"run_differential": -53.0,
"run_differential_per_game": -0.363,
"avg_runs_scored": 4.6233,
"avg_runs_allowed": 4.9863,
"offense_index": 1.0284,
"defense_index": 0.9016,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 4.7,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0677
},
"opponent": {
"team": "CLE",
"games": 147,
"wins": 74,
"losses": 73,
"win_pct": 0.5034,
"runs_scored": 598.0,
"runs_allowed": 614.0,
"run_differential": -16.0,
"run_differential_per_game": -0.1088,
"avg_runs_scored": 4.068,
"avg_runs_allowed": 4.1769,
"offense_index": 0.9049,
"defense_index": 1.0763,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.5,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.0104
},
"edges": {
"quality_edge": -0.0573,
"offense_edge": 0.0284,
"opponent_offense_edge": -0.0951,
"defense_strength": -0.0984,
"opponent_defense_weakness": -0.0763,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9986,
"run_prevention": 0.9975,
"strikeout": 1.0059
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "671737",
"profile": {
"available": true,
"pitcher_id": "671737",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 598.0,
"k_percent": 27.3,
"bb_percent": 10.1,
"woba": 0.305,
"xwoba": 0.306,
"sweet_spot_percent": 39.1,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 45.1,
"avg_best_speed": 80.9167,
"avg_hyper_speed": 94.9342,
"whiff_percent": 26.9,
"swing_percent": 47.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2003,
"command_and_miss": 0.3907,
"regression_edge": -0.0286,
"xwoba_edge": 0.1429,
"barrel_edge": -0.4889,
"hard_hit_edge": -1.0286,
"whiff_edge": 0.2714,
"bb_edge": -0.225,
"pitch_design_score": 0.1666
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671737",
"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": 92.84991659997009,
"release_spin_rate": 2176.795721962065,
"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": 92.84991659997009,
"release_spin_rate": 2176.795721962065,
"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.8499,
"release_spin_rate": 2176.7957,
"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.1666,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1899,
"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.0001,
"sample_weight": 1.0,
"run_prevention_factor": 1.0,
"strikeout_factor": 1.0411,
"walk_factor": 1.018,
"homer_factor": 1.076,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "671737",
"espn_id": 42480,
"player_name": "Taj Bradley",
"team": "MIN",
"role": "pitcher",
"espn_rank": 22,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 22,
"gp_value": 28.0,
"gp_rank": 262,
"gs_value": 28.0,
"gs_rank": 25,
"qs_value": 12.0,
"qs_rank": 34,
"era_value": 3.9539,
"era_rank": 34.0,
"w_value": 11.0,
"w_rank": 23,
"l_value": 6.0,
"l_rank": 113,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 159.1,
"ip_rank": 24,
"h_value": 133.0,
"h_rank": 53,
"er_value": 70.0,
"er_rank": 31,
"hr_value": 23.0,
"hr_rank": 21,
"bb_value": 68.0,
"bb_rank": 7,
"k_value": 184.0,
"k_rank": 11,
"k_per_9_value": 10.393306,
"k_per_9_rank": 12,
"whip_value": 1.2615,
"whip_rank": 35.0,
"war_value": 3.4,
"war_rank": 19.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.018,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.076,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0411,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 91,
"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."
},
{
"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/20260911_CLE@MIN.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"
}
} |
| 20260911 | 20260911_COL@DET | away | Mason Adams | Mason Adams | True | 4.1 | 5.0 | 2 | 2 | 1 | -1 | 4/2 | 3/3 | 2/5 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 3.951219512195122,
"WHIP": 1.6097560975609757,
"IP": 13.2,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 4.556,
"recent_avg_IP": 4.556,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3374,
"sample_weight": 0.45,
"run_prevention_factor": 1.0287,
"strikeout_factor": 1.0147,
"walk_factor": 1.009,
"homer_factor": 1.1218,
"regression_flag": "positive_pitcher_regression",
"k_percent": 28.8,
"bb_percent": 10.2,
"woba": 0.41,
"xwoba": 0.369,
"barrel_percent": 13.9,
"hard_hit_percent": 61.1,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 268,
"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": "690279",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 13.2,
"ER": 6.0,
"R": 6.0,
"H": 16.0,
"BB": 6.0,
"SO": 17.0,
"HR": 4.0,
"BF": 59.0,
"Pitches": 227.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 5.3333,
"BB": 2.0,
"SO": 5.6667,
"HR": 1.3333,
"BF": 19.6667,
"Pitches": 75.6667
},
"rates": {
"ERA": 3.9512,
"WHIP": 1.6098,
"ER_per_IP": 0.43902,
"H_per_IP": 1.17073,
"BB_per_IP": 0.43902,
"SO_per_IP": 1.2439,
"HR_per_IP": 0.29268
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 13.2,
"ER": 6.0,
"R": 6.0,
"H": 16.0,
"BB": 6.0,
"SO": 17.0,
"HR": 4.0,
"BF": 59.0,
"Pitches": 227.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 5.3333,
"BB": 2.0,
"SO": 5.6667,
"HR": 1.3333,
"BF": 19.6667,
"Pitches": 75.6667
},
"rates": {
"ERA": 3.9512,
"WHIP": 1.6098,
"ER_per_IP": 0.43902,
"H_per_IP": 1.17073,
"BB_per_IP": 0.43902,
"SO_per_IP": 1.2439,
"HR_per_IP": 0.29268
}
},
"season": {
"games": 3,
"totals": {
"IP": 13.2,
"ER": 6.0,
"R": 6.0,
"H": 16.0,
"BB": 6.0,
"SO": 17.0,
"HR": 4.0,
"BF": 59.0,
"Pitches": 227.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 5.3333,
"BB": 2.0,
"SO": 5.6667,
"HR": 1.3333,
"BF": 19.6667,
"Pitches": 75.6667
},
"rates": {
"ERA": 3.9512,
"WHIP": 1.6098,
"ER_per_IP": 0.43902,
"H_per_IP": 1.17073,
"BB_per_IP": 0.43902,
"SO_per_IP": 1.2439,
"HR_per_IP": 0.29268
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.235,
"predicted_H": 4.884,
"predicted_BB": 1.848,
"predicted_SO": 4.92,
"predicted_HR": 0.94,
"predicted_ERA": 4.3106,
"predicted_WHIP": 1.4427
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.235,
"final": 2.0907,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.884,
"final": 4.3412,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.848,
"final": 2.5554,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.92,
"final": 3.1269,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.94,
"final": 0.9768,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3106,
"final": 4.3106,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4427,
"final": 1.4427,
"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": 13.2,
"ER": 6,
"H": 16,
"BB": 6,
"SO": 17,
"HR": 4,
"ERA": 3.9512195121951215,
"WHIP": 1.6097560975609755,
"K9": 11.19512195121951,
"HR9": 2.6341463414634143,
"games_pitched": 3,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 3,
"error_prone": false
},
"games_count": 3,
"latest_game_date": "2026-09-05T00:00:00"
},
"recent_form_boost": 0.9799018322148985,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 1.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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690279",
"player_name": "Mason Adams",
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": "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": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 2.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": 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": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 2.0,
"predicted_SO": 2.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": 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": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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": 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": 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": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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": 146,
"wins": 55,
"losses": 91,
"win_pct": 0.3767,
"runs_scored": 686.0,
"runs_allowed": 840.0,
"run_differential": -154.0,
"run_differential_per_game": -1.0548,
"avg_runs_scored": 4.6986,
"avg_runs_allowed": 5.7534,
"offense_index": 1.0452,
"defense_index": 0.7814,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.7,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.3039
},
"opponent": {
"team": "DET",
"games": 146,
"wins": 67,
"losses": 79,
"win_pct": 0.4589,
"runs_scored": 641.0,
"runs_allowed": 586.0,
"run_differential": 55.0,
"run_differential_per_game": 0.3767,
"avg_runs_scored": 4.3904,
"avg_runs_allowed": 4.0137,
"offense_index": 0.9766,
"defense_index": 1.12,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 5.5,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.0238
},
"edges": {
"quality_edge": -0.2801,
"offense_edge": 0.0452,
"opponent_offense_edge": -0.0234,
"defense_strength": -0.2186,
"opponent_defense_weakness": -0.12,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9832,
"run_prevention": 1.0321,
"strikeout": 0.9935
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690279",
"profile": {
"available": true,
"pitcher_id": "690279",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 28.8,
"bb_percent": 10.2,
"woba": 0.41,
"xwoba": 0.369,
"sweet_spot_percent": 38.9,
"barrel_batted_rate": 13.9,
"hard_hit_percent": 61.1,
"avg_best_speed": 85.305,
"avg_hyper_speed": 96.9733,
"whiff_percent": 23.9,
"swing_percent": 48.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.7024,
"command_and_miss": 0.3321,
"regression_edge": 1.1714,
"xwoba_edge": -1.6571,
"barrel_edge": -1.5111,
"hard_hit_edge": -2.5,
"whiff_edge": -0.1571,
"bb_edge": -0.25,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "690279",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": -0.3374,
"sample_weight": 0.45,
"run_prevention_factor": 1.0287,
"strikeout_factor": 1.0147,
"walk_factor": 1.009,
"homer_factor": 1.1218,
"woba_minus_xwoba": 0.041,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "690279",
"espn_id": 4758424,
"player_name": "Mason Adams",
"team": "COL",
"role": "pitcher",
"espn_rank": 268,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 268,
"gp_value": 3.0,
"gp_rank": 710,
"gs_value": 3.0,
"gs_rank": 253,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 3.9512,
"era_rank": null,
"w_value": 0.0,
"w_rank": 535,
"l_value": 0.0,
"l_rank": 573,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 13.2,
"ip_rank": 577,
"h_value": 16.0,
"h_rank": 557,
"er_value": 6.0,
"er_rank": 629,
"hr_value": 4.0,
"hr_rank": 375,
"bb_value": 6.0,
"bb_rank": 582,
"k_value": 17.0,
"k_rank": 511,
"k_per_9_value": 11.195122,
"k_per_9_rank": 23,
"whip_value": 1.6097,
"whip_rank": null,
"war_value": 0.47,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0129,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0129,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.004,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0548,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0066,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 91,
"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": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260911_COL@DET.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"
}
} |
| 20260911 | 20260911_COL@DET | home | Framber Valdez | Framber Valdez | True | 6.0 | 6.0 | 0 | 2 | 0 | -2 | 3/6 | 3/2 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.167019027484144,
"WHIP": 1.3636363636363638,
"IP": 157.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.631,
"recent_avg_IP": 6.067,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2541,
"sample_weight": 1.0,
"run_prevention_factor": 1.0216,
"strikeout_factor": 0.9423,
"walk_factor": 0.984,
"homer_factor": 1.0172,
"regression_flag": "neutral",
"k_percent": 17.3,
"bb_percent": 8.4,
"woba": 0.319,
"xwoba": 0.324,
"barrel_percent": 5.9,
"hard_hit_percent": 42.7,
"whiff_percent": 19.6
},
"espn_rank": {
"rank": 150,
"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": "664285",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 14.0,
"R": 16.0,
"H": 28.0,
"BB": 13.0,
"SO": 16.0,
"HR": 3.0,
"BF": 130.0,
"Pitches": 476.0
},
"per_game": {
"IP": 6.0,
"ER": 2.8,
"R": 3.2,
"H": 5.6,
"BB": 2.6,
"SO": 3.2,
"HR": 0.6,
"BF": 26.0,
"Pitches": 95.2
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.3516,
"ER_per_IP": 0.46154,
"H_per_IP": 0.92308,
"BB_per_IP": 0.42857,
"SO_per_IP": 0.52747,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 25.0,
"R": 28.0,
"H": 54.0,
"BB": 22.0,
"SO": 41.0,
"HR": 4.0,
"BF": 245.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.8,
"H": 5.4,
"BB": 2.2,
"SO": 4.1,
"HR": 0.4,
"BF": 24.5,
"Pitches": 89.3
},
"rates": {
"ERA": 3.9474,
"WHIP": 1.3333,
"ER_per_IP": 0.4386,
"H_per_IP": 0.94737,
"BB_per_IP": 0.38596,
"SO_per_IP": 0.7193,
"HR_per_IP": 0.07018
}
},
"season": {
"games": 28,
"totals": {
"IP": 157.2,
"ER": 73.0,
"R": 81.0,
"H": 157.0,
"BB": 58.0,
"SO": 119.0,
"HR": 15.0,
"BF": 688.0,
"Pitches": 2501.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6071,
"R": 2.8929,
"H": 5.6071,
"BB": 2.0714,
"SO": 4.25,
"HR": 0.5357,
"BF": 24.5714,
"Pitches": 89.3214
},
"rates": {
"ERA": 4.167,
"WHIP": 1.3636,
"ER_per_IP": 0.463,
"H_per_IP": 0.99577,
"BB_per_IP": 0.36786,
"SO_per_IP": 0.75476,
"HR_per_IP": 0.09514
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.696,
"predicted_H": 5.552,
"predicted_BB": 2.319,
"predicted_SO": 4.007,
"predicted_HR": 0.567,
"predicted_ERA": 4.1512,
"predicted_WHIP": 1.3468
}
},
"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": 2.696,
"final": 2.4078,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.552,
"final": 4.4954,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.319,
"final": 2.6009,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.007,
"final": 4.8321,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.567,
"final": 0.7463,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1512,
"final": 4.1512,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3468,
"final": 1.3468,
"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": 57.0,
"ER": 25,
"H": 54,
"BB": 22,
"SO": 41,
"HR": 4,
"ERA": 3.9473684210526314,
"WHIP": 1.3333333333333333,
"K9": 6.473684210526316,
"HR9": 0.631578947368421,
"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-05T00:00:00"
},
"recent_form_boost": 0.9478317831277533,
"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": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 6.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": "664285",
"player_name": "Framber Valdez",
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.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": 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": 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": 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": 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,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 146,
"wins": 67,
"losses": 79,
"win_pct": 0.4589,
"runs_scored": 641.0,
"runs_allowed": 586.0,
"run_differential": 55.0,
"run_differential_per_game": 0.3767,
"avg_runs_scored": 4.3904,
"avg_runs_allowed": 4.0137,
"offense_index": 0.9766,
"defense_index": 1.12,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 5.5,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.0238
},
"opponent": {
"team": "COL",
"games": 146,
"wins": 55,
"losses": 91,
"win_pct": 0.3767,
"runs_scored": 686.0,
"runs_allowed": 840.0,
"run_differential": -154.0,
"run_differential_per_game": -1.0548,
"avg_runs_scored": 4.6986,
"avg_runs_allowed": 5.7534,
"offense_index": 1.0452,
"defense_index": 0.7814,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.7,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.3039
},
"edges": {
"quality_edge": 0.2801,
"offense_edge": -0.0234,
"opponent_offense_edge": 0.0452,
"defense_strength": 0.12,
"opponent_defense_weakness": 0.2186,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.013,
"run_prevention": 0.9812,
"strikeout": 1.0048
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664285",
"profile": {
"available": true,
"pitcher_id": "664285",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 611.0,
"k_percent": 17.3,
"bb_percent": 8.4,
"woba": 0.319,
"xwoba": 0.324,
"sweet_spot_percent": 29.2,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 42.7,
"avg_best_speed": 79.5149,
"avg_hyper_speed": 94.7251,
"whiff_percent": 19.6,
"swing_percent": 46.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1674,
"command_and_miss": -0.5321,
"regression_edge": -0.1429,
"xwoba_edge": -0.3714,
"barrel_edge": 0.2667,
"hard_hit_edge": -0.6857,
"whiff_edge": -0.7714,
"bb_edge": 0.2,
"pitch_design_score": -0.0962
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664285",
"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": 88.15669735231863,
"release_spin_rate": 2286.472783096767,
"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": 88.15669735231863,
"release_spin_rate": 2286.472783096767,
"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.1567,
"release_spin_rate": 2286.4728,
"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.0962,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6874,
"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.2541,
"sample_weight": 1.0,
"run_prevention_factor": 1.0216,
"strikeout_factor": 0.9423,
"walk_factor": 0.984,
"homer_factor": 1.0172,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "664285",
"espn_id": 36581,
"player_name": "Framber Valdez",
"team": "DET",
"role": "pitcher",
"espn_rank": 150,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 150,
"gp_value": 28.0,
"gp_rank": 262,
"gs_value": 28.0,
"gs_rank": 25,
"qs_value": 15.0,
"qs_rank": 17,
"era_value": 4.167,
"era_rank": 41.0,
"w_value": 9.0,
"w_rank": 42,
"l_value": 10.0,
"l_rank": 18,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 157.2,
"ip_rank": 28,
"h_value": 157.0,
"h_rank": 10,
"er_value": 73.0,
"er_rank": 24,
"hr_value": 15.0,
"hr_rank": 91,
"bb_value": 58.0,
"bb_rank": 17,
"k_value": 119.0,
"k_rank": 72,
"k_per_9_value": 6.792812,
"k_per_9_rank": 69,
"whip_value": 1.3636,
"whip_rank": 45.0,
"war_value": 1.24,
"war_rank": 45.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0216,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0216,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.984,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0172,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9423,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 106,
"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/20260911_COL@DET.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"
}
} |
| 20260911 | 20260911_HOU@TB | away | Miguel Ullola | Miguel Ullola | True | 3.0 | 1.0 | -6 | 2 | 0 | -2 | 2/0 | 2/0 | 7/0 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 3.857142857142857,
"WHIP": 0.8571428571428571,
"IP": 7.0,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 1.4,
"recent_avg_IP": 1.4,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1406,
"sample_weight": 0.45,
"run_prevention_factor": 0.988,
"strikeout_factor": 1.0435,
"walk_factor": 0.9505,
"homer_factor": 1.0843,
"regression_flag": "neutral",
"k_percent": 37.0,
"bb_percent": 3.7,
"woba": 0.29,
"xwoba": 0.299,
"barrel_percent": 18.8,
"hard_hit_percent": 37.5,
"whiff_percent": 26.9
},
"espn_rank": {
"rank": 426,
"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": 1.412,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2202,
"prior_weight": 0.7798
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "699044",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 7.0,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 1.0,
"SO": 10.0,
"HR": 2.0,
"BF": 27.0,
"Pitches": 106.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6,
"R": 0.6,
"H": 1.0,
"BB": 0.2,
"SO": 2.0,
"HR": 0.4,
"BF": 5.4,
"Pitches": 21.2
},
"rates": {
"ERA": 3.8571,
"WHIP": 0.8571,
"ER_per_IP": 0.42857,
"H_per_IP": 0.71429,
"BB_per_IP": 0.14286,
"SO_per_IP": 1.42857,
"HR_per_IP": 0.28571
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 7.0,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 1.0,
"SO": 10.0,
"HR": 2.0,
"BF": 27.0,
"Pitches": 106.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6,
"R": 0.6,
"H": 1.0,
"BB": 0.2,
"SO": 2.0,
"HR": 0.4,
"BF": 5.4,
"Pitches": 21.2
},
"rates": {
"ERA": 3.8571,
"WHIP": 0.8571,
"ER_per_IP": 0.42857,
"H_per_IP": 0.71429,
"BB_per_IP": 0.14286,
"SO_per_IP": 1.42857,
"HR_per_IP": 0.28571
}
},
"season": {
"games": 5,
"totals": {
"IP": 7.0,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 1.0,
"SO": 10.0,
"HR": 2.0,
"BF": 27.0,
"Pitches": 106.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6,
"R": 0.6,
"H": 1.0,
"BB": 0.2,
"SO": 2.0,
"HR": 0.4,
"BF": 5.4,
"Pitches": 21.2
},
"rates": {
"ERA": 3.8571,
"WHIP": 0.8571,
"ER_per_IP": 0.42857,
"H_per_IP": 0.71429,
"BB_per_IP": 0.14286,
"SO_per_IP": 1.42857,
"HR_per_IP": 0.28571
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.661,
"predicted_H": 3.124,
"predicted_BB": 1.093,
"predicted_SO": 3.577,
"predicted_HR": 0.605,
"predicted_ERA": 4.379,
"predicted_WHIP": 1.2355
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6795,
"form_weight": 0.3205,
"form_reliability": 0.2202,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.412,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2202,
"prior_weight": 0.7798
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 3.1,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.661,
"final": 1.8913,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.124,
"final": 2.3603,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.093,
"final": 1.7093,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.577,
"final": 5.9028,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.605,
"final": 0.1939,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.379,
"final": 4.379,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2355,
"final": 1.2355,
"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": 7.0,
"ER": 3,
"H": 5,
"BB": 1,
"SO": 10,
"HR": 2,
"ERA": 3.857142857142857,
"WHIP": 0.8571428571428571,
"K9": 12.857142857142858,
"HR9": 2.5714285714285716,
"games_pitched": 5,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.9829541760024539,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.412,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2202,
"prior_weight": 0.7798
}
},
{
"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": 2,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "699044",
"player_name": "Miguel Ullola",
"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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.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": "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": 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": 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": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_R": 2.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": 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": 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": 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": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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": 147,
"wins": 75,
"losses": 72,
"win_pct": 0.5102,
"runs_scored": 662.0,
"runs_allowed": 702.0,
"run_differential": -40.0,
"run_differential_per_game": -0.2721,
"avg_runs_scored": 4.5034,
"avg_runs_allowed": 4.7755,
"offense_index": 1.0018,
"defense_index": 0.9414,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.5,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.0104
},
"opponent": {
"team": "TB",
"games": 146,
"wins": 87,
"losses": 59,
"win_pct": 0.5959,
"runs_scored": 662.0,
"runs_allowed": 606.0,
"run_differential": 56.0,
"run_differential_per_game": 0.3836,
"avg_runs_scored": 4.5342,
"avg_runs_allowed": 4.1507,
"offense_index": 1.0086,
"defense_index": 1.0831,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.4,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.1284
},
"edges": {
"quality_edge": -0.118,
"offense_edge": 0.0018,
"opponent_offense_edge": 0.0086,
"defense_strength": -0.0586,
"opponent_defense_weakness": -0.0831,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9932,
"run_prevention": 1.0131,
"strikeout": 0.9958
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "699044",
"profile": {
"available": true,
"pitcher_id": "699044",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 23.0,
"k_percent": 37.0,
"bb_percent": 3.7,
"woba": 0.29,
"xwoba": 0.299,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 18.8,
"hard_hit_percent": 37.5,
"avg_best_speed": 74.6813,
"avg_hyper_speed": 93.7701,
"whiff_percent": 26.9,
"swing_percent": 49.1
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0424,
"command_and_miss": 1.3343,
"regression_edge": -0.2571,
"xwoba_edge": 0.3429,
"barrel_edge": -2.5,
"hard_hit_edge": 0.0571,
"whiff_edge": 0.2714,
"bb_edge": 1.375,
"pitch_design_score": 0.1883
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "699044",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 22,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 22,
"pitch_usage": 0.0,
"release_speed": 93.23747941370223,
"release_spin_rate": 2485.5872364953884,
"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": 22,
"pitch_usage": 0.0,
"release_speed": 93.23747941370223,
"release_spin_rate": 2485.5872364953884,
"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": 93.2375,
"release_spin_rate": 2485.5872,
"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.1883,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.3449,
"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.1406,
"sample_weight": 0.45,
"run_prevention_factor": 0.988,
"strikeout_factor": 1.0435,
"walk_factor": 0.9505,
"homer_factor": 1.0843,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "699044",
"espn_id": 5124163,
"player_name": "Miguel Ullola",
"team": "HOU",
"role": "pitcher",
"espn_rank": 426,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 426,
"gp_value": 5.0,
"gp_rank": 633,
"gs_value": 0.0,
"gs_rank": 365,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 3.8571,
"era_rank": null,
"w_value": 0.0,
"w_rank": 535,
"l_value": 0.0,
"l_rank": 573,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 7.0,
"ip_rank": 677,
"h_value": 5.0,
"h_rank": 721,
"er_value": 3.0,
"er_rank": 710,
"hr_value": 2.0,
"hr_rank": 525,
"bb_value": 1.0,
"bb_rank": 761,
"k_value": 10.0,
"k_rank": 594,
"k_per_9_value": 12.857142,
"k_per_9_rank": 23,
"whip_value": 0.8571,
"whip_rank": null,
"war_value": 0.07,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9946,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 0.9946,
"adjusted": 2
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9777,
"adjusted": 0
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0379,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0196,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 13,
"Pitches": 60,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 5 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": "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/20260911_HOU@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"
}
} |
| 20260911 | 20260911_HOU@TB | home | Drew Rasmussen | Drew Rasmussen | True | 6.0 | 7.0 | 3 | 3 | 1 | -2 | 4/8 | 1/0 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.876086956521739,
"WHIP": 0.9065217391304348,
"IP": 153.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.679,
"recent_avg_IP": 5.8,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5271,
"sample_weight": 1.0,
"run_prevention_factor": 0.9552,
"strikeout_factor": 1.0229,
"walk_factor": 0.906,
"homer_factor": 0.9264,
"regression_flag": "neutral",
"k_percent": 26.1,
"bb_percent": 4.5,
"woba": 0.245,
"xwoba": 0.274,
"barrel_percent": 5.9,
"hard_hit_percent": 34.3,
"whiff_percent": 24.9
},
"espn_rank": {
"rank": 20,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 153.1,
"season_ERA": 2.876,
"season_WHIP": 0.907,
"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": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656876",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 11.0,
"R": 11.0,
"H": 21.0,
"BB": 5.0,
"SO": 26.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 467.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.2,
"H": 4.2,
"BB": 1.0,
"SO": 5.2,
"HR": 0.4,
"BF": 22.6,
"Pitches": 93.4
},
"rates": {
"ERA": 3.4138,
"WHIP": 0.8966,
"ER_per_IP": 0.37931,
"H_per_IP": 0.72414,
"BB_per_IP": 0.17241,
"SO_per_IP": 0.89655,
"HR_per_IP": 0.06897
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 19.0,
"R": 19.0,
"H": 42.0,
"BB": 10.0,
"SO": 60.0,
"HR": 3.0,
"BF": 220.0,
"Pitches": 895.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9,
"R": 1.9,
"H": 4.2,
"BB": 1.0,
"SO": 6.0,
"HR": 0.3,
"BF": 22.0,
"Pitches": 89.5
},
"rates": {
"ERA": 3.0355,
"WHIP": 0.9231,
"ER_per_IP": 0.33728,
"H_per_IP": 0.74556,
"BB_per_IP": 0.17751,
"SO_per_IP": 1.06509,
"HR_per_IP": 0.05325
}
},
"season": {
"games": 27,
"totals": {
"IP": 153.1,
"ER": 49.0,
"R": 51.0,
"H": 112.0,
"BB": 27.0,
"SO": 156.0,
"HR": 14.0,
"BF": 598.0,
"Pitches": 2378.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8148,
"R": 1.8889,
"H": 4.1481,
"BB": 1.0,
"SO": 5.7778,
"HR": 0.5185,
"BF": 22.1481,
"Pitches": 88.0741
},
"rates": {
"ERA": 2.8761,
"WHIP": 0.9065,
"ER_per_IP": 0.31957,
"H_per_IP": 0.73043,
"BB_per_IP": 0.17609,
"SO_per_IP": 1.01739,
"HR_per_IP": 0.0913
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.151,
"predicted_H": 4.405,
"predicted_BB": 1.175,
"predicted_SO": 5.568,
"predicted_HR": 0.459,
"predicted_ERA": 3.3851,
"predicted_WHIP": 0.9757
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.151,
"final": 2.5042,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.405,
"final": 4.2365,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.175,
"final": 1.1022,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.568,
"final": 6.1637,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.459,
"final": 0.6841,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3851,
"final": 3.3851,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9757,
"final": 0.9757,
"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.1,
"ER": 19,
"H": 42,
"BB": 10,
"SO": 60,
"HR": 3,
"ERA": 3.0355029585798814,
"WHIP": 0.923076923076923,
"K9": 9.585798816568047,
"HR9": 0.47928994082840237,
"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-05T00:00:00"
},
"recent_form_boost": 0.8349905083431587,
"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": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"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": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656876",
"player_name": "Drew Rasmussen",
"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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.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": 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": 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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 7.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": 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": 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": 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": 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": 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": "TB",
"games": 146,
"wins": 87,
"losses": 59,
"win_pct": 0.5959,
"runs_scored": 662.0,
"runs_allowed": 606.0,
"run_differential": 56.0,
"run_differential_per_game": 0.3836,
"avg_runs_scored": 4.5342,
"avg_runs_allowed": 4.1507,
"offense_index": 1.0086,
"defense_index": 1.0831,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.4,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.1284
},
"opponent": {
"team": "HOU",
"games": 147,
"wins": 75,
"losses": 72,
"win_pct": 0.5102,
"runs_scored": 662.0,
"runs_allowed": 702.0,
"run_differential": -40.0,
"run_differential_per_game": -0.2721,
"avg_runs_scored": 4.5034,
"avg_runs_allowed": 4.7755,
"offense_index": 1.0018,
"defense_index": 0.9414,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.5,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.0104
},
"edges": {
"quality_edge": 0.118,
"offense_edge": 0.0086,
"opponent_offense_edge": 0.0018,
"defense_strength": 0.0831,
"opponent_defense_weakness": 0.0586,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0071,
"run_prevention": 0.9861,
"strikeout": 1.0034
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656876",
"profile": {
"available": true,
"pitcher_id": "656876",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 529.0,
"k_percent": 26.1,
"bb_percent": 4.5,
"woba": 0.245,
"xwoba": 0.274,
"sweet_spot_percent": 32.8,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 34.3,
"avg_best_speed": 77.5647,
"avg_hyper_speed": 93.5162,
"whiff_percent": 24.9,
"swing_percent": 50.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8396,
"command_and_miss": 0.4936,
"regression_edge": -0.8286,
"xwoba_edge": 1.0571,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.5143,
"whiff_edge": -0.0143,
"bb_edge": 1.175,
"pitch_design_score": 0.1429
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656876",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 92.42635744843004,
"release_spin_rate": 2377.5376841860666,
"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": 87,
"pitch_usage": 0.0,
"release_speed": 92.42635744843004,
"release_spin_rate": 2377.5376841860666,
"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.4264,
"release_spin_rate": 2377.5377,
"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.1429,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0205,
"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.5271,
"sample_weight": 1.0,
"run_prevention_factor": 0.9552,
"strikeout_factor": 1.0229,
"walk_factor": 0.906,
"homer_factor": 0.9264,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656876",
"espn_id": 42584,
"player_name": "Drew Rasmussen",
"team": "TB",
"role": "pitcher",
"espn_rank": 20,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 20,
"gp_value": 27.0,
"gp_rank": 289,
"gs_value": 27.0,
"gs_rank": 38,
"qs_value": 16.0,
"qs_rank": 15,
"era_value": 2.876,
"era_rank": 12.0,
"w_value": 14.0,
"w_rank": 6,
"l_value": 5.0,
"l_rank": 136,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 153.1,
"ip_rank": 37,
"h_value": 112.0,
"h_rank": 96,
"er_value": 49.0,
"er_rank": 108,
"hr_value": 14.0,
"hr_rank": 109,
"bb_value": 27.0,
"bb_rank": 194,
"k_value": 156.0,
"k_rank": 27,
"k_per_9_value": 9.156522,
"k_per_9_rank": 19,
"whip_value": 0.9065,
"whip_rank": 3.0,
"war_value": 3.55,
"war_rank": 18.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9552,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9552,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.906,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9264,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0229,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 104,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260911_HOU@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"
}
} |
| 20260911 | 20260911_KC@BOS | away | Seth Lugo | Seth Lugo | True | 5.0 | 5.0 | 0 | 4 | 2 | -2 | 8/7 | 3/2 | 3/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.037735849056604,
"WHIP": 1.440251572327044,
"IP": 159.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.483,
"recent_avg_IP": 4.867,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5174,
"sample_weight": 1.0,
"run_prevention_factor": 1.044,
"strikeout_factor": 0.936,
"walk_factor": 0.964,
"homer_factor": 1.0604,
"regression_flag": "neutral",
"k_percent": 17.4,
"bb_percent": 7.4,
"woba": 0.351,
"xwoba": 0.344,
"barrel_percent": 7.3,
"hard_hit_percent": 42.9,
"whiff_percent": 18.4
},
"espn_rank": {
"rank": 694,
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607625",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 23.0,
"R": 23.0,
"H": 39.0,
"BB": 5.0,
"SO": 15.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 459.0
},
"per_game": {
"IP": 5.0,
"ER": 4.6,
"R": 4.6,
"H": 7.8,
"BB": 1.0,
"SO": 3.0,
"HR": 0.4,
"BF": 22.6,
"Pitches": 91.8
},
"rates": {
"ERA": 8.5068,
"WHIP": 1.8082,
"ER_per_IP": 0.94521,
"H_per_IP": 1.60274,
"BB_per_IP": 0.20548,
"SO_per_IP": 0.61644,
"HR_per_IP": 0.08219
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 36.0,
"R": 37.0,
"H": 62.0,
"BB": 17.0,
"SO": 33.0,
"HR": 3.0,
"BF": 235.0,
"Pitches": 916.0
},
"per_game": {
"IP": 5.1,
"ER": 3.6,
"R": 3.7,
"H": 6.2,
"BB": 1.7,
"SO": 3.3,
"HR": 0.3,
"BF": 23.5,
"Pitches": 91.6
},
"rates": {
"ERA": 5.9632,
"WHIP": 1.454,
"ER_per_IP": 0.66258,
"H_per_IP": 1.1411,
"BB_per_IP": 0.31288,
"SO_per_IP": 0.60736,
"HR_per_IP": 0.05521
}
},
"season": {
"games": 29,
"totals": {
"IP": 159.0,
"ER": 89.0,
"R": 97.0,
"H": 178.0,
"BB": 51.0,
"SO": 119.0,
"HR": 18.0,
"BF": 685.0,
"Pitches": 2615.0
},
"per_game": {
"IP": 5.1,
"ER": 3.069,
"R": 3.3448,
"H": 6.1379,
"BB": 1.7586,
"SO": 4.1034,
"HR": 0.6207,
"BF": 23.6207,
"Pitches": 90.1724
},
"rates": {
"ERA": 5.0377,
"WHIP": 1.4403,
"ER_per_IP": 0.55975,
"H_per_IP": 1.1195,
"BB_per_IP": 0.32075,
"SO_per_IP": 0.74843,
"HR_per_IP": 0.11321
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.764,
"predicted_H": 6.65,
"predicted_BB": 1.451,
"predicted_SO": 3.527,
"predicted_HR": 0.459,
"predicted_ERA": 6.5702,
"predicted_WHIP": 1.5712
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.764,
"final": 3.4491,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 6.65,
"final": 7.2064,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.451,
"final": 2.0894,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.527,
"final": 3.3098,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.459,
"final": 0.2698,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.5702,
"final": 6.5702,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5712,
"final": 1.5712,
"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.1,
"ER": 36,
"H": 62,
"BB": 17,
"SO": 33,
"HR": 3,
"ERA": 5.96319018404908,
"WHIP": 1.4539877300613497,
"K9": 5.466257668711657,
"HR9": 0.49693251533742333,
"games_pitched": 10,
"quality_starts": 4,
"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-05T00:00:00"
},
"recent_form_boost": 1.1776280913830541,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607625",
"player_name": "Seth Lugo",
"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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 8.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 3.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": 8.0,
"after": 8.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": 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": 8.0,
"after": 8.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,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 147,
"wins": 65,
"losses": 82,
"win_pct": 0.4422,
"runs_scored": 629.0,
"runs_allowed": 717.0,
"run_differential": -88.0,
"run_differential_per_game": -0.5986,
"avg_runs_scored": 4.2789,
"avg_runs_allowed": 4.8776,
"offense_index": 0.9518,
"defense_index": 0.9217,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.5,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1924
},
"opponent": {
"team": "BOS",
"games": 147,
"wins": 80,
"losses": 67,
"win_pct": 0.5442,
"runs_scored": 652.0,
"runs_allowed": 570.0,
"run_differential": 82.0,
"run_differential_per_game": 0.5578,
"avg_runs_scored": 4.4354,
"avg_runs_allowed": 3.8776,
"offense_index": 0.9866,
"defense_index": 1.1593,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.5,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.1408
},
"edges": {
"quality_edge": -0.3332,
"offense_edge": -0.0482,
"opponent_offense_edge": -0.0134,
"defense_strength": -0.0783,
"opponent_defense_weakness": -0.1593,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9849,
"run_prevention": 1.0223,
"strikeout": 0.9911
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607625",
"profile": {
"available": true,
"pitcher_id": "607625",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 614.0,
"k_percent": 17.4,
"bb_percent": 7.4,
"woba": 0.351,
"xwoba": 0.344,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 42.9,
"avg_best_speed": 79.228,
"avg_hyper_speed": 94.5716,
"whiff_percent": 18.4,
"swing_percent": 46.1
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6772,
"command_and_miss": -0.5357,
"regression_edge": 0.2,
"xwoba_edge": -0.9429,
"barrel_edge": -0.0444,
"hard_hit_edge": -0.7143,
"whiff_edge": -0.9429,
"bb_edge": 0.45,
"pitch_design_score": -0.2364
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607625",
"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": 85.65388563891052,
"release_spin_rate": 2512.4854293940252,
"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": 85.65388563891052,
"release_spin_rate": 2512.4854293940252,
"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.6539,
"release_spin_rate": 2512.4854,
"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.2364,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.6885,
"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.5174,
"sample_weight": 1.0,
"run_prevention_factor": 1.044,
"strikeout_factor": 0.936,
"walk_factor": 0.964,
"homer_factor": 1.0604,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607625",
"espn_id": 34873,
"player_name": "Seth Lugo",
"team": "KC",
"role": "pitcher",
"espn_rank": 694,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 694,
"gp_value": 29.0,
"gp_rank": 237,
"gs_value": 29.0,
"gs_rank": 9,
"qs_value": 14.0,
"qs_rank": 25,
"era_value": 5.0377,
"era_rank": 50.0,
"w_value": 6.0,
"w_rank": 104,
"l_value": 8.0,
"l_rank": 60,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 159.0,
"ip_rank": 26,
"h_value": 178.0,
"h_rank": 4,
"er_value": 89.0,
"er_rank": 2,
"hr_value": 18.0,
"hr_rank": 58,
"bb_value": 51.0,
"bb_rank": 37,
"k_value": 119.0,
"k_rank": 72,
"k_per_9_value": 6.7358494,
"k_per_9_rank": 74,
"whip_value": 1.4402,
"whip_rank": 49.0,
"war_value": -0.28,
"war_rank": 51.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.044,
"adjusted": 4
},
"predicted_H": {
"original": 7.0,
"factor": 1.044,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.964,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0604,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.936,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 111,
"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/20260911_KC@BOS.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"
}
} |
| 20260911 | 20260911_KC@BOS | home | Sonny Gray | Sonny Gray | True | 6.0 | 6.0 | 0 | 3 | 3 | 0 | 3/6 | 1/2 | 8/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.688053097345133,
"WHIP": 1.1615044247787611,
"IP": 150.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.795,
"recent_avg_IP": 6.2,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1304,
"sample_weight": 1.0,
"run_prevention_factor": 0.9889,
"strikeout_factor": 0.9914,
"walk_factor": 0.946,
"homer_factor": 0.9785,
"regression_flag": "neutral",
"k_percent": 22.1,
"bb_percent": 6.5,
"woba": 0.298,
"xwoba": 0.297,
"barrel_percent": 6.6,
"hard_hit_percent": 37.8,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 14,
"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": "543243",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 8.0,
"R": 8.0,
"H": 29.0,
"BB": 8.0,
"SO": 29.0,
"HR": 3.0,
"BF": 127.0,
"Pitches": 467.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 5.8,
"BB": 1.6,
"SO": 5.8,
"HR": 0.6,
"BF": 25.4,
"Pitches": 93.4
},
"rates": {
"ERA": 2.3226,
"WHIP": 1.1935,
"ER_per_IP": 0.25806,
"H_per_IP": 0.93548,
"BB_per_IP": 0.25806,
"SO_per_IP": 0.93548,
"HR_per_IP": 0.09677
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.0,
"ER": 19.0,
"R": 19.0,
"H": 59.0,
"BB": 17.0,
"SO": 53.0,
"HR": 5.0,
"BF": 252.0,
"Pitches": 904.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9,
"R": 1.9,
"H": 5.9,
"BB": 1.7,
"SO": 5.3,
"HR": 0.5,
"BF": 25.2,
"Pitches": 90.4
},
"rates": {
"ERA": 2.8033,
"WHIP": 1.2459,
"ER_per_IP": 0.31148,
"H_per_IP": 0.96721,
"BB_per_IP": 0.27869,
"SO_per_IP": 0.86885,
"HR_per_IP": 0.08197
}
},
"season": {
"games": 26,
"totals": {
"IP": 150.2,
"ER": 45.0,
"R": 46.0,
"H": 135.0,
"BB": 40.0,
"SO": 135.0,
"HR": 15.0,
"BF": 611.0,
"Pitches": 2205.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7308,
"R": 1.7692,
"H": 5.1923,
"BB": 1.5385,
"SO": 5.1923,
"HR": 0.5769,
"BF": 23.5,
"Pitches": 84.8077
},
"rates": {
"ERA": 2.6881,
"WHIP": 1.1615,
"ER_per_IP": 0.29867,
"H_per_IP": 0.89602,
"BB_per_IP": 0.26549,
"SO_per_IP": 0.89602,
"HR_per_IP": 0.09956
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.943,
"predicted_H": 5.73,
"predicted_BB": 1.721,
"predicted_SO": 5.524,
"predicted_HR": 0.613,
"predicted_ERA": 2.8805,
"predicted_WHIP": 1.2275
}
},
"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": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.943,
"final": 2.385,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.73,
"final": 4.5885,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.721,
"final": 1.4195,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.524,
"final": 6.5593,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.613,
"final": 0.7748,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8805,
"final": 2.8805,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2275,
"final": 1.2275,
"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.0,
"ER": 19,
"H": 59,
"BB": 17,
"SO": 53,
"HR": 5,
"ERA": 2.80327868852459,
"WHIP": 1.2459016393442623,
"K9": 7.819672131147541,
"HR9": 0.7377049180327869,
"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-05T00:00:00"
},
"recent_form_boost": 0.8169358958686219,
"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": 1.0,
"predicted_SO": 8.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
}
},
{
"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": 3,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543243",
"player_name": "Sonny Gray",
"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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 8.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": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 8.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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 8.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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.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": "BOS",
"games": 147,
"wins": 80,
"losses": 67,
"win_pct": 0.5442,
"runs_scored": 652.0,
"runs_allowed": 570.0,
"run_differential": 82.0,
"run_differential_per_game": 0.5578,
"avg_runs_scored": 4.4354,
"avg_runs_allowed": 3.8776,
"offense_index": 0.9866,
"defense_index": 1.1593,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.5,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.1408
},
"opponent": {
"team": "KC",
"games": 147,
"wins": 65,
"losses": 82,
"win_pct": 0.4422,
"runs_scored": 629.0,
"runs_allowed": 717.0,
"run_differential": -88.0,
"run_differential_per_game": -0.5986,
"avg_runs_scored": 4.2789,
"avg_runs_allowed": 4.8776,
"offense_index": 0.9518,
"defense_index": 0.9217,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.5,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1924
},
"edges": {
"quality_edge": 0.3332,
"offense_edge": -0.0134,
"opponent_offense_edge": -0.0482,
"defense_strength": 0.1593,
"opponent_defense_weakness": 0.0783,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.02,
"run_prevention": 0.9597,
"strikeout": 1.0139
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543243",
"profile": {
"available": true,
"pitcher_id": "543243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 531.0,
"k_percent": 22.1,
"bb_percent": 6.5,
"woba": 0.298,
"xwoba": 0.297,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 37.8,
"avg_best_speed": 78.9823,
"avg_hyper_speed": 93.8071,
"whiff_percent": 23.4,
"swing_percent": 47.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2185,
"command_and_miss": 0.0614,
"regression_edge": 0.0286,
"xwoba_edge": 0.4,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.0143,
"whiff_edge": -0.2286,
"bb_edge": 0.675,
"pitch_design_score": -0.1353
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543243",
"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.45986278978744,
"release_spin_rate": 2501.7368281686063,
"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.45986278978744,
"release_spin_rate": 2501.7368281686063,
"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.4599,
"release_spin_rate": 2501.7368,
"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.1353,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9661,
"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.1304,
"sample_weight": 1.0,
"run_prevention_factor": 0.9889,
"strikeout_factor": 0.9914,
"walk_factor": 0.946,
"homer_factor": 0.9785,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "543243",
"espn_id": 32082,
"player_name": "Sonny Gray",
"team": "BOS",
"role": "pitcher",
"espn_rank": 14,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 14,
"gp_value": 26.0,
"gp_rank": 306,
"gs_value": 26.0,
"gs_rank": 53,
"qs_value": 17.0,
"qs_rank": 10,
"era_value": 2.688,
"era_rank": 8.0,
"w_value": 17.0,
"w_rank": 1,
"l_value": 4.0,
"l_rank": 186,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 150.2,
"ip_rank": 43,
"h_value": 135.0,
"h_rank": 48,
"er_value": 45.0,
"er_rank": 128,
"hr_value": 15.0,
"hr_rank": 91,
"bb_value": 40.0,
"bb_rank": 85,
"k_value": 135.0,
"k_rank": 49,
"k_per_9_value": 8.064159,
"k_per_9_rank": 30,
"whip_value": 1.1615,
"whip_rank": 23.0,
"war_value": 4.03,
"war_rank": 13.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9889,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9889,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.946,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9785,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9914,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 101,
"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/20260911_KC@BOS.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"
}
} |
| 20260911 | 20260911_LAA@WAS | away | Yusei Kikuchi | Yusei Kikuchi | True | 5.0 | 4.0 | -3 | 0 | 1 | 1 | 0/3 | 3/4 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.959183673469388,
"WHIP": 1.469387755102041,
"IP": 49.0,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 4.9,
"recent_avg_IP": 5.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2294,
"sample_weight": 0.568,
"run_prevention_factor": 1.0195,
"strikeout_factor": 1.0071,
"walk_factor": 0.9955,
"homer_factor": 1.0637,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 8.8,
"woba": 0.353,
"xwoba": 0.346,
"barrel_percent": 9.6,
"hard_hit_percent": 44.5,
"whiff_percent": 26.5
},
"espn_rank": {
"rank": 300,
"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.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "579328",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 12.0,
"R": 12.0,
"H": 25.0,
"BB": 8.0,
"SO": 22.0,
"HR": 4.0,
"BF": 105.0,
"Pitches": 395.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 5.0,
"BB": 1.6,
"SO": 4.4,
"HR": 0.8,
"BF": 21.0,
"Pitches": 79.0
},
"rates": {
"ERA": 4.32,
"WHIP": 1.32,
"ER_per_IP": 0.48,
"H_per_IP": 1.0,
"BB_per_IP": 0.32,
"SO_per_IP": 0.88,
"HR_per_IP": 0.16
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 27.0,
"R": 27.0,
"H": 53.0,
"BB": 19.0,
"SO": 49.0,
"HR": 7.0,
"BF": 216.0,
"Pitches": 837.0
},
"per_game": {
"IP": 5.0,
"ER": 2.7,
"R": 2.7,
"H": 5.3,
"BB": 1.9,
"SO": 4.9,
"HR": 0.7,
"BF": 21.6,
"Pitches": 83.7
},
"rates": {
"ERA": 4.9592,
"WHIP": 1.4694,
"ER_per_IP": 0.55102,
"H_per_IP": 1.08163,
"BB_per_IP": 0.38776,
"SO_per_IP": 1.0,
"HR_per_IP": 0.14286
}
},
"season": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 27.0,
"R": 27.0,
"H": 53.0,
"BB": 19.0,
"SO": 49.0,
"HR": 7.0,
"BF": 216.0,
"Pitches": 837.0
},
"per_game": {
"IP": 5.0,
"ER": 2.7,
"R": 2.7,
"H": 5.3,
"BB": 1.9,
"SO": 4.9,
"HR": 0.7,
"BF": 21.6,
"Pitches": 83.7
},
"rates": {
"ERA": 4.9592,
"WHIP": 1.4694,
"ER_per_IP": 0.55102,
"H_per_IP": 1.08163,
"BB_per_IP": 0.38776,
"SO_per_IP": 1.0,
"HR_per_IP": 0.14286
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.542,
"predicted_H": 5.072,
"predicted_BB": 1.783,
"predicted_SO": 4.676,
"predicted_HR": 0.753,
"predicted_ERA": 4.5752,
"predicted_WHIP": 1.371
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.542,
"final": 1.2943,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 5.072,
"final": 2.5826,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.783,
"final": 2.3803,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.676,
"final": 5.8167,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.753,
"final": 0.3834,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5752,
"final": 4.5752,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.371,
"final": 1.371,
"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": 27,
"H": 53,
"BB": 19,
"SO": 49,
"HR": 7,
"ERA": 4.959183673469387,
"WHIP": 1.4693877551020407,
"K9": 8.999999999999998,
"HR9": 1.2857142857142856,
"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-05T00:00:00"
},
"recent_form_boost": 1.065062359568856,
"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": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "579328",
"player_name": "Yusei Kikuchi",
"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": 3.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"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": 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": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"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": 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": "LAA",
"games": 146,
"wins": 56,
"losses": 90,
"win_pct": 0.3836,
"runs_scored": 591.0,
"runs_allowed": 664.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5,
"avg_runs_scored": 4.0479,
"avg_runs_allowed": 4.5479,
"offense_index": 0.9005,
"defense_index": 0.9885,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": -0.1951
},
"opponent": {
"team": "WAS",
"games": 148,
"wins": 67,
"losses": 81,
"win_pct": 0.4527,
"runs_scored": 756.0,
"runs_allowed": 756.0,
"run_differential": 0.0,
"run_differential_per_game": 0.0,
"avg_runs_scored": 5.1081,
"avg_runs_allowed": 5.1081,
"offense_index": 1.1363,
"defense_index": 0.8801,
"current_streak": "L7",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.8,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.1452
},
"edges": {
"quality_edge": -0.0499,
"offense_edge": -0.0995,
"opponent_offense_edge": 0.1363,
"defense_strength": -0.0115,
"opponent_defense_weakness": 0.1199,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9922,
"run_prevention": 1.0255,
"strikeout": 0.9876
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "579328",
"profile": {
"available": true,
"pitcher_id": "579328",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 142.0,
"k_percent": 22.7,
"bb_percent": 8.8,
"woba": 0.353,
"xwoba": 0.346,
"sweet_spot_percent": 37.0,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 44.5,
"avg_best_speed": 79.9767,
"avg_hyper_speed": 95.4243,
"whiff_percent": 26.5,
"swing_percent": 49.2
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8177,
"command_and_miss": 0.14,
"regression_edge": 0.2,
"xwoba_edge": -1.0,
"barrel_edge": -0.5556,
"hard_hit_edge": -0.9429,
"whiff_edge": 0.2143,
"bb_edge": 0.1,
"pitch_design_score": -0.03
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "579328",
"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.33948369974534,
"release_spin_rate": 2182.3887540174815,
"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.33948369974534,
"release_spin_rate": 2182.3887540174815,
"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.3395,
"release_spin_rate": 2182.3888,
"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.03,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2143,
"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.2294,
"sample_weight": 0.568,
"run_prevention_factor": 1.0195,
"strikeout_factor": 1.0071,
"walk_factor": 0.9955,
"homer_factor": 1.0637,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "579328",
"espn_id": 41415,
"player_name": "Yusei Kikuchi",
"team": "LAA",
"role": "pitcher",
"espn_rank": 300,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 300,
"gp_value": 10.0,
"gp_rank": 530,
"gs_value": 10.0,
"gs_rank": 171,
"qs_value": 3.0,
"qs_rank": 140,
"era_value": 4.9591,
"era_rank": null,
"w_value": 1.0,
"w_rank": 412,
"l_value": 5.0,
"l_rank": 136,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 49.0,
"ip_rank": 308,
"h_value": 53.0,
"h_rank": 228,
"er_value": 27.0,
"er_rank": 214,
"hr_value": 7.0,
"hr_rank": 226,
"bb_value": 19.0,
"bb_rank": 314,
"k_value": 49.0,
"k_rank": 296,
"k_per_9_value": 9.0,
"k_per_9_rank": 25,
"whip_value": 1.4693,
"whip_rank": null,
"war_value": 0.3,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0111,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0111,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0362,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.004,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 0,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"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 +1."
}
],
"provenance": {
"prediction": "output/games/20260911_LAA@WAS.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"
}
} |
| 20260911 | 20260911_LAA@WAS | home | Cade Cavalli | Cade Cavalli | True | 5.2 | 6.0 | 1 | 1 | 2 | 1 | 3/3 | 1/2 | 5/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.119747899159664,
"WHIP": 1.1785714285714286,
"IP": 158.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.289,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2657,
"sample_weight": 1.0,
"run_prevention_factor": 0.9774,
"strikeout_factor": 1.0451,
"walk_factor": 0.954,
"homer_factor": 1.0066,
"regression_flag": "neutral",
"k_percent": 27.9,
"bb_percent": 6.9,
"woba": 0.296,
"xwoba": 0.298,
"barrel_percent": 7.2,
"hard_hit_percent": 40.7,
"whiff_percent": 27.0
},
"espn_rank": {
"rank": 24,
"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": "676917",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 4.0,
"R": 4.0,
"H": 13.0,
"BB": 7.0,
"SO": 44.0,
"HR": 2.0,
"BF": 111.0,
"Pitches": 453.0
},
"per_game": {
"IP": 6.0,
"ER": 0.8,
"R": 0.8,
"H": 2.6,
"BB": 1.4,
"SO": 8.8,
"HR": 0.4,
"BF": 22.2,
"Pitches": 90.6
},
"rates": {
"ERA": 1.2,
"WHIP": 0.6667,
"ER_per_IP": 0.13333,
"H_per_IP": 0.43333,
"BB_per_IP": 0.23333,
"SO_per_IP": 1.46667,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 13.0,
"R": 15.0,
"H": 40.0,
"BB": 14.0,
"SO": 75.0,
"HR": 9.0,
"BF": 230.0,
"Pitches": 926.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.5,
"H": 4.0,
"BB": 1.4,
"SO": 7.5,
"HR": 0.9,
"BF": 23.0,
"Pitches": 92.6
},
"rates": {
"ERA": 1.95,
"WHIP": 0.9,
"ER_per_IP": 0.21667,
"H_per_IP": 0.66667,
"BB_per_IP": 0.23333,
"SO_per_IP": 1.25,
"HR_per_IP": 0.15
}
},
"season": {
"games": 30,
"totals": {
"IP": 158.2,
"ER": 55.0,
"R": 66.0,
"H": 141.0,
"BB": 46.0,
"SO": 185.0,
"HR": 17.0,
"BF": 663.0,
"Pitches": 2608.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8333,
"R": 2.2,
"H": 4.7,
"BB": 1.5333,
"SO": 6.1667,
"HR": 0.5667,
"BF": 22.1,
"Pitches": 86.9333
},
"rates": {
"ERA": 3.1197,
"WHIP": 1.1786,
"ER_per_IP": 0.34664,
"H_per_IP": 0.88866,
"BB_per_IP": 0.28992,
"SO_per_IP": 1.16597,
"HR_per_IP": 0.10714
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.446,
"predicted_H": 3.844,
"predicted_BB": 1.533,
"predicted_SO": 7.443,
"predicted_HR": 0.642,
"predicted_ERA": 2.2294,
"predicted_WHIP": 0.921
}
},
"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.2,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.446,
"final": 1.263,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.844,
"final": 3.4976,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.533,
"final": 1.3143,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 7.443,
"final": 5.6197,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.642,
"final": 0.7889,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2294,
"final": 2.2294,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.921,
"final": 0.921,
"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": 40,
"BB": 14,
"SO": 75,
"HR": 9,
"ERA": 1.95,
"WHIP": 0.9,
"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-05T00:00:00"
},
"recent_form_boost": 0.712294502425999,
"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": 1.0,
"predicted_SO": 3.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": 5.2,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 1,
"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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.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": "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": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 7.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": 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": 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": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"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": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"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": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 1.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": 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": 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": 5.0,
"delta": -2.0,
"percent_delta": -0.2857,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 5.0,
"delta": -2.0,
"percent_delta": -0.2857,
"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": 1.0,
"after": 1.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": 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": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"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": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"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": "WAS",
"games": 148,
"wins": 67,
"losses": 81,
"win_pct": 0.4527,
"runs_scored": 756.0,
"runs_allowed": 756.0,
"run_differential": 0.0,
"run_differential_per_game": 0.0,
"avg_runs_scored": 5.1081,
"avg_runs_allowed": 5.1081,
"offense_index": 1.1363,
"defense_index": 0.8801,
"current_streak": "L7",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.8,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.1452
},
"opponent": {
"team": "LAA",
"games": 146,
"wins": 56,
"losses": 90,
"win_pct": 0.3836,
"runs_scored": 591.0,
"runs_allowed": 664.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5,
"avg_runs_scored": 4.0479,
"avg_runs_allowed": 4.5479,
"offense_index": 0.9005,
"defense_index": 0.9885,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": -0.1951
},
"edges": {
"quality_edge": 0.0499,
"offense_edge": 0.1363,
"opponent_offense_edge": -0.0995,
"defense_strength": -0.1199,
"opponent_defense_weakness": 0.0115,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0024,
"run_prevention": 0.9936,
"strikeout": 1.0095
},
"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": 596.0,
"k_percent": 27.9,
"bb_percent": 6.9,
"woba": 0.296,
"xwoba": 0.298,
"sweet_spot_percent": 32.8,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 40.7,
"avg_best_speed": 78.3226,
"avg_hyper_speed": 94.2945,
"whiff_percent": 27.0,
"swing_percent": 47.5
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1947,
"command_and_miss": 0.5943,
"regression_edge": -0.0571,
"xwoba_edge": 0.3714,
"barrel_edge": -0.0222,
"hard_hit_edge": -0.4,
"whiff_edge": 0.2857,
"bb_edge": 0.575,
"pitch_design_score": 0.0975
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676917",
"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": 91.61672486815726,
"release_spin_rate": 2232.265396590468,
"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": 91.61672486815726,
"release_spin_rate": 2232.265396590468,
"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.6167,
"release_spin_rate": 2232.2654,
"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.0975,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.6966,
"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.2657,
"sample_weight": 1.0,
"run_prevention_factor": 0.9774,
"strikeout_factor": 1.0451,
"walk_factor": 0.954,
"homer_factor": 1.0066,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676917",
"espn_id": 4308037,
"player_name": "Cade Cavalli",
"team": "WSH",
"role": "pitcher",
"espn_rank": 24,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 24,
"gp_value": 30.0,
"gp_rank": 219,
"gs_value": 30.0,
"gs_rank": 2,
"qs_value": 17.0,
"qs_rank": 10,
"era_value": 3.1197,
"era_rank": 16.0,
"w_value": 12.0,
"w_rank": 17,
"l_value": 5.0,
"l_rank": 136,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 158.2,
"ip_rank": 27,
"h_value": 141.0,
"h_rank": 32,
"er_value": 55.0,
"er_rank": 90,
"hr_value": 17.0,
"hr_rank": 70,
"bb_value": 46.0,
"bb_rank": 56,
"k_value": 185.0,
"k_rank": 10,
"k_per_9_value": 10.493698,
"k_per_9_rank": 10,
"whip_value": 1.1785,
"whip_rank": 25.0,
"war_value": 3.33,
"war_rank": 20.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9774,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9774,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.954,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0066,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0451,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"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": "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/20260911_LAA@WAS.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"
}
} |
| 20260911 | 20260911_LAD@MIA | away | Blake Snell | Blake Snell | True | 5.2 | 5.2 | 0 | 2 | 1 | -1 | 4/4 | 1/2 | 6/8 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 1.96875,
"WHIP": 1.09375,
"IP": 32.0,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 5.333,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6326,
"sample_weight": 0.45,
"run_prevention_factor": 0.9462,
"strikeout_factor": 1.0555,
"walk_factor": 1.0126,
"homer_factor": 0.8766,
"regression_flag": "neutral",
"k_percent": 32.6,
"bb_percent": 10.6,
"woba": 0.237,
"xwoba": 0.226,
"barrel_percent": 1.4,
"hard_hit_percent": 13.5,
"whiff_percent": 36.0
},
"espn_rank": {
"rank": 159,
"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": "605483",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 3.0,
"R": 3.0,
"H": 15.0,
"BB": 12.0,
"SO": 38.0,
"HR": 0.0,
"BF": 114.0,
"Pitches": 467.0
},
"per_game": {
"IP": 5.2,
"ER": 0.6,
"R": 0.6,
"H": 3.0,
"BB": 2.4,
"SO": 7.6,
"HR": 0.0,
"BF": 22.8,
"Pitches": 93.4
},
"rates": {
"ERA": 0.931,
"WHIP": 0.931,
"ER_per_IP": 0.10345,
"H_per_IP": 0.51724,
"BB_per_IP": 0.41379,
"SO_per_IP": 1.31034,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 32.0,
"ER": 7.0,
"R": 8.0,
"H": 21.0,
"BB": 14.0,
"SO": 43.0,
"HR": 0.0,
"BF": 132.0,
"Pitches": 544.0
},
"per_game": {
"IP": 5.1,
"ER": 1.1667,
"R": 1.3333,
"H": 3.5,
"BB": 2.3333,
"SO": 7.1667,
"HR": 0.0,
"BF": 22.0,
"Pitches": 90.6667
},
"rates": {
"ERA": 1.9688,
"WHIP": 1.0938,
"ER_per_IP": 0.21875,
"H_per_IP": 0.65625,
"BB_per_IP": 0.4375,
"SO_per_IP": 1.34375,
"HR_per_IP": 0.0
}
},
"season": {
"games": 6,
"totals": {
"IP": 32.0,
"ER": 7.0,
"R": 8.0,
"H": 21.0,
"BB": 14.0,
"SO": 43.0,
"HR": 0.0,
"BF": 132.0,
"Pitches": 544.0
},
"per_game": {
"IP": 5.1,
"ER": 1.1667,
"R": 1.3333,
"H": 3.5,
"BB": 2.3333,
"SO": 7.1667,
"HR": 0.0,
"BF": 22.0,
"Pitches": 90.6667
},
"rates": {
"ERA": 1.9688,
"WHIP": 1.0938,
"ER_per_IP": 0.21875,
"H_per_IP": 0.65625,
"BB_per_IP": 0.4375,
"SO_per_IP": 1.34375,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.656,
"predicted_H": 4.142,
"predicted_BB": 2.233,
"predicted_SO": 6.459,
"predicted_HR": 0.376,
"predicted_ERA": 2.6413,
"predicted_WHIP": 1.1299
}
},
"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.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.656,
"final": 1.8425,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.142,
"final": 4.065,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.233,
"final": 1.5647,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.459,
"final": 4.5841,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.376,
"final": 0.7142,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6413,
"final": 2.6413,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1299,
"final": 1.1299,
"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": 32.0,
"ER": 7,
"H": 21,
"BB": 14,
"SO": 43,
"HR": 0,
"ERA": 1.96875,
"WHIP": 1.09375,
"K9": 12.09375,
"HR9": 0.0,
"games_pitched": 6,
"quality_starts": 4,
"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-04T00:00:00"
},
"recent_form_boost": 0.7192476274259989,
"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": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.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.2,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605483",
"player_name": "Blake Snell",
"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": 4.0,
"predicted_HR": 1.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": "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": 4.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": 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": 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.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": 2.0,
"predicted_H": 4.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": 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.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": 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": 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.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": "LAD",
"games": 146,
"wins": 89,
"losses": 57,
"win_pct": 0.6096,
"runs_scored": 728.0,
"runs_allowed": 559.0,
"run_differential": 169.0,
"run_differential_per_game": 1.1575,
"avg_runs_scored": 4.9863,
"avg_runs_allowed": 3.8288,
"offense_index": 1.1092,
"defense_index": 1.1741,
"current_streak": "W7",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.3,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.3398
},
"opponent": {
"team": "MIA",
"games": 147,
"wins": 72,
"losses": 75,
"win_pct": 0.4898,
"runs_scored": 654.0,
"runs_allowed": 647.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0476,
"avg_runs_scored": 4.449,
"avg_runs_allowed": 4.4014,
"offense_index": 0.9897,
"defense_index": 1.0214,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 6.8,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0728
},
"edges": {
"quality_edge": 0.4126,
"offense_edge": 0.1092,
"opponent_offense_edge": -0.0103,
"defense_strength": 0.1741,
"opponent_defense_weakness": -0.0214,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0221,
"run_prevention": 0.9603,
"strikeout": 1.0132
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605483",
"profile": {
"available": true,
"pitcher_id": "605483",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 63.0,
"k_percent": 32.6,
"bb_percent": 10.6,
"woba": 0.237,
"xwoba": 0.226,
"sweet_spot_percent": 27.0,
"barrel_batted_rate": 1.4,
"hard_hit_percent": 13.5,
"avg_best_speed": 70.8001,
"avg_hyper_speed": 90.5802,
"whiff_percent": 36.0,
"swing_percent": 50.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.9158,
"command_and_miss": 1.1614,
"regression_edge": 0.3143,
"xwoba_edge": 2.4286,
"barrel_edge": 1.2667,
"hard_hit_edge": 2.5,
"whiff_edge": 1.5714,
"bb_edge": -0.35,
"pitch_design_score": -0.0068
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605483",
"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": 89.75331649831651,
"release_spin_rate": 2378.2219095719097,
"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": 89.75331649831651,
"release_spin_rate": 2378.2219095719097,
"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.7533,
"release_spin_rate": 2378.2219,
"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.0068,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0487,
"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.6326,
"sample_weight": 0.45,
"run_prevention_factor": 0.9462,
"strikeout_factor": 1.0555,
"walk_factor": 1.0126,
"homer_factor": 0.8766,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605483",
"espn_id": 33748,
"player_name": "Blake Snell",
"team": "LAD",
"role": "pitcher",
"espn_rank": 159,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 159,
"gp_value": 6.0,
"gp_rank": 610,
"gs_value": 6.0,
"gs_rank": 206,
"qs_value": 4.0,
"qs_rank": 125,
"era_value": 1.9687,
"era_rank": null,
"w_value": 3.0,
"w_rank": 244,
"l_value": 1.0,
"l_rank": 427,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 32.0,
"ip_rank": 422,
"h_value": 21.0,
"h_rank": 498,
"er_value": 7.0,
"er_rank": 599,
"hr_value": 0.0,
"hr_rank": 742,
"bb_value": 14.0,
"bb_rank": 400,
"k_value": 43.0,
"k_rank": 333,
"k_per_9_value": 12.09375,
"k_per_9_rank": 21,
"whip_value": 1.0937,
"whip_rank": null,
"war_value": 1.18,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9758,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9758,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0057,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9445,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.025,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 87,
"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": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260911_LAD@MIA.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"
}
} |
| 20260911 | 20260911_LAD@MIA | home | Ryan Gusto | Ryan Gusto | True | 4.1 | 6.0 | 5 | 1 | 2 | 1 | 2/5 | 2/3 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.230414746543779,
"WHIP": 1.4101382488479264,
"IP": 72.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 4.2,
"recent_avg_IP": 4.667,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3403,
"sample_weight": 0.948,
"run_prevention_factor": 1.0289,
"strikeout_factor": 0.9626,
"walk_factor": 0.9545,
"homer_factor": 1.0716,
"regression_flag": "neutral",
"k_percent": 19.3,
"bb_percent": 6.8,
"woba": 0.334,
"xwoba": 0.332,
"barrel_percent": 8.6,
"hard_hit_percent": 43.3,
"whiff_percent": 20.8
},
"espn_rank": {
"rank": 241,
"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": "687473",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 8.0,
"R": 10.0,
"H": 29.0,
"BB": 8.0,
"SO": 19.0,
"HR": 3.0,
"BF": 106.0,
"Pitches": 390.0
},
"per_game": {
"IP": 4.2,
"ER": 1.6,
"R": 2.0,
"H": 5.8,
"BB": 1.6,
"SO": 3.8,
"HR": 0.6,
"BF": 21.2,
"Pitches": 78.0
},
"rates": {
"ERA": 3.0857,
"WHIP": 1.5857,
"ER_per_IP": 0.34286,
"H_per_IP": 1.24286,
"BB_per_IP": 0.34286,
"SO_per_IP": 0.81429,
"HR_per_IP": 0.12857
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.2,
"ER": 18.0,
"R": 20.0,
"H": 48.0,
"BB": 12.0,
"SO": 37.0,
"HR": 6.0,
"BF": 190.0,
"Pitches": 693.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 2.0,
"H": 4.8,
"BB": 1.2,
"SO": 3.7,
"HR": 0.6,
"BF": 19.0,
"Pitches": 69.3
},
"rates": {
"ERA": 3.7099,
"WHIP": 1.374,
"ER_per_IP": 0.41221,
"H_per_IP": 1.09924,
"BB_per_IP": 0.27481,
"SO_per_IP": 0.84733,
"HR_per_IP": 0.1374
}
},
"season": {
"games": 20,
"totals": {
"IP": 72.1,
"ER": 34.0,
"R": 37.0,
"H": 80.0,
"BB": 22.0,
"SO": 62.0,
"HR": 9.0,
"BF": 322.0,
"Pitches": 1178.0
},
"per_game": {
"IP": 3.2,
"ER": 1.7,
"R": 1.85,
"H": 4.0,
"BB": 1.1,
"SO": 3.1,
"HR": 0.45,
"BF": 16.1,
"Pitches": 58.9
},
"rates": {
"ERA": 4.2304,
"WHIP": 1.4101,
"ER_per_IP": 0.47005,
"H_per_IP": 1.10599,
"BB_per_IP": 0.30415,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.12442
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.802,
"predicted_H": 4.897,
"predicted_BB": 1.404,
"predicted_SO": 3.719,
"predicted_HR": 0.583,
"predicted_ERA": 3.7318,
"predicted_WHIP": 1.4497
}
},
"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": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.802,
"final": 1.4535,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.897,
"final": 3.6383,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.404,
"final": 1.663,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.719,
"final": 4.2756,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.583,
"final": 0.7642,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7318,
"final": 3.7318,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4497,
"final": 1.4497,
"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": 48,
"BB": 12,
"SO": 37,
"HR": 6,
"ERA": 3.709923664122137,
"WHIP": 1.3740458015267174,
"K9": 7.6259541984732815,
"HR9": 1.2366412213740456,
"games_pitched": 10,
"quality_starts": 1,
"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-05T00:00:00"
},
"recent_form_boost": 0.9221370596779073,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 5.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": "687473",
"player_name": "Ryan Gusto",
"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": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 1.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": 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": 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.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"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": 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": 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": 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.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"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": 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": "MIA",
"games": 147,
"wins": 72,
"losses": 75,
"win_pct": 0.4898,
"runs_scored": 654.0,
"runs_allowed": 647.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0476,
"avg_runs_scored": 4.449,
"avg_runs_allowed": 4.4014,
"offense_index": 0.9897,
"defense_index": 1.0214,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 6.8,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0728
},
"opponent": {
"team": "LAD",
"games": 146,
"wins": 89,
"losses": 57,
"win_pct": 0.6096,
"runs_scored": 728.0,
"runs_allowed": 559.0,
"run_differential": 169.0,
"run_differential_per_game": 1.1575,
"avg_runs_scored": 4.9863,
"avg_runs_allowed": 3.8288,
"offense_index": 1.1092,
"defense_index": 1.1741,
"current_streak": "W7",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.3,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.3398
},
"edges": {
"quality_edge": -0.4126,
"offense_edge": -0.0103,
"opponent_offense_edge": 0.1092,
"defense_strength": 0.0214,
"opponent_defense_weakness": -0.1741,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.9798,
"run_prevention": 1.036,
"strikeout": 0.9789
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687473",
"profile": {
"available": true,
"pitcher_id": "687473",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 237.0,
"k_percent": 19.3,
"bb_percent": 6.8,
"woba": 0.334,
"xwoba": 0.332,
"sweet_spot_percent": 37.3,
"barrel_batted_rate": 8.6,
"hard_hit_percent": 43.3,
"avg_best_speed": 78.963,
"avg_hyper_speed": 94.1969,
"whiff_percent": 20.8,
"swing_percent": 49.7
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5222,
"command_and_miss": -0.2636,
"regression_edge": 0.0571,
"xwoba_edge": -0.6,
"barrel_edge": -0.3333,
"hard_hit_edge": -0.7714,
"whiff_edge": -0.6,
"bb_edge": 0.6,
"pitch_design_score": -0.0464
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687473",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 65,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 65,
"pitch_usage": 0.0,
"release_speed": 89.04680825756294,
"release_spin_rate": 2247.111446962792,
"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": 65,
"pitch_usage": 0.0,
"release_speed": 89.04680825756294,
"release_spin_rate": 2247.111446962792,
"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.0468,
"release_spin_rate": 2247.1114,
"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.0464,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3313,
"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.3403,
"sample_weight": 0.948,
"run_prevention_factor": 1.0289,
"strikeout_factor": 0.9626,
"walk_factor": 0.9545,
"homer_factor": 1.0716,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687473",
"espn_id": 5131986,
"player_name": "Ryan Gusto",
"team": "MIA",
"role": "pitcher",
"espn_rank": 241,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 241,
"gp_value": 20.0,
"gp_rank": 395,
"gs_value": 15.0,
"gs_rank": 136,
"qs_value": 1.0,
"qs_rank": 177,
"era_value": 4.2304,
"era_rank": null,
"w_value": 1.0,
"w_rank": 412,
"l_value": 4.0,
"l_rank": 186,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 1.0,
"hld_rank": 272,
"ip_value": 72.1,
"ip_rank": 177,
"h_value": 80.0,
"h_rank": 149,
"er_value": 34.0,
"er_rank": 172,
"hr_value": 9.0,
"hr_rank": 176,
"bb_value": 22.0,
"bb_rank": 262,
"k_value": 62.0,
"k_rank": 217,
"k_per_9_value": 7.714286,
"k_per_9_rank": 33,
"whip_value": 1.4101,
"whip_rank": null,
"war_value": 0.58,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0274,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0274,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9569,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0679,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9645,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 17,
"Pitches": 80,
"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/20260911_LAD@MIA.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"
}
} |
| 20260911 | 20260911_NYM@NYY | away | Nolan McLean | Nolan McLean | True | 6.0 | 5.0 | -3 | 2 | 5 | 3 | 5/10 | 4/1 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.061855670103093,
"WHIP": 1.1443298969072166,
"IP": 161.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.774,
"recent_avg_IP": 6.2,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2691,
"sample_weight": 1.0,
"run_prevention_factor": 0.9771,
"strikeout_factor": 1.0217,
"walk_factor": 1.01,
"homer_factor": 0.9595,
"regression_flag": "neutral",
"k_percent": 26.7,
"bb_percent": 9.7,
"woba": 0.284,
"xwoba": 0.295,
"barrel_percent": 6.3,
"hard_hit_percent": 35.7,
"whiff_percent": 24.1
},
"espn_rank": {
"rank": 37,
"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": "690997",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 4.0,
"R": 5.0,
"H": 16.0,
"BB": 17.0,
"SO": 23.0,
"HR": 1.0,
"BF": 123.0,
"Pitches": 478.0
},
"per_game": {
"IP": 6.1,
"ER": 0.8,
"R": 1.0,
"H": 3.2,
"BB": 3.4,
"SO": 4.6,
"HR": 0.2,
"BF": 24.6,
"Pitches": 95.6
},
"rates": {
"ERA": 1.1613,
"WHIP": 1.0645,
"ER_per_IP": 0.12903,
"H_per_IP": 0.51613,
"BB_per_IP": 0.54839,
"SO_per_IP": 0.74194,
"HR_per_IP": 0.03226
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 13.0,
"R": 18.0,
"H": 44.0,
"BB": 28.0,
"SO": 61.0,
"HR": 5.0,
"BF": 249.0,
"Pitches": 958.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.8,
"H": 4.4,
"BB": 2.8,
"SO": 6.1,
"HR": 0.5,
"BF": 24.9,
"Pitches": 95.8
},
"rates": {
"ERA": 1.9392,
"WHIP": 1.1934,
"ER_per_IP": 0.21547,
"H_per_IP": 0.72928,
"BB_per_IP": 0.46409,
"SO_per_IP": 1.01105,
"HR_per_IP": 0.08287
}
},
"season": {
"games": 28,
"totals": {
"IP": 161.2,
"ER": 55.0,
"R": 67.0,
"H": 120.0,
"BB": 65.0,
"SO": 179.0,
"HR": 15.0,
"BF": 671.0,
"Pitches": 2649.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9643,
"R": 2.3929,
"H": 4.2857,
"BB": 2.3214,
"SO": 6.3929,
"HR": 0.5357,
"BF": 23.9643,
"Pitches": 94.6071
},
"rates": {
"ERA": 3.0619,
"WHIP": 1.1443,
"ER_per_IP": 0.34021,
"H_per_IP": 0.74227,
"BB_per_IP": 0.40206,
"SO_per_IP": 1.10722,
"HR_per_IP": 0.09278
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.501,
"predicted_H": 4.17,
"predicted_BB": 2.863,
"predicted_SO": 5.548,
"predicted_HR": 0.455,
"predicted_ERA": 2.2246,
"predicted_WHIP": 1.1584
}
},
"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.501,
"final": 1.7076,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.17,
"final": 4.5136,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.863,
"final": 3.3337,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.548,
"final": 5.7351,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.455,
"final": 0.6806,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2246,
"final": 2.2246,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1584,
"final": 1.1584,
"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": 13,
"H": 44,
"BB": 28,
"SO": 61,
"HR": 5,
"ERA": 1.9392265193370166,
"WHIP": 1.1933701657458564,
"K9": 9.099447513812155,
"HR9": 0.7458563535911603,
"games_pitched": 10,
"quality_starts": 9,
"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-04T00:00:00"
},
"recent_form_boost": 0.7184167399950597,
"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": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 6.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": 5,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690997",
"player_name": "Nolan McLean",
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.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": 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": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.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": 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": 4.0,
"after": 4.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": 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,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 146,
"wins": 68,
"losses": 78,
"win_pct": 0.4658,
"runs_scored": 627.0,
"runs_allowed": 667.0,
"run_differential": -40.0,
"run_differential_per_game": -0.274,
"avg_runs_scored": 4.2945,
"avg_runs_allowed": 4.5685,
"offense_index": 0.9553,
"defense_index": 0.984,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.8,
"avg_runs_allowed": 5.8,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.0074
},
"opponent": {
"team": "NYY",
"games": 146,
"wins": 84,
"losses": 62,
"win_pct": 0.5753,
"runs_scored": 667.0,
"runs_allowed": 536.0,
"run_differential": 131.0,
"run_differential_per_game": 0.8973,
"avg_runs_scored": 4.5685,
"avg_runs_allowed": 3.6712,
"offense_index": 1.0163,
"defense_index": 1.2245,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 3.2,
"run_differential": 29.0
},
"available": true,
"quality_score": 0.2438
},
"edges": {
"quality_edge": -0.2364,
"offense_edge": -0.0447,
"opponent_offense_edge": 0.0163,
"defense_strength": -0.016,
"opponent_defense_weakness": -0.2245,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9894,
"run_prevention": 1.016,
"strikeout": 0.9916
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690997",
"profile": {
"available": true,
"pitcher_id": "690997",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 589.0,
"k_percent": 26.7,
"bb_percent": 9.7,
"woba": 0.284,
"xwoba": 0.295,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 35.7,
"avg_best_speed": 76.3446,
"avg_hyper_speed": 93.5899,
"whiff_percent": 24.1,
"swing_percent": 43.9
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4195,
"command_and_miss": 0.2321,
"regression_edge": -0.3143,
"xwoba_edge": 0.4571,
"barrel_edge": 0.1778,
"hard_hit_edge": 0.3143,
"whiff_edge": -0.1286,
"bb_edge": -0.125,
"pitch_design_score": 0.0652
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "690997",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 91.0400530003611,
"release_spin_rate": 2502.730639559779,
"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": 94,
"pitch_usage": 0.0,
"release_speed": 91.0400530003611,
"release_spin_rate": 2502.730639559779,
"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.0401,
"release_spin_rate": 2502.7306,
"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.0652,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.466,
"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.2691,
"sample_weight": 1.0,
"run_prevention_factor": 0.9771,
"strikeout_factor": 1.0217,
"walk_factor": 1.01,
"homer_factor": 0.9595,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "690997",
"espn_id": 4433874,
"player_name": "Nolan McLean",
"team": "NYM",
"role": "pitcher",
"espn_rank": 37,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 37,
"gp_value": 28.0,
"gp_rank": 262,
"gs_value": 28.0,
"gs_rank": 25,
"qs_value": 18.0,
"qs_rank": 5,
"era_value": 3.0618,
"era_rank": 15.0,
"w_value": 11.0,
"w_rank": 23,
"l_value": 8.0,
"l_rank": 60,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 161.2,
"ip_rank": 20,
"h_value": 120.0,
"h_rank": 77,
"er_value": 55.0,
"er_rank": 90,
"hr_value": 15.0,
"hr_rank": 91,
"bb_value": 65.0,
"bb_rank": 11,
"k_value": 179.0,
"k_rank": 14,
"k_per_9_value": 9.964949,
"k_per_9_rank": 18,
"whip_value": 1.1443,
"whip_rank": 20.0,
"war_value": 2.94,
"war_rank": 25.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9771,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9771,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.01,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9595,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0217,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 119,
"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 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"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/20260911_NYM@NYY.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"
}
} |
| 20260911 | 20260911_NYM@NYY | home | Carlos Rodón | Carlos Rodón | True | 5.2 | 6.1 | 2 | 2 | 1 | -1 | 6/3 | 0/1 | 5/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.09375,
"WHIP": 1.171875,
"IP": 64.0,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 4.923,
"recent_avg_IP": 4.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.062,
"sample_weight": 0.84,
"run_prevention_factor": 0.9947,
"strikeout_factor": 1.036,
"walk_factor": 1.0588,
"homer_factor": 0.9956,
"regression_flag": "negative_pitcher_regression",
"k_percent": 26.2,
"bb_percent": 12.7,
"woba": 0.274,
"xwoba": 0.305,
"barrel_percent": 6.9,
"hard_hit_percent": 38.5,
"whiff_percent": 28.3
},
"espn_rank": {
"rank": 162,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 64.0,
"season_ERA": 3.094,
"season_WHIP": 1.172,
"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": "607074",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 5.0,
"R": 8.0,
"H": 10.0,
"BB": 12.0,
"SO": 24.0,
"HR": 3.0,
"BF": 94.0,
"Pitches": 415.0
},
"per_game": {
"IP": 4.2,
"ER": 1.0,
"R": 1.6,
"H": 2.0,
"BB": 2.4,
"SO": 4.8,
"HR": 0.6,
"BF": 18.8,
"Pitches": 83.0
},
"rates": {
"ERA": 1.9853,
"WHIP": 0.9706,
"ER_per_IP": 0.22059,
"H_per_IP": 0.44118,
"BB_per_IP": 0.52941,
"SO_per_IP": 1.05882,
"HR_per_IP": 0.13235
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 16.0,
"R": 19.0,
"H": 33.0,
"BB": 23.0,
"SO": 53.0,
"HR": 6.0,
"BF": 208.0,
"Pitches": 886.0
},
"per_game": {
"IP": 5.0,
"ER": 1.6,
"R": 1.9,
"H": 3.3,
"BB": 2.3,
"SO": 5.3,
"HR": 0.6,
"BF": 20.8,
"Pitches": 88.6
},
"rates": {
"ERA": 2.8235,
"WHIP": 1.098,
"ER_per_IP": 0.31373,
"H_per_IP": 0.64706,
"BB_per_IP": 0.45098,
"SO_per_IP": 1.03922,
"HR_per_IP": 0.11765
}
},
"season": {
"games": 13,
"totals": {
"IP": 64.0,
"ER": 22.0,
"R": 26.0,
"H": 41.0,
"BB": 34.0,
"SO": 70.0,
"HR": 6.0,
"BF": 267.0,
"Pitches": 1147.0
},
"per_game": {
"IP": 5.0,
"ER": 1.6923,
"R": 2.0,
"H": 3.1538,
"BB": 2.6154,
"SO": 5.3846,
"HR": 0.4615,
"BF": 20.5385,
"Pitches": 88.2308
},
"rates": {
"ERA": 3.0938,
"WHIP": 1.1719,
"ER_per_IP": 0.34375,
"H_per_IP": 0.64062,
"BB_per_IP": 0.53125,
"SO_per_IP": 1.09375,
"HR_per_IP": 0.09375
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.728,
"predicted_H": 3.399,
"predicted_BB": 2.364,
"predicted_SO": 5.209,
"predicted_HR": 0.645,
"predicted_ERA": 3.0632,
"predicted_WHIP": 1.1352
}
},
"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.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.728,
"final": 1.8551,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.399,
"final": 4.6146,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.364,
"final": 1.2591,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.209,
"final": 5.1113,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.645,
"final": 0.8109,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0632,
"final": 3.0632,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1352,
"final": 1.1352,
"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.0,
"ER": 16,
"H": 33,
"BB": 23,
"SO": 53,
"HR": 6,
"ERA": 2.823529411764706,
"WHIP": 1.0980392156862746,
"K9": 9.352941176470589,
"HR9": 1.0588235294117647,
"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-05T00:00:00"
},
"recent_form_boost": 0.8155175416416852,
"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": 0.0,
"predicted_SO": 5.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": "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": 6,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607074",
"player_name": "Carlos Rod\u00f3n",
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"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": "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": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 5.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": 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": 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.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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 5.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": 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.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": 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": 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": 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.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": 146,
"wins": 84,
"losses": 62,
"win_pct": 0.5753,
"runs_scored": 667.0,
"runs_allowed": 536.0,
"run_differential": 131.0,
"run_differential_per_game": 0.8973,
"avg_runs_scored": 4.5685,
"avg_runs_allowed": 3.6712,
"offense_index": 1.0163,
"defense_index": 1.2245,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 3.2,
"run_differential": 29.0
},
"available": true,
"quality_score": 0.2438
},
"opponent": {
"team": "NYM",
"games": 146,
"wins": 68,
"losses": 78,
"win_pct": 0.4658,
"runs_scored": 627.0,
"runs_allowed": 667.0,
"run_differential": -40.0,
"run_differential_per_game": -0.274,
"avg_runs_scored": 4.2945,
"avg_runs_allowed": 4.5685,
"offense_index": 0.9553,
"defense_index": 0.984,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.8,
"avg_runs_allowed": 5.8,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.0074
},
"edges": {
"quality_edge": 0.2364,
"offense_edge": 0.0163,
"opponent_offense_edge": -0.0447,
"defense_strength": 0.2245,
"opponent_defense_weakness": 0.016,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.018,
"run_prevention": 0.9586,
"strikeout": 1.0107
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607074",
"profile": {
"available": true,
"pitcher_id": "607074",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 210.0,
"k_percent": 26.2,
"bb_percent": 12.7,
"woba": 0.274,
"xwoba": 0.305,
"sweet_spot_percent": 36.0,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 38.5,
"avg_best_speed": 80.3575,
"avg_hyper_speed": 94.0711,
"whiff_percent": 28.3,
"swing_percent": 48.1
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1632,
"command_and_miss": 0.26,
"regression_edge": -0.8857,
"xwoba_edge": 0.1714,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.0857,
"whiff_edge": 0.4714,
"bb_edge": -0.875,
"pitch_design_score": 0.0425
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607074",
"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": 90.63452766848432,
"release_spin_rate": 2322.88227271101,
"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": 90.63452766848432,
"release_spin_rate": 2322.88227271101,
"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.6345,
"release_spin_rate": 2322.8823,
"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.0425,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3038,
"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.062,
"sample_weight": 0.84,
"run_prevention_factor": 0.9947,
"strikeout_factor": 1.036,
"walk_factor": 1.0588,
"homer_factor": 0.9956,
"woba_minus_xwoba": -0.031,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "607074",
"espn_id": 33696,
"player_name": "Carlos Rodon",
"team": "NYY",
"role": "pitcher",
"espn_rank": 162,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 162,
"gp_value": 13.0,
"gp_rank": 484,
"gs_value": 13.0,
"gs_rank": 154,
"qs_value": 3.0,
"qs_rank": 140,
"era_value": 3.0937,
"era_rank": null,
"w_value": 5.0,
"w_rank": 146,
"l_value": 3.0,
"l_rank": 241,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 64.0,
"ip_rank": 209,
"h_value": 41.0,
"h_rank": 315,
"er_value": 22.0,
"er_rank": 291,
"hr_value": 6.0,
"hr_rank": 271,
"bb_value": 34.0,
"bb_rank": 130,
"k_value": 70.0,
"k_rank": 180,
"k_per_9_value": 9.84375,
"k_per_9_rank": 23,
"whip_value": 1.1718,
"whip_rank": null,
"war_value": 1.17,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9955,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 0.9955,
"adjusted": 2
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0494,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9963,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0302,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"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/20260911_NYM@NYY.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"
}
} |
| 20260911 | 20260911_PHI@ATL | away | Aaron Nola | Aaron Nola | True | 5.2 | 6.1 | 2 | 4 | 2 | -2 | 9/6 | 1/3 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.7612903225806456,
"WHIP": 1.367741935483871,
"IP": 155.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.345,
"recent_avg_IP": 6.0,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0826,
"sample_weight": 1.0,
"run_prevention_factor": 0.993,
"strikeout_factor": 1.0286,
"walk_factor": 0.972,
"homer_factor": 1.0482,
"regression_flag": "positive_pitcher_regression",
"k_percent": 24.4,
"bb_percent": 7.8,
"woba": 0.345,
"xwoba": 0.307,
"barrel_percent": 9.2,
"hard_hit_percent": 40.4,
"whiff_percent": 27.6
},
"espn_rank": {
"rank": 57,
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605400",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 6.0,
"R": 6.0,
"H": 22.0,
"BB": 9.0,
"SO": 33.0,
"HR": 3.0,
"BF": 119.0,
"Pitches": 486.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2,
"R": 1.2,
"H": 4.4,
"BB": 1.8,
"SO": 6.6,
"HR": 0.6,
"BF": 23.8,
"Pitches": 97.2
},
"rates": {
"ERA": 1.8,
"WHIP": 1.0333,
"ER_per_IP": 0.2,
"H_per_IP": 0.73333,
"BB_per_IP": 0.3,
"SO_per_IP": 1.1,
"HR_per_IP": 0.1
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 20.0,
"R": 20.0,
"H": 52.0,
"BB": 21.0,
"SO": 60.0,
"HR": 12.0,
"BF": 238.0,
"Pitches": 955.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 5.2,
"BB": 2.1,
"SO": 6.0,
"HR": 1.2,
"BF": 23.8,
"Pitches": 95.5
},
"rates": {
"ERA": 3.1034,
"WHIP": 1.2586,
"ER_per_IP": 0.34483,
"H_per_IP": 0.89655,
"BB_per_IP": 0.36207,
"SO_per_IP": 1.03448,
"HR_per_IP": 0.2069
}
},
"season": {
"games": 29,
"totals": {
"IP": 155.0,
"ER": 82.0,
"R": 84.0,
"H": 160.0,
"BB": 52.0,
"SO": 162.0,
"HR": 32.0,
"BF": 663.0,
"Pitches": 2655.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8276,
"R": 2.8966,
"H": 5.5172,
"BB": 1.7931,
"SO": 5.5862,
"HR": 1.1034,
"BF": 22.8621,
"Pitches": 91.5517
},
"rates": {
"ERA": 4.7613,
"WHIP": 1.3677,
"ER_per_IP": 0.52903,
"H_per_IP": 1.03226,
"BB_per_IP": 0.33548,
"SO_per_IP": 1.04516,
"HR_per_IP": 0.20645
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.973,
"predicted_H": 4.981,
"predicted_BB": 1.922,
"predicted_SO": 6.011,
"predicted_HR": 0.901,
"predicted_ERA": 3.0953,
"predicted_WHIP": 1.2031
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.973,
"final": 2.8084,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 4.981,
"final": 6.6374,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.922,
"final": 1.542,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.011,
"final": 4.77,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.901,
"final": 0.5297,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0953,
"final": 3.0953,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2031,
"final": 1.2031,
"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": 20,
"H": 52,
"BB": 21,
"SO": 60,
"HR": 12,
"ERA": 3.1034482758620685,
"WHIP": 1.2586206896551722,
"K9": 9.310344827586206,
"HR9": 1.862068965517241,
"games_pitched": 10,
"quality_starts": 5,
"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-06T00:00:00"
},
"recent_form_boost": 0.851022950701861,
"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": 9.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605400",
"player_name": "Aaron Nola",
"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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 9.0,
"predicted_HR": 0.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 3.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.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": 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.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": 1.0,
"after": 1.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": 9.0,
"after": 9.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": 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.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": "PHI",
"games": 147,
"wins": 82,
"losses": 65,
"win_pct": 0.5578,
"runs_scored": 659.0,
"runs_allowed": 622.0,
"run_differential": 37.0,
"run_differential_per_game": 0.2517,
"avg_runs_scored": 4.483,
"avg_runs_allowed": 4.2313,
"offense_index": 0.9972,
"defense_index": 1.0624,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.0,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.0799
},
"opponent": {
"team": "ATL",
"games": 147,
"wins": 86,
"losses": 61,
"win_pct": 0.585,
"runs_scored": 671.0,
"runs_allowed": 561.0,
"run_differential": 110.0,
"run_differential_per_game": 0.7483,
"avg_runs_scored": 4.5646,
"avg_runs_allowed": 3.8163,
"offense_index": 1.0154,
"defense_index": 1.1779,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.2,
"run_differential": -7.0
},
"available": true,
"quality_score": 0.1288
},
"edges": {
"quality_edge": -0.0489,
"offense_edge": -0.0028,
"opponent_offense_edge": 0.0154,
"defense_strength": 0.0624,
"opponent_defense_weakness": -0.1779,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9993,
"run_prevention": 0.9987,
"strikeout": 0.9973
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605400",
"profile": {
"available": true,
"pitcher_id": "605400",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 566.0,
"k_percent": 24.4,
"bb_percent": 7.8,
"woba": 0.345,
"xwoba": 0.307,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 40.4,
"avg_best_speed": 76.9166,
"avg_hyper_speed": 94.2811,
"whiff_percent": 27.6,
"swing_percent": 46.1
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1792,
"command_and_miss": 0.3543,
"regression_edge": 1.0857,
"xwoba_edge": 0.1143,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.3571,
"whiff_edge": 0.3714,
"bb_edge": 0.35,
"pitch_design_score": -0.221
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605400",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 98,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 85.92905472584206,
"release_spin_rate": 2292.2152889944855,
"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": 98,
"pitch_usage": 0.0,
"release_speed": 85.92905472584206,
"release_spin_rate": 2292.2152889944855,
"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.9291,
"release_spin_rate": 2292.2153,
"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.221,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5784,
"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.0826,
"sample_weight": 1.0,
"run_prevention_factor": 0.993,
"strikeout_factor": 1.0286,
"walk_factor": 0.972,
"homer_factor": 1.0482,
"woba_minus_xwoba": 0.038,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "605400",
"espn_id": 33709,
"player_name": "Aaron Nola",
"team": "PHI",
"role": "pitcher",
"espn_rank": 57,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 57,
"gp_value": 29.0,
"gp_rank": 237,
"gs_value": 29.0,
"gs_rank": 9,
"qs_value": 10.0,
"qs_rank": 58,
"era_value": 4.7612,
"era_rank": 47.0,
"w_value": 6.0,
"w_rank": 104,
"l_value": 10.0,
"l_rank": 18,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 155.0,
"ip_rank": 34,
"h_value": 160.0,
"h_rank": 9,
"er_value": 82.0,
"er_rank": 9,
"hr_value": 32.0,
"hr_rank": 3,
"bb_value": 52.0,
"bb_rank": 32,
"k_value": 162.0,
"k_rank": 24,
"k_per_9_value": 9.406452,
"k_per_9_rank": 19,
"whip_value": 1.3677,
"whip_rank": 46.0,
"war_value": 2.43,
"war_rank": 29.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.993,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.993,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.972,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0482,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0286,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 9,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 102,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
},
{
"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/20260911_PHI@ATL.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"
}
} |
| 20260911 | 20260911_PHI@ATL | home | Chris Sale | Chris Sale | True | 6.1 | 7.0 | 2 | 2 | 3 | 1 | 7/3 | 0/2 | 8/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.1,
"WHIP": 1.0066666666666666,
"IP": 150.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 6.0,
"recent_avg_IP": 6.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6593,
"sample_weight": 1.0,
"run_prevention_factor": 0.944,
"strikeout_factor": 1.0783,
"walk_factor": 0.912,
"homer_factor": 0.9298,
"regression_flag": "neutral",
"k_percent": 30.6,
"bb_percent": 4.8,
"woba": 0.262,
"xwoba": 0.272,
"barrel_percent": 5.9,
"hard_hit_percent": 35.2,
"whiff_percent": 30.1
},
"espn_rank": {
"rank": 6,
"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": "519242",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 8.0,
"R": 8.0,
"H": 29.0,
"BB": 3.0,
"SO": 41.0,
"HR": 1.0,
"BF": 130.0,
"Pitches": 517.0
},
"per_game": {
"IP": 6.2,
"ER": 1.6,
"R": 1.6,
"H": 5.8,
"BB": 0.6,
"SO": 8.2,
"HR": 0.2,
"BF": 26.0,
"Pitches": 103.4
},
"rates": {
"ERA": 2.1818,
"WHIP": 0.9697,
"ER_per_IP": 0.24242,
"H_per_IP": 0.87879,
"BB_per_IP": 0.09091,
"SO_per_IP": 1.24242,
"HR_per_IP": 0.0303
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 14.0,
"R": 14.0,
"H": 47.0,
"BB": 7.0,
"SO": 75.0,
"HR": 3.0,
"BF": 233.0,
"Pitches": 939.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 4.7,
"BB": 0.7,
"SO": 7.5,
"HR": 0.3,
"BF": 23.3,
"Pitches": 93.9
},
"rates": {
"ERA": 2.1,
"WHIP": 0.9,
"ER_per_IP": 0.23333,
"H_per_IP": 0.78333,
"BB_per_IP": 0.11667,
"SO_per_IP": 1.25,
"HR_per_IP": 0.05
}
},
"season": {
"games": 25,
"totals": {
"IP": 150.0,
"ER": 35.0,
"R": 40.0,
"H": 122.0,
"BB": 29.0,
"SO": 184.0,
"HR": 9.0,
"BF": 601.0,
"Pitches": 2383.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.6,
"H": 4.88,
"BB": 1.16,
"SO": 7.36,
"HR": 0.36,
"BF": 24.04,
"Pitches": 95.32
},
"rates": {
"ERA": 2.1,
"WHIP": 1.0067,
"ER_per_IP": 0.23333,
"H_per_IP": 0.81333,
"BB_per_IP": 0.19333,
"SO_per_IP": 1.22667,
"HR_per_IP": 0.06
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.776,
"predicted_H": 5.395,
"predicted_BB": 1.022,
"predicted_SO": 7.514,
"predicted_HR": 0.381,
"predicted_ERA": 2.5351,
"predicted_WHIP": 1.0177
}
},
"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.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.776,
"final": 2.2906,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.395,
"final": 6.4902,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.022,
"final": 0.5923,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 7.514,
"final": 7.7183,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.381,
"final": 0.2208,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5351,
"final": 2.5351,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0177,
"final": 1.0177,
"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": 7,
"SO": 75,
"HR": 3,
"ERA": 2.1,
"WHIP": 0.9,
"K9": 11.25,
"HR9": 0.45,
"games_pitched": 10,
"quality_starts": 8,
"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-04T00:00:00"
},
"recent_form_boost": 0.729169502425999,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_BB": 0.0,
"predicted_SO": 8.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
}
},
{
"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.1,
"predicted_ER": 2,
"predicted_H": 8,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "519242",
"player_name": "Chris Sale",
"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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 8.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": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 8.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": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 2.0,
"predicted_SO": 8.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": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"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": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.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_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": "ATL",
"games": 147,
"wins": 86,
"losses": 61,
"win_pct": 0.585,
"runs_scored": 671.0,
"runs_allowed": 561.0,
"run_differential": 110.0,
"run_differential_per_game": 0.7483,
"avg_runs_scored": 4.5646,
"avg_runs_allowed": 3.8163,
"offense_index": 1.0154,
"defense_index": 1.1779,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.2,
"run_differential": -7.0
},
"available": true,
"quality_score": 0.1288
},
"opponent": {
"team": "PHI",
"games": 147,
"wins": 82,
"losses": 65,
"win_pct": 0.5578,
"runs_scored": 659.0,
"runs_allowed": 622.0,
"run_differential": 37.0,
"run_differential_per_game": 0.2517,
"avg_runs_scored": 4.483,
"avg_runs_allowed": 4.2313,
"offense_index": 0.9972,
"defense_index": 1.0624,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.0,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.0799
},
"edges": {
"quality_edge": 0.0489,
"offense_edge": 0.0154,
"opponent_offense_edge": -0.0028,
"defense_strength": 0.1779,
"opponent_defense_weakness": -0.0624,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0074,
"run_prevention": 0.9793,
"strikeout": 1.0017
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "519242",
"profile": {
"available": true,
"pitcher_id": "519242",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 491.0,
"k_percent": 30.6,
"bb_percent": 4.8,
"woba": 0.262,
"xwoba": 0.272,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 35.2,
"avg_best_speed": 77.0599,
"avg_hyper_speed": 93.4937,
"whiff_percent": 30.1,
"swing_percent": 50.6
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7607,
"command_and_miss": 1.0279,
"regression_edge": -0.2857,
"xwoba_edge": 1.1143,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.3857,
"whiff_edge": 0.7286,
"bb_edge": 1.1,
"pitch_design_score": -0.0673
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "519242",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 101,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 101,
"pitch_usage": 0.0,
"release_speed": 88.67399153905109,
"release_spin_rate": 2344.7057974290524,
"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": 101,
"pitch_usage": 0.0,
"release_speed": 88.67399153905109,
"release_spin_rate": 2344.7057974290524,
"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.674,
"release_spin_rate": 2344.7058,
"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.0673,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4805,
"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.6593,
"sample_weight": 1.0,
"run_prevention_factor": 0.944,
"strikeout_factor": 1.0783,
"walk_factor": 0.912,
"homer_factor": 0.9298,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "519242",
"espn_id": 30948,
"player_name": "Chris Sale",
"team": "ATL",
"role": "pitcher",
"espn_rank": 6,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 6,
"gp_value": 25.0,
"gp_rank": 324,
"gs_value": 25.0,
"gs_rank": 63,
"qs_value": 18.0,
"qs_rank": 5,
"era_value": 2.1,
"era_rank": 3.0,
"w_value": 14.0,
"w_rank": 6,
"l_value": 9.0,
"l_rank": 32,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 150.0,
"ip_rank": 45,
"h_value": 122.0,
"h_rank": 73,
"er_value": 35.0,
"er_rank": 166,
"hr_value": 9.0,
"hr_rank": 176,
"bb_value": 29.0,
"bb_rank": 177,
"k_value": 184.0,
"k_rank": 11,
"k_per_9_value": 11.04,
"k_per_9_rank": 6,
"whip_value": 1.0066,
"whip_rank": 5.0,
"war_value": 5.42,
"war_rank": 6.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.944,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.944,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.912,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9298,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0783,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 7,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 0,
"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 +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260911_PHI@ATL.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"
}
} |
| 20260911 | 20260911_PIT@CHC | away | Wilber Dotel | Wilber Dotel | True | 5.0 | 2.0 | -9 | 2 | 3 | 1 | 4/4 | 2/0 | 7/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.7551020408163267,
"WHIP": 1.1326530612244898,
"IP": 32.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 3.2,
"recent_avg_IP": 3.2,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0854,
"sample_weight": 0.484,
"run_prevention_factor": 0.9927,
"strikeout_factor": 1.0086,
"walk_factor": 1.0087,
"homer_factor": 0.9867,
"regression_flag": "neutral",
"k_percent": 24.6,
"bb_percent": 10.1,
"woba": 0.287,
"xwoba": 0.299,
"barrel_percent": 3.3,
"hard_hit_percent": 46.7,
"whiff_percent": 25.5
},
"espn_rank": {
"rank": 316,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 32.2,
"season_ERA": 2.755,
"season_WHIP": 1.133,
"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": 6.591,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5686,
"prior_weight": 0.4314
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696062",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.1,
"ER": 4.0,
"R": 5.0,
"H": 8.0,
"BB": 4.0,
"SO": 9.0,
"HR": 0.0,
"BF": 36.0,
"Pitches": 147.0
},
"per_game": {
"IP": 1.2,
"ER": 0.8,
"R": 1.0,
"H": 1.6,
"BB": 0.8,
"SO": 1.8,
"HR": 0.0,
"BF": 7.2,
"Pitches": 29.4
},
"rates": {
"ERA": 4.32,
"WHIP": 1.44,
"ER_per_IP": 0.48,
"H_per_IP": 0.96,
"BB_per_IP": 0.48,
"SO_per_IP": 1.08,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 19.0,
"ER": 8.0,
"R": 10.0,
"H": 17.0,
"BB": 10.0,
"SO": 20.0,
"HR": 0.0,
"BF": 81.0,
"Pitches": 322.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8,
"R": 1.0,
"H": 1.7,
"BB": 1.0,
"SO": 2.0,
"HR": 0.0,
"BF": 8.1,
"Pitches": 32.2
},
"rates": {
"ERA": 3.7895,
"WHIP": 1.4211,
"ER_per_IP": 0.42105,
"H_per_IP": 0.89474,
"BB_per_IP": 0.52632,
"SO_per_IP": 1.05263,
"HR_per_IP": 0.0
}
},
"season": {
"games": 16,
"totals": {
"IP": 32.2,
"ER": 10.0,
"R": 12.0,
"H": 24.0,
"BB": 13.0,
"SO": 34.0,
"HR": 1.0,
"BF": 132.0,
"Pitches": 520.0
},
"per_game": {
"IP": 2.0,
"ER": 0.625,
"R": 0.75,
"H": 1.5,
"BB": 0.8125,
"SO": 2.125,
"HR": 0.0625,
"BF": 8.25,
"Pitches": 32.5
},
"rates": {
"ERA": 2.7551,
"WHIP": 1.1327,
"ER_per_IP": 0.30612,
"H_per_IP": 0.73469,
"BB_per_IP": 0.39796,
"SO_per_IP": 1.04082,
"HR_per_IP": 0.03061
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.471,
"predicted_H": 2.973,
"predicted_BB": 1.388,
"predicted_SO": 3.241,
"predicted_HR": 0.214,
"predicted_ERA": 4.1255,
"predicted_WHIP": 1.3592
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5323,
"form_weight": 0.4677,
"form_reliability": 0.5686,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.591,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5686,
"prior_weight": 0.4314
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.471,
"final": 1.2203,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.973,
"final": 3.5196,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.388,
"final": 1.7137,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.241,
"final": 4.7095,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.214,
"final": 0.1001,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1255,
"final": 4.1255,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3592,
"final": 1.3592,
"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": 16.0,
"ER": 8,
"H": 17,
"BB": 8,
"SO": 17,
"HR": 0,
"ERA": 4.5,
"WHIP": 1.5625,
"K9": 9.5625,
"HR9": 0.0,
"games_pitched": 9,
"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-08T00:00:00"
},
"recent_form_boost": 1.0082581614219643,
"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": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.591,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5686,
"prior_weight": 0.4314
}
},
{
"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": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696062",
"player_name": "Wilber Dotel",
"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": 1.0,
"predicted_H": 4.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": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.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": 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": 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": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.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": 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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": "PIT",
"games": 147,
"wins": 74,
"losses": 73,
"win_pct": 0.5034,
"runs_scored": 709.0,
"runs_allowed": 673.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2449,
"avg_runs_scored": 4.8231,
"avg_runs_allowed": 4.5782,
"offense_index": 1.0721,
"defense_index": 0.9827,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.4,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.1378
},
"opponent": {
"team": "CHC",
"games": 147,
"wins": 81,
"losses": 66,
"win_pct": 0.551,
"runs_scored": 780.0,
"runs_allowed": 652.0,
"run_differential": 128.0,
"run_differential_per_game": 0.8707,
"avg_runs_scored": 5.3061,
"avg_runs_allowed": 4.4354,
"offense_index": 1.1794,
"defense_index": 1.0143,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 5.4,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1148
},
"edges": {
"quality_edge": 0.023,
"offense_edge": 0.0721,
"opponent_offense_edge": 0.1794,
"defense_strength": -0.0173,
"opponent_defense_weakness": -0.0143,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 0.9932,
"run_prevention": 1.0293,
"strikeout": 0.9863
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696062",
"profile": {
"available": true,
"pitcher_id": "696062",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 121.0,
"k_percent": 24.6,
"bb_percent": 10.1,
"woba": 0.287,
"xwoba": 0.299,
"sweet_spot_percent": 28.9,
"barrel_batted_rate": 3.3,
"hard_hit_percent": 46.7,
"avg_best_speed": 80.4858,
"avg_hyper_speed": 94.6822,
"whiff_percent": 25.5,
"swing_percent": 47.9
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2759,
"command_and_miss": 0.1471,
"regression_edge": -0.3429,
"xwoba_edge": 0.3429,
"barrel_edge": 0.8444,
"hard_hit_edge": -1.2571,
"whiff_edge": 0.0714,
"bb_edge": -0.225,
"pitch_design_score": 0.2234
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696062",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 27,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 27,
"pitch_usage": 0.0,
"release_speed": 93.864261510291,
"release_spin_rate": 2209.7938725723698,
"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": 27,
"pitch_usage": 0.0,
"release_speed": 93.864261510291,
"release_spin_rate": 2209.7938725723698,
"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": 93.8643,
"release_spin_rate": 2209.7939,
"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.2234,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.5957,
"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.0854,
"sample_weight": 0.484,
"run_prevention_factor": 0.9927,
"strikeout_factor": 1.0086,
"walk_factor": 1.0087,
"homer_factor": 0.9867,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "696062",
"espn_id": 5332991,
"player_name": "Wilber Dotel",
"team": "PIT",
"role": "pitcher",
"espn_rank": 316,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 316,
"gp_value": 17.0,
"gp_rank": 434,
"gs_value": 0.0,
"gs_rank": 365,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 4.4081,
"era_rank": null,
"w_value": 1.0,
"w_rank": 412,
"l_value": 4.0,
"l_rank": 186,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 3.0,
"hld_rank": 209,
"ip_value": 32.2,
"ip_rank": 417,
"h_value": 29.0,
"h_rank": 423,
"er_value": 16.0,
"er_rank": 401,
"hr_value": 2.0,
"hr_rank": 525,
"bb_value": 14.0,
"bb_rank": 400,
"k_value": 34.0,
"k_rank": 390,
"k_per_9_value": 9.367347,
"k_per_9_rank": 25,
"whip_value": 1.3163,
"whip_rank": null,
"war_value": 0.28,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9965,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9965,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 1.0042,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9936,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0042,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 95,
"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 -9 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260911_PIT@CHC.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"
}
} |
| 20260911 | 20260911_PIT@CHC | home | Shota Imanaga | Shota Imanaga | True | 5.1 | 6.0 | 2 | 2 | 2 | 0 | 6/5 | 2/2 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9147121535181233,
"WHIP": 1.1194029850746268,
"IP": 156.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.583,
"recent_avg_IP": 4.733,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1733,
"sample_weight": 1.0,
"run_prevention_factor": 0.9853,
"strikeout_factor": 1.0377,
"walk_factor": 0.926,
"homer_factor": 1.0317,
"regression_flag": "neutral",
"k_percent": 23.9,
"bb_percent": 5.5,
"woba": 0.314,
"xwoba": 0.302,
"barrel_percent": 9.7,
"hard_hit_percent": 36.7,
"whiff_percent": 29.7
},
"espn_rank": {
"rank": 122,
"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": "684007",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 15.0,
"R": 16.0,
"H": 24.0,
"BB": 6.0,
"SO": 27.0,
"HR": 8.0,
"BF": 104.0,
"Pitches": 433.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.2,
"H": 4.8,
"BB": 1.2,
"SO": 5.4,
"HR": 1.6,
"BF": 20.8,
"Pitches": 86.6
},
"rates": {
"ERA": 5.7042,
"WHIP": 1.2676,
"ER_per_IP": 0.6338,
"H_per_IP": 1.01408,
"BB_per_IP": 0.25352,
"SO_per_IP": 1.14085,
"HR_per_IP": 0.33803
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 19.0,
"R": 20.0,
"H": 53.0,
"BB": 9.0,
"SO": 52.0,
"HR": 12.0,
"BF": 222.0,
"Pitches": 908.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9,
"R": 2.0,
"H": 5.3,
"BB": 0.9,
"SO": 5.2,
"HR": 1.2,
"BF": 22.2,
"Pitches": 90.8
},
"rates": {
"ERA": 3.2062,
"WHIP": 1.1625,
"ER_per_IP": 0.35625,
"H_per_IP": 0.99375,
"BB_per_IP": 0.16875,
"SO_per_IP": 0.975,
"HR_per_IP": 0.225
}
},
"season": {
"games": 28,
"totals": {
"IP": 156.1,
"ER": 68.0,
"R": 70.0,
"H": 140.0,
"BB": 35.0,
"SO": 152.0,
"HR": 33.0,
"BF": 637.0,
"Pitches": 2507.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4286,
"R": 2.5,
"H": 5.0,
"BB": 1.25,
"SO": 5.4286,
"HR": 1.1786,
"BF": 22.75,
"Pitches": 89.5357
},
"rates": {
"ERA": 3.9147,
"WHIP": 1.1194,
"ER_per_IP": 0.43497,
"H_per_IP": 0.89552,
"BB_per_IP": 0.22388,
"SO_per_IP": 0.97228,
"HR_per_IP": 0.21109
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.556,
"predicted_H": 5.041,
"predicted_BB": 1.238,
"predicted_SO": 5.303,
"predicted_HR": 1.304,
"predicted_ERA": 4.4802,
"predicted_WHIP": 1.2226
}
},
"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.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.556,
"final": 2.3258,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.041,
"final": 5.438,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.238,
"final": 1.5535,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.303,
"final": 5.1776,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.304,
"final": 0.7641,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4802,
"final": 4.4802,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2226,
"final": 1.2226,
"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.1,
"ER": 19,
"H": 53,
"BB": 9,
"SO": 52,
"HR": 12,
"ERA": 3.20625,
"WHIP": 1.1624999999999999,
"K9": 8.775,
"HR9": 2.025,
"games_pitched": 10,
"quality_starts": 5,
"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-04T00:00:00"
},
"recent_form_boost": 0.8601851274259988,
"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": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 5.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": "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.1,
"predicted_ER": 2,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "684007",
"player_name": "Shota Imanaga",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.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": "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": 0.0,
"predicted_IP": 5.1,
"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": 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": 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": {}
},
{
"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": 0.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": 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": 5.1,
"after": 5.1,
"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": 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": 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": 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": "CHC",
"games": 147,
"wins": 81,
"losses": 66,
"win_pct": 0.551,
"runs_scored": 780.0,
"runs_allowed": 652.0,
"run_differential": 128.0,
"run_differential_per_game": 0.8707,
"avg_runs_scored": 5.3061,
"avg_runs_allowed": 4.4354,
"offense_index": 1.1794,
"defense_index": 1.0143,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 5.4,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1148
},
"opponent": {
"team": "PIT",
"games": 147,
"wins": 74,
"losses": 73,
"win_pct": 0.5034,
"runs_scored": 709.0,
"runs_allowed": 673.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2449,
"avg_runs_scored": 4.8231,
"avg_runs_allowed": 4.5782,
"offense_index": 1.0721,
"defense_index": 0.9827,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.4,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.1378
},
"edges": {
"quality_edge": -0.023,
"offense_edge": 0.1794,
"opponent_offense_edge": 0.0721,
"defense_strength": 0.0143,
"opponent_defense_weakness": 0.0173,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9966,
"run_prevention": 1.0113,
"strikeout": 0.9935
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "684007",
"profile": {
"available": true,
"pitcher_id": "684007",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 577.0,
"k_percent": 23.9,
"bb_percent": 5.5,
"woba": 0.314,
"xwoba": 0.302,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 36.7,
"avg_best_speed": 78.0992,
"avg_hyper_speed": 93.8357,
"whiff_percent": 29.7,
"swing_percent": 51.6
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0234,
"command_and_miss": 0.5421,
"regression_edge": 0.3429,
"xwoba_edge": 0.2571,
"barrel_edge": -0.5778,
"hard_hit_edge": 0.1714,
"whiff_edge": 0.6714,
"bb_edge": 0.925,
"pitch_design_score": -0.1881
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "684007",
"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": 86.5154055046095,
"release_spin_rate": 2045.9740460181658,
"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": 86.5154055046095,
"release_spin_rate": 2045.9740460181658,
"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.5154,
"release_spin_rate": 2045.974,
"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.1881,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.3439,
"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.1733,
"sample_weight": 1.0,
"run_prevention_factor": 0.9853,
"strikeout_factor": 1.0377,
"walk_factor": 0.926,
"homer_factor": 1.0317,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "684007",
"espn_id": 5134630,
"player_name": "Shota Imanaga",
"team": "CHC",
"role": "pitcher",
"espn_rank": 122,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 122,
"gp_value": 28.0,
"gp_rank": 262,
"gs_value": 28.0,
"gs_rank": 25,
"qs_value": 12.0,
"qs_rank": 34,
"era_value": 3.9147,
"era_rank": 31.0,
"w_value": 9.0,
"w_rank": 42,
"l_value": 10.0,
"l_rank": 18,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 156.1,
"ip_rank": 30,
"h_value": 140.0,
"h_rank": 34,
"er_value": 68.0,
"er_rank": 40,
"hr_value": 33.0,
"hr_rank": 1,
"bb_value": 35.0,
"bb_rank": 122,
"k_value": 152.0,
"k_rank": 30,
"k_per_9_value": 8.750533,
"k_per_9_rank": 26,
"whip_value": 1.1194,
"whip_rank": 18.0,
"war_value": 1.49,
"war_rank": 40.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9853,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9853,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.926,
"adjusted": 1
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0317,
"adjusted": 2
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0377,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 105,
"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/20260911_PIT@CHC.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"
}
} |
| 20260911 | 20260911_SD@SF | away | Robbie Ray | Robbie Ray | True | 5.0 | 5.0 | 0 | 3 | 5 | 2 | 4/4 | 2/4 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3898678414096914,
"WHIP": 1.3414096916299558,
"IP": 151.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.37,
"recent_avg_IP": 4.733,
"last_start_IP": 2.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3145,
"sample_weight": 1.0,
"run_prevention_factor": 1.0267,
"strikeout_factor": 0.9886,
"walk_factor": 1.058,
"homer_factor": 1.0455,
"regression_flag": "neutral",
"k_percent": 19.9,
"bb_percent": 12.1,
"woba": 0.314,
"xwoba": 0.335,
"barrel_percent": 8.6,
"hard_hit_percent": 37.6,
"whiff_percent": 25.1
},
"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": 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": "592662",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 11.0,
"R": 11.0,
"H": 18.0,
"BB": 15.0,
"SO": 18.0,
"HR": 4.0,
"BF": 101.0,
"Pitches": 435.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.2,
"H": 3.6,
"BB": 3.0,
"SO": 3.6,
"HR": 0.8,
"BF": 20.2,
"Pitches": 87.0
},
"rates": {
"ERA": 4.1831,
"WHIP": 1.3944,
"ER_per_IP": 0.46479,
"H_per_IP": 0.76056,
"BB_per_IP": 0.6338,
"SO_per_IP": 0.76056,
"HR_per_IP": 0.16901
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 18.0,
"R": 20.0,
"H": 47.0,
"BB": 31.0,
"SO": 41.0,
"HR": 5.0,
"BF": 218.0,
"Pitches": 879.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 2.0,
"H": 4.7,
"BB": 3.1,
"SO": 4.1,
"HR": 0.5,
"BF": 21.8,
"Pitches": 87.9
},
"rates": {
"ERA": 3.2617,
"WHIP": 1.5705,
"ER_per_IP": 0.36242,
"H_per_IP": 0.94631,
"BB_per_IP": 0.62416,
"SO_per_IP": 0.8255,
"HR_per_IP": 0.10067
}
},
"season": {
"games": 28,
"totals": {
"IP": 151.1,
"ER": 57.0,
"R": 65.0,
"H": 126.0,
"BB": 77.0,
"SO": 127.0,
"HR": 20.0,
"BF": 638.0,
"Pitches": 2588.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0357,
"R": 2.3214,
"H": 4.5,
"BB": 2.75,
"SO": 4.5357,
"HR": 0.7143,
"BF": 22.7857,
"Pitches": 92.4286
},
"rates": {
"ERA": 3.3899,
"WHIP": 1.3414,
"ER_per_IP": 0.37665,
"H_per_IP": 0.8326,
"BB_per_IP": 0.50881,
"SO_per_IP": 0.83921,
"HR_per_IP": 0.13216
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.096,
"predicted_H": 4.239,
"predicted_BB": 2.809,
"predicted_SO": 4.044,
"predicted_HR": 0.686,
"predicted_ERA": 3.8269,
"predicted_WHIP": 1.4298
}
},
"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": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.096,
"final": 2.4703,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.239,
"final": 4.1401,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.809,
"final": 2.4741,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.044,
"final": 4.8538,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.686,
"final": 0.402,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8269,
"final": 3.8269,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4298,
"final": 1.4298,
"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.2,
"ER": 18,
"H": 47,
"BB": 31,
"SO": 41,
"HR": 5,
"ERA": 3.261744966442953,
"WHIP": 1.5704697986577183,
"K9": 7.429530201342282,
"HR9": 0.9060402684563759,
"games_pitched": 10,
"quality_starts": 4,
"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-05T00:00:00"
},
"recent_form_boost": 0.8766275561172742,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592662",
"player_name": "Robbie Ray",
"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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.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": 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": 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": 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.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": "SD",
"games": 146,
"wins": 78,
"losses": 68,
"win_pct": 0.5342,
"runs_scored": 619.0,
"runs_allowed": 602.0,
"run_differential": 17.0,
"run_differential_per_game": 0.1164,
"avg_runs_scored": 4.2397,
"avg_runs_allowed": 4.1233,
"offense_index": 0.9431,
"defense_index": 1.0903,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.4,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0783
},
"opponent": {
"team": "SF",
"games": 147,
"wins": 62,
"losses": 85,
"win_pct": 0.4218,
"runs_scored": 617.0,
"runs_allowed": 689.0,
"run_differential": -72.0,
"run_differential_per_game": -0.4898,
"avg_runs_scored": 4.1973,
"avg_runs_allowed": 4.6871,
"offense_index": 0.9337,
"defense_index": 0.9591,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 5.5,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.0914
},
"edges": {
"quality_edge": 0.1697,
"offense_edge": -0.0569,
"opponent_offense_edge": -0.0663,
"defense_strength": 0.0903,
"opponent_defense_weakness": 0.0409,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0121,
"run_prevention": 0.9719,
"strikeout": 1.0104
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592662",
"profile": {
"available": true,
"pitcher_id": "592662",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 551.0,
"k_percent": 19.9,
"bb_percent": 12.1,
"woba": 0.314,
"xwoba": 0.335,
"sweet_spot_percent": 32.1,
"barrel_batted_rate": 8.6,
"hard_hit_percent": 37.6,
"avg_best_speed": 78.5171,
"avg_hyper_speed": 94.0637,
"whiff_percent": 25.1,
"swing_percent": 46.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3159,
"command_and_miss": -0.275,
"regression_edge": -0.6,
"xwoba_edge": -0.6857,
"barrel_edge": -0.3333,
"hard_hit_edge": 0.0429,
"whiff_edge": 0.0143,
"bb_edge": -0.725,
"pitch_design_score": -0.0762
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592662",
"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": 88.51374193206205,
"release_spin_rate": 2134.8108860159628,
"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": 88.51374193206205,
"release_spin_rate": 2134.8108860159628,
"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.5137,
"release_spin_rate": 2134.8109,
"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.0762,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5446,
"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.3145,
"sample_weight": 1.0,
"run_prevention_factor": 1.0267,
"strikeout_factor": 0.9886,
"walk_factor": 1.058,
"homer_factor": 1.0455,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "592662",
"espn_id": 32175,
"player_name": "Robbie Ray",
"team": "SD",
"role": "pitcher",
"espn_rank": 66,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 66,
"gp_value": 28.0,
"gp_rank": 262,
"gs_value": 27.0,
"gs_rank": 38,
"qs_value": 11.0,
"qs_rank": 46,
"era_value": 3.3898,
"era_rank": 19.0,
"w_value": 11.0,
"w_rank": 23,
"l_value": 8.0,
"l_rank": 60,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 151.1,
"ip_rank": 42,
"h_value": 126.0,
"h_rank": 67,
"er_value": 57.0,
"er_rank": 75,
"hr_value": 20.0,
"hr_rank": 38,
"bb_value": 77.0,
"bb_rank": 1,
"k_value": 127.0,
"k_rank": 55,
"k_per_9_value": 7.552863,
"k_per_9_rank": 35,
"whip_value": 1.3414,
"whip_rank": 42.0,
"war_value": 2.18,
"war_rank": 31.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0267,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0267,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.058,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0455,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9886,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 89,
"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/20260911_SD@SF.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"
}
} |
| 20260911 | 20260911_SD@SF | home | Anthony Molina | Anthony Molina | True | 5.0 | 3.0 | -6 | 4 | 7 | 3 | 7/9 | 2/2 | 2/4 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 2.793103448275862,
"WHIP": 0.8793103448275863,
"IP": 19.1,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0632,
"sample_weight": 0.45,
"run_prevention_factor": 0.9946,
"strikeout_factor": 0.9925,
"walk_factor": 0.9541,
"homer_factor": 0.9862,
"regression_flag": "negative_pitcher_regression",
"k_percent": 20.3,
"bb_percent": 4.1,
"woba": 0.249,
"xwoba": 0.302,
"barrel_percent": 7.1,
"hard_hit_percent": 33.9,
"whiff_percent": 23.8
},
"espn_rank": {
"rank": 308,
"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": "683627",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 17.1,
"ER": 6.0,
"R": 9.0,
"H": 14.0,
"BB": 2.0,
"SO": 15.0,
"HR": 3.0,
"BF": 68.0,
"Pitches": 276.0
},
"per_game": {
"IP": 3.1,
"ER": 1.2,
"R": 1.8,
"H": 2.8,
"BB": 0.4,
"SO": 3.0,
"HR": 0.6,
"BF": 13.6,
"Pitches": 55.2
},
"rates": {
"ERA": 3.1154,
"WHIP": 0.9231,
"ER_per_IP": 0.34615,
"H_per_IP": 0.80769,
"BB_per_IP": 0.11538,
"SO_per_IP": 0.86538,
"HR_per_IP": 0.17308
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 19.1,
"ER": 6.0,
"R": 9.0,
"H": 14.0,
"BB": 3.0,
"SO": 15.0,
"HR": 3.0,
"BF": 74.0,
"Pitches": 302.0
},
"per_game": {
"IP": 3.1,
"ER": 1.0,
"R": 1.5,
"H": 2.3333,
"BB": 0.5,
"SO": 2.5,
"HR": 0.5,
"BF": 12.3333,
"Pitches": 50.3333
},
"rates": {
"ERA": 2.7931,
"WHIP": 0.8793,
"ER_per_IP": 0.31034,
"H_per_IP": 0.72414,
"BB_per_IP": 0.15517,
"SO_per_IP": 0.77586,
"HR_per_IP": 0.15517
}
},
"season": {
"games": 6,
"totals": {
"IP": 19.1,
"ER": 6.0,
"R": 9.0,
"H": 14.0,
"BB": 3.0,
"SO": 15.0,
"HR": 3.0,
"BF": 74.0,
"Pitches": 302.0
},
"per_game": {
"IP": 3.1,
"ER": 1.0,
"R": 1.5,
"H": 2.3333,
"BB": 0.5,
"SO": 2.5,
"HR": 0.5,
"BF": 12.3333,
"Pitches": 50.3333
},
"rates": {
"ERA": 2.7931,
"WHIP": 0.8793,
"ER_per_IP": 0.31034,
"H_per_IP": 0.72414,
"BB_per_IP": 0.15517,
"SO_per_IP": 0.77586,
"HR_per_IP": 0.15517
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.697,
"predicted_H": 3.585,
"predicted_BB": 0.958,
"predicted_SO": 3.653,
"predicted_HR": 0.654,
"predicted_ERA": 3.733,
"predicted_WHIP": 1.1104
}
},
"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.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.697,
"final": 2.9453,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 3.585,
"final": 5.436,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 0.958,
"final": 1.5228,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.653,
"final": 2.757,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.654,
"final": 1.3836,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.733,
"final": 3.733,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1104,
"final": 1.1104,
"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": 19.1,
"ER": 6,
"H": 14,
"BB": 3,
"SO": 15,
"HR": 3,
"ERA": 2.793103448275862,
"WHIP": 0.8793103448275863,
"K9": 6.982758620689656,
"HR9": 1.396551724137931,
"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-05T00:00:00"
},
"recent_form_boost": 0.8773455515132724,
"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": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 2.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": "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": 7,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683627",
"player_name": "Anthony Molina",
"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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.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": 2.0,
"after": 2.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": 4.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.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": 2.0,
"after": 2.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.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": 2.0,
"after": 2.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": 147,
"wins": 62,
"losses": 85,
"win_pct": 0.4218,
"runs_scored": 617.0,
"runs_allowed": 689.0,
"run_differential": -72.0,
"run_differential_per_game": -0.4898,
"avg_runs_scored": 4.1973,
"avg_runs_allowed": 4.6871,
"offense_index": 0.9337,
"defense_index": 0.9591,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 5.5,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.0914
},
"opponent": {
"team": "SD",
"games": 146,
"wins": 78,
"losses": 68,
"win_pct": 0.5342,
"runs_scored": 619.0,
"runs_allowed": 602.0,
"run_differential": 17.0,
"run_differential_per_game": 0.1164,
"avg_runs_scored": 4.2397,
"avg_runs_allowed": 4.1233,
"offense_index": 0.9431,
"defense_index": 1.0903,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.4,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0783
},
"edges": {
"quality_edge": -0.1697,
"offense_edge": -0.0663,
"opponent_offense_edge": -0.0569,
"defense_strength": -0.0409,
"opponent_defense_weakness": -0.0903,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9943,
"run_prevention": 1.0035,
"strikeout": 0.9995
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683627",
"profile": {
"available": true,
"pitcher_id": "683627",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 12.0,
"k_percent": 20.3,
"bb_percent": 4.1,
"woba": 0.249,
"xwoba": 0.302,
"sweet_spot_percent": 39.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 33.9,
"avg_best_speed": 73.6152,
"avg_hyper_speed": 93.2467,
"whiff_percent": 23.8,
"swing_percent": 53.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4821,
"command_and_miss": 0.0857,
"regression_edge": -1.5143,
"xwoba_edge": 0.2571,
"barrel_edge": 0.0,
"hard_hit_edge": 0.5714,
"whiff_edge": -0.1714,
"bb_edge": 1.275,
"pitch_design_score": -0.0043
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683627",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 27,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 27,
"pitch_usage": 0.0,
"release_speed": 89.79893899204244,
"release_spin_rate": 2093.420424403183,
"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": 27,
"pitch_usage": 0.0,
"release_speed": 89.79893899204244,
"release_spin_rate": 2093.420424403183,
"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.7989,
"release_spin_rate": 2093.4204,
"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.0043,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0305,
"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.0632,
"sample_weight": 0.45,
"run_prevention_factor": 0.9946,
"strikeout_factor": 0.9925,
"walk_factor": 0.9541,
"homer_factor": 0.9862,
"woba_minus_xwoba": -0.053,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "683627",
"espn_id": 5016983,
"player_name": "Anthony Molina",
"team": "SF",
"role": "pitcher",
"espn_rank": 308,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 308,
"gp_value": 6.0,
"gp_rank": 610,
"gs_value": 2.0,
"gs_rank": 272,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 2.7931,
"era_rank": null,
"w_value": 3.0,
"w_rank": 244,
"l_value": 0.0,
"l_rank": 573,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 19.1,
"ip_rank": 520,
"h_value": 14.0,
"h_rank": 582,
"er_value": 6.0,
"er_rank": 629,
"hr_value": 3.0,
"hr_rank": 443,
"bb_value": 3.0,
"bb_rank": 680,
"k_value": 15.0,
"k_rank": 533,
"k_per_9_value": 6.982759,
"k_per_9_rank": 27,
"whip_value": 0.8793,
"whip_rank": null,
"war_value": 0.29,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9976,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9976,
"adjusted": 4
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9793,
"adjusted": 0
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9938,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9966,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 92,
"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": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"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."
}
],
"provenance": {
"prediction": "output/games/20260911_SD@SF.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"
}
} |
| 20260911 | 20260911_SEA@OAK | away | George Kirby | George Kirby | True | 5.2 | 6.0 | 1 | 3 | 4 | 1 | 5/9 | 1/2 | 2/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.179916317991632,
"WHIP": 1.3430962343096233,
"IP": 159.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.901,
"recent_avg_IP": 5.467,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0107,
"sample_weight": 1.0,
"run_prevention_factor": 1.0009,
"strikeout_factor": 0.9703,
"walk_factor": 0.926,
"homer_factor": 1.0093,
"regression_flag": "neutral",
"k_percent": 19.9,
"bb_percent": 5.5,
"woba": 0.336,
"xwoba": 0.31,
"barrel_percent": 6.9,
"hard_hit_percent": 40.3,
"whiff_percent": 21.9
},
"espn_rank": {
"rank": 136,
"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": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669923",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 20.0,
"R": 21.0,
"H": 37.0,
"BB": 9.0,
"SO": 21.0,
"HR": 4.0,
"BF": 124.0,
"Pitches": 461.0
},
"per_game": {
"IP": 5.1,
"ER": 4.0,
"R": 4.2,
"H": 7.4,
"BB": 1.8,
"SO": 4.2,
"HR": 0.8,
"BF": 24.8,
"Pitches": 92.2
},
"rates": {
"ERA": 6.5854,
"WHIP": 1.6829,
"ER_per_IP": 0.73171,
"H_per_IP": 1.35366,
"BB_per_IP": 0.32927,
"SO_per_IP": 0.76829,
"HR_per_IP": 0.14634
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 30.0,
"R": 31.0,
"H": 64.0,
"BB": 13.0,
"SO": 42.0,
"HR": 10.0,
"BF": 235.0,
"Pitches": 886.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.1,
"H": 6.4,
"BB": 1.3,
"SO": 4.2,
"HR": 1.0,
"BF": 23.5,
"Pitches": 88.6
},
"rates": {
"ERA": 4.8795,
"WHIP": 1.3916,
"ER_per_IP": 0.54217,
"H_per_IP": 1.15663,
"BB_per_IP": 0.23494,
"SO_per_IP": 0.75904,
"HR_per_IP": 0.18072
}
},
"season": {
"games": 27,
"totals": {
"IP": 159.1,
"ER": 74.0,
"R": 79.0,
"H": 177.0,
"BB": 37.0,
"SO": 133.0,
"HR": 20.0,
"BF": 667.0,
"Pitches": 2468.0
},
"per_game": {
"IP": 6.0,
"ER": 2.7407,
"R": 2.9259,
"H": 6.5556,
"BB": 1.3704,
"SO": 4.9259,
"HR": 0.7407,
"BF": 24.7037,
"Pitches": 91.4074
},
"rates": {
"ERA": 4.1799,
"WHIP": 1.3431,
"ER_per_IP": 0.46444,
"H_per_IP": 1.11088,
"BB_per_IP": 0.23222,
"SO_per_IP": 0.83473,
"HR_per_IP": 0.12552
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.329,
"predicted_H": 6.687,
"predicted_BB": 1.631,
"predicted_SO": 4.498,
"predicted_HR": 0.857,
"predicted_ERA": 5.354,
"predicted_WHIP": 1.4863
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.329,
"final": 3.1921,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.687,
"final": 5.9852,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.631,
"final": 1.3685,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.498,
"final": 3.4588,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.857,
"final": 0.9165,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.354,
"final": 5.354,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4863,
"final": 1.4863,
"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": 30,
"H": 64,
"BB": 13,
"SO": 42,
"HR": 10,
"ERA": 4.879518072289156,
"WHIP": 1.391566265060241,
"K9": 6.831325301204819,
"HR9": 1.6265060240963856,
"games_pitched": 10,
"quality_starts": 5,
"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-05T00:00:00"
},
"recent_form_boost": 1.054154442185035,
"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": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669923",
"player_name": "George Kirby",
"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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 2.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": 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.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": 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.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": 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": 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.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": 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.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": "SEA",
"games": 147,
"wins": 69,
"losses": 78,
"win_pct": 0.4694,
"runs_scored": 581.0,
"runs_allowed": 655.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5034,
"avg_runs_scored": 3.9524,
"avg_runs_allowed": 4.4558,
"offense_index": 0.8792,
"defense_index": 1.0089,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 5.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0876
},
"opponent": {
"team": "OAK",
"games": 147,
"wins": 59,
"losses": 88,
"win_pct": 0.4014,
"runs_scored": 641.0,
"runs_allowed": 828.0,
"run_differential": -187.0,
"run_differential_per_game": -1.2721,
"avg_runs_scored": 4.3605,
"avg_runs_allowed": 5.6327,
"offense_index": 0.97,
"defense_index": 0.7981,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.1,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.2044
},
"edges": {
"quality_edge": 0.1168,
"offense_edge": -0.1208,
"opponent_offense_edge": -0.03,
"defense_strength": 0.0089,
"opponent_defense_weakness": 0.2019,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0061,
"run_prevention": 0.9885,
"strikeout": 1.0059
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669923",
"profile": {
"available": true,
"pitcher_id": "669923",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 564.0,
"k_percent": 19.9,
"bb_percent": 5.5,
"woba": 0.336,
"xwoba": 0.31,
"sweet_spot_percent": 32.4,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 40.3,
"avg_best_speed": 78.9097,
"avg_hyper_speed": 94.1127,
"whiff_percent": 21.9,
"swing_percent": 52.3
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1197,
"command_and_miss": -0.105,
"regression_edge": 0.7429,
"xwoba_edge": 0.0286,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.3429,
"whiff_edge": -0.4429,
"bb_edge": 0.925,
"pitch_design_score": 0.1163
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669923",
"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": 91.95180614765201,
"release_spin_rate": 2266.8919829070005,
"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": 91.95180614765201,
"release_spin_rate": 2266.8919829070005,
"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.9518,
"release_spin_rate": 2266.892,
"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.1163,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8307,
"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.0107,
"sample_weight": 1.0,
"run_prevention_factor": 1.0009,
"strikeout_factor": 0.9703,
"walk_factor": 0.926,
"homer_factor": 1.0093,
"woba_minus_xwoba": 0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669923",
"espn_id": 42406,
"player_name": "George Kirby",
"team": "SEA",
"role": "pitcher",
"espn_rank": 136,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 136,
"gp_value": 27.0,
"gp_rank": 289,
"gs_value": 27.0,
"gs_rank": 38,
"qs_value": 15.0,
"qs_rank": 17,
"era_value": 4.1799,
"era_rank": 42.0,
"w_value": 9.0,
"w_rank": 42,
"l_value": 11.0,
"l_rank": 11,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 159.1,
"ip_rank": 24,
"h_value": 177.0,
"h_rank": 5,
"er_value": 74.0,
"er_rank": 22,
"hr_value": 20.0,
"hr_rank": 38,
"bb_value": 37.0,
"bb_rank": 109,
"k_value": 133.0,
"k_rank": 51,
"k_per_9_value": 7.5125527,
"k_per_9_rank": 57,
"whip_value": 1.343,
"whip_rank": 43.0,
"war_value": 1.36,
"war_rank": 41.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0009,
"adjusted": 4
},
"predicted_H": {
"original": 7.0,
"factor": 1.0009,
"adjusted": 7
},
"predicted_BB": {
"original": 2.0,
"factor": 0.926,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0093,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9703,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 102,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260911_SEA@OAK.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"
}
} |
| 20260911 | 20260911_SEA@OAK | home | Jeffrey Springs | Jeffrey Springs | True | 4.2 | 5.0 | 1 | 3 | 2 | -1 | 5/6 | 0/2 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.023076923076923,
"WHIP": 1.4461538461538461,
"IP": 130.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.2,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3277,
"sample_weight": 1.0,
"run_prevention_factor": 1.0279,
"strikeout_factor": 0.9674,
"walk_factor": 0.998,
"homer_factor": 1.0434,
"regression_flag": "neutral",
"k_percent": 18.2,
"bb_percent": 9.1,
"woba": 0.365,
"xwoba": 0.336,
"barrel_percent": 9.3,
"hard_hit_percent": 34.9,
"whiff_percent": 23.1
},
"espn_rank": {
"rank": 766,
"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": "605488",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 15.0,
"R": 15.0,
"H": 24.0,
"BB": 13.0,
"SO": 18.0,
"HR": 6.0,
"BF": 113.0,
"Pitches": 431.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0,
"H": 4.8,
"BB": 2.6,
"SO": 3.6,
"HR": 1.2,
"BF": 22.6,
"Pitches": 86.2
},
"rates": {
"ERA": 5.1923,
"WHIP": 1.4231,
"ER_per_IP": 0.57692,
"H_per_IP": 0.92308,
"BB_per_IP": 0.5,
"SO_per_IP": 0.69231,
"HR_per_IP": 0.23077
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.1,
"ER": 36.0,
"R": 37.0,
"H": 51.0,
"BB": 25.0,
"SO": 32.0,
"HR": 12.0,
"BF": 214.0,
"Pitches": 816.0
},
"per_game": {
"IP": 4.2,
"ER": 3.6,
"R": 3.7,
"H": 5.1,
"BB": 2.5,
"SO": 3.2,
"HR": 1.2,
"BF": 21.4,
"Pitches": 81.6
},
"rates": {
"ERA": 6.8451,
"WHIP": 1.6056,
"ER_per_IP": 0.76056,
"H_per_IP": 1.07746,
"BB_per_IP": 0.52817,
"SO_per_IP": 0.67606,
"HR_per_IP": 0.25352
}
},
"season": {
"games": 26,
"totals": {
"IP": 130.0,
"ER": 87.0,
"R": 94.0,
"H": 136.0,
"BB": 52.0,
"SO": 104.0,
"HR": 33.0,
"BF": 572.0,
"Pitches": 2220.0
},
"per_game": {
"IP": 5.0,
"ER": 3.3462,
"R": 3.6154,
"H": 5.2308,
"BB": 2.0,
"SO": 4.0,
"HR": 1.2692,
"BF": 22.0,
"Pitches": 85.3846
},
"rates": {
"ERA": 6.0231,
"WHIP": 1.4462,
"ER_per_IP": 0.66923,
"H_per_IP": 1.04615,
"BB_per_IP": 0.4,
"SO_per_IP": 0.8,
"HR_per_IP": 0.25385
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.19,
"predicted_H": 5.013,
"predicted_BB": 2.366,
"predicted_SO": 3.749,
"predicted_HR": 1.145,
"predicted_ERA": 5.7094,
"predicted_WHIP": 1.4675
}
},
"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.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.19,
"final": 2.6924,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.013,
"final": 4.5894,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.366,
"final": 1.3767,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.749,
"final": 4.2721,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.145,
"final": 0.6662,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7094,
"final": 5.7094,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4675,
"final": 1.4675,
"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": 47.1,
"ER": 36,
"H": 51,
"BB": 25,
"SO": 32,
"HR": 12,
"ERA": 6.845070422535211,
"WHIP": 1.6056338028169013,
"K9": 6.084507042253521,
"HR9": 2.2816901408450705,
"games_pitched": 10,
"quality_starts": 1,
"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-05T00:00:00"
},
"recent_form_boost": 1.2806307700316326,
"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": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.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
}
},
{
"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": 4,
"predicted_BB": 0,
"predicted_SO": 5,
"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": 4.2,
"predicted_ER": 4,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605488",
"player_name": "Jeffrey Springs",
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 5.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": 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": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 5.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": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"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": 4.2,
"after": 4.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": 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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 5.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": 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": 4.2,
"after": 4.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": 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": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"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": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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": 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": 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": "OAK",
"games": 147,
"wins": 59,
"losses": 88,
"win_pct": 0.4014,
"runs_scored": 641.0,
"runs_allowed": 828.0,
"run_differential": -187.0,
"run_differential_per_game": -1.2721,
"avg_runs_scored": 4.3605,
"avg_runs_allowed": 5.6327,
"offense_index": 0.97,
"defense_index": 0.7981,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.1,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.2044
},
"opponent": {
"team": "SEA",
"games": 147,
"wins": 69,
"losses": 78,
"win_pct": 0.4694,
"runs_scored": 581.0,
"runs_allowed": 655.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5034,
"avg_runs_scored": 3.9524,
"avg_runs_allowed": 4.4558,
"offense_index": 0.8792,
"defense_index": 1.0089,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 5.3,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0876
},
"edges": {
"quality_edge": -0.1168,
"offense_edge": -0.03,
"opponent_offense_edge": -0.1208,
"defense_strength": -0.2019,
"opponent_defense_weakness": -0.0089,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9941,
"run_prevention": 1.0067,
"strikeout": 1.0062
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605488",
"profile": {
"available": true,
"pitcher_id": "605488",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 495.0,
"k_percent": 18.2,
"bb_percent": 9.1,
"woba": 0.365,
"xwoba": 0.336,
"sweet_spot_percent": 36.3,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 34.9,
"avg_best_speed": 76.1803,
"avg_hyper_speed": 93.4547,
"whiff_percent": 23.1,
"swing_percent": 46.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5459,
"command_and_miss": -0.3343,
"regression_edge": 0.8286,
"xwoba_edge": -0.7143,
"barrel_edge": -0.4889,
"hard_hit_edge": 0.4286,
"whiff_edge": -0.2714,
"bb_edge": 0.025,
"pitch_design_score": -0.2242
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605488",
"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": 85.87226981566755,
"release_spin_rate": 2002.2499973783792,
"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": 85.87226981566755,
"release_spin_rate": 2002.2499973783792,
"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.8723,
"release_spin_rate": 2002.25,
"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.2242,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.6011,
"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.3277,
"sample_weight": 1.0,
"run_prevention_factor": 1.0279,
"strikeout_factor": 0.9674,
"walk_factor": 0.998,
"homer_factor": 1.0434,
"woba_minus_xwoba": 0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605488",
"espn_id": 35397,
"player_name": "Jeffrey Springs",
"team": "ATH",
"role": "pitcher",
"espn_rank": 766,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 766,
"gp_value": 26.0,
"gp_rank": 306,
"gs_value": 26.0,
"gs_rank": 53,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 6.023,
"era_rank": null,
"w_value": 4.0,
"w_rank": 190,
"l_value": 13.0,
"l_rank": 4,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 130.0,
"ip_rank": 84,
"h_value": 136.0,
"h_rank": 45,
"er_value": 87.0,
"er_rank": 4,
"hr_value": 33.0,
"hr_rank": 1,
"bb_value": 52.0,
"bb_rank": 32,
"k_value": 104.0,
"k_rank": 95,
"k_per_9_value": 7.2,
"k_per_9_rank": 30,
"whip_value": 1.4461,
"whip_rank": null,
"war_value": -0.47,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0279,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0279,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0434,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9674,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 76,
"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."
}
],
"provenance": {
"prediction": "output/games/20260911_SEA@OAK.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"
}
} |
| 20260911 | 20260911_TEX@ARI | away | MacKenzie Gore | MacKenzie Gore | True | 5.0 | 4.0 | -3 | 4 | 4 | 0 | 5/5 | 1/3 | 2/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.509513742071882,
"WHIP": 1.331923890063425,
"IP": 157.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.256,
"recent_avg_IP": 4.733,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0851,
"sample_weight": 1.0,
"run_prevention_factor": 0.9928,
"strikeout_factor": 1.0234,
"walk_factor": 1.0,
"homer_factor": 1.0323,
"regression_flag": "neutral",
"k_percent": 24.9,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.306,
"barrel_percent": 8.1,
"hard_hit_percent": 41.2,
"whiff_percent": 26.2
},
"espn_rank": {
"rank": 165,
"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": "669022",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 13.0,
"R": 13.0,
"H": 30.0,
"BB": 14.0,
"SO": 21.0,
"HR": 1.0,
"BF": 114.0,
"Pitches": 445.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 6.0,
"BB": 2.8,
"SO": 4.2,
"HR": 0.2,
"BF": 22.8,
"Pitches": 89.0
},
"rates": {
"ERA": 4.9437,
"WHIP": 1.8592,
"ER_per_IP": 0.5493,
"H_per_IP": 1.26761,
"BB_per_IP": 0.59155,
"SO_per_IP": 0.88732,
"HR_per_IP": 0.04225
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 25.0,
"R": 25.0,
"H": 53.0,
"BB": 22.0,
"SO": 55.0,
"HR": 6.0,
"BF": 236.0,
"Pitches": 925.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.5,
"H": 5.3,
"BB": 2.2,
"SO": 5.5,
"HR": 0.6,
"BF": 23.6,
"Pitches": 92.5
},
"rates": {
"ERA": 4.2722,
"WHIP": 1.4241,
"ER_per_IP": 0.47468,
"H_per_IP": 1.00633,
"BB_per_IP": 0.41772,
"SO_per_IP": 1.0443,
"HR_per_IP": 0.11392
}
},
"season": {
"games": 30,
"totals": {
"IP": 157.2,
"ER": 79.0,
"R": 79.0,
"H": 147.0,
"BB": 63.0,
"SO": 170.0,
"HR": 18.0,
"BF": 684.0,
"Pitches": 2715.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6333,
"R": 2.6333,
"H": 4.9,
"BB": 2.1,
"SO": 5.6667,
"HR": 0.6,
"BF": 22.8,
"Pitches": 90.5
},
"rates": {
"ERA": 4.5095,
"WHIP": 1.3319,
"ER_per_IP": 0.50106,
"H_per_IP": 0.93235,
"BB_per_IP": 0.39958,
"SO_per_IP": 1.07822,
"HR_per_IP": 0.11416
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.575,
"predicted_H": 5.479,
"predicted_BB": 2.388,
"predicted_SO": 4.902,
"predicted_HR": 0.458,
"predicted_ERA": 4.6082,
"predicted_WHIP": 1.5644
}
},
"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.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.575,
"final": 3.1598,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.479,
"final": 5.2824,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.388,
"final": 1.8184,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.902,
"final": 3.7111,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.458,
"final": 0.6804,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6082,
"final": 4.6082,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5644,
"final": 1.5644,
"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.2,
"ER": 25,
"H": 53,
"BB": 22,
"SO": 55,
"HR": 6,
"ERA": 4.272151898734178,
"WHIP": 1.4240506329113924,
"K9": 9.398734177215191,
"HR9": 1.0253164556962027,
"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-06T00:00:00"
},
"recent_form_boost": 0.9866378568563787,
"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": 1.0,
"predicted_SO": 2.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": "669022",
"player_name": "MacKenzie Gore",
"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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 2.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": 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": 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": 2.0,
"after": 2.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": 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": 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": 2.0,
"after": 2.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": "TEX",
"games": 147,
"wins": 72,
"losses": 75,
"win_pct": 0.4898,
"runs_scored": 610.0,
"runs_allowed": 651.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2789,
"avg_runs_scored": 4.1497,
"avg_runs_allowed": 4.4286,
"offense_index": 0.9231,
"defense_index": 1.0151,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.6,
"run_differential": 10.0
},
"available": true,
"quality_score": -0.0428
},
"opponent": {
"team": "ARI",
"games": 147,
"wins": 78,
"losses": 69,
"win_pct": 0.5306,
"runs_scored": 648.0,
"runs_allowed": 649.0,
"run_differential": -1.0,
"run_differential_per_game": -0.0068,
"avg_runs_scored": 4.4082,
"avg_runs_allowed": 4.415,
"offense_index": 0.9806,
"defense_index": 1.0182,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.0,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0602
},
"edges": {
"quality_edge": -0.103,
"offense_edge": -0.0769,
"opponent_offense_edge": -0.0194,
"defense_strength": 0.0151,
"opponent_defense_weakness": -0.0182,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9971,
"run_prevention": 1.0005,
"strikeout": 0.9985
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669022",
"profile": {
"available": true,
"pitcher_id": "669022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 595.0,
"k_percent": 24.9,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.306,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 41.2,
"avg_best_speed": 77.4646,
"avg_hyper_speed": 94.5125,
"whiff_percent": 26.2,
"swing_percent": 49.3
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0119,
"command_and_miss": 0.2464,
"regression_edge": 0.2571,
"xwoba_edge": 0.1429,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.4714,
"whiff_edge": 0.1714,
"bb_edge": 0.0,
"pitch_design_score": 0.0242
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 101,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 101,
"pitch_usage": 0.0,
"release_speed": 90.30705137786757,
"release_spin_rate": 2168.388338902536,
"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": 101,
"pitch_usage": 0.0,
"release_speed": 90.30705137786757,
"release_spin_rate": 2168.388338902536,
"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.3071,
"release_spin_rate": 2168.3883,
"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.0242,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1728,
"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": 0.9928,
"strikeout_factor": 1.0234,
"walk_factor": 1.0,
"homer_factor": 1.0323,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669022",
"espn_id": 39636,
"player_name": "MacKenzie Gore",
"team": "TEX",
"role": "pitcher",
"espn_rank": 165,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 165,
"gp_value": 30.0,
"gp_rank": 219,
"gs_value": 30.0,
"gs_rank": 2,
"qs_value": 9.0,
"qs_rank": 65,
"era_value": 4.5095,
"era_rank": 45.0,
"w_value": 8.0,
"w_rank": 65,
"l_value": 10.0,
"l_rank": 18,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 157.2,
"ip_rank": 28,
"h_value": 147.0,
"h_rank": 24,
"er_value": 79.0,
"er_rank": 14,
"hr_value": 18.0,
"hr_rank": 58,
"bb_value": 63.0,
"bb_rank": 14,
"k_value": 170.0,
"k_rank": 21,
"k_per_9_value": 9.704017,
"k_per_9_rank": 20,
"whip_value": 1.3319,
"whip_rank": 41.0,
"war_value": 1.15,
"war_rank": 46.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9928,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9928,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0323,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0234,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1,
"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 +0."
}
],
"provenance": {
"prediction": "output/games/20260911_TEX@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"
}
} |
| 20260911 | 20260911_TEX@ARI | home | Merrill Kelly | Merrill Kelly | True | 5.1 | 4.1 | -3 | 5 | 1 | -4 | 11/2 | 1/3 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.058690744920994,
"WHIP": 1.469525959367946,
"IP": 147.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.679,
"recent_avg_IP": 5.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -1.0114,
"sample_weight": 1.0,
"run_prevention_factor": 1.086,
"strikeout_factor": 0.9429,
"walk_factor": 1.016,
"homer_factor": 1.1733,
"regression_flag": "negative_pitcher_regression",
"k_percent": 15.4,
"bb_percent": 10.0,
"woba": 0.355,
"xwoba": 0.387,
"barrel_percent": 11.8,
"hard_hit_percent": 42.2,
"whiff_percent": 21.6
},
"espn_rank": {
"rank": 472,
"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": "518876",
"report_date": "20260911",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 18.0,
"R": 18.0,
"H": 27.0,
"BB": 14.0,
"SO": 19.0,
"HR": 4.0,
"BF": 122.0,
"Pitches": 450.0
},
"per_game": {
"IP": 5.2,
"ER": 3.6,
"R": 3.6,
"H": 5.4,
"BB": 2.8,
"SO": 3.8,
"HR": 0.8,
"BF": 24.4,
"Pitches": 90.0
},
"rates": {
"ERA": 5.8554,
"WHIP": 1.4819,
"ER_per_IP": 0.6506,
"H_per_IP": 0.9759,
"BB_per_IP": 0.50602,
"SO_per_IP": 0.68675,
"HR_per_IP": 0.14458
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 27.0,
"R": 30.0,
"H": 50.0,
"BB": 26.0,
"SO": 40.0,
"HR": 7.0,
"BF": 230.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 3.0,
"H": 5.0,
"BB": 2.6,
"SO": 4.0,
"HR": 0.7,
"BF": 23.0,
"Pitches": 89.3
},
"rates": {
"ERA": 4.5,
"WHIP": 1.4074,
"ER_per_IP": 0.5,
"H_per_IP": 0.92593,
"BB_per_IP": 0.48148,
"SO_per_IP": 0.74074,
"HR_per_IP": 0.12963
}
},
"season": {
"games": 26,
"totals": {
"IP": 147.2,
"ER": 83.0,
"R": 86.0,
"H": 153.0,
"BB": 64.0,
"SO": 99.0,
"HR": 27.0,
"BF": 641.0,
"Pitches": 2372.0
},
"per_game": {
"IP": 5.2,
"ER": 3.1923,
"R": 3.3077,
"H": 5.8846,
"BB": 2.4615,
"SO": 3.8077,
"HR": 1.0385,
"BF": 24.6538,
"Pitches": 91.2308
},
"rates": {
"ERA": 5.0587,
"WHIP": 1.4695,
"ER_per_IP": 0.56208,
"H_per_IP": 1.03612,
"BB_per_IP": 0.43341,
"SO_per_IP": 0.67043,
"HR_per_IP": 0.18284
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.162,
"predicted_H": 5.406,
"predicted_BB": 2.588,
"predicted_SO": 4.125,
"predicted_HR": 0.818,
"predicted_ERA": 5.1095,
"predicted_WHIP": 1.4354
}
},
"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": 5.0,
"form": 3.162,
"final": 3.9306,
"source": "model_form_blend"
},
"predicted_H": {
"model": 11.0,
"form": 5.406,
"final": 7.7451,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.588,
"final": 1.924,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.125,
"final": 4.0727,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.818,
"final": 0.476,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1095,
"final": 5.1095,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4354,
"final": 1.4354,
"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.0,
"ER": 27,
"H": 50,
"BB": 26,
"SO": 40,
"HR": 7,
"ERA": 4.5,
"WHIP": 1.4074074074074074,
"K9": 6.666666666666667,
"HR9": 1.1666666666666667,
"games_pitched": 10,
"quality_starts": 2,
"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-04T00:00:00"
},
"recent_form_boost": 1.011854687611184,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 11.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 5,
"predicted_H": 11,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "518876",
"player_name": "Merrill Kelly",
"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": 1.0,
"predicted_ER": 5.0,
"predicted_H": 11.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 11.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.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.1,
"delta": -0.5667,
"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": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"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": 5.0,
"predicted_H": 11.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 5.0,
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.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.1,
"after": 5.1,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.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.1,
"delta": -0.5667,
"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": 5.6667,
"after": 5.1,
"delta": -0.5667,
"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": "ARI",
"games": 147,
"wins": 78,
"losses": 69,
"win_pct": 0.5306,
"runs_scored": 648.0,
"runs_allowed": 649.0,
"run_differential": -1.0,
"run_differential_per_game": -0.0068,
"avg_runs_scored": 4.4082,
"avg_runs_allowed": 4.415,
"offense_index": 0.9806,
"defense_index": 1.0182,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.0,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0602
},
"opponent": {
"team": "TEX",
"games": 147,
"wins": 72,
"losses": 75,
"win_pct": 0.4898,
"runs_scored": 610.0,
"runs_allowed": 651.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2789,
"avg_runs_scored": 4.1497,
"avg_runs_allowed": 4.4286,
"offense_index": 0.9231,
"defense_index": 1.0151,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.6,
"run_differential": 10.0
},
"available": true,
"quality_score": -0.0428
},
"edges": {
"quality_edge": 0.103,
"offense_edge": -0.0194,
"opponent_offense_edge": -0.0769,
"defense_strength": 0.0182,
"opponent_defense_weakness": -0.0151,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0077,
"run_prevention": 0.9807,
"strikeout": 1.0092
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "518876",
"profile": {
"available": true,
"pitcher_id": "518876",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 535.0,
"k_percent": 15.4,
"bb_percent": 10.0,
"woba": 0.355,
"xwoba": 0.387,
"sweet_spot_percent": 38.2,
"barrel_batted_rate": 11.8,
"hard_hit_percent": 42.2,
"avg_best_speed": 78.9645,
"avg_hyper_speed": 94.7277,
"whiff_percent": 21.6,
"swing_percent": 49.2
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.3433,
"command_and_miss": -0.6343,
"regression_edge": -0.9143,
"xwoba_edge": -2.1714,
"barrel_edge": -1.0444,
"hard_hit_edge": -0.6143,
"whiff_edge": -0.4857,
"bb_edge": -0.2,
"pitch_design_score": -0.0349
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "518876",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 89.25223922501904,
"release_spin_rate": 2316.2310668157406,
"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": 79,
"pitch_usage": 0.0,
"release_speed": 89.25223922501904,
"release_spin_rate": 2316.2310668157406,
"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.2522,
"release_spin_rate": 2316.2311,
"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.0349,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2492,
"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": -1.0114,
"sample_weight": 1.0,
"run_prevention_factor": 1.086,
"strikeout_factor": 0.9429,
"walk_factor": 1.016,
"homer_factor": 1.1733,
"woba_minus_xwoba": -0.032,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "518876",
"espn_id": 32968,
"player_name": "Merrill Kelly",
"team": "ARI",
"role": "pitcher",
"espn_rank": 472,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 472,
"gp_value": 26.0,
"gp_rank": 306,
"gs_value": 26.0,
"gs_rank": 53,
"qs_value": 9.0,
"qs_rank": 65,
"era_value": 5.0586,
"era_rank": 51.0,
"w_value": 9.0,
"w_rank": 42,
"l_value": 13.0,
"l_rank": 4,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 147.2,
"ip_rank": 49,
"h_value": 153.0,
"h_rank": 14,
"er_value": 83.0,
"er_rank": 8,
"hr_value": 27.0,
"hr_rank": 6,
"bb_value": 64.0,
"bb_rank": 13,
"k_value": 99.0,
"k_rank": 107,
"k_per_9_value": 6.0338597,
"k_per_9_rank": 58,
"whip_value": 1.4695,
"whip_rank": 51.0,
"war_value": 0.02,
"war_rank": 49.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.086,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.086,
"adjusted": 7
},
"predicted_BB": {
"original": 3.0,
"factor": 1.016,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1733,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9429,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 11,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 28,
"Pitches": 116,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 9",
"detail": "Actual minus predicted hits was -9."
}
],
"provenance": {
"prediction": "output/games/20260911_TEX@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"
}
} |