| 20260831 | 20260831_BAL@COL | away | Cade Povich | Cade Povich | True | 4.2 | 5.0 | 1 | 2 | 1 | -1 | 1/5 | 3/3 | 6/4 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 4.447058823529412,
"WHIP": 1.411764705882353,
"IP": 28.1,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 4.533,
"recent_avg_IP": 4.533,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.178,
"sample_weight": 0.45,
"run_prevention_factor": 1.0151,
"strikeout_factor": 0.9843,
"walk_factor": 0.9928,
"homer_factor": 1.0311,
"regression_flag": "neutral",
"k_percent": 17.5,
"bb_percent": 8.3,
"woba": 0.351,
"xwoba": 0.342,
"barrel_percent": 8.0,
"hard_hit_percent": 43.2,
"whiff_percent": 23.6
},
"espn_rank": {
"rank": 286,
"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": "700249",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 12.0,
"R": 12.0,
"H": 26.0,
"BB": 7.0,
"SO": 19.0,
"HR": 4.0,
"BF": 96.0,
"Pitches": 366.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.4,
"H": 5.2,
"BB": 1.4,
"SO": 3.8,
"HR": 0.8,
"BF": 19.2,
"Pitches": 73.2
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.4559,
"ER_per_IP": 0.52941,
"H_per_IP": 1.14706,
"BB_per_IP": 0.30882,
"SO_per_IP": 0.83824,
"HR_per_IP": 0.17647
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 28.1,
"ER": 14.0,
"R": 14.0,
"H": 30.0,
"BB": 10.0,
"SO": 21.0,
"HR": 5.0,
"BF": 120.0,
"Pitches": 453.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3333,
"R": 2.3333,
"H": 5.0,
"BB": 1.6667,
"SO": 3.5,
"HR": 0.8333,
"BF": 20.0,
"Pitches": 75.5
},
"rates": {
"ERA": 4.4471,
"WHIP": 1.4118,
"ER_per_IP": 0.49412,
"H_per_IP": 1.05882,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.74118,
"HR_per_IP": 0.17647
}
},
"season": {
"games": 6,
"totals": {
"IP": 28.1,
"ER": 14.0,
"R": 14.0,
"H": 30.0,
"BB": 10.0,
"SO": 21.0,
"HR": 5.0,
"BF": 120.0,
"Pitches": 453.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3333,
"R": 2.3333,
"H": 5.0,
"BB": 1.6667,
"SO": 3.5,
"HR": 0.8333,
"BF": 20.0,
"Pitches": 75.5
},
"rates": {
"ERA": 4.4471,
"WHIP": 1.4118,
"ER_per_IP": 0.49412,
"H_per_IP": 1.05882,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.74118,
"HR_per_IP": 0.17647
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.396,
"predicted_H": 4.955,
"predicted_BB": 1.587,
"predicted_SO": 4.093,
"predicted_HR": 0.761,
"predicted_ERA": 4.62,
"predicted_WHIP": 1.4019
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.396,
"final": 2.1814,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.955,
"final": 2.8113,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.587,
"final": 2.3529,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.093,
"final": 5.1266,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.761,
"final": 0.3485,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.62,
"final": 4.62,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4019,
"final": 1.4019,
"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": 28.1,
"ER": 14,
"H": 30,
"BB": 10,
"SO": 21,
"HR": 5,
"ERA": 4.447058823529411,
"WHIP": 1.4117647058823528,
"K9": 6.670588235294117,
"HR9": 1.588235294117647,
"games_pitched": 6,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-08-09T00:00:00"
},
"recent_form_boost": 1.0082134928477193,
"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": 1.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700249",
"player_name": "Cade Povich",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 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": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 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": "BAL",
"games": 137,
"wins": 68,
"losses": 69,
"win_pct": 0.4964,
"runs_scored": 626.0,
"runs_allowed": 644.0,
"run_differential": -18.0,
"run_differential_per_game": -0.1314,
"avg_runs_scored": 4.5693,
"avg_runs_allowed": 4.7007,
"offense_index": 1.0224,
"defense_index": 0.9507,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.0,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.0508
},
"opponent": {
"team": "COL",
"games": 137,
"wins": 52,
"losses": 85,
"win_pct": 0.3796,
"runs_scored": 644.0,
"runs_allowed": 786.0,
"run_differential": -142.0,
"run_differential_per_game": -1.0365,
"avg_runs_scored": 4.7007,
"avg_runs_allowed": 5.7372,
"offense_index": 1.0518,
"defense_index": 0.779,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 5.3,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.3349
},
"edges": {
"quality_edge": 0.3857,
"offense_edge": 0.0224,
"opponent_offense_edge": 0.0518,
"defense_strength": -0.0493,
"opponent_defense_weakness": 0.221,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0119,
"run_prevention": 0.9939,
"strikeout": 1.0074
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700249",
"profile": {
"available": true,
"pitcher_id": "700249",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 104.0,
"k_percent": 17.5,
"bb_percent": 8.3,
"woba": 0.351,
"xwoba": 0.342,
"sweet_spot_percent": 26.1,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 43.2,
"avg_best_speed": 80.9742,
"avg_hyper_speed": 95.1526,
"whiff_percent": 23.6,
"swing_percent": 45.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.5775,
"command_and_miss": -0.3293,
"regression_edge": 0.2571,
"xwoba_edge": -0.8571,
"barrel_edge": -0.1556,
"hard_hit_edge": -0.7714,
"whiff_edge": -0.2286,
"bb_edge": 0.2,
"pitch_design_score": -0.1529
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700249",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 78,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 87.13418334175628,
"release_spin_rate": 2348.0338622360287,
"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": 78,
"pitch_usage": 0.0,
"release_speed": 87.13418334175628,
"release_spin_rate": 2348.0338622360287,
"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.1342,
"release_spin_rate": 2348.0339,
"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.1529,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0923,
"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.178,
"sample_weight": 0.45,
"run_prevention_factor": 1.0151,
"strikeout_factor": 0.9843,
"walk_factor": 0.9928,
"homer_factor": 1.0311,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "700249",
"espn_id": 5085743,
"player_name": "Cade Povich",
"team": "BAL",
"role": "pitcher",
"espn_rank": 286,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 286,
"gp_value": 6.0,
"gp_rank": 589,
"gs_value": 5.0,
"gs_rank": 210,
"qs_value": 2.0,
"qs_rank": 153,
"era_value": 4.447,
"era_rank": null,
"w_value": 2.0,
"w_rank": 297,
"l_value": 1.0,
"l_rank": 409,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 28.1,
"ip_rank": 432,
"h_value": 30.0,
"h_rank": 396,
"er_value": 14.0,
"er_rank": 417,
"hr_value": 5.0,
"hr_rank": 298,
"bb_value": 10.0,
"bb_rank": 466,
"k_value": 21.0,
"k_rank": 462,
"k_per_9_value": 6.6705885,
"k_per_9_rank": 28,
"whip_value": 1.4117,
"whip_rank": null,
"war_value": 0.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0068,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0068,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9968,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.014,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9929,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 81,
"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."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260831_BAL@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260831 | 20260831_BAL@COL | home | Tanner Gordon | Tanner Gordon | True | 5.0 | 5.0 | 0 | 2 | 1 | -1 | 2/3 | 4/1 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.378486055776892,
"WHIP": 1.4342629482071712,
"IP": 83.2,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.048,
"recent_avg_IP": 5.467,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2436,
"sample_weight": 1.0,
"run_prevention_factor": 1.0207,
"strikeout_factor": 0.964,
"walk_factor": 0.9,
"homer_factor": 1.0801,
"regression_flag": "positive_pitcher_regression",
"k_percent": 18.9,
"bb_percent": 4.1,
"woba": 0.375,
"xwoba": 0.323,
"barrel_percent": 9.7,
"hard_hit_percent": 42.7,
"whiff_percent": 22.0
},
"espn_rank": {
"rank": 226,
"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": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "685299",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 12.0,
"R": 14.0,
"H": 30.0,
"BB": 2.0,
"SO": 16.0,
"HR": 4.0,
"BF": 108.0,
"Pitches": 341.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.8,
"H": 6.0,
"BB": 0.4,
"SO": 3.2,
"HR": 0.8,
"BF": 21.6,
"Pitches": 68.2
},
"rates": {
"ERA": 4.2078,
"WHIP": 1.2468,
"ER_per_IP": 0.46753,
"H_per_IP": 1.16883,
"BB_per_IP": 0.07792,
"SO_per_IP": 0.62338,
"HR_per_IP": 0.15584
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 25.0,
"R": 27.0,
"H": 58.0,
"BB": 7.0,
"SO": 34.0,
"HR": 11.0,
"BF": 207.0,
"Pitches": 691.0
},
"per_game": {
"IP": 4.2,
"ER": 2.5,
"R": 2.7,
"H": 5.8,
"BB": 0.7,
"SO": 3.4,
"HR": 1.1,
"BF": 20.7,
"Pitches": 69.1
},
"rates": {
"ERA": 4.6552,
"WHIP": 1.3448,
"ER_per_IP": 0.51724,
"H_per_IP": 1.2,
"BB_per_IP": 0.14483,
"SO_per_IP": 0.70345,
"HR_per_IP": 0.22759
}
},
"season": {
"games": 19,
"totals": {
"IP": 83.2,
"ER": 50.0,
"R": 52.0,
"H": 105.0,
"BB": 15.0,
"SO": 69.0,
"HR": 17.0,
"BF": 365.0,
"Pitches": 1283.0
},
"per_game": {
"IP": 4.1,
"ER": 2.6316,
"R": 2.7368,
"H": 5.5263,
"BB": 0.7895,
"SO": 3.6316,
"HR": 0.8947,
"BF": 19.2105,
"Pitches": 67.5263
},
"rates": {
"ERA": 5.3785,
"WHIP": 1.4343,
"ER_per_IP": 0.59761,
"H_per_IP": 1.25498,
"BB_per_IP": 0.17928,
"SO_per_IP": 0.8247,
"HR_per_IP": 0.20319
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.478,
"predicted_H": 5.604,
"predicted_BB": 0.845,
"predicted_SO": 3.621,
"predicted_HR": 0.883,
"predicted_ERA": 4.5775,
"predicted_WHIP": 1.3239
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.478,
"final": 2.2686,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.604,
"final": 4.0254,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 0.845,
"final": 2.2269,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.621,
"final": 4.663,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.883,
"final": 0.9342,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5775,
"final": 4.5775,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3239,
"final": 1.3239,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.1,
"ER": 25,
"H": 58,
"BB": 7,
"SO": 34,
"HR": 11,
"ERA": 4.655172413793104,
"WHIP": 1.3448275862068966,
"K9": 6.331034482758621,
"HR9": 2.048275862068966,
"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-08-26T00:00:00"
},
"recent_form_boost": 1.0306180712320754,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 4.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "685299",
"player_name": "Tanner Gordon",
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 137,
"wins": 52,
"losses": 85,
"win_pct": 0.3796,
"runs_scored": 644.0,
"runs_allowed": 786.0,
"run_differential": -142.0,
"run_differential_per_game": -1.0365,
"avg_runs_scored": 4.7007,
"avg_runs_allowed": 5.7372,
"offense_index": 1.0518,
"defense_index": 0.779,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 5.3,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.3349
},
"opponent": {
"team": "BAL",
"games": 137,
"wins": 68,
"losses": 69,
"win_pct": 0.4964,
"runs_scored": 626.0,
"runs_allowed": 644.0,
"run_differential": -18.0,
"run_differential_per_game": -0.1314,
"avg_runs_scored": 4.5693,
"avg_runs_allowed": 4.7007,
"offense_index": 1.0224,
"defense_index": 0.9507,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.0,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.0508
},
"edges": {
"quality_edge": -0.3857,
"offense_edge": 0.0518,
"opponent_offense_edge": 0.0224,
"defense_strength": -0.221,
"opponent_defense_weakness": 0.0493,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.977,
"run_prevention": 1.045,
"strikeout": 0.9866
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "685299",
"profile": {
"available": true,
"pitcher_id": "685299",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 306.0,
"k_percent": 18.9,
"bb_percent": 4.1,
"woba": 0.375,
"xwoba": 0.323,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 42.7,
"avg_best_speed": 81.9037,
"avg_hyper_speed": 94.5919,
"whiff_percent": 22.0,
"swing_percent": 53.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6401,
"command_and_miss": -0.1093,
"regression_edge": 1.4857,
"xwoba_edge": -0.3143,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.7,
"whiff_edge": -0.4571,
"bb_edge": 1.25,
"pitch_design_score": -0.0661
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "685299",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 51,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 51,
"pitch_usage": 0.0,
"release_speed": 88.68522008751086,
"release_spin_rate": 2169.693328889431,
"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": 51,
"pitch_usage": 0.0,
"release_speed": 88.68522008751086,
"release_spin_rate": 2169.693328889431,
"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.6852,
"release_spin_rate": 2169.6933,
"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.0661,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4719,
"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.2436,
"sample_weight": 1.0,
"run_prevention_factor": 1.0207,
"strikeout_factor": 0.964,
"walk_factor": 0.9,
"homer_factor": 1.0801,
"woba_minus_xwoba": 0.052,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "685299",
"espn_id": 4415658,
"player_name": "Tanner Gordon",
"team": "COL",
"role": "pitcher",
"espn_rank": 226,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 226,
"gp_value": 19.0,
"gp_rank": 387,
"gs_value": 7.0,
"gs_rank": 194,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 5.3784,
"era_rank": null,
"w_value": 1.0,
"w_rank": 396,
"l_value": 4.0,
"l_rank": 169,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 83.2,
"ip_rank": 143,
"h_value": 105.0,
"h_rank": 97,
"er_value": 50.0,
"er_rank": 91,
"hr_value": 17.0,
"hr_rank": 56,
"bb_value": 15.0,
"bb_rank": 364,
"k_value": 69.0,
"k_rank": 168,
"k_per_9_value": 7.422311,
"k_per_9_rank": 31,
"whip_value": 1.4342,
"whip_rank": null,
"war_value": 0.64,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0207,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0207,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0801,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.964,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260831_BAL@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260831 | 20260831_CHW@HOU | away | Anthony Kay | Anthony Kay | True | 5.1 | 4.2 | -2 | 3 | 5 | 2 | 4/6 | 0/2 | 4/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.090909090909091,
"WHIP": 1.3409090909090908,
"IP": 132.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.667,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3368,
"sample_weight": 1.0,
"run_prevention_factor": 1.0286,
"strikeout_factor": 0.9686,
"walk_factor": 0.978,
"homer_factor": 1.058,
"regression_flag": "neutral",
"k_percent": 18.4,
"bb_percent": 8.0,
"woba": 0.337,
"xwoba": 0.34,
"barrel_percent": 8.6,
"hard_hit_percent": 39.7,
"whiff_percent": 23.3
},
"espn_rank": {
"rank": 69,
"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": "641743",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 11.0,
"R": 11.0,
"H": 30.0,
"BB": 6.0,
"SO": 21.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 451.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.2,
"H": 6.0,
"BB": 1.2,
"SO": 4.2,
"HR": 0.8,
"BF": 24.2,
"Pitches": 90.2
},
"rates": {
"ERA": 3.4941,
"WHIP": 1.2706,
"ER_per_IP": 0.38824,
"H_per_IP": 1.05882,
"BB_per_IP": 0.21176,
"SO_per_IP": 0.74118,
"HR_per_IP": 0.14118
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 21.0,
"R": 21.0,
"H": 47.0,
"BB": 16.0,
"SO": 43.0,
"HR": 7.0,
"BF": 221.0,
"Pitches": 850.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1,
"R": 2.1,
"H": 4.7,
"BB": 1.6,
"SO": 4.3,
"HR": 0.7,
"BF": 22.1,
"Pitches": 85.0
},
"rates": {
"ERA": 3.6346,
"WHIP": 1.2115,
"ER_per_IP": 0.40385,
"H_per_IP": 0.90385,
"BB_per_IP": 0.30769,
"SO_per_IP": 0.82692,
"HR_per_IP": 0.13462
}
},
"season": {
"games": 27,
"totals": {
"IP": 132.0,
"ER": 60.0,
"R": 64.0,
"H": 130.0,
"BB": 47.0,
"SO": 108.0,
"HR": 18.0,
"BF": 588.0,
"Pitches": 2345.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2222,
"R": 2.3704,
"H": 4.8148,
"BB": 1.7407,
"SO": 4.0,
"HR": 0.6667,
"BF": 21.7778,
"Pitches": 86.8519
},
"rates": {
"ERA": 4.0909,
"WHIP": 1.3409,
"ER_per_IP": 0.45455,
"H_per_IP": 0.98485,
"BB_per_IP": 0.35606,
"SO_per_IP": 0.81818,
"HR_per_IP": 0.13636
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.277,
"predicted_H": 5.335,
"predicted_BB": 1.563,
"predicted_SO": 4.379,
"predicted_HR": 0.753,
"predicted_ERA": 3.7931,
"predicted_WHIP": 1.2765
}
},
"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.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.277,
"final": 2.1618,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.335,
"final": 4.7796,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.563,
"final": 0.9128,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.379,
"final": 4.2213,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.753,
"final": 0.4398,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7931,
"final": 3.7931,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2765,
"final": 1.2765,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 21,
"H": 47,
"BB": 16,
"SO": 43,
"HR": 7,
"ERA": 3.6346153846153846,
"WHIP": 1.2115384615384615,
"K9": 7.4423076923076925,
"HR9": 1.2115384615384615,
"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-08-25T00:00:00"
},
"recent_form_boost": 0.9124731773328711,
"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": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.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": "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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.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": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 136,
"wins": 72,
"losses": 64,
"win_pct": 0.5294,
"runs_scored": 652.0,
"runs_allowed": 608.0,
"run_differential": 44.0,
"run_differential_per_game": 0.3235,
"avg_runs_scored": 4.7941,
"avg_runs_allowed": 4.4706,
"offense_index": 1.073,
"defense_index": 0.9994,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.0,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.0998
},
"opponent": {
"team": "HOU",
"games": 137,
"wins": 69,
"losses": 68,
"win_pct": 0.5036,
"runs_scored": 624.0,
"runs_allowed": 667.0,
"run_differential": -43.0,
"run_differential_per_game": -0.3139,
"avg_runs_scored": 4.5547,
"avg_runs_allowed": 4.8686,
"offense_index": 1.0194,
"defense_index": 0.9177,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.6,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.0356
},
"edges": {
"quality_edge": 0.1354,
"offense_edge": 0.073,
"opponent_offense_edge": 0.0194,
"defense_strength": -0.0006,
"opponent_defense_weakness": 0.0823,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0046,
"run_prevention": 0.9964,
"strikeout": 1.0025
},
"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.4,
"bb_percent": 8.0,
"woba": 0.337,
"xwoba": 0.34,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 8.6,
"hard_hit_percent": 39.7,
"avg_best_speed": 76.5289,
"avg_hyper_speed": 94.3174,
"whiff_percent": 23.3,
"swing_percent": 46.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4619,
"command_and_miss": -0.2714,
"regression_edge": -0.0857,
"xwoba_edge": -0.8,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.2714,
"whiff_edge": -0.2714,
"bb_edge": 0.275,
"pitch_design_score": 0.0118
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641743",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 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": 88,
"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.0118,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0841,
"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.3368,
"sample_weight": 1.0,
"run_prevention_factor": 1.0286,
"strikeout_factor": 0.9686,
"walk_factor": 0.978,
"homer_factor": 1.058,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641743",
"espn_id": 40947,
"player_name": "Anthony Kay",
"team": "CHW",
"role": "pitcher",
"espn_rank": 69,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 69,
"gp_value": 27.0,
"gp_rank": 236,
"gs_value": 25.0,
"gs_rank": 43,
"qs_value": 6.0,
"qs_rank": 86,
"era_value": 4.0909,
"era_rank": null,
"w_value": 9.0,
"w_rank": 32,
"l_value": 6.0,
"l_rank": 101,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 132.0,
"ip_rank": 59,
"h_value": 130.0,
"h_rank": 40,
"er_value": 60.0,
"er_rank": 58,
"hr_value": 18.0,
"hr_rank": 43,
"bb_value": 47.0,
"bb_rank": 41,
"k_value": 108.0,
"k_rank": 79,
"k_per_9_value": 7.363636,
"k_per_9_rank": 36,
"whip_value": 1.3409,
"whip_rank": null,
"war_value": 2.03,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0286,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0286,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.978,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.058,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9686,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"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."
}
],
"provenance": {
"prediction": "output/games/20260831_CHW@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260831 | 20260831_CHW@HOU | home | Peter Lambert | Peter Lambert | True | 5.1 | 4.2 | -2 | 1 | 2 | 1 | 3/3 | 3/5 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.65625,
"WHIP": 1.2265625,
"IP": 128.0,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.565,
"recent_avg_IP": 5.0,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2293,
"sample_weight": 1.0,
"run_prevention_factor": 0.9805,
"strikeout_factor": 1.0091,
"walk_factor": 1.006,
"homer_factor": 0.9625,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 9.4,
"woba": 0.292,
"xwoba": 0.292,
"barrel_percent": 6.7,
"hard_hit_percent": 36.1,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 38,
"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": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663567",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 17.0,
"R": 19.0,
"H": 27.0,
"BB": 12.0,
"SO": 25.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 457.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4,
"R": 3.8,
"H": 5.4,
"BB": 2.4,
"SO": 5.0,
"HR": 0.4,
"BF": 22.6,
"Pitches": 91.4
},
"rates": {
"ERA": 6.12,
"WHIP": 1.56,
"ER_per_IP": 0.68,
"H_per_IP": 1.08,
"BB_per_IP": 0.48,
"SO_per_IP": 1.0,
"HR_per_IP": 0.08
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 23.0,
"R": 25.0,
"H": 49.0,
"BB": 20.0,
"SO": 57.0,
"HR": 3.0,
"BF": 232.0,
"Pitches": 937.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.5,
"H": 4.9,
"BB": 2.0,
"SO": 5.7,
"HR": 0.3,
"BF": 23.2,
"Pitches": 93.7
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.2857,
"ER_per_IP": 0.42857,
"H_per_IP": 0.91304,
"BB_per_IP": 0.37267,
"SO_per_IP": 1.06211,
"HR_per_IP": 0.0559
}
},
"season": {
"games": 23,
"totals": {
"IP": 128.0,
"ER": 52.0,
"R": 54.0,
"H": 106.0,
"BB": 51.0,
"SO": 125.0,
"HR": 13.0,
"BF": 542.0,
"Pitches": 2166.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2609,
"R": 2.3478,
"H": 4.6087,
"BB": 2.2174,
"SO": 5.4348,
"HR": 0.5652,
"BF": 23.5652,
"Pitches": 94.1739
},
"rates": {
"ERA": 3.6562,
"WHIP": 1.2266,
"ER_per_IP": 0.40625,
"H_per_IP": 0.82812,
"BB_per_IP": 0.39844,
"SO_per_IP": 0.97656,
"HR_per_IP": 0.10156
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.793,
"predicted_H": 5.115,
"predicted_BB": 2.191,
"predicted_SO": 5.281,
"predicted_HR": 0.466,
"predicted_ERA": 4.7749,
"predicted_WHIP": 1.3878
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.793,
"final": 2.0302,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.115,
"final": 4.2152,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.191,
"final": 2.5352,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.281,
"final": 6.0124,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.466,
"final": 0.6932,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7749,
"final": 4.7749,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3878,
"final": 1.3878,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 23,
"H": 49,
"BB": 20,
"SO": 57,
"HR": 3,
"ERA": 3.857142857142857,
"WHIP": 1.2857142857142858,
"K9": 9.559006211180124,
"HR9": 0.5031055900621119,
"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-08-26T00:00:00"
},
"recent_form_boost": 0.9393619135966074,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663567",
"player_name": "Peter Lambert",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 1.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": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"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": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"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": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 137,
"wins": 69,
"losses": 68,
"win_pct": 0.5036,
"runs_scored": 624.0,
"runs_allowed": 667.0,
"run_differential": -43.0,
"run_differential_per_game": -0.3139,
"avg_runs_scored": 4.5547,
"avg_runs_allowed": 4.8686,
"offense_index": 1.0194,
"defense_index": 0.9177,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.6,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.0356
},
"opponent": {
"team": "CHW",
"games": 136,
"wins": 72,
"losses": 64,
"win_pct": 0.5294,
"runs_scored": 652.0,
"runs_allowed": 608.0,
"run_differential": 44.0,
"run_differential_per_game": 0.3235,
"avg_runs_scored": 4.7941,
"avg_runs_allowed": 4.4706,
"offense_index": 1.073,
"defense_index": 0.9994,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.0,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.0998
},
"edges": {
"quality_edge": -0.1354,
"offense_edge": 0.0194,
"opponent_offense_edge": 0.073,
"defense_strength": -0.0823,
"opponent_defense_weakness": 0.0006,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9892,
"run_prevention": 1.0267,
"strikeout": 0.9901
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663567",
"profile": {
"available": true,
"pitcher_id": "663567",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 23.1,
"bb_percent": 9.4,
"woba": 0.292,
"xwoba": 0.292,
"sweet_spot_percent": 32.2,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 36.1,
"avg_best_speed": 78.1172,
"avg_hyper_speed": 93.5808,
"whiff_percent": 25.7,
"swing_percent": 48.5
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3759,
"command_and_miss": 0.0807,
"regression_edge": 0.0,
"xwoba_edge": 0.5714,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.2429,
"whiff_edge": 0.0714,
"bb_edge": -0.075,
"pitch_design_score": -0.028
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663567",
"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": 89.36448787171314,
"release_spin_rate": 2218.202787194397,
"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": 89.36448787171314,
"release_spin_rate": 2218.202787194397,
"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.3645,
"release_spin_rate": 2218.2028,
"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.028,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2002,
"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.2293,
"sample_weight": 1.0,
"run_prevention_factor": 0.9805,
"strikeout_factor": 1.0091,
"walk_factor": 1.006,
"homer_factor": 0.9625,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663567",
"espn_id": 39898,
"player_name": "Peter Lambert",
"team": "HOU",
"role": "pitcher",
"espn_rank": 38,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 38,
"gp_value": 23.0,
"gp_rank": 330,
"gs_value": 23.0,
"gs_rank": 70,
"qs_value": 8.0,
"qs_rank": 71,
"era_value": 3.6562,
"era_rank": null,
"w_value": 8.0,
"w_rank": 56,
"l_value": 7.0,
"l_rank": 75,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 128.0,
"ip_rank": 70,
"h_value": 106.0,
"h_rank": 94,
"er_value": 52.0,
"er_rank": 83,
"hr_value": 13.0,
"hr_rank": 111,
"bb_value": 51.0,
"bb_rank": 25,
"k_value": 125.0,
"k_rank": 53,
"k_per_9_value": 8.7890625,
"k_per_9_rank": 20,
"whip_value": 1.2265,
"whip_rank": null,
"war_value": 2.81,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9805,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9805,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.006,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9625,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0091,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 100,
"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/20260831_CHW@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260831 | 20260831_DET@MIN | away | Jackson Jobe | Jackson Jobe | True | 4.2 | 5.0 | 1 | 3 | 4 | 1 | 3/6 | 3/2 | 6/4 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 3.9272727272727277,
"WHIP": 1.4181818181818182,
"IP": 18.1,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 4.583,
"recent_avg_IP": 4.583,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2713,
"sample_weight": 0.45,
"run_prevention_factor": 1.0231,
"strikeout_factor": 0.9751,
"walk_factor": 1.0081,
"homer_factor": 1.0432,
"regression_flag": "neutral",
"k_percent": 18.8,
"bb_percent": 10.0,
"woba": 0.345,
"xwoba": 0.361,
"barrel_percent": 9.4,
"hard_hit_percent": 40.7,
"whiff_percent": 18.7
},
"espn_rank": {
"rank": 296,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695549",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 18.1,
"ER": 8.0,
"R": 8.0,
"H": 18.0,
"BB": 8.0,
"SO": 15.0,
"HR": 2.0,
"BF": 80.0,
"Pitches": 317.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 4.5,
"BB": 2.0,
"SO": 3.75,
"HR": 0.5,
"BF": 20.0,
"Pitches": 79.25
},
"rates": {
"ERA": 3.9273,
"WHIP": 1.4182,
"ER_per_IP": 0.43636,
"H_per_IP": 0.98182,
"BB_per_IP": 0.43636,
"SO_per_IP": 0.81818,
"HR_per_IP": 0.10909
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 18.1,
"ER": 8.0,
"R": 8.0,
"H": 18.0,
"BB": 8.0,
"SO": 15.0,
"HR": 2.0,
"BF": 80.0,
"Pitches": 317.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 4.5,
"BB": 2.0,
"SO": 3.75,
"HR": 0.5,
"BF": 20.0,
"Pitches": 79.25
},
"rates": {
"ERA": 3.9273,
"WHIP": 1.4182,
"ER_per_IP": 0.43636,
"H_per_IP": 0.98182,
"BB_per_IP": 0.43636,
"SO_per_IP": 0.81818,
"HR_per_IP": 0.10909
}
},
"season": {
"games": 4,
"totals": {
"IP": 18.1,
"ER": 8.0,
"R": 8.0,
"H": 18.0,
"BB": 8.0,
"SO": 15.0,
"HR": 2.0,
"BF": 80.0,
"Pitches": 317.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 4.5,
"BB": 2.0,
"SO": 3.75,
"HR": 0.5,
"BF": 20.0,
"Pitches": 79.25
},
"rates": {
"ERA": 3.9273,
"WHIP": 1.4182,
"ER_per_IP": 0.43636,
"H_per_IP": 0.98182,
"BB_per_IP": 0.43636,
"SO_per_IP": 0.81818,
"HR_per_IP": 0.10909
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.201,
"predicted_H": 4.561,
"predicted_BB": 1.866,
"predicted_SO": 4.132,
"predicted_HR": 0.607,
"predicted_ERA": 4.2442,
"predicted_WHIP": 1.3771
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5847,
"form_weight": 0.4153,
"form_reliability": 0.4444,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.201,
"final": 2.6682,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.561,
"final": 3.6482,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.866,
"final": 2.5291,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.132,
"final": 5.2243,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.607,
"final": 0.8368,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2442,
"final": 4.2442,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3771,
"final": 1.3771,
"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": 18.1,
"ER": 8,
"H": 18,
"BB": 8,
"SO": 15,
"HR": 2,
"ERA": 3.9272727272727277,
"WHIP": 1.4181818181818182,
"K9": 7.363636363636364,
"HR9": 0.9818181818181819,
"games_pitched": 4,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 0.9704081910347343,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.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": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695549",
"player_name": "Jackson Jobe",
"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": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 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": "DET",
"games": 136,
"wins": 63,
"losses": 73,
"win_pct": 0.4632,
"runs_scored": 596.0,
"runs_allowed": 531.0,
"run_differential": 65.0,
"run_differential_per_game": 0.4779,
"avg_runs_scored": 4.3824,
"avg_runs_allowed": 3.9044,
"offense_index": 0.9809,
"defense_index": 1.1443,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.2,
"avg_runs_allowed": 4.0,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.0775
},
"opponent": {
"team": "MIN",
"games": 137,
"wins": 65,
"losses": 72,
"win_pct": 0.4745,
"runs_scored": 626.0,
"runs_allowed": 682.0,
"run_differential": -56.0,
"run_differential_per_game": -0.4088,
"avg_runs_scored": 4.5693,
"avg_runs_allowed": 4.9781,
"offense_index": 1.0227,
"defense_index": 0.8975,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.3,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.142
},
"edges": {
"quality_edge": 0.0645,
"offense_edge": -0.0191,
"opponent_offense_edge": 0.0227,
"defense_strength": 0.1443,
"opponent_defense_weakness": 0.1025,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.006,
"run_prevention": 0.986,
"strikeout": 1.0001
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695549",
"profile": {
"available": true,
"pitcher_id": "695549",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 60.0,
"k_percent": 18.8,
"bb_percent": 10.0,
"woba": 0.345,
"xwoba": 0.361,
"sweet_spot_percent": 29.6,
"barrel_batted_rate": 9.4,
"hard_hit_percent": 40.7,
"avg_best_speed": 77.1966,
"avg_hyper_speed": 94.0423,
"whiff_percent": 18.7,
"swing_percent": 47.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.7503,
"command_and_miss": -0.5757,
"regression_edge": -0.4571,
"xwoba_edge": -1.4,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.4143,
"whiff_edge": -0.9286,
"bb_edge": -0.225,
"pitch_design_score": 0.1583
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695549",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 77,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 77,
"pitch_usage": 0.0,
"release_speed": 92.69191136764016,
"release_spin_rate": 2460.5256165107135,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 77,
"pitch_usage": 0.0,
"release_speed": 92.69191136764016,
"release_spin_rate": 2460.5256165107135,
"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.6919,
"release_spin_rate": 2460.5256,
"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.1583,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1308,
"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.2713,
"sample_weight": 0.45,
"run_prevention_factor": 1.0231,
"strikeout_factor": 0.9751,
"walk_factor": 1.0081,
"homer_factor": 1.0432,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695549",
"espn_id": 4872647,
"player_name": "Jackson Jobe",
"team": "DET",
"role": "pitcher",
"espn_rank": 296,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 296,
"gp_value": 4.0,
"gp_rank": 643,
"gs_value": 4.0,
"gs_rank": 227,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.9272,
"era_rank": null,
"w_value": 1.0,
"w_rank": 396,
"l_value": 1.0,
"l_rank": 409,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 18.1,
"ip_rank": 518,
"h_value": 18.0,
"h_rank": 511,
"er_value": 8.0,
"er_rank": 562,
"hr_value": 2.0,
"hr_rank": 500,
"bb_value": 8.0,
"bb_rank": 510,
"k_value": 15.0,
"k_rank": 517,
"k_per_9_value": 7.363636,
"k_per_9_rank": 26,
"whip_value": 1.4181,
"whip_rank": null,
"war_value": 0.33,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0104,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0104,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0036,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0194,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9888,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 4 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260831_DET@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"
}
} |
| 20260831 | 20260831_DET@MIN | home | Taj Bradley | Taj Bradley | True | 5.1 | 7.0 | 5 | 4 | 1 | -3 | 4/4 | 3/3 | 6/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9705882352941173,
"WHIP": 1.2760180995475112,
"IP": 147.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.667,
"recent_avg_IP": 5.333,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0149,
"sample_weight": 1.0,
"run_prevention_factor": 0.9987,
"strikeout_factor": 1.0366,
"walk_factor": 1.018,
"homer_factor": 1.0728,
"regression_flag": "neutral",
"k_percent": 27.0,
"bb_percent": 10.0,
"woba": 0.305,
"xwoba": 0.304,
"barrel_percent": 9.4,
"hard_hit_percent": 45.2,
"whiff_percent": 26.6
},
"espn_rank": {
"rank": 27,
"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": "671737",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 16.0,
"R": 16.0,
"H": 28.0,
"BB": 14.0,
"SO": 30.0,
"HR": 3.0,
"BF": 123.0,
"Pitches": 467.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.2,
"H": 5.6,
"BB": 2.8,
"SO": 6.0,
"HR": 0.6,
"BF": 24.6,
"Pitches": 93.4
},
"rates": {
"ERA": 5.4,
"WHIP": 1.575,
"ER_per_IP": 0.6,
"H_per_IP": 1.05,
"BB_per_IP": 0.525,
"SO_per_IP": 1.125,
"HR_per_IP": 0.1125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.2,
"ER": 27.0,
"R": 27.0,
"H": 49.0,
"BB": 25.0,
"SO": 67.0,
"HR": 8.0,
"BF": 248.0,
"Pitches": 972.0
},
"per_game": {
"IP": 6.0,
"ER": 2.7,
"R": 2.7,
"H": 4.9,
"BB": 2.5,
"SO": 6.7,
"HR": 0.8,
"BF": 24.8,
"Pitches": 97.2
},
"rates": {
"ERA": 4.142,
"WHIP": 1.2614,
"ER_per_IP": 0.46023,
"H_per_IP": 0.83523,
"BB_per_IP": 0.42614,
"SO_per_IP": 1.14205,
"HR_per_IP": 0.13636
}
},
"season": {
"games": 26,
"totals": {
"IP": 147.1,
"ER": 65.0,
"R": 65.0,
"H": 125.0,
"BB": 63.0,
"SO": 169.0,
"HR": 20.0,
"BF": 627.0,
"Pitches": 2517.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.5,
"H": 4.8077,
"BB": 2.4231,
"SO": 6.5,
"HR": 0.7692,
"BF": 24.1154,
"Pitches": 96.8077
},
"rates": {
"ERA": 3.9706,
"WHIP": 1.276,
"ER_per_IP": 0.44118,
"H_per_IP": 0.84842,
"BB_per_IP": 0.4276,
"SO_per_IP": 1.14706,
"HR_per_IP": 0.13575
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.883,
"predicted_H": 5.254,
"predicted_BB": 2.54,
"predicted_SO": 6.164,
"predicted_HR": 0.72,
"predicted_ERA": 4.6454,
"predicted_WHIP": 1.3956
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.883,
"final": 3.3501,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.254,
"final": 4.7296,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.54,
"final": 2.7323,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.164,
"final": 6.0954,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.72,
"final": 0.8371,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6454,
"final": 4.6454,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3956,
"final": 1.3956,
"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.2,
"ER": 27,
"H": 49,
"BB": 25,
"SO": 67,
"HR": 8,
"ERA": 4.142045454545454,
"WHIP": 1.2613636363636362,
"K9": 10.27840909090909,
"HR9": 1.227272727272727,
"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-08-25T00:00:00"
},
"recent_form_boost": 0.9708046895706334,
"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": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"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": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 137,
"wins": 65,
"losses": 72,
"win_pct": 0.4745,
"runs_scored": 626.0,
"runs_allowed": 682.0,
"run_differential": -56.0,
"run_differential_per_game": -0.4088,
"avg_runs_scored": 4.5693,
"avg_runs_allowed": 4.9781,
"offense_index": 1.0227,
"defense_index": 0.8975,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.3,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.142
},
"opponent": {
"team": "DET",
"games": 136,
"wins": 63,
"losses": 73,
"win_pct": 0.4632,
"runs_scored": 596.0,
"runs_allowed": 531.0,
"run_differential": 65.0,
"run_differential_per_game": 0.4779,
"avg_runs_scored": 4.3824,
"avg_runs_allowed": 3.9044,
"offense_index": 0.9809,
"defense_index": 1.1443,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.2,
"avg_runs_allowed": 4.0,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.0775
},
"edges": {
"quality_edge": -0.0645,
"offense_edge": 0.0227,
"opponent_offense_edge": -0.0191,
"defense_strength": -0.1025,
"opponent_defense_weakness": -0.1443,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9951,
"run_prevention": 1.0104,
"strikeout": 0.9996
},
"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.0,
"bb_percent": 10.0,
"woba": 0.305,
"xwoba": 0.304,
"sweet_spot_percent": 38.8,
"barrel_batted_rate": 9.4,
"hard_hit_percent": 45.2,
"avg_best_speed": 80.7516,
"avg_hyper_speed": 94.8508,
"whiff_percent": 26.6,
"swing_percent": 47.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1632,
"command_and_miss": 0.3464,
"regression_edge": 0.0286,
"xwoba_edge": 0.2286,
"barrel_edge": -0.4667,
"hard_hit_edge": -1.0571,
"whiff_edge": 0.2,
"bb_edge": -0.225,
"pitch_design_score": 0.1672
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671737",
"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": 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": 94,
"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.1672,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.194,
"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.0149,
"sample_weight": 1.0,
"run_prevention_factor": 0.9987,
"strikeout_factor": 1.0366,
"walk_factor": 1.018,
"homer_factor": 1.0728,
"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": 27,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 27,
"gp_value": 26.0,
"gp_rank": 269,
"gs_value": 26.0,
"gs_rank": 31,
"qs_value": 11.0,
"qs_rank": 39,
"era_value": 3.9705,
"era_rank": 35.0,
"w_value": 9.0,
"w_rank": 32,
"l_value": 6.0,
"l_rank": 101,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 147.1,
"ip_rank": 34,
"h_value": 125.0,
"h_rank": 56,
"er_value": 65.0,
"er_rank": 35,
"hr_value": 20.0,
"hr_rank": 27,
"bb_value": 63.0,
"bb_rank": 10,
"k_value": 169.0,
"k_rank": 13,
"k_per_9_value": 10.323529,
"k_per_9_rank": 10,
"whip_value": 1.276,
"whip_rank": 40.0,
"war_value": 3.16,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9987,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9987,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.018,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0728,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0366,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 103,
"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": "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/20260831_DET@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"
}
} |
| 20260831 | 20260831_MIA@WAS | away | Ryan Gusto | Ryan Gusto | True | 4.2 | 4.1 | -1 | 4 | 1 | -3 | 2/4 | 2/2 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9789473684210526,
"WHIP": 1.3263157894736841,
"IP": 63.1,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 4.154,
"recent_avg_IP": 4.867,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.288,
"sample_weight": 0.948,
"run_prevention_factor": 1.0245,
"strikeout_factor": 0.9605,
"walk_factor": 0.9488,
"homer_factor": 1.0613,
"regression_flag": "neutral",
"k_percent": 18.9,
"bb_percent": 6.4,
"woba": 0.321,
"xwoba": 0.326,
"barrel_percent": 8.3,
"hard_hit_percent": 43.9,
"whiff_percent": 21.0
},
"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": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687473",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 5.0,
"R": 7.0,
"H": 23.0,
"BB": 5.0,
"SO": 19.0,
"HR": 4.0,
"BF": 105.0,
"Pitches": 364.0
},
"per_game": {
"IP": 5.0,
"ER": 1.0,
"R": 1.4,
"H": 4.6,
"BB": 1.0,
"SO": 3.8,
"HR": 0.8,
"BF": 21.0,
"Pitches": 72.8
},
"rates": {
"ERA": 1.8493,
"WHIP": 1.1507,
"ER_per_IP": 0.20548,
"H_per_IP": 0.94521,
"BB_per_IP": 0.20548,
"SO_per_IP": 0.78082,
"HR_per_IP": 0.16438
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 39.0,
"ER": 13.0,
"R": 16.0,
"H": 37.0,
"BB": 8.0,
"SO": 31.0,
"HR": 5.0,
"BF": 165.0,
"Pitches": 585.0
},
"per_game": {
"IP": 4.0,
"ER": 1.3,
"R": 1.6,
"H": 3.7,
"BB": 0.8,
"SO": 3.1,
"HR": 0.5,
"BF": 16.5,
"Pitches": 58.5
},
"rates": {
"ERA": 3.0,
"WHIP": 1.1538,
"ER_per_IP": 0.33333,
"H_per_IP": 0.94872,
"BB_per_IP": 0.20513,
"SO_per_IP": 0.79487,
"HR_per_IP": 0.12821
}
},
"season": {
"games": 18,
"totals": {
"IP": 63.1,
"ER": 28.0,
"R": 31.0,
"H": 66.0,
"BB": 18.0,
"SO": 53.0,
"HR": 8.0,
"BF": 280.0,
"Pitches": 1009.0
},
"per_game": {
"IP": 3.2,
"ER": 1.5556,
"R": 1.7222,
"H": 3.6667,
"BB": 1.0,
"SO": 2.9444,
"HR": 0.4444,
"BF": 15.5556,
"Pitches": 56.0556
},
"rates": {
"ERA": 3.9789,
"WHIP": 1.3263,
"ER_per_IP": 0.44211,
"H_per_IP": 1.04211,
"BB_per_IP": 0.28421,
"SO_per_IP": 0.83684,
"HR_per_IP": 0.12632
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.518,
"predicted_H": 4.301,
"predicted_BB": 1.127,
"predicted_SO": 3.68,
"predicted_HR": 0.643,
"predicted_ERA": 3.0736,
"predicted_WHIP": 1.2211
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.518,
"final": 2.6147,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.301,
"final": 3.2843,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.127,
"final": 1.5127,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.68,
"final": 3.3795,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.643,
"final": 1.2426,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0736,
"final": 3.0736,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2211,
"final": 1.2211,
"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": 39.0,
"ER": 13,
"H": 37,
"BB": 8,
"SO": 31,
"HR": 5,
"ERA": 2.9999999999999996,
"WHIP": 1.1538461538461537,
"K9": 7.153846153846152,
"HR9": 1.1538461538461537,
"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-08-26T00:00:00"
},
"recent_form_boost": 0.8396366388713327,
"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": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
}
],
"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": 4.0,
"predicted_H": 2.0,
"predicted_HR": 2.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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": "MIA",
"games": 137,
"wins": 69,
"losses": 68,
"win_pct": 0.5036,
"runs_scored": 594.0,
"runs_allowed": 579.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1095,
"avg_runs_scored": 4.3358,
"avg_runs_allowed": 4.2263,
"offense_index": 0.9707,
"defense_index": 1.0569,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.7,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0165
},
"opponent": {
"team": "WAS",
"games": 139,
"wins": 65,
"losses": 74,
"win_pct": 0.4676,
"runs_scored": 720.0,
"runs_allowed": 704.0,
"run_differential": 16.0,
"run_differential_per_game": 0.1151,
"avg_runs_scored": 5.1799,
"avg_runs_allowed": 5.0647,
"offense_index": 1.1596,
"defense_index": 0.8819,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.5,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0484
},
"edges": {
"quality_edge": 0.0649,
"offense_edge": -0.0293,
"opponent_offense_edge": 0.1596,
"defense_strength": 0.0569,
"opponent_defense_weakness": 0.1181,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9979,
"run_prevention": 1.0166,
"strikeout": 0.9892
},
"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": 18.9,
"bb_percent": 6.4,
"woba": 0.321,
"xwoba": 0.326,
"sweet_spot_percent": 36.6,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 43.9,
"avg_best_speed": 79.3542,
"avg_hyper_speed": 94.1091,
"whiff_percent": 21.0,
"swing_percent": 49.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.3832,
"command_and_miss": -0.2743,
"regression_edge": -0.1429,
"xwoba_edge": -0.4,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.8714,
"whiff_edge": -0.6,
"bb_edge": 0.675,
"pitch_design_score": -0.0458
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687473",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 73,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 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": 73,
"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.0458,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3272,
"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.288,
"sample_weight": 0.948,
"run_prevention_factor": 1.0245,
"strikeout_factor": 0.9605,
"walk_factor": 0.9488,
"homer_factor": 1.0613,
"woba_minus_xwoba": -0.005,
"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": 842,
"metrics": {
"espn_rank": 241,
"gp_value": 18.0,
"gp_rank": 399,
"gs_value": 13.0,
"gs_rank": 147,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 3.9789,
"era_rank": null,
"w_value": 1.0,
"w_rank": 396,
"l_value": 3.0,
"l_rank": 224,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 1.0,
"hld_rank": 258,
"ip_value": 63.1,
"ip_rank": 195,
"h_value": 66.0,
"h_rank": 161,
"er_value": 28.0,
"er_rank": 195,
"hr_value": 8.0,
"hr_rank": 195,
"bb_value": 18.0,
"bb_rank": 314,
"k_value": 53.0,
"k_rank": 254,
"k_per_9_value": 7.531579,
"k_per_9_rank": 35,
"whip_value": 1.3263,
"whip_rank": null,
"war_value": 0.56,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0232,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 1.0232,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9515,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0581,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9626,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 2,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 73,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260831_MIA@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"
}
} |
| 20260831 | 20260831_MIA@WAS | home | Will Dion | Will Dion | True | 5.0 | 3.0 | -6 | 1 | 0 | -1 | 0/2 | 2/1 | 7/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.669902912621359,
"WHIP": 1.1359223300970873,
"IP": 34.1,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 3.333,
"recent_avg_IP": 3.333,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2614,
"sample_weight": 0.456,
"run_prevention_factor": 0.9778,
"strikeout_factor": 1.0284,
"walk_factor": 0.9763,
"homer_factor": 0.9605,
"regression_flag": "neutral",
"k_percent": 29.5,
"bb_percent": 6.5,
"woba": 0.306,
"xwoba": 0.276,
"barrel_percent": 5.7,
"hard_hit_percent": 33.0,
"whiff_percent": 28.6
},
"espn_rank": {
"rank": 336,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 34.1,
"season_ERA": 3.67,
"season_WHIP": 1.136,
"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.89,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5795,
"prior_weight": 0.4205
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702021",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 14.0,
"ER": 4.0,
"R": 4.0,
"H": 6.0,
"BB": 5.0,
"SO": 16.0,
"HR": 2.0,
"BF": 52.0,
"Pitches": 223.0
},
"per_game": {
"IP": 2.2,
"ER": 0.8,
"R": 0.8,
"H": 1.2,
"BB": 1.0,
"SO": 3.2,
"HR": 0.4,
"BF": 10.4,
"Pitches": 44.6
},
"rates": {
"ERA": 2.5714,
"WHIP": 0.7857,
"ER_per_IP": 0.28571,
"H_per_IP": 0.42857,
"BB_per_IP": 0.35714,
"SO_per_IP": 1.14286,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 20.0,
"ER": 5.0,
"R": 5.0,
"H": 10.0,
"BB": 6.0,
"SO": 23.0,
"HR": 3.0,
"BF": 73.0,
"Pitches": 299.0
},
"per_game": {
"IP": 2.0,
"ER": 0.5,
"R": 0.5,
"H": 1.0,
"BB": 0.6,
"SO": 2.3,
"HR": 0.3,
"BF": 7.3,
"Pitches": 29.9
},
"rates": {
"ERA": 2.25,
"WHIP": 0.8,
"ER_per_IP": 0.25,
"H_per_IP": 0.5,
"BB_per_IP": 0.3,
"SO_per_IP": 1.15,
"HR_per_IP": 0.15
}
},
"season": {
"games": 18,
"totals": {
"IP": 34.1,
"ER": 14.0,
"R": 18.0,
"H": 30.0,
"BB": 9.0,
"SO": 41.0,
"HR": 6.0,
"BF": 139.0,
"Pitches": 535.0
},
"per_game": {
"IP": 2.0,
"ER": 0.7778,
"R": 1.0,
"H": 1.6667,
"BB": 0.5,
"SO": 2.2778,
"HR": 0.3333,
"BF": 7.7222,
"Pitches": 29.7222
},
"rates": {
"ERA": 3.6699,
"WHIP": 1.1359,
"ER_per_IP": 0.40777,
"H_per_IP": 0.87379,
"BB_per_IP": 0.26214,
"SO_per_IP": 1.19417,
"HR_per_IP": 0.17476
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.314,
"predicted_H": 2.487,
"predicted_BB": 1.169,
"predicted_SO": 3.657,
"predicted_HR": 0.514,
"predicted_ERA": 3.4435,
"predicted_WHIP": 1.0641
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5277,
"form_weight": 0.4723,
"form_reliability": 0.5795,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.89,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5795,
"prior_weight": 0.4205
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.314,
"final": 1.1483,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 2.487,
"final": 1.1747,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.169,
"final": 1.6075,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.657,
"final": 5.421,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.514,
"final": 0.2428,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4435,
"final": 3.4435,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0641,
"final": 1.0641,
"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": 20.0,
"ER": 5,
"H": 10,
"BB": 6,
"SO": 23,
"HR": 3,
"ERA": 2.2500000000000004,
"WHIP": 0.8000000000000002,
"K9": 10.350000000000001,
"HR9": 1.3500000000000003,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 0.8344105887174091,
"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": 0.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.89,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5795,
"prior_weight": 0.4205
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702021",
"player_name": "Will Dion",
"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": 2.0,
"predicted_ER": 1.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": 2.0,
"predicted_ER": 1.0,
"predicted_H": 0.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": 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": 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": 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": "WAS",
"games": 139,
"wins": 65,
"losses": 74,
"win_pct": 0.4676,
"runs_scored": 720.0,
"runs_allowed": 704.0,
"run_differential": 16.0,
"run_differential_per_game": 0.1151,
"avg_runs_scored": 5.1799,
"avg_runs_allowed": 5.0647,
"offense_index": 1.1596,
"defense_index": 0.8819,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.5,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0484
},
"opponent": {
"team": "MIA",
"games": 137,
"wins": 69,
"losses": 68,
"win_pct": 0.5036,
"runs_scored": 594.0,
"runs_allowed": 579.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1095,
"avg_runs_scored": 4.3358,
"avg_runs_allowed": 4.2263,
"offense_index": 0.9707,
"defense_index": 1.0569,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.7,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0165
},
"edges": {
"quality_edge": -0.0649,
"offense_edge": 0.1596,
"opponent_offense_edge": -0.0293,
"defense_strength": -0.1181,
"opponent_defense_weakness": -0.0569,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.995,
"run_prevention": 1.0104,
"strikeout": 1.0004
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702021",
"profile": {
"available": true,
"pitcher_id": "702021",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 114.0,
"k_percent": 29.5,
"bb_percent": 6.5,
"woba": 0.306,
"xwoba": 0.276,
"sweet_spot_percent": 37.5,
"barrel_batted_rate": 5.7,
"hard_hit_percent": 33.0,
"avg_best_speed": 77.2099,
"avg_hyper_speed": 93.5754,
"whiff_percent": 28.6,
"swing_percent": 51.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.5364,
"command_and_miss": 0.7821,
"regression_edge": 0.8571,
"xwoba_edge": 1.0286,
"barrel_edge": 0.3556,
"hard_hit_edge": 0.6857,
"whiff_edge": 0.4857,
"bb_edge": 0.65,
"pitch_design_score": -0.2021
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702021",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 31,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 31,
"pitch_usage": 0.0,
"release_speed": 86.25508831777174,
"release_spin_rate": 2215.150387818154,
"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": 31,
"pitch_usage": 0.0,
"release_speed": 86.25508831777174,
"release_spin_rate": 2215.150387818154,
"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.2551,
"release_spin_rate": 2215.1504,
"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.2021,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.4439,
"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.2614,
"sample_weight": 0.456,
"run_prevention_factor": 0.9778,
"strikeout_factor": 1.0284,
"walk_factor": 0.9763,
"homer_factor": 0.9605,
"woba_minus_xwoba": 0.03,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "702021",
"espn_id": 4420174,
"player_name": "Will Dion",
"team": "WSH",
"role": "pitcher",
"espn_rank": 336,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 336,
"gp_value": 18.0,
"gp_rank": 399,
"gs_value": 0.0,
"gs_rank": 351,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.6699,
"era_rank": null,
"w_value": 1.0,
"w_rank": 396,
"l_value": 1.0,
"l_rank": 409,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 34.1,
"ip_rank": 385,
"h_value": 30.0,
"h_rank": 396,
"er_value": 14.0,
"er_rank": 417,
"hr_value": 6.0,
"hr_rank": 256,
"bb_value": 9.0,
"bb_rank": 489,
"k_value": 41.0,
"k_rank": 327,
"k_per_9_value": 10.747573,
"k_per_9_rank": 22,
"whip_value": 1.1359,
"whip_rank": null,
"war_value": 0.21,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9899,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 0.9899,
"adjusted": 2
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9892,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.982,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.013,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 0,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260831_MIA@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"
}
} |
| 20260831 | 20260831_MIL@CHC | away | Kyle Harrison | Kyle Harrison | True | 5.2 | 3.2 | -6 | 3 | 9 | 6 | 4/10 | 1/2 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.7870967741935484,
"WHIP": 1.1225806451612903,
"IP": 103.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 4.921,
"recent_avg_IP": 4.733,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5064,
"sample_weight": 1.0,
"run_prevention_factor": 0.957,
"strikeout_factor": 1.068,
"walk_factor": 0.946,
"homer_factor": 0.9523,
"regression_flag": "neutral",
"k_percent": 30.0,
"bb_percent": 6.4,
"woba": 0.293,
"xwoba": 0.28,
"barrel_percent": 6.8,
"hard_hit_percent": 35.8,
"whiff_percent": 29.1
},
"espn_rank": {
"rank": 51,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 103.1,
"season_ERA": 2.787,
"season_WHIP": 1.123,
"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": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "690986",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 7.0,
"R": 12.0,
"H": 23.0,
"BB": 7.0,
"SO": 28.0,
"HR": 5.0,
"BF": 99.0,
"Pitches": 398.0
},
"per_game": {
"IP": 4.2,
"ER": 1.4,
"R": 2.4,
"H": 4.6,
"BB": 1.4,
"SO": 5.6,
"HR": 1.0,
"BF": 19.8,
"Pitches": 79.6
},
"rates": {
"ERA": 2.662,
"WHIP": 1.2676,
"ER_per_IP": 0.29577,
"H_per_IP": 0.97183,
"BB_per_IP": 0.29577,
"SO_per_IP": 1.1831,
"HR_per_IP": 0.21127
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.0,
"ER": 22.0,
"R": 27.0,
"H": 46.0,
"BB": 11.0,
"SO": 54.0,
"HR": 10.0,
"BF": 194.0,
"Pitches": 798.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.7,
"H": 4.6,
"BB": 1.1,
"SO": 5.4,
"HR": 1.0,
"BF": 19.4,
"Pitches": 79.8
},
"rates": {
"ERA": 4.3043,
"WHIP": 1.2391,
"ER_per_IP": 0.47826,
"H_per_IP": 1.0,
"BB_per_IP": 0.23913,
"SO_per_IP": 1.17391,
"HR_per_IP": 0.21739
}
},
"season": {
"games": 21,
"totals": {
"IP": 103.1,
"ER": 32.0,
"R": 37.0,
"H": 89.0,
"BB": 27.0,
"SO": 127.0,
"HR": 14.0,
"BF": 423.0,
"Pitches": 1785.0
},
"per_game": {
"IP": 5.0,
"ER": 1.5238,
"R": 1.7619,
"H": 4.2381,
"BB": 1.2857,
"SO": 6.0476,
"HR": 0.6667,
"BF": 20.1429,
"Pitches": 85.0
},
"rates": {
"ERA": 2.7871,
"WHIP": 1.1226,
"ER_per_IP": 0.30968,
"H_per_IP": 0.86129,
"BB_per_IP": 0.26129,
"SO_per_IP": 1.22903,
"HR_per_IP": 0.13548
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.91,
"predicted_H": 4.728,
"predicted_BB": 1.418,
"predicted_SO": 5.606,
"predicted_HR": 0.925,
"predicted_ERA": 3.4995,
"predicted_WHIP": 1.2509
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.91,
"final": 2.3801,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.728,
"final": 4.4141,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.418,
"final": 1.2377,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.606,
"final": 5.7759,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.925,
"final": 0.9573,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4995,
"final": 3.4995,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2509,
"final": 1.2509,
"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.0,
"ER": 22,
"H": 46,
"BB": 11,
"SO": 54,
"HR": 10,
"ERA": 4.304347826086956,
"WHIP": 1.2391304347826084,
"K9": 10.565217391304346,
"HR9": 1.9565217391304346,
"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-08-25T00:00:00"
},
"recent_form_boost": 0.9885078763295265,
"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": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690986",
"player_name": "Kyle Harrison",
"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": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 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": 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": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.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": 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": 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": 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": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.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": "MIL",
"games": 137,
"wins": 85,
"losses": 52,
"win_pct": 0.6204,
"runs_scored": 683.0,
"runs_allowed": 506.0,
"run_differential": 177.0,
"run_differential_per_game": 1.292,
"avg_runs_scored": 4.9854,
"avg_runs_allowed": 3.6934,
"offense_index": 1.1158,
"defense_index": 1.2097,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 2.7,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.3314
},
"opponent": {
"team": "CHC",
"games": 137,
"wins": 77,
"losses": 60,
"win_pct": 0.562,
"runs_scored": 725.0,
"runs_allowed": 598.0,
"run_differential": 127.0,
"run_differential_per_game": 0.927,
"avg_runs_scored": 5.292,
"avg_runs_allowed": 4.365,
"offense_index": 1.1844,
"defense_index": 1.0236,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 6.9,
"avg_runs_allowed": 4.5,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.0968
},
"edges": {
"quality_edge": 0.2346,
"offense_edge": 0.1158,
"opponent_offense_edge": 0.1844,
"defense_strength": 0.2097,
"opponent_defense_weakness": -0.0236,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0083,
"run_prevention": 0.9968,
"strikeout": 0.9923
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690986",
"profile": {
"available": true,
"pitcher_id": "690986",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 379.0,
"k_percent": 30.0,
"bb_percent": 6.4,
"woba": 0.293,
"xwoba": 0.28,
"sweet_spot_percent": 37.0,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 35.8,
"avg_best_speed": 78.5575,
"avg_hyper_speed": 93.7262,
"whiff_percent": 29.1,
"swing_percent": 48.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.4452,
"command_and_miss": 0.8443,
"regression_edge": 0.3714,
"xwoba_edge": 0.9143,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.2857,
"whiff_edge": 0.5571,
"bb_edge": 0.675,
"pitch_design_score": 0.0056
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "690986",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 76,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 76,
"pitch_usage": 0.0,
"release_speed": 89.96447377881593,
"release_spin_rate": 2200.373890759081,
"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": 76,
"pitch_usage": 0.0,
"release_speed": 89.96447377881593,
"release_spin_rate": 2200.373890759081,
"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.9645,
"release_spin_rate": 2200.3739,
"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.0056,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0398,
"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.5064,
"sample_weight": 1.0,
"run_prevention_factor": 0.957,
"strikeout_factor": 1.068,
"walk_factor": 0.946,
"homer_factor": 0.9523,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "690986",
"espn_id": 4683375,
"player_name": "Kyle Harrison",
"team": "MIL",
"role": "pitcher",
"espn_rank": 51,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 51,
"gp_value": 21.0,
"gp_rank": 356,
"gs_value": 21.0,
"gs_rank": 86,
"qs_value": 6.0,
"qs_rank": 86,
"era_value": 2.787,
"era_rank": null,
"w_value": 10.0,
"w_rank": 26,
"l_value": 3.0,
"l_rank": 224,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 103.1,
"ip_rank": 108,
"h_value": 89.0,
"h_rank": 118,
"er_value": 32.0,
"er_rank": 168,
"hr_value": 14.0,
"hr_rank": 93,
"bb_value": 27.0,
"bb_rank": 180,
"k_value": 127.0,
"k_rank": 49,
"k_per_9_value": 11.06129,
"k_per_9_rank": 12,
"whip_value": 1.1225,
"whip_rank": null,
"war_value": 2.49,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.957,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.957,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.946,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9523,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.068,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was +6; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was +6."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +4."
}
],
"provenance": {
"prediction": "output/games/20260831_MIL@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"
}
} |
| 20260831 | 20260831_MIL@CHC | home | Clay Holmes | Clay Holmes | True | 6.0 | 6.0 | 0 | 2 | 0 | -2 | 1/5 | 0/2 | 5/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.2599118942731278,
"WHIP": 1.0572687224669604,
"IP": 75.2,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 5.821,
"recent_avg_IP": 5.467,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0496,
"sample_weight": 1.0,
"run_prevention_factor": 1.0042,
"strikeout_factor": 0.9526,
"walk_factor": 0.984,
"homer_factor": 0.9874,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.2,
"bb_percent": 8.3,
"woba": 0.251,
"xwoba": 0.308,
"barrel_percent": 5.4,
"hard_hit_percent": 42.1,
"whiff_percent": 20.7
},
"espn_rank": {
"rank": 42,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 75.2,
"season_ERA": 2.26,
"season_WHIP": 1.057,
"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": "605280",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 9.0,
"R": 9.0,
"H": 22.0,
"BB": 9.0,
"SO": 18.0,
"HR": 1.0,
"BF": 111.0,
"Pitches": 424.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 1.8,
"H": 4.4,
"BB": 1.8,
"SO": 3.6,
"HR": 0.2,
"BF": 22.2,
"Pitches": 84.8
},
"rates": {
"ERA": 2.9634,
"WHIP": 1.1341,
"ER_per_IP": 0.32927,
"H_per_IP": 0.80488,
"BB_per_IP": 0.32927,
"SO_per_IP": 0.65854,
"HR_per_IP": 0.03659
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.2,
"ER": 16.0,
"R": 16.0,
"H": 43.0,
"BB": 17.0,
"SO": 43.0,
"HR": 3.0,
"BF": 231.0,
"Pitches": 896.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 4.3,
"BB": 1.7,
"SO": 4.3,
"HR": 0.3,
"BF": 23.1,
"Pitches": 89.6
},
"rates": {
"ERA": 2.4971,
"WHIP": 1.0405,
"ER_per_IP": 0.27746,
"H_per_IP": 0.74566,
"BB_per_IP": 0.2948,
"SO_per_IP": 0.74566,
"HR_per_IP": 0.05202
}
},
"season": {
"games": 13,
"totals": {
"IP": 75.2,
"ER": 19.0,
"R": 19.0,
"H": 55.0,
"BB": 25.0,
"SO": 55.0,
"HR": 4.0,
"BF": 303.0,
"Pitches": 1157.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4615,
"R": 1.4615,
"H": 4.2308,
"BB": 1.9231,
"SO": 4.2308,
"HR": 0.3077,
"BF": 23.3077,
"Pitches": 89.0
},
"rates": {
"ERA": 2.2599,
"WHIP": 1.0573,
"ER_per_IP": 0.2511,
"H_per_IP": 0.72687,
"BB_per_IP": 0.3304,
"SO_per_IP": 0.72687,
"HR_per_IP": 0.05286
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.99,
"predicted_H": 4.665,
"predicted_BB": 1.877,
"predicted_SO": 4.342,
"predicted_HR": 0.415,
"predicted_ERA": 3.1702,
"predicted_WHIP": 1.1577
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4674,
"form_weight": 0.5326,
"form_reliability": 0.7222,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.99,
"final": 1.9947,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.665,
"final": 2.9521,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.877,
"final": 0.9997,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.342,
"final": 4.6495,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.415,
"final": 0.221,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1702,
"final": 3.1702,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1577,
"final": 1.1577,
"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.2,
"ER": 16,
"H": 43,
"BB": 17,
"SO": 43,
"HR": 3,
"ERA": 2.497109826589595,
"WHIP": 1.0404624277456647,
"K9": 6.710982658959537,
"HR9": 0.4682080924855491,
"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-08-25T00:00:00"
},
"recent_form_boost": 0.7802269012101499,
"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": 1.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605280",
"player_name": "Clay Holmes",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": "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": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"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": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 137,
"wins": 77,
"losses": 60,
"win_pct": 0.562,
"runs_scored": 725.0,
"runs_allowed": 598.0,
"run_differential": 127.0,
"run_differential_per_game": 0.927,
"avg_runs_scored": 5.292,
"avg_runs_allowed": 4.365,
"offense_index": 1.1844,
"defense_index": 1.0236,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 6.9,
"avg_runs_allowed": 4.5,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.0968
},
"opponent": {
"team": "MIL",
"games": 137,
"wins": 85,
"losses": 52,
"win_pct": 0.6204,
"runs_scored": 683.0,
"runs_allowed": 506.0,
"run_differential": 177.0,
"run_differential_per_game": 1.292,
"avg_runs_scored": 4.9854,
"avg_runs_allowed": 3.6934,
"offense_index": 1.1158,
"defense_index": 1.2097,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 2.7,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.3314
},
"edges": {
"quality_edge": -0.2346,
"offense_edge": 0.1844,
"opponent_offense_edge": 0.1158,
"defense_strength": 0.0236,
"opponent_defense_weakness": -0.2097,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9867,
"run_prevention": 1.0279,
"strikeout": 0.9837
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605280",
"profile": {
"available": true,
"pitcher_id": "605280",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 277.0,
"k_percent": 18.2,
"bb_percent": 8.3,
"woba": 0.251,
"xwoba": 0.308,
"sweet_spot_percent": 26.2,
"barrel_batted_rate": 5.4,
"hard_hit_percent": 42.1,
"avg_best_speed": 78.7262,
"avg_hyper_speed": 94.3103,
"whiff_percent": 20.7,
"swing_percent": 46.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.4074,
"command_and_miss": -0.4293,
"regression_edge": -1.6286,
"xwoba_edge": 0.1143,
"barrel_edge": 0.4222,
"hard_hit_edge": -0.6143,
"whiff_edge": -0.6429,
"bb_edge": 0.2,
"pitch_design_score": -0.0416
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605280",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.12254093725541,
"release_spin_rate": 2162.3889026804495,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.12254093725541,
"release_spin_rate": 2162.3889026804495,
"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.1225,
"release_spin_rate": 2162.3889,
"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.0416,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2969,
"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.0496,
"sample_weight": 1.0,
"run_prevention_factor": 1.0042,
"strikeout_factor": 0.9526,
"walk_factor": 0.984,
"homer_factor": 0.9874,
"woba_minus_xwoba": -0.057,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "605280",
"espn_id": 32827,
"player_name": "Clay Holmes",
"team": "CHC",
"role": "pitcher",
"espn_rank": 42,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 42,
"gp_value": 13.0,
"gp_rank": 474,
"gs_value": 13.0,
"gs_rank": 147,
"qs_value": 6.0,
"qs_rank": 86,
"era_value": 2.2599,
"era_rank": null,
"w_value": 5.0,
"w_rank": 128,
"l_value": 6.0,
"l_rank": 101,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 75.2,
"ip_rank": 161,
"h_value": 55.0,
"h_rank": 195,
"er_value": 19.0,
"er_rank": 314,
"hr_value": 4.0,
"hr_rank": 359,
"bb_value": 25.0,
"bb_rank": 203,
"k_value": 55.0,
"k_rank": 237,
"k_per_9_value": 6.54185,
"k_per_9_rank": 39,
"whip_value": 1.0572,
"whip_rank": null,
"war_value": 2.7,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0042,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0042,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.984,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9874,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9526,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 85,
"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/20260831_MIL@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"
}
} |
| 20260831 | 20260831_NYM@TB | away | Robert Stock | Robert Stock | True | 4.0 | 5.1 | 4 | 4 | 0 | -4 | 5/5 | 3/0 | 5/4 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 7.403225806451612,
"WHIP": 1.9354838709677418,
"IP": 20.2,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 4.133,
"recent_avg_IP": 4.133,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1262,
"sample_weight": 0.45,
"run_prevention_factor": 1.0107,
"strikeout_factor": 0.9933,
"walk_factor": 1.0306,
"homer_factor": 1.0037,
"regression_flag": "positive_pitcher_regression",
"k_percent": 20.2,
"bb_percent": 12.5,
"woba": 0.383,
"xwoba": 0.339,
"barrel_percent": 9.0,
"hard_hit_percent": 29.9,
"whiff_percent": 24.4
},
"espn_rank": {
"rank": 752,
"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": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "476594",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 17.0,
"R": 18.0,
"H": 27.0,
"BB": 13.0,
"SO": 21.0,
"HR": 2.0,
"BF": 104.0,
"Pitches": 404.0
},
"per_game": {
"IP": 4.0,
"ER": 3.4,
"R": 3.6,
"H": 5.4,
"BB": 2.6,
"SO": 4.2,
"HR": 0.4,
"BF": 20.8,
"Pitches": 80.8
},
"rates": {
"ERA": 7.4032,
"WHIP": 1.9355,
"ER_per_IP": 0.82258,
"H_per_IP": 1.30645,
"BB_per_IP": 0.62903,
"SO_per_IP": 1.01613,
"HR_per_IP": 0.09677
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 17.0,
"R": 18.0,
"H": 27.0,
"BB": 13.0,
"SO": 21.0,
"HR": 2.0,
"BF": 104.0,
"Pitches": 404.0
},
"per_game": {
"IP": 4.0,
"ER": 3.4,
"R": 3.6,
"H": 5.4,
"BB": 2.6,
"SO": 4.2,
"HR": 0.4,
"BF": 20.8,
"Pitches": 80.8
},
"rates": {
"ERA": 7.4032,
"WHIP": 1.9355,
"ER_per_IP": 0.82258,
"H_per_IP": 1.30645,
"BB_per_IP": 0.62903,
"SO_per_IP": 1.01613,
"HR_per_IP": 0.09677
}
},
"season": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 17.0,
"R": 18.0,
"H": 27.0,
"BB": 13.0,
"SO": 21.0,
"HR": 2.0,
"BF": 104.0,
"Pitches": 404.0
},
"per_game": {
"IP": 4.0,
"ER": 3.4,
"R": 3.6,
"H": 5.4,
"BB": 2.6,
"SO": 4.2,
"HR": 0.4,
"BF": 20.8,
"Pitches": 80.8
},
"rates": {
"ERA": 7.4032,
"WHIP": 1.9355,
"ER_per_IP": 0.82258,
"H_per_IP": 1.30645,
"BB_per_IP": 0.62903,
"SO_per_IP": 1.01613,
"HR_per_IP": 0.09677
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.755,
"predicted_H": 4.75,
"predicted_BB": 2.083,
"predicted_SO": 4.074,
"predicted_HR": 0.507,
"predicted_ERA": 5.9505,
"predicted_WHIP": 1.6399
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5613,
"form_weight": 0.4388,
"form_reliability": 0.5,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.755,
"final": 3.4538,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.75,
"final": 4.8903,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.083,
"final": 2.5977,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.074,
"final": 4.5937,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.507,
"final": 0.7837,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.9505,
"final": 5.9505,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6399,
"final": 1.6399,
"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": 20.2,
"ER": 17,
"H": 27,
"BB": 13,
"SO": 21,
"HR": 2,
"ERA": 7.403225806451614,
"WHIP": 1.9354838709677422,
"K9": 9.145161290322582,
"HR9": 0.870967741935484,
"games_pitched": 5,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 1.23923025637781,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"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": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 4,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "476594",
"player_name": "Robert Stock",
"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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 5.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": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"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.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 4.0,
"predicted_SO": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"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.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 137,
"wins": 61,
"losses": 76,
"win_pct": 0.4453,
"runs_scored": 562.0,
"runs_allowed": 615.0,
"run_differential": -53.0,
"run_differential_per_game": -0.3869,
"avg_runs_scored": 4.1022,
"avg_runs_allowed": 4.4891,
"offense_index": 0.9163,
"defense_index": 0.9973,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.129
},
"opponent": {
"team": "TB",
"games": 136,
"wins": 82,
"losses": 54,
"win_pct": 0.6029,
"runs_scored": 616.0,
"runs_allowed": 562.0,
"run_differential": 54.0,
"run_differential_per_game": 0.3971,
"avg_runs_scored": 4.5294,
"avg_runs_allowed": 4.1324,
"offense_index": 1.0117,
"defense_index": 1.0834,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.3,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.1712
},
"edges": {
"quality_edge": -0.3002,
"offense_edge": -0.0837,
"opponent_offense_edge": 0.0117,
"defense_strength": -0.0027,
"opponent_defense_weakness": -0.0834,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9874,
"run_prevention": 1.0172,
"strikeout": 0.9901
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "476594",
"profile": {
"available": true,
"pitcher_id": "476594",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 81.0,
"k_percent": 20.2,
"bb_percent": 12.5,
"woba": 0.383,
"xwoba": 0.339,
"sweet_spot_percent": 37.3,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 29.9,
"avg_best_speed": 76.2956,
"avg_hyper_speed": 93.3172,
"whiff_percent": 24.4,
"swing_percent": 47.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.5832,
"command_and_miss": -0.3257,
"regression_edge": 1.2571,
"xwoba_edge": -0.7714,
"barrel_edge": -0.3778,
"hard_hit_edge": 1.1286,
"whiff_edge": -0.1143,
"bb_edge": -0.85,
"pitch_design_score": 0.0638
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "476594",
"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": 91.00453080177854,
"release_spin_rate": 2252.021749497992,
"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": 91.00453080177854,
"release_spin_rate": 2252.021749497992,
"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.0045,
"release_spin_rate": 2252.0217,
"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.0638,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4559,
"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.1262,
"sample_weight": 0.45,
"run_prevention_factor": 1.0107,
"strikeout_factor": 0.9933,
"walk_factor": 1.0306,
"homer_factor": 1.0037,
"woba_minus_xwoba": 0.044,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "476594",
"espn_id": 30577,
"player_name": "Robert Stock",
"team": "NYM",
"role": "pitcher",
"espn_rank": 752,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 752,
"gp_value": 5.0,
"gp_rank": 605,
"gs_value": 5.0,
"gs_rank": 210,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 7.4032,
"era_rank": null,
"w_value": 0.0,
"w_rank": 516,
"l_value": 3.0,
"l_rank": 224,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 20.2,
"ip_rank": 486,
"h_value": 27.0,
"h_rank": 425,
"er_value": 17.0,
"er_rank": 352,
"hr_value": 2.0,
"hr_rank": 500,
"bb_value": 13.0,
"bb_rank": 400,
"k_value": 21.0,
"k_rank": 462,
"k_per_9_value": 9.145161,
"k_per_9_rank": 25,
"whip_value": 1.9354,
"whip_rank": null,
"war_value": -0.47,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0048,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0048,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0138,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0017,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.997,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 87,
"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": "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": "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 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260831_NYM@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"
}
} |
| 20260831 | 20260831_NYM@TB | home | Ian Seymour | Ian Seymour | True | 5.0 | 6.1 | 4 | 0 | 3 | 3 | 3/6 | 3/0 | 6/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7850467289719627,
"WHIP": 1.102803738317757,
"IP": 107.0,
"games_started": null,
"games_pitched": 40,
"role_avg_IP": 4.697,
"recent_avg_IP": 5.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3054,
"sample_weight": 1.0,
"run_prevention_factor": 0.974,
"strikeout_factor": 1.06,
"walk_factor": 0.962,
"homer_factor": 1.0163,
"regression_flag": "neutral",
"k_percent": 28.7,
"bb_percent": 7.2,
"woba": 0.309,
"xwoba": 0.294,
"barrel_percent": 9.6,
"hard_hit_percent": 36.2,
"whiff_percent": 29.0
},
"espn_rank": {
"rank": 249,
"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": 21.474,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8111,
"prior_weight": 0.1889
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693855",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 40,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 12.0,
"R": 13.0,
"H": 31.0,
"BB": 4.0,
"SO": 38.0,
"HR": 7.0,
"BF": 123.0,
"Pitches": 459.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.6,
"H": 6.2,
"BB": 0.8,
"SO": 7.6,
"HR": 1.4,
"BF": 24.6,
"Pitches": 91.8
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.2209,
"ER_per_IP": 0.4186,
"H_per_IP": 1.0814,
"BB_per_IP": 0.13953,
"SO_per_IP": 1.32558,
"HR_per_IP": 0.24419
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 25.0,
"R": 27.0,
"H": 51.0,
"BB": 11.0,
"SO": 68.0,
"HR": 11.0,
"BF": 216.0,
"Pitches": 850.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5,
"R": 2.7,
"H": 5.1,
"BB": 1.1,
"SO": 6.8,
"HR": 1.1,
"BF": 21.6,
"Pitches": 85.0
},
"rates": {
"ERA": 4.4118,
"WHIP": 1.2157,
"ER_per_IP": 0.4902,
"H_per_IP": 1.0,
"BB_per_IP": 0.21569,
"SO_per_IP": 1.33333,
"HR_per_IP": 0.21569
}
},
"season": {
"games": 40,
"totals": {
"IP": 107.0,
"ER": 45.0,
"R": 49.0,
"H": 86.0,
"BB": 32.0,
"SO": 128.0,
"HR": 19.0,
"BF": 441.0,
"Pitches": 1713.0
},
"per_game": {
"IP": 2.2,
"ER": 1.125,
"R": 1.225,
"H": 2.15,
"BB": 0.8,
"SO": 3.2,
"HR": 0.475,
"BF": 11.025,
"Pitches": 42.825
},
"rates": {
"ERA": 3.785,
"WHIP": 1.1028,
"ER_per_IP": 0.42056,
"H_per_IP": 0.80374,
"BB_per_IP": 0.29907,
"SO_per_IP": 1.19626,
"HR_per_IP": 0.17757
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.211,
"predicted_H": 4.83,
"predicted_BB": 1.122,
"predicted_SO": 6.002,
"predicted_HR": 1.007,
"predicted_ERA": 4.0911,
"predicted_WHIP": 1.2236
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4298,
"form_weight": 0.5702,
"form_reliability": 0.8111,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.474,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8111,
"prior_weight": 0.1889
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.211,
"final": 1.2607,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.83,
"final": 4.0434,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.122,
"final": 1.9292,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.002,
"final": 5.5713,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.007,
"final": 0.5742,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0911,
"final": 4.0911,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2236,
"final": 1.2236,
"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": 25,
"H": 51,
"BB": 11,
"SO": 68,
"HR": 11,
"ERA": 4.411764705882352,
"WHIP": 1.2156862745098038,
"K9": 11.999999999999998,
"HR9": 1.941176470588235,
"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-08-25T00:00:00"
},
"recent_form_boost": 1.0000061712996886,
"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": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.474,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8111,
"prior_weight": 0.1889
}
},
{
"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": 0,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693855",
"player_name": "Ian Seymour",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 3.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": {}
},
{
"index": 3,
"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": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "TB",
"games": 136,
"wins": 82,
"losses": 54,
"win_pct": 0.6029,
"runs_scored": 616.0,
"runs_allowed": 562.0,
"run_differential": 54.0,
"run_differential_per_game": 0.3971,
"avg_runs_scored": 4.5294,
"avg_runs_allowed": 4.1324,
"offense_index": 1.0117,
"defense_index": 1.0834,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.3,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.1712
},
"opponent": {
"team": "NYM",
"games": 137,
"wins": 61,
"losses": 76,
"win_pct": 0.4453,
"runs_scored": 562.0,
"runs_allowed": 615.0,
"run_differential": -53.0,
"run_differential_per_game": -0.3869,
"avg_runs_scored": 4.1022,
"avg_runs_allowed": 4.4891,
"offense_index": 0.9163,
"defense_index": 0.9973,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.129
},
"edges": {
"quality_edge": 0.3002,
"offense_edge": 0.0117,
"opponent_offense_edge": -0.0837,
"defense_strength": 0.0834,
"opponent_defense_weakness": 0.0027,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0179,
"run_prevention": 0.9633,
"strikeout": 1.0157
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693855",
"profile": {
"available": true,
"pitcher_id": "693855",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 390.0,
"k_percent": 28.7,
"bb_percent": 7.2,
"woba": 0.309,
"xwoba": 0.294,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 36.2,
"avg_best_speed": 77.2147,
"avg_hyper_speed": 93.7525,
"whiff_percent": 29.0,
"swing_percent": 50.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.1677,
"command_and_miss": 0.7157,
"regression_edge": 0.4286,
"xwoba_edge": 0.5143,
"barrel_edge": -0.5111,
"hard_hit_edge": 0.2286,
"whiff_edge": 0.5429,
"bb_edge": 0.475,
"pitch_design_score": -0.218
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693855",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 85.97248769813585,
"release_spin_rate": 1969.909917192974,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 85.97248769813585,
"release_spin_rate": 1969.909917192974,
"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.9725,
"release_spin_rate": 1969.9099,
"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.218,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.557,
"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.3054,
"sample_weight": 1.0,
"run_prevention_factor": 0.974,
"strikeout_factor": 1.06,
"walk_factor": 0.962,
"homer_factor": 1.0163,
"woba_minus_xwoba": 0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693855",
"espn_id": 4669425,
"player_name": "Ian Seymour",
"team": "TB",
"role": "pitcher",
"espn_rank": 249,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 249,
"gp_value": 41.0,
"gp_rank": 149,
"gs_value": 11.0,
"gs_rank": 159,
"qs_value": 4.0,
"qs_rank": 120,
"era_value": 4.2056,
"era_rank": null,
"w_value": 9.0,
"w_rank": 32,
"l_value": 5.0,
"l_rank": 128,
"sv_value": 2.0,
"sv_rank": 86,
"hld_value": 10.0,
"hld_rank": 79,
"ip_value": 107.0,
"ip_rank": 104,
"h_value": 91.0,
"h_rank": 117,
"er_value": 50.0,
"er_rank": 91,
"hr_value": 19.0,
"hr_rank": 36,
"bb_value": 32.0,
"bb_rank": 128,
"k_value": 128.0,
"k_rank": 46,
"k_per_9_value": 10.766355,
"k_per_9_rank": 11,
"whip_value": 1.1495,
"whip_rank": null,
"war_value": 0.51,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.974,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.962,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0163,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.06,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"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": "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/20260831_NYM@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"
}
} |
| 20260831 | 20260831_NYY@LAA | away | Elmer Rodríguez | Elmer Rodríguez | True | 4.2 | 3.2 | -3 | 2 | 4 | 2 | 5/4 | 2/3 | 4/5 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 4.695652173913044,
"WHIP": 1.5217391304347827,
"IP": 23.0,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 4.6,
"recent_avg_IP": 4.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.206,
"sample_weight": 0.45,
"run_prevention_factor": 1.0175,
"strikeout_factor": 0.9887,
"walk_factor": 1.0297,
"homer_factor": 1.009,
"regression_flag": "neutral",
"k_percent": 15.2,
"bb_percent": 12.4,
"woba": 0.33,
"xwoba": 0.355,
"barrel_percent": 6.9,
"hard_hit_percent": 36.1,
"whiff_percent": 27.6
},
"espn_rank": {
"rank": 360,
"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": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695684",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 12.0,
"R": 12.0,
"H": 22.0,
"BB": 13.0,
"SO": 16.0,
"HR": 2.0,
"BF": 105.0,
"Pitches": 406.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.4,
"H": 4.4,
"BB": 2.6,
"SO": 3.2,
"HR": 0.4,
"BF": 21.0,
"Pitches": 81.2
},
"rates": {
"ERA": 4.6957,
"WHIP": 1.5217,
"ER_per_IP": 0.52174,
"H_per_IP": 0.95652,
"BB_per_IP": 0.56522,
"SO_per_IP": 0.69565,
"HR_per_IP": 0.08696
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 12.0,
"R": 12.0,
"H": 22.0,
"BB": 13.0,
"SO": 16.0,
"HR": 2.0,
"BF": 105.0,
"Pitches": 406.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.4,
"H": 4.4,
"BB": 2.6,
"SO": 3.2,
"HR": 0.4,
"BF": 21.0,
"Pitches": 81.2
},
"rates": {
"ERA": 4.6957,
"WHIP": 1.5217,
"ER_per_IP": 0.52174,
"H_per_IP": 0.95652,
"BB_per_IP": 0.56522,
"SO_per_IP": 0.69565,
"HR_per_IP": 0.08696
}
},
"season": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 12.0,
"R": 12.0,
"H": 22.0,
"BB": 13.0,
"SO": 16.0,
"HR": 2.0,
"BF": 105.0,
"Pitches": 406.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.4,
"H": 4.4,
"BB": 2.6,
"SO": 3.2,
"HR": 0.4,
"BF": 21.0,
"Pitches": 81.2
},
"rates": {
"ERA": 4.6957,
"WHIP": 1.5217,
"ER_per_IP": 0.52174,
"H_per_IP": 0.95652,
"BB_per_IP": 0.56522,
"SO_per_IP": 0.69565,
"HR_per_IP": 0.08696
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.383,
"predicted_H": 4.504,
"predicted_BB": 2.184,
"predicted_SO": 3.815,
"predicted_HR": 0.546,
"predicted_ERA": 4.5967,
"predicted_WHIP": 1.433
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5613,
"form_weight": 0.4388,
"form_reliability": 0.5,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.383,
"final": 2.168,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.504,
"final": 4.2211,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.184,
"final": 2.0807,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.815,
"final": 3.9188,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.546,
"final": 0.8008,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5967,
"final": 4.5967,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.433,
"final": 1.433,
"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": 23.0,
"ER": 12,
"H": 22,
"BB": 13,
"SO": 16,
"HR": 2,
"ERA": 4.695652173913044,
"WHIP": 1.5217391304347827,
"K9": 6.260869565217392,
"HR9": 0.782608695652174,
"games_pitched": 5,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 1.0297335104301357,
"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": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
}
},
{
"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": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695684",
"player_name": "Elmer Rodr\u00edguez",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"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": {}
},
{
"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": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"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": "NYY",
"games": 137,
"wins": 78,
"losses": 59,
"win_pct": 0.5693,
"runs_scored": 622.0,
"runs_allowed": 505.0,
"run_differential": 117.0,
"run_differential_per_game": 0.854,
"avg_runs_scored": 4.5401,
"avg_runs_allowed": 3.6861,
"offense_index": 1.0144,
"defense_index": 1.2142,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.4,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.1989
},
"opponent": {
"team": "LAA",
"games": 137,
"wins": 52,
"losses": 85,
"win_pct": 0.3796,
"runs_scored": 555.0,
"runs_allowed": 637.0,
"run_differential": -82.0,
"run_differential_per_game": -0.5985,
"avg_runs_scored": 4.0511,
"avg_runs_allowed": 4.6496,
"offense_index": 0.9052,
"defense_index": 0.9626,
"current_streak": "L7",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.0,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.2809
},
"edges": {
"quality_edge": 0.4798,
"offense_edge": 0.0144,
"opponent_offense_edge": -0.0948,
"defense_strength": 0.2142,
"opponent_defense_weakness": 0.0374,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0294,
"run_prevention": 0.9394,
"strikeout": 1.022
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695684",
"profile": {
"available": true,
"pitcher_id": "695684",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 83.0,
"k_percent": 15.2,
"bb_percent": 12.4,
"woba": 0.33,
"xwoba": 0.355,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 36.1,
"avg_best_speed": 76.22,
"avg_hyper_speed": 93.7271,
"whiff_percent": 27.6,
"swing_percent": 40.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4683,
"command_and_miss": -0.4821,
"regression_edge": -0.7143,
"xwoba_edge": -1.2286,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.2429,
"whiff_edge": 0.3429,
"bb_edge": -0.825,
"pitch_design_score": 0.0162
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695684",
"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": 90.1535472074468,
"release_spin_rate": 1952.6624335106383,
"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": 90.1535472074468,
"release_spin_rate": 1952.6624335106383,
"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.1535,
"release_spin_rate": 1952.6624,
"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.0162,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1155,
"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.206,
"sample_weight": 0.45,
"run_prevention_factor": 1.0175,
"strikeout_factor": 0.9887,
"walk_factor": 1.0297,
"homer_factor": 1.009,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695684",
"espn_id": 5194637,
"player_name": "Elmer Rodriguez",
"team": "NYY",
"role": "pitcher",
"espn_rank": 360,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 360,
"gp_value": 5.0,
"gp_rank": 605,
"gs_value": 5.0,
"gs_rank": 210,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 4.6956,
"era_rank": null,
"w_value": 0.0,
"w_rank": 516,
"l_value": 2.0,
"l_rank": 313,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 23.0,
"ip_rank": 468,
"h_value": 22.0,
"h_rank": 470,
"er_value": 12.0,
"er_rank": 456,
"hr_value": 2.0,
"hr_rank": 500,
"bb_value": 13.0,
"bb_rank": 400,
"k_value": 16.0,
"k_rank": 506,
"k_per_9_value": 6.2608695,
"k_per_9_rank": 29,
"whip_value": 1.5217,
"whip_rank": null,
"war_value": 0.16,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0079,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0079,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0134,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.004,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9949,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 82,
"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."
}
],
"provenance": {
"prediction": "output/games/20260831_NYY@LAA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260831 | 20260831_NYY@LAA | home | Walbert Ureña | Walbert Ureña | True | 5.2 | 7.0 | 4 | 2 | 1 | -1 | 5/5 | 2/0 | 8/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9398280802292263,
"WHIP": 1.2893982808022924,
"IP": 116.1,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.212,
"recent_avg_IP": 4.6,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3641,
"sample_weight": 1.0,
"run_prevention_factor": 0.9691,
"strikeout_factor": 1.0131,
"walk_factor": 1.074,
"homer_factor": 0.9197,
"regression_flag": "neutral",
"k_percent": 22.4,
"bb_percent": 12.8,
"woba": 0.283,
"xwoba": 0.288,
"barrel_percent": 5.1,
"hard_hit_percent": 34.2,
"whiff_percent": 27.1
},
"espn_rank": {
"rank": 45,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 116.1,
"season_ERA": 2.94,
"season_WHIP": 1.289,
"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": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "700712",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 10.0,
"R": 10.0,
"H": 17.0,
"BB": 15.0,
"SO": 24.0,
"HR": 1.0,
"BF": 99.0,
"Pitches": 423.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 3.4,
"BB": 3.0,
"SO": 4.8,
"HR": 0.2,
"BF": 19.8,
"Pitches": 84.6
},
"rates": {
"ERA": 3.913,
"WHIP": 1.3913,
"ER_per_IP": 0.43478,
"H_per_IP": 0.73913,
"BB_per_IP": 0.65217,
"SO_per_IP": 1.04348,
"HR_per_IP": 0.04348
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 20.0,
"R": 20.0,
"H": 33.0,
"BB": 29.0,
"SO": 48.0,
"HR": 2.0,
"BF": 208.0,
"Pitches": 880.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.0,
"H": 3.3,
"BB": 2.9,
"SO": 4.8,
"HR": 0.2,
"BF": 20.8,
"Pitches": 88.0
},
"rates": {
"ERA": 3.6735,
"WHIP": 1.2653,
"ER_per_IP": 0.40816,
"H_per_IP": 0.67347,
"BB_per_IP": 0.59184,
"SO_per_IP": 0.97959,
"HR_per_IP": 0.04082
}
},
"season": {
"games": 24,
"totals": {
"IP": 116.1,
"ER": 38.0,
"R": 45.0,
"H": 86.0,
"BB": 64.0,
"SO": 112.0,
"HR": 7.0,
"BF": 500.0,
"Pitches": 2025.0
},
"per_game": {
"IP": 5.0,
"ER": 1.5833,
"R": 1.875,
"H": 3.5833,
"BB": 2.6667,
"SO": 4.6667,
"HR": 0.2917,
"BF": 20.8333,
"Pitches": 84.375
},
"rates": {
"ERA": 2.9398,
"WHIP": 1.2894,
"ER_per_IP": 0.32665,
"H_per_IP": 0.73926,
"BB_per_IP": 0.55014,
"SO_per_IP": 0.96275,
"HR_per_IP": 0.06017
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.098,
"predicted_H": 3.796,
"predicted_BB": 2.841,
"predicted_SO": 4.959,
"predicted_HR": 0.316,
"predicted_ERA": 3.7833,
"predicted_WHIP": 1.3298
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.098,
"final": 2.0566,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.796,
"final": 4.3051,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.841,
"final": 2.4854,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.959,
"final": 6.2449,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.316,
"final": 1.0281,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7833,
"final": 3.7833,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3298,
"final": 1.3298,
"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": 20,
"H": 33,
"BB": 29,
"SO": 48,
"HR": 2,
"ERA": 3.673469387755102,
"WHIP": 1.2653061224489797,
"K9": 8.816326530612244,
"HR9": 0.3673469387755102,
"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-08-25T00:00:00"
},
"recent_form_boost": 0.9181884442088523,
"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": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"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": 5,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700712",
"player_name": "Walbert Ure\u00f1a",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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": 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_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 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": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"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": 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": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"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": 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": "LAA",
"games": 137,
"wins": 52,
"losses": 85,
"win_pct": 0.3796,
"runs_scored": 555.0,
"runs_allowed": 637.0,
"run_differential": -82.0,
"run_differential_per_game": -0.5985,
"avg_runs_scored": 4.0511,
"avg_runs_allowed": 4.6496,
"offense_index": 0.9052,
"defense_index": 0.9626,
"current_streak": "L7",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.0,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.2809
},
"opponent": {
"team": "NYY",
"games": 137,
"wins": 78,
"losses": 59,
"win_pct": 0.5693,
"runs_scored": 622.0,
"runs_allowed": 505.0,
"run_differential": 117.0,
"run_differential_per_game": 0.854,
"avg_runs_scored": 4.5401,
"avg_runs_allowed": 3.6861,
"offense_index": 1.0144,
"defense_index": 1.2142,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.4,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.1989
},
"edges": {
"quality_edge": -0.4798,
"offense_edge": -0.0948,
"opponent_offense_edge": 0.0144,
"defense_strength": -0.0374,
"opponent_defense_weakness": -0.2142,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9791,
"run_prevention": 1.03,
"strikeout": 0.9845
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700712",
"profile": {
"available": true,
"pitcher_id": "700712",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 477.0,
"k_percent": 22.4,
"bb_percent": 12.8,
"woba": 0.283,
"xwoba": 0.288,
"sweet_spot_percent": 26.9,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 34.2,
"avg_best_speed": 75.4481,
"avg_hyper_speed": 93.5128,
"whiff_percent": 27.1,
"swing_percent": 45.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.6734,
"command_and_miss": -0.0643,
"regression_edge": -0.1429,
"xwoba_edge": 0.6857,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.5143,
"whiff_edge": 0.2714,
"bb_edge": -0.925,
"pitch_design_score": 0.2248
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700712",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 93.87892413530693,
"release_spin_rate": 2097.4669612279217,
"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": 85,
"pitch_usage": 0.0,
"release_speed": 93.87892413530693,
"release_spin_rate": 2097.4669612279217,
"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.8789,
"release_spin_rate": 2097.467,
"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.2248,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.6056,
"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.3641,
"sample_weight": 1.0,
"run_prevention_factor": 0.9691,
"strikeout_factor": 1.0131,
"walk_factor": 1.074,
"homer_factor": 0.9197,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "700712",
"espn_id": 5197476,
"player_name": "Walbert Urena",
"team": "LAA",
"role": "pitcher",
"espn_rank": 45,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 45,
"gp_value": 24.0,
"gp_rank": 312,
"gs_value": 22.0,
"gs_rank": 79,
"qs_value": 10.0,
"qs_rank": 53,
"era_value": 2.9398,
"era_rank": null,
"w_value": 8.0,
"w_rank": 56,
"l_value": 9.0,
"l_rank": 25,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 1.0,
"hld_rank": 258,
"ip_value": 116.1,
"ip_rank": 91,
"h_value": 86.0,
"h_rank": 125,
"er_value": 38.0,
"er_rank": 148,
"hr_value": 7.0,
"hr_rank": 217,
"bb_value": 64.0,
"bb_rank": 8,
"k_value": 112.0,
"k_rank": 72,
"k_per_9_value": 8.664756,
"k_per_9_rank": 21,
"whip_value": 1.2893,
"whip_rank": null,
"war_value": 2.63,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9691,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9691,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.074,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9197,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0131,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 106,
"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/20260831_NYY@LAA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260831 | 20260831_OAK@TEX | away | Gage Jump | Gage Jump | True | 5.0 | 4.1 | -2 | 2 | 7 | 5 | 6/6 | 2/3 | 8/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.686792452830189,
"WHIP": 1.4603773584905662,
"IP": 88.1,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.196,
"recent_avg_IP": 5.067,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0295,
"sample_weight": 1.0,
"run_prevention_factor": 1.0025,
"strikeout_factor": 1.0166,
"walk_factor": 1.036,
"homer_factor": 0.9862,
"regression_flag": "neutral",
"k_percent": 25.2,
"bb_percent": 10.9,
"woba": 0.33,
"xwoba": 0.318,
"barrel_percent": 6.2,
"hard_hit_percent": 37.9,
"whiff_percent": 24.9
},
"espn_rank": {
"rank": 119,
"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": "695611",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 18.0,
"R": 18.0,
"H": 24.0,
"BB": 17.0,
"SO": 29.0,
"HR": 2.0,
"BF": 118.0,
"Pitches": 469.0
},
"per_game": {
"IP": 5.0,
"ER": 3.6,
"R": 3.6,
"H": 4.8,
"BB": 3.4,
"SO": 5.8,
"HR": 0.4,
"BF": 23.6,
"Pitches": 93.8
},
"rates": {
"ERA": 6.3947,
"WHIP": 1.6184,
"ER_per_IP": 0.71053,
"H_per_IP": 0.94737,
"BB_per_IP": 0.67105,
"SO_per_IP": 1.14474,
"HR_per_IP": 0.07895
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 33.0,
"R": 35.0,
"H": 52.0,
"BB": 32.0,
"SO": 57.0,
"HR": 7.0,
"BF": 225.0,
"Pitches": 900.0
},
"per_game": {
"IP": 4.2,
"ER": 3.3,
"R": 3.5,
"H": 5.2,
"BB": 3.2,
"SO": 5.7,
"HR": 0.7,
"BF": 22.5,
"Pitches": 90.0
},
"rates": {
"ERA": 6.1448,
"WHIP": 1.7379,
"ER_per_IP": 0.68276,
"H_per_IP": 1.07586,
"BB_per_IP": 0.66207,
"SO_per_IP": 1.17931,
"HR_per_IP": 0.14483
}
},
"season": {
"games": 17,
"totals": {
"IP": 88.1,
"ER": 46.0,
"R": 48.0,
"H": 87.0,
"BB": 42.0,
"SO": 97.0,
"HR": 9.0,
"BF": 385.0,
"Pitches": 1539.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7059,
"R": 2.8235,
"H": 5.1176,
"BB": 2.4706,
"SO": 5.7059,
"HR": 0.5294,
"BF": 22.6471,
"Pitches": 90.5294
},
"rates": {
"ERA": 4.6868,
"WHIP": 1.4604,
"ER_per_IP": 0.52075,
"H_per_IP": 0.98491,
"BB_per_IP": 0.47547,
"SO_per_IP": 1.09811,
"HR_per_IP": 0.10189
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.105,
"predicted_H": 4.931,
"predicted_BB": 2.829,
"predicted_SO": 5.458,
"predicted_HR": 0.574,
"predicted_ERA": 5.632,
"predicted_WHIP": 1.564
}
},
"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.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.105,
"final": 2.6121,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.931,
"final": 5.4078,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.829,
"final": 2.4592,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.458,
"final": 6.5918,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.574,
"final": 0.764,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.632,
"final": 5.632,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.564,
"final": 1.564,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.1,
"ER": 33,
"H": 52,
"BB": 32,
"SO": 57,
"HR": 7,
"ERA": 6.1448275862068975,
"WHIP": 1.7379310344827588,
"K9": 10.613793103448277,
"HR9": 1.3034482758620691,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 1.208031864335524,
"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": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695611",
"player_name": "Gage Jump",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.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": "OAK",
"games": 137,
"wins": 53,
"losses": 84,
"win_pct": 0.3869,
"runs_scored": 596.0,
"runs_allowed": 787.0,
"run_differential": -191.0,
"run_differential_per_game": -1.3942,
"avg_runs_scored": 4.3504,
"avg_runs_allowed": 5.7445,
"offense_index": 0.9737,
"defense_index": 0.7778,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.1,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.3028
},
"opponent": {
"team": "TEX",
"games": 137,
"wins": 67,
"losses": 70,
"win_pct": 0.4891,
"runs_scored": 554.0,
"runs_allowed": 605.0,
"run_differential": -51.0,
"run_differential_per_game": -0.3723,
"avg_runs_scored": 4.0438,
"avg_runs_allowed": 4.4161,
"offense_index": 0.9051,
"defense_index": 1.0117,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.5,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.0551
},
"edges": {
"quality_edge": -0.2477,
"offense_edge": -0.0263,
"opponent_offense_edge": -0.0949,
"defense_strength": -0.2222,
"opponent_defense_weakness": -0.0117,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9872,
"run_prevention": 1.0194,
"strikeout": 1.0002
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695611",
"profile": {
"available": true,
"pitcher_id": "695611",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 337.0,
"k_percent": 25.2,
"bb_percent": 10.9,
"woba": 0.33,
"xwoba": 0.318,
"sweet_spot_percent": 38.7,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 78.3887,
"avg_hyper_speed": 94.198,
"whiff_percent": 24.9,
"swing_percent": 47.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1704,
"command_and_miss": 0.1007,
"regression_edge": 0.3429,
"xwoba_edge": -0.1714,
"barrel_edge": 0.2444,
"hard_hit_edge": -0.0143,
"whiff_edge": -0.0429,
"bb_edge": -0.45,
"pitch_design_score": 0.0686
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695611",
"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.08991637091822,
"release_spin_rate": 2304.151617914787,
"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.08991637091822,
"release_spin_rate": 2304.151617914787,
"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.0899,
"release_spin_rate": 2304.1516,
"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.0686,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.49,
"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.0295,
"sample_weight": 1.0,
"run_prevention_factor": 1.0025,
"strikeout_factor": 1.0166,
"walk_factor": 1.036,
"homer_factor": 0.9862,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695611",
"espn_id": 5023852,
"player_name": "Gage Jump",
"team": "ATH",
"role": "pitcher",
"espn_rank": 119,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 119,
"gp_value": 17.0,
"gp_rank": 411,
"gs_value": 17.0,
"gs_rank": 112,
"qs_value": 6.0,
"qs_rank": 86,
"era_value": 4.6867,
"era_rank": null,
"w_value": 6.0,
"w_rank": 98,
"l_value": 8.0,
"l_rank": 43,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 88.1,
"ip_rank": 136,
"h_value": 87.0,
"h_rank": 122,
"er_value": 46.0,
"er_rank": 111,
"hr_value": 9.0,
"hr_rank": 169,
"bb_value": 42.0,
"bb_rank": 62,
"k_value": 97.0,
"k_rank": 96,
"k_per_9_value": 9.883019,
"k_per_9_rank": 19,
"whip_value": 1.4603,
"whip_rank": null,
"war_value": 1.42,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0025,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0025,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.036,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9862,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0166,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
}
],
"provenance": {
"prediction": "output/games/20260831_OAK@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260831 | 20260831_OAK@TEX | home | Jacob deGrom | Jacob deGrom | True | 5.0 | 7.0 | 6 | 1 | 0 | -1 | 3/1 | 2/0 | 8/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.212276214833759,
"WHIP": 1.1815856777493605,
"IP": 130.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.213,
"recent_avg_IP": 4.0,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2738,
"sample_weight": 1.0,
"run_prevention_factor": 0.9767,
"strikeout_factor": 1.0891,
"walk_factor": 0.956,
"homer_factor": 1.045,
"regression_flag": "neutral",
"k_percent": 29.4,
"bb_percent": 6.9,
"woba": 0.291,
"xwoba": 0.297,
"barrel_percent": 8.4,
"hard_hit_percent": 44.5,
"whiff_percent": 33.4
},
"espn_rank": {
"rank": 117,
"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": "594798",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.0,
"ER": 16.0,
"R": 16.0,
"H": 23.0,
"BB": 13.0,
"SO": 27.0,
"HR": 1.0,
"BF": 94.0,
"Pitches": 413.0
},
"per_game": {
"IP": 4.0,
"ER": 3.2,
"R": 3.2,
"H": 4.6,
"BB": 2.6,
"SO": 5.4,
"HR": 0.2,
"BF": 18.8,
"Pitches": 82.6
},
"rates": {
"ERA": 7.2,
"WHIP": 1.8,
"ER_per_IP": 0.8,
"H_per_IP": 1.15,
"BB_per_IP": 0.65,
"SO_per_IP": 1.35,
"HR_per_IP": 0.05
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 28.0,
"R": 28.0,
"H": 50.0,
"BB": 19.0,
"SO": 61.0,
"HR": 2.0,
"BF": 208.0,
"Pitches": 867.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 2.8,
"H": 5.0,
"BB": 1.9,
"SO": 6.1,
"HR": 0.2,
"BF": 20.8,
"Pitches": 86.7
},
"rates": {
"ERA": 5.2867,
"WHIP": 1.4476,
"ER_per_IP": 0.58741,
"H_per_IP": 1.04895,
"BB_per_IP": 0.3986,
"SO_per_IP": 1.27972,
"HR_per_IP": 0.04196
}
},
"season": {
"games": 25,
"totals": {
"IP": 130.1,
"ER": 61.0,
"R": 61.0,
"H": 117.0,
"BB": 37.0,
"SO": 159.0,
"HR": 17.0,
"BF": 540.0,
"Pitches": 2205.0
},
"per_game": {
"IP": 5.1,
"ER": 2.44,
"R": 2.44,
"H": 4.68,
"BB": 1.48,
"SO": 6.36,
"HR": 0.68,
"BF": 21.6,
"Pitches": 88.2
},
"rates": {
"ERA": 4.2123,
"WHIP": 1.1816,
"ER_per_IP": 0.46803,
"H_per_IP": 0.8977,
"BB_per_IP": 0.28389,
"SO_per_IP": 1.21995,
"HR_per_IP": 0.13043
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.9,
"predicted_H": 4.808,
"predicted_BB": 2.15,
"predicted_SO": 5.68,
"predicted_HR": 0.354,
"predicted_ERA": 5.6936,
"predicted_WHIP": 1.5182
}
},
"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": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.9,
"final": 2.1012,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.808,
"final": 4.0479,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.15,
"final": 2.0869,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.68,
"final": 6.6554,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.354,
"final": 0.6256,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.6936,
"final": 5.6936,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5182,
"final": 1.5182,
"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.2,
"ER": 28,
"H": 50,
"BB": 19,
"SO": 61,
"HR": 2,
"ERA": 5.286713286713287,
"WHIP": 1.4475524475524477,
"K9": 11.517482517482518,
"HR9": 0.37762237762237766,
"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-08-25T00:00:00"
},
"recent_form_boost": 1.104234540969235,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "594798",
"player_name": "Jacob deGrom",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 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": "TEX",
"games": 137,
"wins": 67,
"losses": 70,
"win_pct": 0.4891,
"runs_scored": 554.0,
"runs_allowed": 605.0,
"run_differential": -51.0,
"run_differential_per_game": -0.3723,
"avg_runs_scored": 4.0438,
"avg_runs_allowed": 4.4161,
"offense_index": 0.9051,
"defense_index": 1.0117,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.5,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.0551
},
"opponent": {
"team": "OAK",
"games": 137,
"wins": 53,
"losses": 84,
"win_pct": 0.3869,
"runs_scored": 596.0,
"runs_allowed": 787.0,
"run_differential": -191.0,
"run_differential_per_game": -1.3942,
"avg_runs_scored": 4.3504,
"avg_runs_allowed": 5.7445,
"offense_index": 0.9737,
"defense_index": 0.7778,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.1,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.3028
},
"edges": {
"quality_edge": 0.2477,
"offense_edge": -0.0949,
"opponent_offense_edge": -0.0263,
"defense_strength": 0.0117,
"opponent_defense_weakness": 0.2222,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0113,
"run_prevention": 0.9822,
"strikeout": 1.0095
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "594798",
"profile": {
"available": true,
"pitcher_id": "594798",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 29.4,
"bb_percent": 6.9,
"woba": 0.291,
"xwoba": 0.297,
"sweet_spot_percent": 38.7,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 44.5,
"avg_best_speed": 80.3709,
"avg_hyper_speed": 94.6422,
"whiff_percent": 33.4,
"swing_percent": 51.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0319,
"command_and_miss": 0.9957,
"regression_edge": -0.1714,
"xwoba_edge": 0.4286,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.9571,
"whiff_edge": 1.1714,
"bb_edge": 0.55,
"pitch_design_score": 0.1778
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "594798",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 93.0397745860885,
"release_spin_rate": 2438.3276886434514,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 93.0397745860885,
"release_spin_rate": 2438.3276886434514,
"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.0398,
"release_spin_rate": 2438.3277,
"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.1778,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.27,
"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.2738,
"sample_weight": 1.0,
"run_prevention_factor": 0.9767,
"strikeout_factor": 1.0891,
"walk_factor": 0.956,
"homer_factor": 1.045,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "594798",
"espn_id": 32796,
"player_name": "Jacob deGrom",
"team": "TEX",
"role": "pitcher",
"espn_rank": 117,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 117,
"gp_value": 25.0,
"gp_rank": 292,
"gs_value": 25.0,
"gs_rank": 43,
"qs_value": 9.0,
"qs_rank": 61,
"era_value": 4.2122,
"era_rank": null,
"w_value": 9.0,
"w_rank": 32,
"l_value": 9.0,
"l_rank": 25,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 130.1,
"ip_rank": 63,
"h_value": 117.0,
"h_rank": 73,
"er_value": 61.0,
"er_rank": 50,
"hr_value": 17.0,
"hr_rank": 56,
"bb_value": 37.0,
"bb_rank": 92,
"k_value": 159.0,
"k_rank": 19,
"k_per_9_value": 10.97954,
"k_per_9_rank": 8,
"whip_value": 1.1815,
"whip_rank": null,
"war_value": 1.44,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9767,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9767,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.956,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.045,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0891,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"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/20260831_OAK@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260831 | 20260831_PHI@ARI | away | Aaron Nola | Aaron Nola | True | 5.1 | 5.0 | -1 | 4 | 1 | -3 | 7/5 | 2/2 | 2/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.034965034965035,
"WHIP": 1.3986013986013985,
"IP": 143.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.296,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0038,
"sample_weight": 1.0,
"run_prevention_factor": 0.9997,
"strikeout_factor": 1.0337,
"walk_factor": 0.978,
"homer_factor": 1.067,
"regression_flag": "positive_pitcher_regression",
"k_percent": 24.8,
"bb_percent": 8.0,
"woba": 0.353,
"xwoba": 0.315,
"barrel_percent": 9.7,
"hard_hit_percent": 41.6,
"whiff_percent": 28.3
},
"espn_rank": {
"rank": 99,
"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": "605400",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 9.0,
"R": 9.0,
"H": 25.0,
"BB": 10.0,
"SO": 37.0,
"HR": 6.0,
"BF": 118.0,
"Pitches": 483.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 5.0,
"BB": 2.0,
"SO": 7.4,
"HR": 1.2,
"BF": 23.6,
"Pitches": 96.6
},
"rates": {
"ERA": 2.7931,
"WHIP": 1.2069,
"ER_per_IP": 0.31034,
"H_per_IP": 0.86207,
"BB_per_IP": 0.34483,
"SO_per_IP": 1.27586,
"HR_per_IP": 0.2069
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 23.0,
"R": 23.0,
"H": 53.0,
"BB": 20.0,
"SO": 66.0,
"HR": 13.0,
"BF": 239.0,
"Pitches": 940.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3,
"R": 2.3,
"H": 5.3,
"BB": 2.0,
"SO": 6.6,
"HR": 1.3,
"BF": 23.9,
"Pitches": 94.0
},
"rates": {
"ERA": 3.569,
"WHIP": 1.2586,
"ER_per_IP": 0.39655,
"H_per_IP": 0.91379,
"BB_per_IP": 0.34483,
"SO_per_IP": 1.13793,
"HR_per_IP": 0.22414
}
},
"season": {
"games": 27,
"totals": {
"IP": 143.0,
"ER": 80.0,
"R": 82.0,
"H": 151.0,
"BB": 49.0,
"SO": 153.0,
"HR": 32.0,
"BF": 616.0,
"Pitches": 2458.0
},
"per_game": {
"IP": 5.1,
"ER": 2.963,
"R": 3.037,
"H": 5.5926,
"BB": 1.8148,
"SO": 5.6667,
"HR": 1.1852,
"BF": 22.8148,
"Pitches": 91.037
},
"rates": {
"ERA": 5.035,
"WHIP": 1.3986,
"ER_per_IP": 0.55944,
"H_per_IP": 1.05594,
"BB_per_IP": 0.34266,
"SO_per_IP": 1.06993,
"HR_per_IP": 0.22378
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.286,
"predicted_H": 5.204,
"predicted_BB": 1.955,
"predicted_SO": 6.44,
"predicted_HR": 1.153,
"predicted_ERA": 3.6668,
"predicted_WHIP": 1.276
}
},
"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": 4.0,
"form": 2.286,
"final": 2.999,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.204,
"final": 5.9511,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.955,
"final": 1.9737,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.44,
"final": 4.593,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.153,
"final": 0.6734,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6668,
"final": 3.6668,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.276,
"final": 1.276,
"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": 23,
"H": 53,
"BB": 20,
"SO": 66,
"HR": 13,
"ERA": 3.5689655172413794,
"WHIP": 1.2586206896551724,
"K9": 10.241379310344827,
"HR9": 2.0172413793103448,
"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-08-25T00:00:00"
},
"recent_form_boost": 0.9062646229562134,
"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": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 0.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 4,
"predicted_H": 7,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 0
}
}
],
"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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.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": "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": 0.0,
"predicted_IP": 5.1,
"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": 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": 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.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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"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": 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": 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": 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": 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.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": "PHI",
"games": 137,
"wins": 77,
"losses": 60,
"win_pct": 0.562,
"runs_scored": 622.0,
"runs_allowed": 592.0,
"run_differential": 30.0,
"run_differential_per_game": 0.219,
"avg_runs_scored": 4.5401,
"avg_runs_allowed": 4.3212,
"offense_index": 1.0144,
"defense_index": 1.0357,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 3.4,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1846
},
"opponent": {
"team": "ARI",
"games": 138,
"wins": 73,
"losses": 65,
"win_pct": 0.529,
"runs_scored": 625.0,
"runs_allowed": 620.0,
"run_differential": 5.0,
"run_differential_per_game": 0.0362,
"avg_runs_scored": 4.529,
"avg_runs_allowed": 4.4928,
"offense_index": 1.0119,
"defense_index": 0.9962,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.5,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0641
},
"edges": {
"quality_edge": 0.1205,
"offense_edge": 0.0144,
"opponent_offense_edge": 0.0119,
"defense_strength": 0.0357,
"opponent_defense_weakness": 0.0038,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0054,
"run_prevention": 0.9923,
"strikeout": 1.0027
},
"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.8,
"bb_percent": 8.0,
"woba": 0.353,
"xwoba": 0.315,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 41.6,
"avg_best_speed": 77.1788,
"avg_hyper_speed": 94.4809,
"whiff_percent": 28.3,
"swing_percent": 45.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.3367,
"command_and_miss": 0.39,
"regression_edge": 1.0857,
"xwoba_edge": -0.0857,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.5429,
"whiff_edge": 0.4429,
"bb_edge": 0.275,
"pitch_design_score": -0.2204
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605400",
"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": 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": 96,
"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.2204,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5743,
"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.0038,
"sample_weight": 1.0,
"run_prevention_factor": 0.9997,
"strikeout_factor": 1.0337,
"walk_factor": 0.978,
"homer_factor": 1.067,
"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": 99,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 99,
"gp_value": 27.0,
"gp_rank": 236,
"gs_value": 27.0,
"gs_rank": 11,
"qs_value": 9.0,
"qs_rank": 61,
"era_value": 5.0349,
"era_rank": 51.0,
"w_value": 5.0,
"w_rank": 128,
"l_value": 10.0,
"l_rank": 13,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 143.0,
"ip_rank": 41,
"h_value": 151.0,
"h_rank": 10,
"er_value": 80.0,
"er_rank": 6,
"hr_value": 32.0,
"hr_rank": 3,
"bb_value": 49.0,
"bb_rank": 34,
"k_value": 153.0,
"k_rank": 22,
"k_per_9_value": 9.629371,
"k_per_9_rank": 14,
"whip_value": 1.3986,
"whip_rank": 46.0,
"war_value": 1.64,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9997,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9997,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.067,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0337,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
}
],
"provenance": {
"prediction": "output/games/20260831_PHI@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"
}
} |
| 20260831 | 20260831_PHI@ARI | home | Brandon Pfaadt | Brandon Pfaadt | True | 6.1 | 6.0 | -1 | 1 | 2 | 1 | 3/5 | 0/1 | 4/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5142857142857142,
"WHIP": 1.1428571428571428,
"IP": 105.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.976,
"recent_avg_IP": 6.6,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0347,
"sample_weight": 1.0,
"run_prevention_factor": 0.997,
"strikeout_factor": 0.9469,
"walk_factor": 0.938,
"homer_factor": 0.9762,
"regression_flag": "neutral",
"k_percent": 16.7,
"bb_percent": 6.0,
"woba": 0.294,
"xwoba": 0.3,
"barrel_percent": 7.6,
"hard_hit_percent": 34.5,
"whiff_percent": 21.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": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694297",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 9.0,
"R": 10.0,
"H": 22.0,
"BB": 5.0,
"SO": 23.0,
"HR": 4.0,
"BF": 123.0,
"Pitches": 467.0
},
"per_game": {
"IP": 6.2,
"ER": 1.8,
"R": 2.0,
"H": 4.4,
"BB": 1.0,
"SO": 4.6,
"HR": 0.8,
"BF": 24.6,
"Pitches": 93.4
},
"rates": {
"ERA": 2.4545,
"WHIP": 0.8182,
"ER_per_IP": 0.27273,
"H_per_IP": 0.66667,
"BB_per_IP": 0.15152,
"SO_per_IP": 0.69697,
"HR_per_IP": 0.12121
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.2,
"ER": 15.0,
"R": 16.0,
"H": 51.0,
"BB": 8.0,
"SO": 39.0,
"HR": 4.0,
"BF": 241.0,
"Pitches": 891.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5,
"R": 1.6,
"H": 5.1,
"BB": 0.8,
"SO": 3.9,
"HR": 0.4,
"BF": 24.1,
"Pitches": 89.1
},
"rates": {
"ERA": 2.1892,
"WHIP": 0.9568,
"ER_per_IP": 0.24324,
"H_per_IP": 0.82703,
"BB_per_IP": 0.12973,
"SO_per_IP": 0.63243,
"HR_per_IP": 0.06486
}
},
"season": {
"games": 24,
"totals": {
"IP": 105.0,
"ER": 41.0,
"R": 45.0,
"H": 94.0,
"BB": 26.0,
"SO": 72.0,
"HR": 12.0,
"BF": 431.0,
"Pitches": 1584.0
},
"per_game": {
"IP": 4.1,
"ER": 1.7083,
"R": 1.875,
"H": 3.9167,
"BB": 1.0833,
"SO": 3.0,
"HR": 0.5,
"BF": 17.9583,
"Pitches": 66.0
},
"rates": {
"ERA": 3.5143,
"WHIP": 1.1429,
"ER_per_IP": 0.39048,
"H_per_IP": 0.89524,
"BB_per_IP": 0.24762,
"SO_per_IP": 0.68571,
"HR_per_IP": 0.11429
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.947,
"predicted_H": 4.847,
"predicted_BB": 1.199,
"predicted_SO": 4.331,
"predicted_HR": 0.652,
"predicted_ERA": 2.9053,
"predicted_WHIP": 1.0028
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.0,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.947,
"final": 1.5466,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.847,
"final": 4.066,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.199,
"final": 0.692,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.331,
"final": 4.191,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.652,
"final": 0.3763,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9053,
"final": 2.9053,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0028,
"final": 1.0028,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 61.2,
"ER": 15,
"H": 51,
"BB": 8,
"SO": 39,
"HR": 4,
"ERA": 2.189189189189189,
"WHIP": 0.9567567567567566,
"K9": 5.691891891891891,
"HR9": 0.5837837837837837,
"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-08-25T00:00:00"
},
"recent_form_boost": 0.7434931877278816,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694297",
"player_name": "Brandon Pfaadt",
"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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"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": 138,
"wins": 73,
"losses": 65,
"win_pct": 0.529,
"runs_scored": 625.0,
"runs_allowed": 620.0,
"run_differential": 5.0,
"run_differential_per_game": 0.0362,
"avg_runs_scored": 4.529,
"avg_runs_allowed": 4.4928,
"offense_index": 1.0119,
"defense_index": 0.9962,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.5,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0641
},
"opponent": {
"team": "PHI",
"games": 137,
"wins": 77,
"losses": 60,
"win_pct": 0.562,
"runs_scored": 622.0,
"runs_allowed": 592.0,
"run_differential": 30.0,
"run_differential_per_game": 0.219,
"avg_runs_scored": 4.5401,
"avg_runs_allowed": 4.3212,
"offense_index": 1.0144,
"defense_index": 1.0357,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 3.4,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1846
},
"edges": {
"quality_edge": -0.1205,
"offense_edge": 0.0119,
"opponent_offense_edge": 0.0144,
"defense_strength": -0.0038,
"opponent_defense_weakness": -0.0357,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9945,
"run_prevention": 1.0087,
"strikeout": 0.9952
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694297",
"profile": {
"available": true,
"pitcher_id": "694297",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 400.0,
"k_percent": 16.7,
"bb_percent": 6.0,
"woba": 0.294,
"xwoba": 0.3,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 34.5,
"avg_best_speed": 77.8841,
"avg_hyper_speed": 93.413,
"whiff_percent": 21.2,
"swing_percent": 48.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.2782,
"command_and_miss": -0.3857,
"regression_edge": -0.1714,
"xwoba_edge": 0.3429,
"barrel_edge": -0.0667,
"hard_hit_edge": 0.4714,
"whiff_edge": -0.5714,
"bb_edge": 0.775,
"pitch_design_score": -0.0453
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694297",
"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": 89.05610692018405,
"release_spin_rate": 2453.8790078891307,
"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": 89.05610692018405,
"release_spin_rate": 2453.8790078891307,
"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.0561,
"release_spin_rate": 2453.879,
"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.0453,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3235,
"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.0347,
"sample_weight": 1.0,
"run_prevention_factor": 0.997,
"strikeout_factor": 0.9469,
"walk_factor": 0.938,
"homer_factor": 0.9762,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694297",
"espn_id": 4721302,
"player_name": "Brandon Pfaadt",
"team": "ARI",
"role": "pitcher",
"espn_rank": 106,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 106,
"gp_value": 24.0,
"gp_rank": 312,
"gs_value": 14.0,
"gs_rank": 138,
"qs_value": 6.0,
"qs_rank": 86,
"era_value": 3.5142,
"era_rank": null,
"w_value": 7.0,
"w_rank": 76,
"l_value": 1.0,
"l_rank": 409,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 2.0,
"hld_rank": 224,
"ip_value": 105.0,
"ip_rank": 107,
"h_value": 94.0,
"h_rank": 112,
"er_value": 41.0,
"er_rank": 136,
"hr_value": 12.0,
"hr_rank": 124,
"bb_value": 26.0,
"bb_rank": 195,
"k_value": 72.0,
"k_rank": 162,
"k_per_9_value": 6.171428,
"k_per_9_rank": 40,
"whip_value": 1.1428,
"whip_rank": null,
"war_value": 1.57,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.997,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.997,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.938,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9762,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9469,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260831_PHI@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"
}
} |
| 20260831 | 20260831_SD@CIN | away | Michael King | Michael King | True | 6.0 | 6.0 | 0 | 3 | 0 | -3 | 5/4 | 0/3 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.230769230769231,
"WHIP": 1.1666666666666667,
"IP": 156.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.778,
"recent_avg_IP": 6.133,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0384,
"sample_weight": 1.0,
"run_prevention_factor": 1.0033,
"strikeout_factor": 0.9937,
"walk_factor": 1.006,
"homer_factor": 0.9901,
"regression_flag": "neutral",
"k_percent": 21.2,
"bb_percent": 9.4,
"woba": 0.293,
"xwoba": 0.319,
"barrel_percent": 8.4,
"hard_hit_percent": 31.6,
"whiff_percent": 24.9
},
"espn_rank": {
"rank": 18,
"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": "650633",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 9.0,
"R": 10.0,
"H": 25.0,
"BB": 10.0,
"SO": 26.0,
"HR": 5.0,
"BF": 121.0,
"Pitches": 478.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 2.0,
"H": 5.0,
"BB": 2.0,
"SO": 5.2,
"HR": 1.0,
"BF": 24.2,
"Pitches": 95.6
},
"rates": {
"ERA": 2.6413,
"WHIP": 1.1413,
"ER_per_IP": 0.29348,
"H_per_IP": 0.81522,
"BB_per_IP": 0.32609,
"SO_per_IP": 0.84783,
"HR_per_IP": 0.16304
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 18.0,
"R": 19.0,
"H": 47.0,
"BB": 21.0,
"SO": 52.0,
"HR": 8.0,
"BF": 239.0,
"Pitches": 944.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.9,
"H": 4.7,
"BB": 2.1,
"SO": 5.2,
"HR": 0.8,
"BF": 23.9,
"Pitches": 94.4
},
"rates": {
"ERA": 2.7151,
"WHIP": 1.1397,
"ER_per_IP": 0.30168,
"H_per_IP": 0.78771,
"BB_per_IP": 0.35196,
"SO_per_IP": 0.87151,
"HR_per_IP": 0.13408
}
},
"season": {
"games": 27,
"totals": {
"IP": 156.0,
"ER": 56.0,
"R": 58.0,
"H": 122.0,
"BB": 60.0,
"SO": 135.0,
"HR": 18.0,
"BF": 636.0,
"Pitches": 2508.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0741,
"R": 2.1481,
"H": 4.5185,
"BB": 2.2222,
"SO": 5.0,
"HR": 0.6667,
"BF": 23.5556,
"Pitches": 92.8889
},
"rates": {
"ERA": 3.2308,
"WHIP": 1.1667,
"ER_per_IP": 0.35897,
"H_per_IP": 0.78205,
"BB_per_IP": 0.38462,
"SO_per_IP": 0.86538,
"HR_per_IP": 0.11538
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.016,
"predicted_H": 4.911,
"predicted_BB": 2.084,
"predicted_SO": 5.183,
"predicted_HR": 0.855,
"predicted_ERA": 3.0526,
"predicted_WHIP": 1.1768
}
},
"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": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.016,
"final": 2.4253,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.911,
"final": 4.948,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.084,
"final": 1.2171,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.183,
"final": 5.5229,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.855,
"final": 0.4993,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0526,
"final": 3.0526,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1768,
"final": 1.1768,
"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": 59.2,
"ER": 18,
"H": 47,
"BB": 21,
"SO": 52,
"HR": 8,
"ERA": 2.7150837988826813,
"WHIP": 1.1396648044692737,
"K9": 7.843575418994413,
"HR9": 1.206703910614525,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 0.8072290325112123,
"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": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 0.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": 5,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650633",
"player_name": "Michael King",
"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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 137,
"wins": 72,
"losses": 65,
"win_pct": 0.5255,
"runs_scored": 583.0,
"runs_allowed": 573.0,
"run_differential": 10.0,
"run_differential_per_game": 0.073,
"avg_runs_scored": 4.2555,
"avg_runs_allowed": 4.1825,
"offense_index": 0.9527,
"defense_index": 1.068,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.7,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.0043
},
"opponent": {
"team": "CIN",
"games": 137,
"wins": 65,
"losses": 72,
"win_pct": 0.4745,
"runs_scored": 570.0,
"runs_allowed": 678.0,
"run_differential": -108.0,
"run_differential_per_game": -0.7883,
"avg_runs_scored": 4.1606,
"avg_runs_allowed": 4.9489,
"offense_index": 0.9315,
"defense_index": 0.9026,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 7.6,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.1537
},
"edges": {
"quality_edge": 0.1494,
"offense_edge": -0.0473,
"opponent_offense_edge": -0.0685,
"defense_strength": 0.068,
"opponent_defense_weakness": 0.0974,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0108,
"run_prevention": 0.9748,
"strikeout": 1.01
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650633",
"profile": {
"available": true,
"pitcher_id": "650633",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 605.0,
"k_percent": 21.2,
"bb_percent": 9.4,
"woba": 0.293,
"xwoba": 0.319,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 31.6,
"avg_best_speed": 75.5715,
"avg_hyper_speed": 93.0509,
"whiff_percent": 24.9,
"swing_percent": 46.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.1104,
"command_and_miss": -0.0814,
"regression_edge": -0.7429,
"xwoba_edge": -0.2,
"barrel_edge": -0.2444,
"hard_hit_edge": 0.8857,
"whiff_edge": -0.0429,
"bb_edge": -0.075,
"pitch_design_score": -0.0599
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650633",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 88.7946063306037,
"release_spin_rate": 2284.5983919845057,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 88.7946063306037,
"release_spin_rate": 2284.5983919845057,
"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.7946,
"release_spin_rate": 2284.5984,
"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.0599,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4281,
"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.0384,
"sample_weight": 1.0,
"run_prevention_factor": 1.0033,
"strikeout_factor": 0.9937,
"walk_factor": 1.006,
"homer_factor": 0.9901,
"woba_minus_xwoba": -0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "650633",
"espn_id": 40429,
"player_name": "Michael King",
"team": "SD",
"role": "pitcher",
"espn_rank": 18,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 18,
"gp_value": 27.0,
"gp_rank": 236,
"gs_value": 27.0,
"gs_rank": 11,
"qs_value": 14.0,
"qs_rank": 17,
"era_value": 3.2307,
"era_rank": 18.0,
"w_value": 8.0,
"w_rank": 56,
"l_value": 9.0,
"l_rank": 25,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 156.0,
"ip_rank": 13,
"h_value": 122.0,
"h_rank": 61,
"er_value": 56.0,
"er_rank": 65,
"hr_value": 18.0,
"hr_rank": 43,
"bb_value": 60.0,
"bb_rank": 13,
"k_value": 135.0,
"k_rank": 40,
"k_per_9_value": 7.788461,
"k_per_9_rank": 83,
"whip_value": 1.1666,
"whip_rank": 26.0,
"war_value": 3.45,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0033,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0033,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.006,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9901,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9937,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260831_SD@CIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260831 | 20260831_SD@CIN | home | Brady Singer | Brady Singer | True | 5.0 | 4.1 | -2 | 4 | 4 | 0 | 8/10 | 1/0 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.718446601941747,
"WHIP": 1.4199029126213591,
"IP": 137.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.282,
"recent_avg_IP": 5.933,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4695,
"sample_weight": 1.0,
"run_prevention_factor": 1.0399,
"strikeout_factor": 0.976,
"walk_factor": 0.966,
"homer_factor": 1.0897,
"regression_flag": "neutral",
"k_percent": 18.3,
"bb_percent": 7.4,
"woba": 0.351,
"xwoba": 0.345,
"barrel_percent": 9.5,
"hard_hit_percent": 41.7,
"whiff_percent": 24.7
},
"espn_rank": {
"rank": 139,
"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": "663903",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 16.0,
"R": 16.0,
"H": 32.0,
"BB": 9.0,
"SO": 21.0,
"HR": 5.0,
"BF": 132.0,
"Pitches": 491.0
},
"per_game": {
"IP": 6.0,
"ER": 3.2,
"R": 3.2,
"H": 6.4,
"BB": 1.8,
"SO": 4.2,
"HR": 1.0,
"BF": 26.4,
"Pitches": 98.2
},
"rates": {
"ERA": 4.8539,
"WHIP": 1.382,
"ER_per_IP": 0.53933,
"H_per_IP": 1.07865,
"BB_per_IP": 0.30337,
"SO_per_IP": 0.70787,
"HR_per_IP": 0.16854
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 28.0,
"R": 29.0,
"H": 56.0,
"BB": 20.0,
"SO": 47.0,
"HR": 7.0,
"BF": 258.0,
"Pitches": 970.0
},
"per_game": {
"IP": 6.0,
"ER": 2.8,
"R": 2.9,
"H": 5.6,
"BB": 2.0,
"SO": 4.7,
"HR": 0.7,
"BF": 25.8,
"Pitches": 97.0
},
"rates": {
"ERA": 4.2,
"WHIP": 1.2667,
"ER_per_IP": 0.46667,
"H_per_IP": 0.93333,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.78333,
"HR_per_IP": 0.11667
}
},
"season": {
"games": 26,
"totals": {
"IP": 137.1,
"ER": 72.0,
"R": 77.0,
"H": 150.0,
"BB": 45.0,
"SO": 112.0,
"HR": 26.0,
"BF": 611.0,
"Pitches": 2363.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7692,
"R": 2.9615,
"H": 5.7692,
"BB": 1.7308,
"SO": 4.3077,
"HR": 1.0,
"BF": 23.5,
"Pitches": 90.8846
},
"rates": {
"ERA": 4.7184,
"WHIP": 1.4199,
"ER_per_IP": 0.52427,
"H_per_IP": 1.09223,
"BB_per_IP": 0.32767,
"SO_per_IP": 0.81553,
"HR_per_IP": 0.18932
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.97,
"predicted_H": 5.959,
"predicted_BB": 1.908,
"predicted_SO": 4.582,
"predicted_HR": 0.894,
"predicted_ERA": 4.5818,
"predicted_WHIP": 1.3484
}
},
"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": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.97,
"final": 3.4007,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.959,
"final": 6.8124,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.908,
"final": 1.5283,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.582,
"final": 5.1749,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.894,
"final": 0.9383,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5818,
"final": 4.5818,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3484,
"final": 1.3484,
"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": 28,
"H": 56,
"BB": 20,
"SO": 47,
"HR": 7,
"ERA": 4.199999999999999,
"WHIP": 1.2666666666666666,
"K9": 7.049999999999999,
"HR9": 1.0499999999999998,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 0.9774571516918454,
"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": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 6.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": "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": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663903",
"player_name": "Brady Singer",
"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": 4.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 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": 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.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"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": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.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": 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": 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": 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": 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": 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.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 137,
"wins": 65,
"losses": 72,
"win_pct": 0.4745,
"runs_scored": 570.0,
"runs_allowed": 678.0,
"run_differential": -108.0,
"run_differential_per_game": -0.7883,
"avg_runs_scored": 4.1606,
"avg_runs_allowed": 4.9489,
"offense_index": 0.9315,
"defense_index": 0.9026,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 7.6,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.1537
},
"opponent": {
"team": "SD",
"games": 137,
"wins": 72,
"losses": 65,
"win_pct": 0.5255,
"runs_scored": 583.0,
"runs_allowed": 573.0,
"run_differential": 10.0,
"run_differential_per_game": 0.073,
"avg_runs_scored": 4.2555,
"avg_runs_allowed": 4.1825,
"offense_index": 0.9527,
"defense_index": 1.068,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.7,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.0043
},
"edges": {
"quality_edge": -0.1494,
"offense_edge": -0.0685,
"opponent_offense_edge": -0.0473,
"defense_strength": -0.0974,
"opponent_defense_weakness": -0.068,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.993,
"run_prevention": 1.0096,
"strikeout": 0.9993
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663903",
"profile": {
"available": true,
"pitcher_id": "663903",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 545.0,
"k_percent": 18.3,
"bb_percent": 7.4,
"woba": 0.351,
"xwoba": 0.345,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 41.7,
"avg_best_speed": 80.9804,
"avg_hyper_speed": 94.703,
"whiff_percent": 24.7,
"swing_percent": 44.7
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.766,
"command_and_miss": -0.1779,
"regression_edge": 0.1714,
"xwoba_edge": -0.9429,
"barrel_edge": -0.4889,
"hard_hit_edge": -0.5571,
"whiff_edge": -0.0714,
"bb_edge": 0.425,
"pitch_design_score": -0.1433
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663903",
"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": 87.30662066127576,
"release_spin_rate": 2382.9859605092684,
"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": 87.30662066127576,
"release_spin_rate": 2382.9859605092684,
"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.3066,
"release_spin_rate": 2382.986,
"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.1433,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0233,
"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.4695,
"sample_weight": 1.0,
"run_prevention_factor": 1.0399,
"strikeout_factor": 0.976,
"walk_factor": 0.966,
"homer_factor": 1.0897,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663903",
"espn_id": 41172,
"player_name": "Brady Singer",
"team": "CIN",
"role": "pitcher",
"espn_rank": 139,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 139,
"gp_value": 26.0,
"gp_rank": 269,
"gs_value": 26.0,
"gs_rank": 31,
"qs_value": 10.0,
"qs_rank": 53,
"era_value": 4.7184,
"era_rank": 49.0,
"w_value": 5.0,
"w_rank": 128,
"l_value": 12.0,
"l_rank": 6,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 137.1,
"ip_rank": 52,
"h_value": 150.0,
"h_rank": 11,
"er_value": 72.0,
"er_rank": 16,
"hr_value": 26.0,
"hr_rank": 8,
"bb_value": 45.0,
"bb_rank": 49,
"k_value": 112.0,
"k_rank": 72,
"k_per_9_value": 7.339806,
"k_per_9_rank": 37,
"whip_value": 1.4199,
"whip_rank": 50.0,
"war_value": 1.18,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0399,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0399,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0897,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.976,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 8,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 99,
"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/20260831_SD@CIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260831 | 20260831_SEA@BOS | away | George Kirby | George Kirby | True | 5.2 | 5.0 | -2 | 2 | 5 | 3 | 5/7 | 0/2 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.022573363431151,
"WHIP": 1.3340857787810385,
"IP": 147.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.907,
"recent_avg_IP": 5.533,
"last_start_IP": 7.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.046,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 0.9749,
"walk_factor": 0.928,
"homer_factor": 1.001,
"regression_flag": "neutral",
"k_percent": 20.4,
"bb_percent": 5.5,
"woba": 0.331,
"xwoba": 0.305,
"barrel_percent": 6.6,
"hard_hit_percent": 41.2,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 105,
"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": "669923",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 13.0,
"R": 13.0,
"H": 32.0,
"BB": 9.0,
"SO": 19.0,
"HR": 2.0,
"BF": 120.0,
"Pitches": 468.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 2.6,
"H": 6.4,
"BB": 1.8,
"SO": 3.8,
"HR": 0.4,
"BF": 24.0,
"Pitches": 93.6
},
"rates": {
"ERA": 4.2289,
"WHIP": 1.4819,
"ER_per_IP": 0.46988,
"H_per_IP": 1.15663,
"BB_per_IP": 0.3253,
"SO_per_IP": 0.68675,
"HR_per_IP": 0.07229
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.2,
"ER": 25.0,
"R": 26.0,
"H": 66.0,
"BB": 13.0,
"SO": 47.0,
"HR": 8.0,
"BF": 242.0,
"Pitches": 891.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.6,
"H": 6.6,
"BB": 1.3,
"SO": 4.7,
"HR": 0.8,
"BF": 24.2,
"Pitches": 89.1
},
"rates": {
"ERA": 3.9017,
"WHIP": 1.3699,
"ER_per_IP": 0.43353,
"H_per_IP": 1.14451,
"BB_per_IP": 0.22543,
"SO_per_IP": 0.81503,
"HR_per_IP": 0.13873
}
},
"season": {
"games": 25,
"totals": {
"IP": 147.2,
"ER": 66.0,
"R": 70.0,
"H": 163.0,
"BB": 34.0,
"SO": 126.0,
"HR": 17.0,
"BF": 617.0,
"Pitches": 2282.0
},
"per_game": {
"IP": 6.0,
"ER": 2.64,
"R": 2.8,
"H": 6.52,
"BB": 1.36,
"SO": 5.04,
"HR": 0.68,
"BF": 24.68,
"Pitches": 91.28
},
"rates": {
"ERA": 4.0226,
"WHIP": 1.3341,
"ER_per_IP": 0.44695,
"H_per_IP": 1.10384,
"BB_per_IP": 0.23025,
"SO_per_IP": 0.85327,
"HR_per_IP": 0.11512
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.635,
"predicted_H": 6.373,
"predicted_BB": 1.647,
"predicted_SO": 4.543,
"predicted_HR": 0.636,
"predicted_ERA": 4.1439,
"predicted_WHIP": 1.4017
}
},
"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": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.635,
"final": 2.368,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.373,
"final": 5.7957,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.647,
"final": 0.9546,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.543,
"final": 4.7351,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.636,
"final": 0.789,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1439,
"final": 4.1439,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4017,
"final": 1.4017,
"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.2,
"ER": 25,
"H": 66,
"BB": 13,
"SO": 47,
"HR": 8,
"ERA": 3.9017341040462425,
"WHIP": 1.3699421965317917,
"K9": 7.3352601156069355,
"HR9": 1.2485549132947975,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 0.9464841266436759,
"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": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.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": 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": 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": {}
}
],
"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": 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": 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": "SEA",
"games": 137,
"wins": 64,
"losses": 73,
"win_pct": 0.4672,
"runs_scored": 530.0,
"runs_allowed": 602.0,
"run_differential": -72.0,
"run_differential_per_game": -0.5255,
"avg_runs_scored": 3.8686,
"avg_runs_allowed": 4.3942,
"offense_index": 0.8641,
"defense_index": 1.0189,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 6.3,
"run_differential": -29.0
},
"available": true,
"quality_score": -0.1274
},
"opponent": {
"team": "BOS",
"games": 137,
"wins": 74,
"losses": 63,
"win_pct": 0.5401,
"runs_scored": 609.0,
"runs_allowed": 525.0,
"run_differential": 84.0,
"run_differential_per_game": 0.6131,
"avg_runs_scored": 4.4453,
"avg_runs_allowed": 3.8321,
"offense_index": 0.9929,
"defense_index": 1.1683,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.5,
"run_differential": -11.0
},
"available": true,
"quality_score": 0.1444
},
"edges": {
"quality_edge": -0.2718,
"offense_edge": -0.1359,
"opponent_offense_edge": -0.0071,
"defense_strength": 0.0189,
"opponent_defense_weakness": -0.1683,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.99,
"run_prevention": 1.0106,
"strikeout": 0.9924
},
"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": 20.4,
"bb_percent": 5.5,
"woba": 0.331,
"xwoba": 0.305,
"sweet_spot_percent": 32.8,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 41.2,
"avg_best_speed": 79.125,
"avg_hyper_speed": 94.1659,
"whiff_percent": 22.4,
"swing_percent": 52.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.0379,
"command_and_miss": -0.0629,
"regression_edge": 0.7429,
"xwoba_edge": 0.2,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.4857,
"whiff_edge": -0.4,
"bb_edge": 0.9,
"pitch_design_score": 0.1169
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669923",
"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": 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": 89,
"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.1169,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8348,
"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.046,
"sample_weight": 1.0,
"run_prevention_factor": 0.9961,
"strikeout_factor": 0.9749,
"walk_factor": 0.928,
"homer_factor": 1.001,
"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": 105,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 105,
"gp_value": 25.0,
"gp_rank": 292,
"gs_value": 25.0,
"gs_rank": 43,
"qs_value": 14.0,
"qs_rank": 17,
"era_value": 4.0225,
"era_rank": 40.0,
"w_value": 9.0,
"w_rank": 32,
"l_value": 10.0,
"l_rank": 13,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 147.2,
"ip_rank": 32,
"h_value": 163.0,
"h_rank": 5,
"er_value": 66.0,
"er_rank": 31,
"hr_value": 17.0,
"hr_rank": 56,
"bb_value": 34.0,
"bb_rank": 120,
"k_value": 126.0,
"k_rank": 50,
"k_per_9_value": 7.679458,
"k_per_9_rank": 42,
"whip_value": 1.334,
"whip_rank": 44.0,
"war_value": 1.58,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9961,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9961,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.928,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.001,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9749,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 86,
"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/20260831_SEA@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"
}
} |
| 20260831 | 20260831_SEA@BOS | home | Payton Tolle | Payton Tolle | True | 6.0 | 5.2 | -1 | 0 | 4 | 4 | 2/6 | 3/2 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0877659574468086,
"WHIP": 1.0851063829787235,
"IP": 125.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.697,
"recent_avg_IP": 6.067,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7616,
"sample_weight": 1.0,
"run_prevention_factor": 0.9353,
"strikeout_factor": 1.0463,
"walk_factor": 0.956,
"homer_factor": 0.9143,
"regression_flag": "neutral",
"k_percent": 27.9,
"bb_percent": 6.9,
"woba": 0.283,
"xwoba": 0.256,
"barrel_percent": 6.5,
"hard_hit_percent": 33.7,
"whiff_percent": 27.4
},
"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": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "801139",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 8.0,
"R": 8.0,
"H": 23.0,
"BB": 8.0,
"SO": 38.0,
"HR": 3.0,
"BF": 116.0,
"Pitches": 458.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 4.6,
"BB": 1.6,
"SO": 7.6,
"HR": 0.6,
"BF": 23.2,
"Pitches": 91.6
},
"rates": {
"ERA": 2.3736,
"WHIP": 1.022,
"ER_per_IP": 0.26374,
"H_per_IP": 0.75824,
"BB_per_IP": 0.26374,
"SO_per_IP": 1.25275,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 21.0,
"R": 21.0,
"H": 48.0,
"BB": 15.0,
"SO": 72.0,
"HR": 8.0,
"BF": 220.0,
"Pitches": 869.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1,
"R": 2.1,
"H": 4.8,
"BB": 1.5,
"SO": 7.2,
"HR": 0.8,
"BF": 22.0,
"Pitches": 86.9
},
"rates": {
"ERA": 3.5,
"WHIP": 1.1667,
"ER_per_IP": 0.38889,
"H_per_IP": 0.88889,
"BB_per_IP": 0.27778,
"SO_per_IP": 1.33333,
"HR_per_IP": 0.14815
}
},
"season": {
"games": 22,
"totals": {
"IP": 125.1,
"ER": 43.0,
"R": 47.0,
"H": 101.0,
"BB": 35.0,
"SO": 141.0,
"HR": 14.0,
"BF": 505.0,
"Pitches": 1908.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9545,
"R": 2.1364,
"H": 4.5909,
"BB": 1.5909,
"SO": 6.4091,
"HR": 0.6364,
"BF": 22.9545,
"Pitches": 86.7273
},
"rates": {
"ERA": 3.0878,
"WHIP": 1.0851,
"ER_per_IP": 0.34309,
"H_per_IP": 0.80585,
"BB_per_IP": 0.27926,
"SO_per_IP": 1.125,
"HR_per_IP": 0.1117
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.049,
"predicted_H": 4.853,
"predicted_BB": 1.67,
"predicted_SO": 6.889,
"predicted_HR": 0.713,
"predicted_ERA": 3.2046,
"predicted_WHIP": 1.1332
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.049,
"final": 1.1715,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.853,
"final": 3.6312,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.67,
"final": 2.2396,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.889,
"final": 6.08,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.713,
"final": 0.4077,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2046,
"final": 3.2046,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1332,
"final": 1.1332,
"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": 21,
"H": 48,
"BB": 15,
"SO": 72,
"HR": 8,
"ERA": 3.5,
"WHIP": 1.1666666666666667,
"K9": 12.0,
"HR9": 1.3333333333333333,
"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-08-25T00:00:00"
},
"recent_form_boost": 0.8962071516918455,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"step": "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": 0,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "801139",
"player_name": "Payton Tolle",
"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": 3.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"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": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"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": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"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": "BOS",
"games": 137,
"wins": 74,
"losses": 63,
"win_pct": 0.5401,
"runs_scored": 609.0,
"runs_allowed": 525.0,
"run_differential": 84.0,
"run_differential_per_game": 0.6131,
"avg_runs_scored": 4.4453,
"avg_runs_allowed": 3.8321,
"offense_index": 0.9929,
"defense_index": 1.1683,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.5,
"run_differential": -11.0
},
"available": true,
"quality_score": 0.1444
},
"opponent": {
"team": "SEA",
"games": 137,
"wins": 64,
"losses": 73,
"win_pct": 0.4672,
"runs_scored": 530.0,
"runs_allowed": 602.0,
"run_differential": -72.0,
"run_differential_per_game": -0.5255,
"avg_runs_scored": 3.8686,
"avg_runs_allowed": 4.3942,
"offense_index": 0.8641,
"defense_index": 1.0189,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 6.3,
"run_differential": -29.0
},
"available": true,
"quality_score": -0.1274
},
"edges": {
"quality_edge": 0.2718,
"offense_edge": -0.0071,
"opponent_offense_edge": -0.1359,
"defense_strength": 0.1683,
"opponent_defense_weakness": -0.0189,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0214,
"run_prevention": 0.9478,
"strikeout": 1.019
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "801139",
"profile": {
"available": true,
"pitcher_id": "801139",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 478.0,
"k_percent": 27.9,
"bb_percent": 6.9,
"woba": 0.283,
"xwoba": 0.256,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 33.7,
"avg_best_speed": 76.4733,
"avg_hyper_speed": 93.3571,
"whiff_percent": 27.4,
"swing_percent": 55.2
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.9199,
"command_and_miss": 0.5993,
"regression_edge": 0.7714,
"xwoba_edge": 1.6,
"barrel_edge": 0.1778,
"hard_hit_edge": 0.5857,
"whiff_edge": 0.3143,
"bb_edge": 0.55,
"pitch_design_score": 0.1695
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "801139",
"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.89223250197915,
"release_spin_rate": 2257.467793172286,
"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.89223250197915,
"release_spin_rate": 2257.467793172286,
"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.8922,
"release_spin_rate": 2257.4678,
"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.1695,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2109,
"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.7616,
"sample_weight": 1.0,
"run_prevention_factor": 0.9353,
"strikeout_factor": 1.0463,
"walk_factor": 0.956,
"homer_factor": 0.9143,
"woba_minus_xwoba": 0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "801139",
"espn_id": 4966140,
"player_name": "Payton Tolle",
"team": "BOS",
"role": "pitcher",
"espn_rank": 57,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 57,
"gp_value": 22.0,
"gp_rank": 346,
"gs_value": 22.0,
"gs_rank": 79,
"qs_value": 11.0,
"qs_rank": 39,
"era_value": 3.0877,
"era_rank": null,
"w_value": 8.0,
"w_rank": 56,
"l_value": 6.0,
"l_rank": 101,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 125.1,
"ip_rank": 76,
"h_value": 101.0,
"h_rank": 101,
"er_value": 43.0,
"er_rank": 128,
"hr_value": 14.0,
"hr_rank": 93,
"bb_value": 35.0,
"bb_rank": 111,
"k_value": 141.0,
"k_rank": 32,
"k_per_9_value": 10.125,
"k_per_9_rank": 11,
"whip_value": 1.0851,
"whip_rank": null,
"war_value": 2.26,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9353,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9353,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.956,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9143,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0463,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 105,
"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 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260831_SEA@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"
}
} |
| 20260831 | 20260831_SF@ATL | away | Anthony Molina | Anthony Molina | True | 3.0 | 5.0 | 6 | 4 | 3 | -1 | 4/6 | 2/0 | 2/6 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 2.892857142857143,
"WHIP": 0.9642857142857142,
"IP": 9.1,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 4.333,
"recent_avg_IP": 4.333,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2075,
"sample_weight": 0.45,
"run_prevention_factor": 1.0176,
"strikeout_factor": 0.9486,
"walk_factor": 0.9694,
"homer_factor": 1.0002,
"regression_flag": "negative_pitcher_regression",
"k_percent": 8.6,
"bb_percent": 5.7,
"woba": 0.251,
"xwoba": 0.355,
"barrel_percent": 6.7,
"hard_hit_percent": 33.3,
"whiff_percent": 18.6
},
"espn_rank": {
"rank": 344,
"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.873,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2725,
"prior_weight": 0.7275
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683627",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 9.1,
"ER": 3.0,
"R": 4.0,
"H": 7.0,
"BB": 2.0,
"SO": 3.0,
"HR": 1.0,
"BF": 35.0,
"Pitches": 140.0
},
"per_game": {
"IP": 2.1,
"ER": 0.75,
"R": 1.0,
"H": 1.75,
"BB": 0.5,
"SO": 0.75,
"HR": 0.25,
"BF": 8.75,
"Pitches": 35.0
},
"rates": {
"ERA": 2.8929,
"WHIP": 0.9643,
"ER_per_IP": 0.32143,
"H_per_IP": 0.75,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.32143,
"HR_per_IP": 0.10714
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 9.1,
"ER": 3.0,
"R": 4.0,
"H": 7.0,
"BB": 2.0,
"SO": 3.0,
"HR": 1.0,
"BF": 35.0,
"Pitches": 140.0
},
"per_game": {
"IP": 2.1,
"ER": 0.75,
"R": 1.0,
"H": 1.75,
"BB": 0.5,
"SO": 0.75,
"HR": 0.25,
"BF": 8.75,
"Pitches": 35.0
},
"rates": {
"ERA": 2.8929,
"WHIP": 0.9643,
"ER_per_IP": 0.32143,
"H_per_IP": 0.75,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.32143,
"HR_per_IP": 0.10714
}
},
"season": {
"games": 4,
"totals": {
"IP": 9.1,
"ER": 3.0,
"R": 4.0,
"H": 7.0,
"BB": 2.0,
"SO": 3.0,
"HR": 1.0,
"BF": 35.0,
"Pitches": 140.0
},
"per_game": {
"IP": 2.1,
"ER": 0.75,
"R": 1.0,
"H": 1.75,
"BB": 0.5,
"SO": 0.75,
"HR": 0.25,
"BF": 8.75,
"Pitches": 35.0
},
"rates": {
"ERA": 2.8929,
"WHIP": 0.9643,
"ER_per_IP": 0.32143,
"H_per_IP": 0.75,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.32143,
"HR_per_IP": 0.10714
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.709,
"predicted_H": 3.458,
"predicted_BB": 1.243,
"predicted_SO": 2.92,
"predicted_HR": 0.515,
"predicted_ERA": 4.0604,
"predicted_WHIP": 1.2407
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6574,
"form_weight": 0.3426,
"form_reliability": 0.2725,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.873,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2725,
"prior_weight": 0.7275
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.709,
"final": 3.215,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.458,
"final": 3.8143,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.243,
"final": 1.7406,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 2.92,
"final": 2.3152,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.515,
"final": 1.4912,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0604,
"final": 4.0604,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2407,
"final": 1.2407,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 9.1,
"ER": 3,
"H": 7,
"BB": 2,
"SO": 3,
"HR": 1,
"ERA": 2.8928571428571432,
"WHIP": 0.9642857142857144,
"K9": 2.8928571428571432,
"HR9": 0.9642857142857144,
"games_pitched": 4,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 0.9460150951252848,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.873,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2725,
"prior_weight": 0.7275
}
},
{
"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": 4,
"predicted_H": 4,
"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": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 3.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.0,
"delta": -1.3333,
"percent_delta": -0.3077,
"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.3333,
"after": 3.0,
"delta": -1.3333,
"percent_delta": -0.3077,
"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": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 3.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": 4.0,
"after": 4.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": 3.0,
"after": 3.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.0,
"delta": -1.3333,
"percent_delta": -0.3077,
"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.3333,
"after": 3.0,
"delta": -1.3333,
"percent_delta": -0.3077,
"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": "SF",
"games": 137,
"wins": 56,
"losses": 81,
"win_pct": 0.4088,
"runs_scored": 560.0,
"runs_allowed": 634.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5401,
"avg_runs_scored": 4.0876,
"avg_runs_allowed": 4.6277,
"offense_index": 0.9143,
"defense_index": 0.9661,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.5,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.179
},
"opponent": {
"team": "ATL",
"games": 137,
"wins": 82,
"losses": 55,
"win_pct": 0.5985,
"runs_scored": 636.0,
"runs_allowed": 519.0,
"run_differential": 117.0,
"run_differential_per_game": 0.854,
"avg_runs_scored": 4.6423,
"avg_runs_allowed": 3.7883,
"offense_index": 1.0383,
"defense_index": 1.1802,
"current_streak": "W7",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 2.3,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.2938
},
"edges": {
"quality_edge": -0.4728,
"offense_edge": -0.0857,
"opponent_offense_edge": 0.0383,
"defense_strength": -0.0339,
"opponent_defense_weakness": -0.1802,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9785,
"run_prevention": 1.0332,
"strikeout": 0.9828
},
"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": 8.6,
"bb_percent": 5.7,
"woba": 0.251,
"xwoba": 0.355,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 33.3,
"avg_best_speed": 72.3713,
"avg_hyper_speed": 93.751,
"whiff_percent": 18.6,
"swing_percent": 50.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0087,
"command_and_miss": -1.0214,
"regression_edge": -2.0,
"xwoba_edge": -1.2286,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.6429,
"whiff_edge": -0.9429,
"bb_edge": 0.85,
"pitch_design_score": -0.0037
},
"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.0037,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0264,
"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.2075,
"sample_weight": 0.45,
"run_prevention_factor": 1.0176,
"strikeout_factor": 0.9486,
"walk_factor": 0.9694,
"homer_factor": 1.0002,
"woba_minus_xwoba": -0.104,
"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": 344,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 344,
"gp_value": 4.0,
"gp_rank": 643,
"gs_value": 0.0,
"gs_rank": 351,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 2.8928,
"era_rank": null,
"w_value": 1.0,
"w_rank": 396,
"l_value": 0.0,
"l_rank": 563,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 9.1,
"ip_rank": 608,
"h_value": 7.0,
"h_rank": 666,
"er_value": 3.0,
"er_rank": 690,
"hr_value": 1.0,
"hr_rank": 591,
"bb_value": 2.0,
"bb_rank": 701,
"k_value": 3.0,
"k_rank": 707,
"k_per_9_value": 2.8928573,
"k_per_9_rank": 31,
"whip_value": 0.9642,
"whip_rank": null,
"war_value": 0.19,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 1.0079,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 1.0079,
"adjusted": 1
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9862,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0001,
"adjusted": 0
},
"predicted_SO": {
"original": 1.0,
"factor": 0.9769,
"adjusted": 1
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 15,
"Pitches": 69,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 4 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260831_SF@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"
}
} |
| 20260831 | 20260831_SF@ATL | home | Bryce Elder | Bryce Elder | True | 6.0 | 5.1 | -2 | 1 | 5 | 4 | 1/8 | 4/3 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.946635730858469,
"WHIP": 1.2389791183294665,
"IP": 143.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.747,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0553,
"sample_weight": 1.0,
"run_prevention_factor": 1.0047,
"strikeout_factor": 0.9669,
"walk_factor": 0.97,
"homer_factor": 0.9887,
"regression_flag": "neutral",
"k_percent": 19.5,
"bb_percent": 7.6,
"woba": 0.307,
"xwoba": 0.309,
"barrel_percent": 6.2,
"hard_hit_percent": 39.7,
"whiff_percent": 21.9
},
"espn_rank": {
"rank": 121,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "693821",
"report_date": "20260831",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 13.0,
"R": 13.0,
"H": 27.0,
"BB": 9.0,
"SO": 20.0,
"HR": 4.0,
"BF": 127.0,
"Pitches": 455.0
},
"per_game": {
"IP": 6.0,
"ER": 2.6,
"R": 2.6,
"H": 5.4,
"BB": 1.8,
"SO": 4.0,
"HR": 0.8,
"BF": 25.4,
"Pitches": 91.0
},
"rates": {
"ERA": 3.9,
"WHIP": 1.2,
"ER_per_IP": 0.43333,
"H_per_IP": 0.9,
"BB_per_IP": 0.3,
"SO_per_IP": 0.66667,
"HR_per_IP": 0.13333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 32.0,
"R": 34.0,
"H": 58.0,
"BB": 19.0,
"SO": 45.0,
"HR": 13.0,
"BF": 240.0,
"Pitches": 863.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.4,
"H": 5.8,
"BB": 1.9,
"SO": 4.5,
"HR": 1.3,
"BF": 24.0,
"Pitches": 86.3
},
"rates": {
"ERA": 5.2364,
"WHIP": 1.4,
"ER_per_IP": 0.58182,
"H_per_IP": 1.05455,
"BB_per_IP": 0.34545,
"SO_per_IP": 0.81818,
"HR_per_IP": 0.23636
}
},
"season": {
"games": 25,
"totals": {
"IP": 143.2,
"ER": 63.0,
"R": 69.0,
"H": 132.0,
"BB": 46.0,
"SO": 118.0,
"HR": 22.0,
"BF": 606.0,
"Pitches": 2161.0
},
"per_game": {
"IP": 5.2,
"ER": 2.52,
"R": 2.76,
"H": 5.28,
"BB": 1.84,
"SO": 4.72,
"HR": 0.88,
"BF": 24.24,
"Pitches": 86.44
},
"rates": {
"ERA": 3.9466,
"WHIP": 1.239,
"ER_per_IP": 0.43852,
"H_per_IP": 0.91879,
"BB_per_IP": 0.32019,
"SO_per_IP": 0.82135,
"HR_per_IP": 0.15313
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.809,
"predicted_H": 5.523,
"predicted_BB": 1.888,
"predicted_SO": 4.497,
"predicted_HR": 0.971,
"predicted_ERA": 4.3972,
"predicted_WHIP": 1.2889
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.809,
"final": 2.0484,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.523,
"final": 4.0418,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.888,
"final": 2.7759,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.497,
"final": 5.1289,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.971,
"final": 0.5628,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3972,
"final": 4.3972,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2889,
"final": 1.2889,
"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.0,
"ER": 32,
"H": 58,
"BB": 19,
"SO": 45,
"HR": 13,
"ERA": 5.236363636363636,
"WHIP": 1.4,
"K9": 7.363636363636363,
"HR9": 2.1272727272727274,
"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-08-25T00:00:00"
},
"recent_form_boost": 1.097381394116088,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 4.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693821",
"player_name": "Bryce Elder",
"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": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.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": 4.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.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": 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": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"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.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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"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": 4.0,
"after": 4.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": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"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.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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"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": 137,
"wins": 82,
"losses": 55,
"win_pct": 0.5985,
"runs_scored": 636.0,
"runs_allowed": 519.0,
"run_differential": 117.0,
"run_differential_per_game": 0.854,
"avg_runs_scored": 4.6423,
"avg_runs_allowed": 3.7883,
"offense_index": 1.0383,
"defense_index": 1.1802,
"current_streak": "W7",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 2.3,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.2938
},
"opponent": {
"team": "SF",
"games": 137,
"wins": 56,
"losses": 81,
"win_pct": 0.4088,
"runs_scored": 560.0,
"runs_allowed": 634.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5401,
"avg_runs_scored": 4.0876,
"avg_runs_allowed": 4.6277,
"offense_index": 0.9143,
"defense_index": 0.9661,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.5,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.179
},
"edges": {
"quality_edge": 0.4728,
"offense_edge": 0.0383,
"opponent_offense_edge": -0.0857,
"defense_strength": 0.1802,
"opponent_defense_weakness": 0.0339,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0277,
"run_prevention": 0.9446,
"strikeout": 1.021
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693821",
"profile": {
"available": true,
"pitcher_id": "693821",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 576.0,
"k_percent": 19.5,
"bb_percent": 7.6,
"woba": 0.307,
"xwoba": 0.309,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 39.7,
"avg_best_speed": 79.8892,
"avg_hyper_speed": 94.2347,
"whiff_percent": 21.9,
"swing_percent": 46.5
},
"league_medians": {
"pa": 119.0,
"k_percent": 22.0,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0388,
"command_and_miss": -0.2507,
"regression_edge": -0.0571,
"xwoba_edge": 0.0857,
"barrel_edge": 0.2444,
"hard_hit_edge": -0.2714,
"whiff_edge": -0.4714,
"bb_edge": 0.375,
"pitch_design_score": -0.0762
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693821",
"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": 88.50424923367713,
"release_spin_rate": 2157.9408704006296,
"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": 88.50424923367713,
"release_spin_rate": 2157.9408704006296,
"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.5042,
"release_spin_rate": 2157.9409,
"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.5443,
"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.0553,
"sample_weight": 1.0,
"run_prevention_factor": 1.0047,
"strikeout_factor": 0.9669,
"walk_factor": 0.97,
"homer_factor": 0.9887,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693821",
"espn_id": 4301067,
"player_name": "Bryce Elder",
"team": "ATL",
"role": "pitcher",
"espn_rank": 121,
"espn_total_ranked": 842,
"metrics": {
"espn_rank": 121,
"gp_value": 25.0,
"gp_rank": 292,
"gs_value": 25.0,
"gs_rank": 43,
"qs_value": 15.0,
"qs_rank": 14,
"era_value": 3.9466,
"era_rank": 34.0,
"w_value": 8.0,
"w_rank": 56,
"l_value": 7.0,
"l_rank": 75,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 343,
"ip_value": 143.2,
"ip_rank": 39,
"h_value": 132.0,
"h_rank": 37,
"er_value": 63.0,
"er_rank": 41,
"hr_value": 22.0,
"hr_rank": 18,
"bb_value": 46.0,
"bb_rank": 43,
"k_value": 118.0,
"k_rank": 63,
"k_per_9_value": 7.3921113,
"k_per_9_rank": 43,
"whip_value": 1.2389,
"whip_rank": 35.0,
"war_value": 1.37,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0047,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0047,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.97,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9887,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9669,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 107,
"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 7",
"detail": "Actual minus predicted hits was +7."
},
{
"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: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260831_SF@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"
}
} |