| 20260830 | 20260830_BAL@OAK | away | Chris Bassitt | Chris Bassitt | True | 5.0 | 5.2 | 2 | 5 | 5 | 0 | 7/8 | 1/3 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.743243243243243,
"WHIP": 1.554054054054054,
"IP": 74.0,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 4.897,
"recent_avg_IP": 5.333,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3277,
"sample_weight": 1.0,
"run_prevention_factor": 1.0279,
"strikeout_factor": 0.9354,
"walk_factor": 0.972,
"homer_factor": 0.9782,
"regression_flag": "neutral",
"k_percent": 15.2,
"bb_percent": 7.8,
"woba": 0.355,
"xwoba": 0.34,
"barrel_percent": 5.2,
"hard_hit_percent": 35.7,
"whiff_percent": 20.7
},
"espn_rank": {
"rank": 266,
"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": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605135",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 10.0,
"R": 10.0,
"H": 29.0,
"BB": 7.0,
"SO": 17.0,
"HR": 4.0,
"BF": 113.0,
"Pitches": 418.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0,
"H": 5.8,
"BB": 1.4,
"SO": 3.4,
"HR": 0.8,
"BF": 22.6,
"Pitches": 83.6
},
"rates": {
"ERA": 3.375,
"WHIP": 1.35,
"ER_per_IP": 0.375,
"H_per_IP": 1.0875,
"BB_per_IP": 0.2625,
"SO_per_IP": 0.6375,
"HR_per_IP": 0.15
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 23.0,
"R": 23.0,
"H": 58.0,
"BB": 13.0,
"SO": 41.0,
"HR": 5.0,
"BF": 227.0,
"Pitches": 822.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.3,
"H": 5.8,
"BB": 1.3,
"SO": 4.1,
"HR": 0.5,
"BF": 22.7,
"Pitches": 82.2
},
"rates": {
"ERA": 3.9304,
"WHIP": 1.3481,
"ER_per_IP": 0.43671,
"H_per_IP": 1.10127,
"BB_per_IP": 0.24684,
"SO_per_IP": 0.77848,
"HR_per_IP": 0.09494
}
},
"season": {
"games": 15,
"totals": {
"IP": 74.0,
"ER": 39.0,
"R": 40.0,
"H": 89.0,
"BB": 26.0,
"SO": 51.0,
"HR": 8.0,
"BF": 335.0,
"Pitches": 1261.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.6667,
"H": 5.9333,
"BB": 1.7333,
"SO": 3.4,
"HR": 0.5333,
"BF": 22.3333,
"Pitches": 84.0667
},
"rates": {
"ERA": 4.7432,
"WHIP": 1.5541,
"ER_per_IP": 0.52703,
"H_per_IP": 1.2027,
"BB_per_IP": 0.35135,
"SO_per_IP": 0.68919,
"HR_per_IP": 0.10811
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.314,
"predicted_H": 5.616,
"predicted_BB": 1.551,
"predicted_SO": 3.94,
"predicted_HR": 0.667,
"predicted_ERA": 4.005,
"predicted_WHIP": 1.3783
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4556,
"form_weight": 0.5444,
"form_reliability": 0.75,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.314,
"final": 3.5378,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.616,
"final": 6.2466,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.551,
"final": 1.3,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.94,
"final": 4.423,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.667,
"final": 0.8187,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.005,
"final": 4.005,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3783,
"final": 1.3783,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.2,
"ER": 23,
"H": 58,
"BB": 13,
"SO": 41,
"HR": 5,
"ERA": 3.930379746835443,
"WHIP": 1.3481012658227849,
"K9": 7.006329113924051,
"HR9": 0.8544303797468354,
"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.9499502677912441,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605135",
"player_name": "Chris Bassitt",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 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": "BAL",
"games": 136,
"wins": 67,
"losses": 69,
"win_pct": 0.4926,
"runs_scored": 618.0,
"runs_allowed": 639.0,
"run_differential": -21.0,
"run_differential_per_game": -0.1544,
"avg_runs_scored": 4.5441,
"avg_runs_allowed": 4.6985,
"offense_index": 1.0174,
"defense_index": 0.9506,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.0,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0097
},
"opponent": {
"team": "OAK",
"games": 136,
"wins": 53,
"losses": 83,
"win_pct": 0.3897,
"runs_scored": 591.0,
"runs_allowed": 779.0,
"run_differential": -188.0,
"run_differential_per_game": -1.3824,
"avg_runs_scored": 4.3456,
"avg_runs_allowed": 5.7279,
"offense_index": 0.973,
"defense_index": 0.7797,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.2,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.299
},
"edges": {
"quality_edge": 0.3087,
"offense_edge": 0.0174,
"opponent_offense_edge": -0.027,
"defense_strength": -0.0494,
"opponent_defense_weakness": 0.2203,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0119,
"run_prevention": 0.9852,
"strikeout": 1.0114
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605135",
"profile": {
"available": true,
"pitcher_id": "605135",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 309.0,
"k_percent": 15.2,
"bb_percent": 7.8,
"woba": 0.355,
"xwoba": 0.34,
"sweet_spot_percent": 30.9,
"barrel_batted_rate": 5.2,
"hard_hit_percent": 35.7,
"avg_best_speed": 76.4363,
"avg_hyper_speed": 93.5708,
"whiff_percent": 20.7,
"swing_percent": 46.3
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.3478,
"command_and_miss": -0.5936,
"regression_edge": 0.4286,
"xwoba_edge": -0.8,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.3,
"whiff_edge": -0.6286,
"bb_edge": 0.35,
"pitch_design_score": -0.2679
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605135",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 75,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 85.07424126102447,
"release_spin_rate": 2163.0290515294796,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 85.07424126102447,
"release_spin_rate": 2163.0290515294796,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.0742,
"release_spin_rate": 2163.0291,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2679,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.9138,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3277,
"sample_weight": 1.0,
"run_prevention_factor": 1.0279,
"strikeout_factor": 0.9354,
"walk_factor": 0.972,
"homer_factor": 0.9782,
"woba_minus_xwoba": 0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605135",
"espn_id": 33148,
"player_name": "Chris Bassitt",
"team": "BAL",
"role": "pitcher",
"espn_rank": 266,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 266,
"gp_value": 15.0,
"gp_rank": 441,
"gs_value": 13.0,
"gs_rank": 146,
"qs_value": 3.0,
"qs_rank": 133,
"era_value": 4.7432,
"era_rank": null,
"w_value": 5.0,
"w_rank": 127,
"l_value": 4.0,
"l_rank": 168,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 74.0,
"ip_rank": 163,
"h_value": 89.0,
"h_rank": 117,
"er_value": 39.0,
"er_rank": 142,
"hr_value": 8.0,
"hr_rank": 193,
"bb_value": 26.0,
"bb_rank": 191,
"k_value": 51.0,
"k_rank": 265,
"k_per_9_value": 6.2027025,
"k_per_9_rank": 43,
"whip_value": 1.554,
"whip_rank": null,
"war_value": 0.4,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0279,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0279,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.972,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9782,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9354,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"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 +0."
}
],
"provenance": {
"prediction": "output/games/20260830_BAL@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_BAL@OAK | home | Jeffrey Springs | Jeffrey Springs | True | 4.0 | 4.2 | 2 | 5 | 7 | 2 | 5/6 | 1/1 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.084507042253521,
"WHIP": 1.495774647887324,
"IP": 118.1,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 4.931,
"recent_avg_IP": 4.133,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3794,
"sample_weight": 1.0,
"run_prevention_factor": 1.0323,
"strikeout_factor": 0.9617,
"walk_factor": 1.002,
"homer_factor": 1.0436,
"regression_flag": "positive_pitcher_regression",
"k_percent": 17.5,
"bb_percent": 9.3,
"woba": 0.372,
"xwoba": 0.34,
"barrel_percent": 9.2,
"hard_hit_percent": 34.7,
"whiff_percent": 23.0
},
"espn_rank": {
"rank": 745,
"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": "605488",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 14.0,
"R": 15.0,
"H": 26.0,
"BB": 12.0,
"SO": 8.0,
"HR": 4.0,
"BF": 97.0,
"Pitches": 374.0
},
"per_game": {
"IP": 4.0,
"ER": 2.8,
"R": 3.0,
"H": 5.2,
"BB": 2.4,
"SO": 1.6,
"HR": 0.8,
"BF": 19.4,
"Pitches": 74.8
},
"rates": {
"ERA": 6.0968,
"WHIP": 1.8387,
"ER_per_IP": 0.67742,
"H_per_IP": 1.25806,
"BB_per_IP": 0.58065,
"SO_per_IP": 0.3871,
"HR_per_IP": 0.19355
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.1,
"ER": 41.0,
"R": 44.0,
"H": 54.0,
"BB": 26.0,
"SO": 29.0,
"HR": 14.0,
"BF": 207.0,
"Pitches": 808.0
},
"per_game": {
"IP": 4.1,
"ER": 4.1,
"R": 4.4,
"H": 5.4,
"BB": 2.6,
"SO": 2.9,
"HR": 1.4,
"BF": 20.7,
"Pitches": 80.8
},
"rates": {
"ERA": 8.5154,
"WHIP": 1.8462,
"ER_per_IP": 0.94615,
"H_per_IP": 1.24615,
"BB_per_IP": 0.6,
"SO_per_IP": 0.66923,
"HR_per_IP": 0.32308
}
},
"season": {
"games": 24,
"totals": {
"IP": 118.1,
"ER": 80.0,
"R": 87.0,
"H": 128.0,
"BB": 49.0,
"SO": 92.0,
"HR": 30.0,
"BF": 527.0,
"Pitches": 2049.0
},
"per_game": {
"IP": 5.0,
"ER": 3.3333,
"R": 3.625,
"H": 5.3333,
"BB": 2.0417,
"SO": 3.8333,
"HR": 1.25,
"BF": 21.9583,
"Pitches": 85.375
},
"rates": {
"ERA": 6.0845,
"WHIP": 1.4958,
"ER_per_IP": 0.67606,
"H_per_IP": 1.08169,
"BB_per_IP": 0.41408,
"SO_per_IP": 0.77746,
"HR_per_IP": 0.25352
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.17,
"predicted_H": 5.149,
"predicted_BB": 2.286,
"predicted_SO": 2.752,
"predicted_HR": 1.019,
"predicted_ERA": 6.5185,
"predicted_WHIP": 1.6986
}
},
"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": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.17,
"final": 3.9438,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.149,
"final": 4.6632,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.286,
"final": 1.7422,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.752,
"final": 4.1254,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.019,
"final": 1.4338,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.5185,
"final": 6.5185,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6986,
"final": 1.6986,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.1,
"ER": 41,
"H": 54,
"BB": 26,
"SO": 29,
"HR": 14,
"ERA": 8.515384615384615,
"WHIP": 1.846153846153846,
"K9": 6.023076923076923,
"HR9": 2.9076923076923076,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-24T00:00:00"
},
"recent_form_boost": 1.4258908982115552,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 6.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 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_IP": 4.0,
"predicted_ER": 5,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605488",
"player_name": "Jeffrey Springs",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 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": 5.0,
"after": 5.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.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"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.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 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": 5.0,
"after": 5.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": 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.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_R": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.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": 5.0,
"after": 5.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": 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.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"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": 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.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 136,
"wins": 53,
"losses": 83,
"win_pct": 0.3897,
"runs_scored": 591.0,
"runs_allowed": 779.0,
"run_differential": -188.0,
"run_differential_per_game": -1.3824,
"avg_runs_scored": 4.3456,
"avg_runs_allowed": 5.7279,
"offense_index": 0.973,
"defense_index": 0.7797,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.2,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.299
},
"opponent": {
"team": "BAL",
"games": 136,
"wins": 67,
"losses": 69,
"win_pct": 0.4926,
"runs_scored": 618.0,
"runs_allowed": 639.0,
"run_differential": -21.0,
"run_differential_per_game": -0.1544,
"avg_runs_scored": 4.5441,
"avg_runs_allowed": 4.6985,
"offense_index": 1.0174,
"defense_index": 0.9506,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.0,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0097
},
"edges": {
"quality_edge": -0.3087,
"offense_edge": -0.027,
"opponent_offense_edge": 0.0174,
"defense_strength": -0.2203,
"opponent_defense_weakness": 0.0494,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9803,
"run_prevention": 1.0402,
"strikeout": 0.9893
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605488",
"profile": {
"available": true,
"pitcher_id": "605488",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 495.0,
"k_percent": 17.5,
"bb_percent": 9.3,
"woba": 0.372,
"xwoba": 0.34,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 34.7,
"avg_best_speed": 76.2904,
"avg_hyper_speed": 93.4137,
"whiff_percent": 23.0,
"swing_percent": 46.4
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6206,
"command_and_miss": -0.4057,
"regression_edge": 0.9143,
"xwoba_edge": -0.8,
"barrel_edge": -0.4667,
"hard_hit_edge": 0.4429,
"whiff_edge": -0.3,
"bb_edge": -0.025,
"pitch_design_score": -0.2232
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605488",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 75,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 85.87226981566755,
"release_spin_rate": 2002.2499973783792,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 85.87226981566755,
"release_spin_rate": 2002.2499973783792,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.8723,
"release_spin_rate": 2002.25,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2232,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5946,
"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.3794,
"sample_weight": 1.0,
"run_prevention_factor": 1.0323,
"strikeout_factor": 0.9617,
"walk_factor": 1.002,
"homer_factor": 1.0436,
"woba_minus_xwoba": 0.032,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "605488",
"espn_id": 35397,
"player_name": "Jeffrey Springs",
"team": "ATH",
"role": "pitcher",
"espn_rank": 745,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 745,
"gp_value": 24.0,
"gp_rank": 310,
"gs_value": 24.0,
"gs_rank": 59,
"qs_value": 4.0,
"qs_rank": 119,
"era_value": 6.0845,
"era_rank": null,
"w_value": 3.0,
"w_rank": 232,
"l_value": 12.0,
"l_rank": 4,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 118.1,
"ip_rank": 87,
"h_value": 128.0,
"h_rank": 42,
"er_value": 80.0,
"er_rank": 3,
"hr_value": 30.0,
"hr_rank": 2,
"bb_value": 49.0,
"bb_rank": 32,
"k_value": 92.0,
"k_rank": 106,
"k_per_9_value": 6.997183,
"k_per_9_rank": 32,
"whip_value": 1.4957,
"whip_rank": null,
"war_value": -0.45,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0323,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0323,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.002,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0436,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9617,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 81,
"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/20260830_BAL@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_BOS@NYY | away | Ranger Suarez | Ranger Suarez | True | 5.0 | 5.1 | 1 | 3 | 6 | 3 | 5/9 | 0/2 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3464788732394366,
"WHIP": 1.2,
"IP": 118.1,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.145,
"recent_avg_IP": 4.6,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2582,
"sample_weight": 1.0,
"run_prevention_factor": 0.9781,
"strikeout_factor": 0.9966,
"walk_factor": 0.966,
"homer_factor": 0.9095,
"regression_flag": "neutral",
"k_percent": 23.8,
"bb_percent": 7.5,
"woba": 0.287,
"xwoba": 0.295,
"barrel_percent": 4.5,
"hard_hit_percent": 32.6,
"whiff_percent": 22.8
},
"espn_rank": {
"rank": 81,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 118.1,
"season_ERA": 3.346,
"season_WHIP": 1.2,
"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": 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": "624133",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 12.0,
"R": 13.0,
"H": 21.0,
"BB": 11.0,
"SO": 14.0,
"HR": 2.0,
"BF": 100.0,
"Pitches": 402.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.6,
"H": 4.2,
"BB": 2.2,
"SO": 2.8,
"HR": 0.4,
"BF": 20.0,
"Pitches": 80.4
},
"rates": {
"ERA": 4.6957,
"WHIP": 1.3913,
"ER_per_IP": 0.52174,
"H_per_IP": 0.91304,
"BB_per_IP": 0.47826,
"SO_per_IP": 0.6087,
"HR_per_IP": 0.08696
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 19.0,
"R": 22.0,
"H": 44.0,
"BB": 16.0,
"SO": 47.0,
"HR": 3.0,
"BF": 205.0,
"Pitches": 810.0
},
"per_game": {
"IP": 4.2,
"ER": 1.9,
"R": 2.2,
"H": 4.4,
"BB": 1.6,
"SO": 4.7,
"HR": 0.3,
"BF": 20.5,
"Pitches": 81.0
},
"rates": {
"ERA": 3.5379,
"WHIP": 1.2414,
"ER_per_IP": 0.3931,
"H_per_IP": 0.91034,
"BB_per_IP": 0.33103,
"SO_per_IP": 0.97241,
"HR_per_IP": 0.06207
}
},
"season": {
"games": 23,
"totals": {
"IP": 118.1,
"ER": 44.0,
"R": 47.0,
"H": 105.0,
"BB": 37.0,
"SO": 117.0,
"HR": 7.0,
"BF": 491.0,
"Pitches": 1912.0
},
"per_game": {
"IP": 5.0,
"ER": 1.913,
"R": 2.0435,
"H": 4.5652,
"BB": 1.6087,
"SO": 5.087,
"HR": 0.3043,
"BF": 21.3478,
"Pitches": 83.1304
},
"rates": {
"ERA": 3.3465,
"WHIP": 1.2,
"ER_per_IP": 0.37183,
"H_per_IP": 0.88732,
"BB_per_IP": 0.31268,
"SO_per_IP": 0.98873,
"HR_per_IP": 0.05915
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.18,
"predicted_H": 4.393,
"predicted_BB": 1.861,
"predicted_SO": 3.991,
"predicted_HR": 0.41,
"predicted_ERA": 4.1046,
"predicted_WHIP": 1.3081
}
},
"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.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.18,
"final": 2.5289,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.393,
"final": 4.6513,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.861,
"final": 1.0692,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.991,
"final": 4.4203,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.41,
"final": 0.661,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1046,
"final": 4.1046,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3081,
"final": 1.3081,
"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": 19,
"H": 44,
"BB": 16,
"SO": 47,
"HR": 3,
"ERA": 3.5379310344827584,
"WHIP": 1.2413793103448276,
"K9": 8.751724137931035,
"HR9": 0.5586206896551724,
"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-24T00:00:00"
},
"recent_form_boost": 0.903131738764618,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 5.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": "624133",
"player_name": "Ranger Suarez",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 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": "BOS",
"games": 136,
"wins": 74,
"losses": 62,
"win_pct": 0.5441,
"runs_scored": 608.0,
"runs_allowed": 509.0,
"run_differential": 99.0,
"run_differential_per_game": 0.7279,
"avg_runs_scored": 4.4706,
"avg_runs_allowed": 3.7426,
"offense_index": 1.0008,
"defense_index": 1.1936,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.6,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.1621
},
"opponent": {
"team": "NYY",
"games": 136,
"wins": 77,
"losses": 59,
"win_pct": 0.5662,
"runs_scored": 606.0,
"runs_allowed": 504.0,
"run_differential": 102.0,
"run_differential_per_game": 0.75,
"avg_runs_scored": 4.4559,
"avg_runs_allowed": 3.7059,
"offense_index": 0.9975,
"defense_index": 1.2054,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.4,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1836
},
"edges": {
"quality_edge": -0.0215,
"offense_edge": 0.0008,
"opponent_offense_edge": -0.0025,
"defense_strength": 0.1936,
"opponent_defense_weakness": -0.2054,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.005,
"run_prevention": 0.9813,
"strikeout": 0.9996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "624133",
"profile": {
"available": true,
"pitcher_id": "624133",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 467.0,
"k_percent": 23.8,
"bb_percent": 7.5,
"woba": 0.287,
"xwoba": 0.295,
"sweet_spot_percent": 37.2,
"barrel_batted_rate": 4.5,
"hard_hit_percent": 32.6,
"avg_best_speed": 74.9011,
"avg_hyper_speed": 93.0261,
"whiff_percent": 22.8,
"swing_percent": 45.9
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.4956,
"command_and_miss": 0.0793,
"regression_edge": -0.2286,
"xwoba_edge": 0.4857,
"barrel_edge": 0.5778,
"hard_hit_edge": 0.7429,
"whiff_edge": -0.3286,
"bb_edge": 0.425,
"pitch_design_score": -0.2143
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "624133",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 74,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 74,
"pitch_usage": 0.0,
"release_speed": 86.0327454593224,
"release_spin_rate": 1975.9626802659607,
"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": 74,
"pitch_usage": 0.0,
"release_speed": 86.0327454593224,
"release_spin_rate": 1975.9626802659607,
"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.0327,
"release_spin_rate": 1975.9627,
"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.2143,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5304,
"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.2582,
"sample_weight": 1.0,
"run_prevention_factor": 0.9781,
"strikeout_factor": 0.9966,
"walk_factor": 0.966,
"homer_factor": 0.9095,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "624133",
"espn_id": 39817,
"player_name": "Ranger Suarez",
"team": "BOS",
"role": "pitcher",
"espn_rank": 81,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 81,
"gp_value": 23.0,
"gp_rank": 326,
"gs_value": 23.0,
"gs_rank": 68,
"qs_value": 7.0,
"qs_rank": 75,
"era_value": 3.3464,
"era_rank": null,
"w_value": 5.0,
"w_rank": 127,
"l_value": 3.0,
"l_rank": 223,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 118.1,
"ip_rank": 87,
"h_value": 105.0,
"h_rank": 93,
"er_value": 44.0,
"er_rank": 120,
"hr_value": 7.0,
"hr_rank": 214,
"bb_value": 37.0,
"bb_rank": 90,
"k_value": 117.0,
"k_rank": 63,
"k_per_9_value": 8.898591,
"k_per_9_rank": 19,
"whip_value": 1.2,
"whip_rank": null,
"war_value": 1.85,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9781,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9781,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9095,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9966,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 78,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260830_BOS@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_BOS@NYY | home | Will Warren | Will Warren | True | 5.0 | 7.0 | 6 | 5 | 1 | -4 | 4/6 | 3/1 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.393700787401575,
"WHIP": 1.4173228346456692,
"IP": 127.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.053,
"recent_avg_IP": 5.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2674,
"sample_weight": 1.0,
"run_prevention_factor": 1.0227,
"strikeout_factor": 0.9857,
"walk_factor": 0.978,
"homer_factor": 1.0679,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 8.1,
"woba": 0.343,
"xwoba": 0.33,
"barrel_percent": 7.9,
"hard_hit_percent": 44.5,
"whiff_percent": 22.2
},
"espn_rank": {
"rank": 323,
"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": "701542",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 12.0,
"R": 13.0,
"H": 27.0,
"BB": 9.0,
"SO": 24.0,
"HR": 5.0,
"BF": 109.0,
"Pitches": 447.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.6,
"H": 5.4,
"BB": 1.8,
"SO": 4.8,
"HR": 1.0,
"BF": 21.8,
"Pitches": 89.4
},
"rates": {
"ERA": 4.32,
"WHIP": 1.44,
"ER_per_IP": 0.48,
"H_per_IP": 1.08,
"BB_per_IP": 0.36,
"SO_per_IP": 0.96,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.0,
"ER": 27.0,
"R": 28.0,
"H": 50.0,
"BB": 16.0,
"SO": 42.0,
"HR": 11.0,
"BF": 192.0,
"Pitches": 768.0
},
"per_game": {
"IP": 4.1,
"ER": 2.7,
"R": 2.8,
"H": 5.0,
"BB": 1.6,
"SO": 4.2,
"HR": 1.1,
"BF": 19.2,
"Pitches": 76.8
},
"rates": {
"ERA": 5.6512,
"WHIP": 1.5349,
"ER_per_IP": 0.62791,
"H_per_IP": 1.16279,
"BB_per_IP": 0.37209,
"SO_per_IP": 0.97674,
"HR_per_IP": 0.25581
}
},
"season": {
"games": 26,
"totals": {
"IP": 127.0,
"ER": 62.0,
"R": 75.0,
"H": 135.0,
"BB": 45.0,
"SO": 126.0,
"HR": 20.0,
"BF": 559.0,
"Pitches": 2192.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3846,
"R": 2.8846,
"H": 5.1923,
"BB": 1.7308,
"SO": 4.8462,
"HR": 0.7692,
"BF": 21.5,
"Pitches": 84.3077
},
"rates": {
"ERA": 4.3937,
"WHIP": 1.4173,
"ER_per_IP": 0.48819,
"H_per_IP": 1.06299,
"BB_per_IP": 0.35433,
"SO_per_IP": 0.99213,
"HR_per_IP": 0.15748
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.536,
"predicted_H": 5.209,
"predicted_BB": 1.749,
"predicted_SO": 4.646,
"predicted_HR": 0.963,
"predicted_ERA": 4.7507,
"predicted_WHIP": 1.4483
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.536,
"final": 3.5663,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.209,
"final": 4.7035,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.749,
"final": 2.2721,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.646,
"final": 4.3759,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.963,
"final": 0.9785,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7507,
"final": 4.7507,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4483,
"final": 1.4483,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.0,
"ER": 27,
"H": 50,
"BB": 16,
"SO": 42,
"HR": 11,
"ERA": 5.651162790697674,
"WHIP": 1.5348837209302324,
"K9": 8.790697674418603,
"HR9": 2.3023255813953485,
"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-25T00:00:00"
},
"recent_form_boost": 1.1482079216034313,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 4.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": "701542",
"player_name": "Will Warren",
"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": 3.0,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.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.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.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.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 136,
"wins": 77,
"losses": 59,
"win_pct": 0.5662,
"runs_scored": 606.0,
"runs_allowed": 504.0,
"run_differential": 102.0,
"run_differential_per_game": 0.75,
"avg_runs_scored": 4.4559,
"avg_runs_allowed": 3.7059,
"offense_index": 0.9975,
"defense_index": 1.2054,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.4,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1836
},
"opponent": {
"team": "BOS",
"games": 136,
"wins": 74,
"losses": 62,
"win_pct": 0.5441,
"runs_scored": 608.0,
"runs_allowed": 509.0,
"run_differential": 99.0,
"run_differential_per_game": 0.7279,
"avg_runs_scored": 4.4706,
"avg_runs_allowed": 3.7426,
"offense_index": 1.0008,
"defense_index": 1.1936,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.6,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.1621
},
"edges": {
"quality_edge": 0.0215,
"offense_edge": -0.0025,
"opponent_offense_edge": 0.0008,
"defense_strength": 0.2054,
"opponent_defense_weakness": -0.1936,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.007,
"run_prevention": 0.9785,
"strikeout": 1.0006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "701542",
"profile": {
"available": true,
"pitcher_id": "701542",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 532.0,
"k_percent": 22.5,
"bb_percent": 8.1,
"woba": 0.343,
"xwoba": 0.33,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 44.5,
"avg_best_speed": 80.7798,
"avg_hyper_speed": 95.175,
"whiff_percent": 22.2,
"swing_percent": 43.8
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.5174,
"command_and_miss": -0.0643,
"regression_edge": 0.3714,
"xwoba_edge": -0.5143,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.9571,
"whiff_edge": -0.4143,
"bb_edge": 0.275,
"pitch_design_score": 0.0242
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "701542",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 90.29017897188778,
"release_spin_rate": 2501.6864996074655,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 90.29017897188778,
"release_spin_rate": 2501.6864996074655,
"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.2902,
"release_spin_rate": 2501.6865,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0242,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1726,
"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.2674,
"sample_weight": 1.0,
"run_prevention_factor": 1.0227,
"strikeout_factor": 0.9857,
"walk_factor": 0.978,
"homer_factor": 1.0679,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "701542",
"espn_id": 5132011,
"player_name": "Will Warren",
"team": "NYY",
"role": "pitcher",
"espn_rank": 323,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 323,
"gp_value": 26.0,
"gp_rank": 259,
"gs_value": 25.0,
"gs_rank": 38,
"qs_value": 6.0,
"qs_rank": 84,
"era_value": 4.3937,
"era_rank": null,
"w_value": 8.0,
"w_rank": 54,
"l_value": 6.0,
"l_rank": 101,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 1.0,
"hld_rank": 257,
"ip_value": 127.0,
"ip_rank": 67,
"h_value": 135.0,
"h_rank": 27,
"er_value": 62.0,
"er_rank": 42,
"hr_value": 20.0,
"hr_rank": 27,
"bb_value": 45.0,
"bb_rank": 47,
"k_value": 126.0,
"k_rank": 49,
"k_per_9_value": 8.929134,
"k_per_9_rank": 19,
"whip_value": 1.4173,
"whip_rank": null,
"war_value": 0.25,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0227,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0227,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0679,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9857,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"code": "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/20260830_BOS@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_CHW@MIN | away | Jordan Hicks | Jordan Hicks | True | 4.1 | 0.2 | -11 | 3 | 3 | 0 | 4/1 | 1/2 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.825,
"WHIP": 1.5,
"IP": 40.0,
"games_started": null,
"games_pitched": 42,
"role_avg_IP": 1.0,
"recent_avg_IP": 1.0,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3898,
"sample_weight": 0.64,
"run_prevention_factor": 0.9669,
"strikeout_factor": 1.0223,
"walk_factor": 1.0614,
"homer_factor": 0.9028,
"regression_flag": "positive_pitcher_regression",
"k_percent": 27.4,
"bb_percent": 14.0,
"woba": 0.31,
"xwoba": 0.27,
"barrel_percent": 1.9,
"hard_hit_percent": 33.7,
"whiff_percent": 25.9
},
"espn_rank": {
"rank": 214,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.03,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6163,
"prior_weight": 0.3837
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663855",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 42,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.0,
"ER": 4.0,
"R": 4.0,
"H": 6.0,
"BB": 3.0,
"SO": 9.0,
"HR": 1.0,
"BF": 27.0,
"Pitches": 103.0
},
"per_game": {
"IP": 1.1,
"ER": 0.8,
"R": 0.8,
"H": 1.2,
"BB": 0.6,
"SO": 1.8,
"HR": 0.2,
"BF": 5.4,
"Pitches": 20.6
},
"rates": {
"ERA": 6.0,
"WHIP": 1.5,
"ER_per_IP": 0.66667,
"H_per_IP": 1.0,
"BB_per_IP": 0.5,
"SO_per_IP": 1.5,
"HR_per_IP": 0.16667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.0,
"ER": 6.0,
"R": 6.0,
"H": 13.0,
"BB": 4.0,
"SO": 14.0,
"HR": 2.0,
"BF": 47.0,
"Pitches": 183.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 1.3,
"BB": 0.4,
"SO": 1.4,
"HR": 0.2,
"BF": 4.7,
"Pitches": 18.3
},
"rates": {
"ERA": 5.4,
"WHIP": 1.7,
"ER_per_IP": 0.6,
"H_per_IP": 1.3,
"BB_per_IP": 0.4,
"SO_per_IP": 1.4,
"HR_per_IP": 0.2
}
},
"season": {
"games": 42,
"totals": {
"IP": 40.0,
"ER": 17.0,
"R": 17.0,
"H": 35.0,
"BB": 25.0,
"SO": 49.0,
"HR": 3.0,
"BF": 178.0,
"Pitches": 695.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4048,
"R": 0.4048,
"H": 0.8333,
"BB": 0.5952,
"SO": 1.1667,
"HR": 0.0714,
"BF": 4.2381,
"Pitches": 16.5476
},
"rates": {
"ERA": 3.825,
"WHIP": 1.5,
"ER_per_IP": 0.425,
"H_per_IP": 0.875,
"BB_per_IP": 0.625,
"SO_per_IP": 1.225,
"HR_per_IP": 0.075
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.466,
"predicted_H": 2.73,
"predicted_BB": 1.165,
"predicted_SO": 3.23,
"predicted_HR": 0.406,
"predicted_ERA": 5.0235,
"predicted_WHIP": 1.4827
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5121,
"form_weight": 0.4879,
"form_reliability": 0.6163,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.03,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6163,
"prior_weight": 0.3837
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 2.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.466,
"final": 2.2516,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.73,
"final": 3.3804,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.165,
"final": 1.0805,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.23,
"final": 4.6486,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.406,
"final": 1.2223,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0235,
"final": 5.0235,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4827,
"final": 1.4827,
"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": 10.0,
"ER": 6,
"H": 13,
"BB": 4,
"SO": 14,
"HR": 2,
"ERA": 5.4,
"WHIP": 1.7,
"K9": 12.6,
"HR9": 1.8,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 1.0405254352671764,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.03,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6163,
"prior_weight": 0.3837
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663855",
"player_name": "Jordan Hicks",
"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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"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": 2.0,
"predicted_IP": 4.1,
"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": 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.1,
"after": 4.1,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"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": 135,
"wins": 72,
"losses": 63,
"win_pct": 0.5333,
"runs_scored": 651.0,
"runs_allowed": 603.0,
"run_differential": 48.0,
"run_differential_per_game": 0.3556,
"avg_runs_scored": 4.8222,
"avg_runs_allowed": 4.4667,
"offense_index": 1.0805,
"defense_index": 0.9992,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 4.5,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.1421
},
"opponent": {
"team": "MIN",
"games": 136,
"wins": 64,
"losses": 72,
"win_pct": 0.4706,
"runs_scored": 621.0,
"runs_allowed": 681.0,
"run_differential": -60.0,
"run_differential_per_game": -0.4412,
"avg_runs_scored": 4.5662,
"avg_runs_allowed": 5.0074,
"offense_index": 1.0231,
"defense_index": 0.8913,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.3,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.1494
},
"edges": {
"quality_edge": 0.2915,
"offense_edge": 0.0805,
"opponent_offense_edge": 0.0231,
"defense_strength": -0.0008,
"opponent_defense_weakness": 0.1087,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0107,
"run_prevention": 0.9892,
"strikeout": 1.0069
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663855",
"profile": {
"available": true,
"pitcher_id": "663855",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 160.0,
"k_percent": 27.4,
"bb_percent": 14.0,
"woba": 0.31,
"xwoba": 0.27,
"sweet_spot_percent": 28.8,
"barrel_batted_rate": 1.9,
"hard_hit_percent": 33.7,
"avg_best_speed": 78.2783,
"avg_hyper_speed": 93.5261,
"whiff_percent": 25.9,
"swing_percent": 44.9
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.7781,
"command_and_miss": 0.1407,
"regression_edge": 1.1429,
"xwoba_edge": 1.2,
"barrel_edge": 1.1556,
"hard_hit_edge": 0.5857,
"whiff_edge": 0.1143,
"bb_edge": -1.2,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663855",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 20,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 20,
"pitch_usage": 0.0,
"release_speed": 94.97291791079823,
"release_spin_rate": 2066.0942966264947,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 20,
"pitch_usage": 0.0,
"release_speed": 94.97291791079823,
"release_spin_rate": 2066.0942966264947,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.9729,
"release_spin_rate": 2066.0943,
"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.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"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.3898,
"sample_weight": 0.64,
"run_prevention_factor": 0.9669,
"strikeout_factor": 1.0223,
"walk_factor": 1.0614,
"homer_factor": 0.9028,
"woba_minus_xwoba": 0.04,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "663855",
"espn_id": 37909,
"player_name": "Jordan Hicks",
"team": "CHW",
"role": "pitcher",
"espn_rank": 214,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 214,
"gp_value": 43.0,
"gp_rank": 133,
"gs_value": 1.0,
"gs_rank": 292,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.825,
"era_rank": null,
"w_value": 2.0,
"w_rank": 296,
"l_value": 1.0,
"l_rank": 408,
"sv_value": 1.0,
"sv_rank": 132,
"hld_value": 8.0,
"hld_rank": 105,
"ip_value": 40.0,
"ip_rank": 352,
"h_value": 36.0,
"h_rank": 335,
"er_value": 17.0,
"er_rank": 351,
"hr_value": 3.0,
"hr_rank": 417,
"bb_value": 25.0,
"bb_rank": 199,
"k_value": 49.0,
"k_rank": 278,
"k_per_9_value": 11.025,
"k_per_9_rank": 21,
"whip_value": 1.525,
"whip_rank": null,
"war_value": 0.69,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9788,
"adjusted": 0
},
"predicted_H": {
"original": 0.0,
"factor": 0.9788,
"adjusted": 0
},
"predicted_BB": {
"original": 0.0,
"factor": 1.0393,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9378,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0143,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 18,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260830_CHW@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"
}
} |
| 20260830 | 20260830_CHW@MIN | home | Zebby Matthews | Zebby Matthews | True | 5.2 | 8.1 | 8 | 4 | 1 | -3 | 7/5 | 1/0 | 8/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.861736334405144,
"WHIP": 1.3118971061093248,
"IP": 103.2,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.759,
"recent_avg_IP": 5.533,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3225,
"sample_weight": 1.0,
"run_prevention_factor": 1.0274,
"strikeout_factor": 0.9749,
"walk_factor": 0.962,
"homer_factor": 1.11,
"regression_flag": "neutral",
"k_percent": 20.1,
"bb_percent": 7.3,
"woba": 0.338,
"xwoba": 0.328,
"barrel_percent": 11.2,
"hard_hit_percent": 41.9,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 209,
"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": "805673",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 12.0,
"R": 15.0,
"H": 28.0,
"BB": 8.0,
"SO": 29.0,
"HR": 4.0,
"BF": 118.0,
"Pitches": 473.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 3.0,
"H": 5.6,
"BB": 1.6,
"SO": 5.8,
"HR": 0.8,
"BF": 23.6,
"Pitches": 94.6
},
"rates": {
"ERA": 3.9036,
"WHIP": 1.3012,
"ER_per_IP": 0.43373,
"H_per_IP": 1.01205,
"BB_per_IP": 0.28916,
"SO_per_IP": 1.04819,
"HR_per_IP": 0.14458
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 31.0,
"R": 36.0,
"H": 56.0,
"BB": 21.0,
"SO": 49.0,
"HR": 9.0,
"BF": 233.0,
"Pitches": 922.0
},
"per_game": {
"IP": 5.1,
"ER": 3.1,
"R": 3.6,
"H": 5.6,
"BB": 2.1,
"SO": 4.9,
"HR": 0.9,
"BF": 23.3,
"Pitches": 92.2
},
"rates": {
"ERA": 5.135,
"WHIP": 1.4172,
"ER_per_IP": 0.57055,
"H_per_IP": 1.03067,
"BB_per_IP": 0.3865,
"SO_per_IP": 0.90184,
"HR_per_IP": 0.16564
}
},
"season": {
"games": 18,
"totals": {
"IP": 103.2,
"ER": 56.0,
"R": 61.0,
"H": 104.0,
"BB": 32.0,
"SO": 88.0,
"HR": 19.0,
"BF": 437.0,
"Pitches": 1675.0
},
"per_game": {
"IP": 5.2,
"ER": 3.1111,
"R": 3.3889,
"H": 5.7778,
"BB": 1.7778,
"SO": 4.8889,
"HR": 1.0556,
"BF": 24.2778,
"Pitches": 93.0556
},
"rates": {
"ERA": 4.8617,
"WHIP": 1.3119,
"ER_per_IP": 0.54019,
"H_per_IP": 1.00322,
"BB_per_IP": 0.30868,
"SO_per_IP": 0.84887,
"HR_per_IP": 0.18328
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.799,
"predicted_H": 5.617,
"predicted_BB": 1.874,
"predicted_SO": 5.315,
"predicted_HR": 0.874,
"predicted_ERA": 4.5185,
"predicted_WHIP": 1.3436
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.799,
"final": 3.3297,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.617,
"final": 6.2281,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.874,
"final": 1.4878,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.315,
"final": 6.5014,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.874,
"final": 0.9297,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5185,
"final": 4.5185,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3436,
"final": 1.3436,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 31,
"H": 56,
"BB": 21,
"SO": 49,
"HR": 9,
"ERA": 5.134969325153374,
"WHIP": 1.4171779141104295,
"K9": 8.116564417177914,
"HR9": 1.4907975460122698,
"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-24T00:00:00"
},
"recent_form_boost": 1.0871935115592024,
"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": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "805673",
"player_name": "Zebby Matthews",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": "MIN",
"games": 136,
"wins": 64,
"losses": 72,
"win_pct": 0.4706,
"runs_scored": 621.0,
"runs_allowed": 681.0,
"run_differential": -60.0,
"run_differential_per_game": -0.4412,
"avg_runs_scored": 4.5662,
"avg_runs_allowed": 5.0074,
"offense_index": 1.0231,
"defense_index": 0.8913,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.3,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.1494
},
"opponent": {
"team": "CHW",
"games": 135,
"wins": 72,
"losses": 63,
"win_pct": 0.5333,
"runs_scored": 651.0,
"runs_allowed": 603.0,
"run_differential": 48.0,
"run_differential_per_game": 0.3556,
"avg_runs_scored": 4.8222,
"avg_runs_allowed": 4.4667,
"offense_index": 1.0805,
"defense_index": 0.9992,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 4.5,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.1421
},
"edges": {
"quality_edge": -0.2915,
"offense_edge": 0.0231,
"opponent_offense_edge": 0.0805,
"defense_strength": -0.1087,
"opponent_defense_weakness": 0.0008,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9819,
"run_prevention": 1.0383,
"strikeout": 0.9848
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "805673",
"profile": {
"available": true,
"pitcher_id": "805673",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 409.0,
"k_percent": 20.1,
"bb_percent": 7.3,
"woba": 0.338,
"xwoba": 0.328,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 11.2,
"hard_hit_percent": 41.9,
"avg_best_speed": 80.3688,
"avg_hyper_speed": 94.7723,
"whiff_percent": 22.7,
"swing_percent": 47.2
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.5559,
"command_and_miss": -0.1536,
"regression_edge": 0.2857,
"xwoba_edge": -0.4571,
"barrel_edge": -0.9111,
"hard_hit_edge": -0.5857,
"whiff_edge": -0.3429,
"bb_edge": 0.475,
"pitch_design_score": 0.0014
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "805673",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.8834097777443,
"release_spin_rate": 2245.73417209907,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.8834097777443,
"release_spin_rate": 2245.73417209907,
"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.8834,
"release_spin_rate": 2245.7342,
"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.0014,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0099,
"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.3225,
"sample_weight": 1.0,
"run_prevention_factor": 1.0274,
"strikeout_factor": 0.9749,
"walk_factor": 0.962,
"homer_factor": 1.11,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "805673",
"espn_id": 4791597,
"player_name": "Zebby Matthews",
"team": "MIN",
"role": "pitcher",
"espn_rank": 209,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 209,
"gp_value": 18.0,
"gp_rank": 397,
"gs_value": 18.0,
"gs_rank": 105,
"qs_value": 9.0,
"qs_rank": 60,
"era_value": 4.8617,
"era_rank": null,
"w_value": 8.0,
"w_rank": 54,
"l_value": 8.0,
"l_rank": 41,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 103.2,
"ip_rank": 107,
"h_value": 104.0,
"h_rank": 98,
"er_value": 56.0,
"er_rank": 64,
"hr_value": 19.0,
"hr_rank": 35,
"bb_value": 32.0,
"bb_rank": 128,
"k_value": 88.0,
"k_rank": 117,
"k_per_9_value": 7.6398716,
"k_per_9_rank": 29,
"whip_value": 1.3118,
"whip_rank": null,
"war_value": 0.74,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0274,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0274,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.11,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9749,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"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."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +8 outs from the projected workload."
},
{
"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/20260830_CHW@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"
}
} |
| 20260830 | 20260830_CIN@CHC | away | Chase Burns | Chase Burns | True | 5.2 | 5.2 | 0 | 4 | 2 | -2 | 3/6 | 1/1 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.7708830548926016,
"WHIP": 1.152744630071599,
"IP": 139.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.587,
"recent_avg_IP": 5.4,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4878,
"sample_weight": 1.0,
"run_prevention_factor": 0.9585,
"strikeout_factor": 1.076,
"walk_factor": 0.988,
"homer_factor": 0.9878,
"regression_flag": "neutral",
"k_percent": 28.9,
"bb_percent": 8.6,
"woba": 0.286,
"xwoba": 0.277,
"barrel_percent": 8.1,
"hard_hit_percent": 37.8,
"whiff_percent": 31.6
},
"espn_rank": {
"rank": 10,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 139.2,
"season_ERA": 2.771,
"season_WHIP": 1.153,
"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": 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": "695505",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 13.0,
"R": 13.0,
"H": 27.0,
"BB": 8.0,
"SO": 36.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 445.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.6,
"H": 5.4,
"BB": 1.6,
"SO": 7.2,
"HR": 0.2,
"BF": 22.4,
"Pitches": 89.0
},
"rates": {
"ERA": 4.3333,
"WHIP": 1.2963,
"ER_per_IP": 0.48148,
"H_per_IP": 1.0,
"BB_per_IP": 0.2963,
"SO_per_IP": 1.33333,
"HR_per_IP": 0.03704
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 24.0,
"R": 28.0,
"H": 51.0,
"BB": 20.0,
"SO": 62.0,
"HR": 4.0,
"BF": 227.0,
"Pitches": 913.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.8,
"H": 5.1,
"BB": 2.0,
"SO": 6.2,
"HR": 0.4,
"BF": 22.7,
"Pitches": 91.3
},
"rates": {
"ERA": 4.0,
"WHIP": 1.3148,
"ER_per_IP": 0.44444,
"H_per_IP": 0.94444,
"BB_per_IP": 0.37037,
"SO_per_IP": 1.14815,
"HR_per_IP": 0.07407
}
},
"season": {
"games": 25,
"totals": {
"IP": 139.2,
"ER": 43.0,
"R": 47.0,
"H": 112.0,
"BB": 49.0,
"SO": 164.0,
"HR": 14.0,
"BF": 567.0,
"Pitches": 2302.0
},
"per_game": {
"IP": 5.2,
"ER": 1.72,
"R": 1.88,
"H": 4.48,
"BB": 1.96,
"SO": 6.56,
"HR": 0.56,
"BF": 22.68,
"Pitches": 92.08
},
"rates": {
"ERA": 2.7709,
"WHIP": 1.1527,
"ER_per_IP": 0.30788,
"H_per_IP": 0.80191,
"BB_per_IP": 0.35084,
"SO_per_IP": 1.17422,
"HR_per_IP": 0.10024
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.421,
"predicted_H": 5.153,
"predicted_BB": 1.846,
"predicted_SO": 6.463,
"predicted_HR": 0.417,
"predicted_ERA": 4.002,
"predicted_WHIP": 1.2855
}
},
"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.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.421,
"final": 3.0849,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.153,
"final": 4.6682,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.846,
"final": 1.4903,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.463,
"final": 4.5866,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.417,
"final": 1.503,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.002,
"final": 4.002,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2855,
"final": 1.2855,
"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.0,
"ER": 19,
"H": 42,
"BB": 20,
"SO": 52,
"HR": 3,
"ERA": 3.5625,
"WHIP": 1.2916666666666667,
"K9": 9.75,
"HR9": 0.5625,
"games_pitched": 9,
"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-24T00:00:00"
},
"recent_form_boost": 0.9071529312933537,
"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": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 3.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 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": "695505",
"player_name": "Chase Burns",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 3.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 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": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"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": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"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": {
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 136,
"wins": 64,
"losses": 72,
"win_pct": 0.4706,
"runs_scored": 563.0,
"runs_allowed": 673.0,
"run_differential": -110.0,
"run_differential_per_game": -0.8088,
"avg_runs_scored": 4.1397,
"avg_runs_allowed": 4.9485,
"offense_index": 0.9233,
"defense_index": 0.906,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 7.5,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.1592
},
"opponent": {
"team": "CHC",
"games": 136,
"wins": 77,
"losses": 59,
"win_pct": 0.5662,
"runs_scored": 720.0,
"runs_allowed": 591.0,
"run_differential": 129.0,
"run_differential_per_game": 0.9485,
"avg_runs_scored": 5.2941,
"avg_runs_allowed": 4.3456,
"offense_index": 1.1808,
"defense_index": 1.0317,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 6.8,
"avg_runs_allowed": 4.1,
"run_differential": 27.0
},
"available": true,
"quality_score": 0.1376
},
"edges": {
"quality_edge": -0.2968,
"offense_edge": -0.0767,
"opponent_offense_edge": 0.1808,
"defense_strength": -0.094,
"opponent_defense_weakness": -0.0317,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9781,
"run_prevention": 1.0532,
"strikeout": 0.9766
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695505",
"profile": {
"available": true,
"pitcher_id": "695505",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 540.0,
"k_percent": 28.9,
"bb_percent": 8.6,
"woba": 0.286,
"xwoba": 0.277,
"sweet_spot_percent": 35.5,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 79.5745,
"avg_hyper_speed": 93.7616,
"whiff_percent": 31.6,
"swing_percent": 49.0
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.4213,
"command_and_miss": 0.7921,
"regression_edge": 0.2571,
"xwoba_edge": 1.0,
"barrel_edge": -0.2222,
"hard_hit_edge": 0.0,
"whiff_edge": 0.9286,
"bb_edge": 0.15,
"pitch_design_score": 0.2523
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695505",
"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": 94.36490843177926,
"release_spin_rate": 2642.6191277414805,
"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": 94.36490843177926,
"release_spin_rate": 2642.6191277414805,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.3649,
"release_spin_rate": 2642.6191,
"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.2523,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.8025,
"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.4878,
"sample_weight": 1.0,
"run_prevention_factor": 0.9585,
"strikeout_factor": 1.076,
"walk_factor": 0.988,
"homer_factor": 0.9878,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695505",
"espn_id": 4927516,
"player_name": "Chase Burns",
"team": "CIN",
"role": "pitcher",
"espn_rank": 10,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 10,
"gp_value": 25.0,
"gp_rank": 288,
"gs_value": 25.0,
"gs_rank": 38,
"qs_value": 11.0,
"qs_rank": 38,
"era_value": 2.7708,
"era_rank": 9.0,
"w_value": 14.0,
"w_rank": 4,
"l_value": 3.0,
"l_rank": 223,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 139.2,
"ip_rank": 46,
"h_value": 112.0,
"h_rank": 82,
"er_value": 43.0,
"er_rank": 125,
"hr_value": 14.0,
"hr_rank": 91,
"bb_value": 49.0,
"bb_rank": 32,
"k_value": 164.0,
"k_rank": 14,
"k_per_9_value": 10.568019,
"k_per_9_rank": 8,
"whip_value": 1.1527,
"whip_rank": 23.0,
"war_value": 4.51,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9585,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9585,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.988,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9878,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.076,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 21,
"Pitches": 84,
"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/20260830_CIN@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"
}
} |
| 20260830 | 20260830_CIN@CHC | home | Shota Imanaga | Shota Imanaga | True | 5.1 | 5.0 | -1 | 3 | 6 | 3 | 5/8 | 1/1 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.777522935779816,
"WHIP": 1.1215596330275228,
"IP": 145.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.59,
"recent_avg_IP": 4.867,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1728,
"sample_weight": 1.0,
"run_prevention_factor": 0.9853,
"strikeout_factor": 1.036,
"walk_factor": 0.93,
"homer_factor": 1.0271,
"regression_flag": "neutral",
"k_percent": 24.3,
"bb_percent": 5.7,
"woba": 0.313,
"xwoba": 0.303,
"barrel_percent": 9.8,
"hard_hit_percent": 35.5,
"whiff_percent": 29.2
},
"espn_rank": {
"rank": 103,
"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": "684007",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 11.0,
"R": 12.0,
"H": 25.0,
"BB": 5.0,
"SO": 31.0,
"HR": 8.0,
"BF": 105.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.4,
"H": 5.0,
"BB": 1.0,
"SO": 6.2,
"HR": 1.6,
"BF": 21.0,
"Pitches": 88.8
},
"rates": {
"ERA": 4.0685,
"WHIP": 1.2329,
"ER_per_IP": 0.45205,
"H_per_IP": 1.0274,
"BB_per_IP": 0.20548,
"SO_per_IP": 1.27397,
"HR_per_IP": 0.32877
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 16.0,
"R": 17.0,
"H": 55.0,
"BB": 11.0,
"SO": 56.0,
"HR": 10.0,
"BF": 223.0,
"Pitches": 912.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.7,
"H": 5.5,
"BB": 1.1,
"SO": 5.6,
"HR": 1.0,
"BF": 22.3,
"Pitches": 91.2
},
"rates": {
"ERA": 2.7,
"WHIP": 1.2375,
"ER_per_IP": 0.3,
"H_per_IP": 1.03125,
"BB_per_IP": 0.20625,
"SO_per_IP": 1.05,
"HR_per_IP": 0.1875
}
},
"season": {
"games": 26,
"totals": {
"IP": 145.1,
"ER": 61.0,
"R": 63.0,
"H": 129.0,
"BB": 34.0,
"SO": 144.0,
"HR": 30.0,
"BF": 592.0,
"Pitches": 2328.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3462,
"R": 2.4231,
"H": 4.9615,
"BB": 1.3077,
"SO": 5.5385,
"HR": 1.1538,
"BF": 22.7692,
"Pitches": 89.5385
},
"rates": {
"ERA": 3.7775,
"WHIP": 1.1216,
"ER_per_IP": 0.41972,
"H_per_IP": 0.88761,
"BB_per_IP": 0.23394,
"SO_per_IP": 0.99083,
"HR_per_IP": 0.20642
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.156,
"predicted_H": 5.245,
"predicted_BB": 1.247,
"predicted_SO": 5.825,
"predicted_HR": 1.249,
"predicted_ERA": 3.6861,
"predicted_WHIP": 1.2333
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.156,
"final": 2.5089,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.245,
"final": 5.1426,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.247,
"final": 1.1437,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.825,
"final": 5.0619,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.249,
"final": 0.7267,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6861,
"final": 3.6861,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2333,
"final": 1.2333,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.1,
"ER": 16,
"H": 55,
"BB": 11,
"SO": 56,
"HR": 10,
"ERA": 2.6999999999999997,
"WHIP": 1.2375,
"K9": 9.45,
"HR9": 1.6875,
"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-23T00:00:00"
},
"recent_form_boost": 0.8087675146266871,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "684007",
"player_name": "Shota Imanaga",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "CHC",
"games": 136,
"wins": 77,
"losses": 59,
"win_pct": 0.5662,
"runs_scored": 720.0,
"runs_allowed": 591.0,
"run_differential": 129.0,
"run_differential_per_game": 0.9485,
"avg_runs_scored": 5.2941,
"avg_runs_allowed": 4.3456,
"offense_index": 1.1808,
"defense_index": 1.0317,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 6.8,
"avg_runs_allowed": 4.1,
"run_differential": 27.0
},
"available": true,
"quality_score": 0.1376
},
"opponent": {
"team": "CIN",
"games": 136,
"wins": 64,
"losses": 72,
"win_pct": 0.4706,
"runs_scored": 563.0,
"runs_allowed": 673.0,
"run_differential": -110.0,
"run_differential_per_game": -0.8088,
"avg_runs_scored": 4.1397,
"avg_runs_allowed": 4.9485,
"offense_index": 0.9233,
"defense_index": 0.906,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 7.5,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.1592
},
"edges": {
"quality_edge": 0.2968,
"offense_edge": 0.1808,
"opponent_offense_edge": -0.0767,
"defense_strength": 0.0317,
"opponent_defense_weakness": 0.094,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0159,
"run_prevention": 0.9697,
"strikeout": 1.015
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "684007",
"profile": {
"available": true,
"pitcher_id": "684007",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 577.0,
"k_percent": 24.3,
"bb_percent": 5.7,
"woba": 0.313,
"xwoba": 0.303,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 35.5,
"avg_best_speed": 77.7415,
"avg_hyper_speed": 93.7215,
"whiff_percent": 29.2,
"swing_percent": 51.1
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0422,
"command_and_miss": 0.5214,
"regression_edge": 0.2857,
"xwoba_edge": 0.2571,
"barrel_edge": -0.6,
"hard_hit_edge": 0.3286,
"whiff_edge": 0.5857,
"bb_edge": 0.875,
"pitch_design_score": -0.1872
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "684007",
"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": 86.5154055046095,
"release_spin_rate": 2045.9740460181658,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 86.5154055046095,
"release_spin_rate": 2045.9740460181658,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.5154,
"release_spin_rate": 2045.974,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1872,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.3373,
"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.1728,
"sample_weight": 1.0,
"run_prevention_factor": 0.9853,
"strikeout_factor": 1.036,
"walk_factor": 0.93,
"homer_factor": 1.0271,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "684007",
"espn_id": 5134630,
"player_name": "Shota Imanaga",
"team": "CHC",
"role": "pitcher",
"espn_rank": 103,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 103,
"gp_value": 26.0,
"gp_rank": 259,
"gs_value": 26.0,
"gs_rank": 25,
"qs_value": 11.0,
"qs_rank": 38,
"era_value": 3.7775,
"era_rank": 32.0,
"w_value": 8.0,
"w_rank": 54,
"l_value": 9.0,
"l_rank": 23,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 145.1,
"ip_rank": 32,
"h_value": 129.0,
"h_rank": 40,
"er_value": 61.0,
"er_rank": 49,
"hr_value": 30.0,
"hr_rank": 2,
"bb_value": 34.0,
"bb_rank": 118,
"k_value": 144.0,
"k_rank": 27,
"k_per_9_value": 8.917432,
"k_per_9_rank": 22,
"whip_value": 1.1215,
"whip_rank": 18.0,
"war_value": 1.6,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9853,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9853,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.93,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0271,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.036,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"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."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260830_CIN@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"
}
} |
| 20260830 | 20260830_COL@ATL | away | Mason Adams | Mason Adams | True | 3.2 | 5.0 | 4 | 4 | 2 | -2 | 4/5 | 1/2 | 4/5 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 2.25,
"WHIP": 1.5,
"IP": 4.0,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 4.0,
"recent_avg_IP": 4.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0299,
"sample_weight": 0.45,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0031,
"walk_factor": 0.9991,
"homer_factor": 0.9979,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 9.1,
"woba": 0.3075,
"xwoba": 0.308,
"barrel_percent": 7.1,
"hard_hit_percent": 37.6,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 341,
"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.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "690279",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 3.0,
"SO": 5.0,
"HR": 1.0,
"BF": 18.0,
"Pitches": 75.0
},
"per_game": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 3.0,
"SO": 5.0,
"HR": 1.0,
"BF": 18.0,
"Pitches": 75.0
},
"rates": {
"ERA": 2.25,
"WHIP": 1.5,
"ER_per_IP": 0.25,
"H_per_IP": 0.75,
"BB_per_IP": 0.75,
"SO_per_IP": 1.25,
"HR_per_IP": 0.25
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 3.0,
"SO": 5.0,
"HR": 1.0,
"BF": 18.0,
"Pitches": 75.0
},
"per_game": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 3.0,
"SO": 5.0,
"HR": 1.0,
"BF": 18.0,
"Pitches": 75.0
},
"rates": {
"ERA": 2.25,
"WHIP": 1.5,
"ER_per_IP": 0.25,
"H_per_IP": 0.75,
"BB_per_IP": 0.75,
"SO_per_IP": 1.25,
"HR_per_IP": 0.25
}
},
"season": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 3.0,
"SO": 5.0,
"HR": 1.0,
"BF": 18.0,
"Pitches": 75.0
},
"per_game": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 3.0,
"SO": 5.0,
"HR": 1.0,
"BF": 18.0,
"Pitches": 75.0
},
"rates": {
"ERA": 2.25,
"WHIP": 1.5,
"ER_per_IP": 0.25,
"H_per_IP": 0.75,
"BB_per_IP": 0.75,
"SO_per_IP": 1.25,
"HR_per_IP": 0.25
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.83,
"predicted_H": 3.746,
"predicted_BB": 1.729,
"predicted_SO": 3.965,
"predicted_HR": 0.653,
"predicted_ERA": 4.1174,
"predicted_WHIP": 1.3688
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7021,
"form_weight": 0.2979,
"form_reliability": 0.1667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 4.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.83,
"final": 3.3535,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.746,
"final": 3.9243,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.729,
"final": 1.2172,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.965,
"final": 3.9896,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.653,
"final": 0.8966,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1174,
"final": 4.1174,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3688,
"final": 1.3688,
"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": 4.0,
"ER": 1,
"H": 3,
"BB": 3,
"SO": 5,
"HR": 1,
"ERA": 2.25,
"WHIP": 1.5,
"K9": 11.25,
"HR9": 2.25,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 1,
"error_prone": false
},
"games_count": 1,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 0.9692603785480646,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690279",
"player_name": "Mason Adams",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"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": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"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": 136,
"wins": 52,
"losses": 84,
"win_pct": 0.3824,
"runs_scored": 642.0,
"runs_allowed": 783.0,
"run_differential": -141.0,
"run_differential_per_game": -1.0368,
"avg_runs_scored": 4.7206,
"avg_runs_allowed": 5.7574,
"offense_index": 1.0567,
"defense_index": 0.7759,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 5.6,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.3326
},
"opponent": {
"team": "ATL",
"games": 136,
"wins": 81,
"losses": 55,
"win_pct": 0.5956,
"runs_scored": 633.0,
"runs_allowed": 517.0,
"run_differential": 116.0,
"run_differential_per_game": 0.8529,
"avg_runs_scored": 4.6544,
"avg_runs_allowed": 3.8015,
"offense_index": 1.0419,
"defense_index": 1.1751,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 2.7,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.2563
},
"edges": {
"quality_edge": -0.5889,
"offense_edge": 0.0567,
"opponent_offense_edge": 0.0419,
"defense_strength": -0.2241,
"opponent_defense_weakness": -0.1751,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.968,
"run_prevention": 1.0586,
"strikeout": 0.979
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690279",
"profile": {
"available": true,
"pitcher_id": "690279",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 22.7,
"bb_percent": 9.1,
"woba": 0.3075,
"xwoba": 0.308,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5607,
"avg_hyper_speed": 93.8771,
"whiff_percent": 25.7,
"swing_percent": 47.5
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.087,
"command_and_miss": 0.0736,
"regression_edge": -0.0143,
"xwoba_edge": 0.1143,
"barrel_edge": 0.0,
"hard_hit_edge": 0.0286,
"whiff_edge": 0.0857,
"bb_edge": 0.025,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "690279",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0299,
"sample_weight": 0.45,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0031,
"walk_factor": 0.9991,
"homer_factor": 0.9979,
"woba_minus_xwoba": -0.0005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "690279",
"espn_id": 4758424,
"player_name": "Mason Adams",
"team": "COL",
"role": "pitcher",
"espn_rank": 341,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 341,
"gp_value": 1.0,
"gp_rank": 767,
"gs_value": 1.0,
"gs_rank": 292,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 2.25,
"era_rank": null,
"w_value": 0.0,
"w_rank": 514,
"l_value": 0.0,
"l_rank": 560,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 4.0,
"ip_rank": 716,
"h_value": 3.0,
"h_rank": 753,
"er_value": 1.0,
"er_rank": 757,
"hr_value": 1.0,
"hr_rank": 588,
"bb_value": 3.0,
"bb_rank": 655,
"k_value": 5.0,
"k_rank": 664,
"k_per_9_value": 11.25,
"k_per_9_rank": 25,
"whip_value": 1.5,
"whip_rank": null,
"war_value": 0.2,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9989,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9989,
"adjusted": 3
},
"predicted_BB": {
"original": 3.0,
"factor": 0.9996,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9991,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0014,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 16,
"Pitches": 66,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 1 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/20260830_COL@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"
}
} |
| 20260830 | 20260830_COL@ATL | home | Tyler Mahle | Tyler Mahle | True | 5.2 | 6.2 | 3 | 3 | 1 | -2 | 6/5 | 2/0 | 4/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.411267605633803,
"WHIP": 1.3183098591549296,
"IP": 118.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.379,
"recent_avg_IP": 5.867,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.12,
"sample_weight": 1.0,
"run_prevention_factor": 1.0102,
"strikeout_factor": 0.9886,
"walk_factor": 0.986,
"homer_factor": 1.01,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 8.5,
"woba": 0.323,
"xwoba": 0.319,
"barrel_percent": 7.1,
"hard_hit_percent": 38.5,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 173,
"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": "641816",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 9.0,
"R": 9.0,
"H": 24.0,
"BB": 7.0,
"SO": 32.0,
"HR": 3.0,
"BF": 118.0,
"Pitches": 454.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.8,
"H": 4.8,
"BB": 1.4,
"SO": 6.4,
"HR": 0.6,
"BF": 23.6,
"Pitches": 90.8
},
"rates": {
"ERA": 2.7614,
"WHIP": 1.0568,
"ER_per_IP": 0.30682,
"H_per_IP": 0.81818,
"BB_per_IP": 0.23864,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.10227
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 20.0,
"R": 21.0,
"H": 49.0,
"BB": 16.0,
"SO": 51.0,
"HR": 5.0,
"BF": 229.0,
"Pitches": 897.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.1,
"H": 4.9,
"BB": 1.6,
"SO": 5.1,
"HR": 0.5,
"BF": 22.9,
"Pitches": 89.7
},
"rates": {
"ERA": 3.2143,
"WHIP": 1.1607,
"ER_per_IP": 0.35714,
"H_per_IP": 0.875,
"BB_per_IP": 0.28571,
"SO_per_IP": 0.91071,
"HR_per_IP": 0.08929
}
},
"season": {
"games": 22,
"totals": {
"IP": 118.1,
"ER": 58.0,
"R": 59.0,
"H": 114.0,
"BB": 42.0,
"SO": 112.0,
"HR": 16.0,
"BF": 497.0,
"Pitches": 1933.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6364,
"R": 2.6818,
"H": 5.1818,
"BB": 1.9091,
"SO": 5.0909,
"HR": 0.7273,
"BF": 22.5909,
"Pitches": 87.8636
},
"rates": {
"ERA": 4.4113,
"WHIP": 1.3183,
"ER_per_IP": 0.49014,
"H_per_IP": 0.96338,
"BB_per_IP": 0.35493,
"SO_per_IP": 0.94648,
"HR_per_IP": 0.13521
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.217,
"predicted_H": 5.086,
"predicted_BB": 1.692,
"predicted_SO": 5.665,
"predicted_HR": 0.642,
"predicted_ERA": 3.4797,
"predicted_WHIP": 1.182
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.217,
"final": 2.5523,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.086,
"final": 5.4774,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.692,
"final": 1.8239,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.665,
"final": 4.952,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.642,
"final": 0.7953,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4797,
"final": 3.4797,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.182,
"final": 1.182,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 20,
"H": 49,
"BB": 16,
"SO": 51,
"HR": 5,
"ERA": 3.214285714285714,
"WHIP": 1.1607142857142856,
"K9": 8.196428571428571,
"HR9": 0.8035714285714285,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.864705014626687,
"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": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641816",
"player_name": "Tyler Mahle",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 136,
"wins": 81,
"losses": 55,
"win_pct": 0.5956,
"runs_scored": 633.0,
"runs_allowed": 517.0,
"run_differential": 116.0,
"run_differential_per_game": 0.8529,
"avg_runs_scored": 4.6544,
"avg_runs_allowed": 3.8015,
"offense_index": 1.0419,
"defense_index": 1.1751,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 2.7,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.2563
},
"opponent": {
"team": "COL",
"games": 136,
"wins": 52,
"losses": 84,
"win_pct": 0.3824,
"runs_scored": 642.0,
"runs_allowed": 783.0,
"run_differential": -141.0,
"run_differential_per_game": -1.0368,
"avg_runs_scored": 4.7206,
"avg_runs_allowed": 5.7574,
"offense_index": 1.0567,
"defense_index": 0.7759,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 5.6,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.3326
},
"edges": {
"quality_edge": 0.5889,
"offense_edge": 0.0419,
"opponent_offense_edge": 0.0567,
"defense_strength": 0.1751,
"opponent_defense_weakness": 0.2241,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0265,
"run_prevention": 0.9621,
"strikeout": 1.0131
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641816",
"profile": {
"available": true,
"pitcher_id": "641816",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 446.0,
"k_percent": 22.5,
"bb_percent": 8.5,
"woba": 0.323,
"xwoba": 0.319,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.5,
"avg_best_speed": 80.6986,
"avg_hyper_speed": 94.1022,
"whiff_percent": 22.7,
"swing_percent": 45.2
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.2046,
"command_and_miss": -0.0593,
"regression_edge": 0.1143,
"xwoba_edge": -0.2,
"barrel_edge": 0.0,
"hard_hit_edge": -0.1,
"whiff_edge": -0.3429,
"bb_edge": 0.175,
"pitch_design_score": -0.0183
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641816",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 89.53121594004485,
"release_spin_rate": 2152.2110299296696,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 89.53121594004485,
"release_spin_rate": 2152.2110299296696,
"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.5312,
"release_spin_rate": 2152.211,
"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.0183,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.131,
"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.12,
"sample_weight": 1.0,
"run_prevention_factor": 1.0102,
"strikeout_factor": 0.9886,
"walk_factor": 0.986,
"homer_factor": 1.01,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641816",
"espn_id": 34973,
"player_name": "Tyler Mahle",
"team": "ATL",
"role": "pitcher",
"espn_rank": 173,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 173,
"gp_value": 22.0,
"gp_rank": 344,
"gs_value": 22.0,
"gs_rank": 77,
"qs_value": 6.0,
"qs_rank": 84,
"era_value": 4.4112,
"era_rank": null,
"w_value": 5.0,
"w_rank": 127,
"l_value": 10.0,
"l_rank": 13,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 118.1,
"ip_rank": 87,
"h_value": 114.0,
"h_rank": 79,
"er_value": 58.0,
"er_rank": 59,
"hr_value": 16.0,
"hr_rank": 70,
"bb_value": 42.0,
"bb_rank": 60,
"k_value": 112.0,
"k_rank": 70,
"k_per_9_value": 8.51831,
"k_per_9_rank": 21,
"whip_value": 1.3183,
"whip_rank": null,
"war_value": 0.98,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0102,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0102,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.986,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.01,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9886,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "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/20260830_COL@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"
}
} |
| 20260830 | 20260830_HOU@NYM | away | Ethan Pecko | Ethan Pecko | True | 3.2 | 5.0 | 4 | 4 | 2 | -2 | 2/3 | 2/2 | 3/4 | Last 10 before this game (2 available){
"model_context": {
"embedded_season": {
"ERA": 7.875,
"WHIP": 1.875,
"IP": 8.0,
"games_started": null,
"games_pitched": 2,
"role_avg_IP": 4.0,
"recent_avg_IP": 4.0,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6134,
"sample_weight": 0.45,
"run_prevention_factor": 1.0521,
"strikeout_factor": 0.9758,
"walk_factor": 1.0783,
"homer_factor": 1.0699,
"regression_flag": "negative_pitcher_regression",
"k_percent": 12.8,
"bb_percent": 17.9,
"woba": 0.396,
"xwoba": 0.428,
"barrel_percent": 7.7,
"hard_hit_percent": 50.0,
"whiff_percent": 25.0
},
"espn_rank": {
"rank": 636,
"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": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "814490",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 2,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 2,
"totals": {
"IP": 8.0,
"ER": 7.0,
"R": 7.0,
"H": 8.0,
"BB": 7.0,
"SO": 5.0,
"HR": 2.0,
"BF": 39.0,
"Pitches": 177.0
},
"per_game": {
"IP": 4.0,
"ER": 3.5,
"R": 3.5,
"H": 4.0,
"BB": 3.5,
"SO": 2.5,
"HR": 1.0,
"BF": 19.5,
"Pitches": 88.5
},
"rates": {
"ERA": 7.875,
"WHIP": 1.875,
"ER_per_IP": 0.875,
"H_per_IP": 1.0,
"BB_per_IP": 0.875,
"SO_per_IP": 0.625,
"HR_per_IP": 0.25
}
},
"last_10": {
"games": 2,
"totals": {
"IP": 8.0,
"ER": 7.0,
"R": 7.0,
"H": 8.0,
"BB": 7.0,
"SO": 5.0,
"HR": 2.0,
"BF": 39.0,
"Pitches": 177.0
},
"per_game": {
"IP": 4.0,
"ER": 3.5,
"R": 3.5,
"H": 4.0,
"BB": 3.5,
"SO": 2.5,
"HR": 1.0,
"BF": 19.5,
"Pitches": 88.5
},
"rates": {
"ERA": 7.875,
"WHIP": 1.875,
"ER_per_IP": 0.875,
"H_per_IP": 1.0,
"BB_per_IP": 0.875,
"SO_per_IP": 0.625,
"HR_per_IP": 0.25
}
},
"season": {
"games": 2,
"totals": {
"IP": 8.0,
"ER": 7.0,
"R": 7.0,
"H": 8.0,
"BB": 7.0,
"SO": 5.0,
"HR": 2.0,
"BF": 39.0,
"Pitches": 177.0
},
"per_game": {
"IP": 4.0,
"ER": 3.5,
"R": 3.5,
"H": 4.0,
"BB": 3.5,
"SO": 2.5,
"HR": 1.0,
"BF": 19.5,
"Pitches": 88.5
},
"rates": {
"ERA": 7.875,
"WHIP": 1.875,
"ER_per_IP": 0.875,
"H_per_IP": 1.0,
"BB_per_IP": 0.875,
"SO_per_IP": 0.625,
"HR_per_IP": 0.25
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.57,
"predicted_H": 4.159,
"predicted_BB": 2.176,
"predicted_SO": 3.6,
"predicted_HR": 0.745,
"predicted_ERA": 5.4578,
"predicted_WHIP": 1.4947
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6518,
"form_weight": 0.3482,
"form_reliability": 0.2857,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.57,
"final": 3.5021,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.159,
"final": 2.7518,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.176,
"final": 2.0613,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.6,
"final": 2.5571,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.745,
"final": 1.563,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.4578,
"final": 5.4578,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4947,
"final": 1.4947,
"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": 8.0,
"ER": 7,
"H": 8,
"BB": 7,
"SO": 5,
"HR": 2,
"ERA": 7.875,
"WHIP": 1.875,
"K9": 5.625,
"HR9": 2.25,
"games_pitched": 2,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 2,
"error_prone": false
},
"games_count": 2,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 1.1063152438323836,
"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": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 4,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "814490",
"player_name": "Ethan Pecko",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 2.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": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 3.2,
"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": 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.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"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.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"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": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 3.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": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 3.2,
"delta": -1.1333,
"percent_delta": -0.2615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 136,
"wins": 68,
"losses": 68,
"win_pct": 0.5,
"runs_scored": 618.0,
"runs_allowed": 664.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3382,
"avg_runs_scored": 4.5441,
"avg_runs_allowed": 4.8824,
"offense_index": 1.0189,
"defense_index": 0.9134,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.5,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.0417
},
"opponent": {
"team": "NYM",
"games": 136,
"wins": 61,
"losses": 75,
"win_pct": 0.4485,
"runs_scored": 559.0,
"runs_allowed": 609.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3676,
"avg_runs_scored": 4.1103,
"avg_runs_allowed": 4.4779,
"offense_index": 0.9217,
"defense_index": 0.9959,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.3,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.1241
},
"edges": {
"quality_edge": 0.0824,
"offense_edge": 0.0189,
"opponent_offense_edge": -0.0783,
"defense_strength": -0.0866,
"opponent_defense_weakness": 0.0041,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0038,
"run_prevention": 0.992,
"strikeout": 1.0087
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "814490",
"profile": {
"available": true,
"pitcher_id": "814490",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 18.0,
"k_percent": 12.8,
"bb_percent": 17.9,
"woba": 0.396,
"xwoba": 0.428,
"sweet_spot_percent": 46.2,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 50.0,
"avg_best_speed": 82.27,
"avg_hyper_speed": 95.2959,
"whiff_percent": 25.0,
"swing_percent": 42.9
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -1.7953,
"command_and_miss": -1.0379,
"regression_edge": -0.9143,
"xwoba_edge": -2.5,
"barrel_edge": -0.1333,
"hard_hit_edge": -1.7429,
"whiff_edge": -0.0143,
"bb_edge": -2.175,
"pitch_design_score": 0.045
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "814490",
"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": 90.66179775280898,
"release_spin_rate": 2286.494382022472,
"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": 90.66179775280898,
"release_spin_rate": 2286.494382022472,
"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.6618,
"release_spin_rate": 2286.4944,
"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.045,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3212,
"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.6134,
"sample_weight": 0.45,
"run_prevention_factor": 1.0521,
"strikeout_factor": 0.9758,
"walk_factor": 1.0783,
"homer_factor": 1.0699,
"woba_minus_xwoba": -0.032,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "814490",
"espn_id": 4944276,
"player_name": "Ethan Pecko",
"team": "HOU",
"role": "pitcher",
"espn_rank": 636,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 636,
"gp_value": 2.0,
"gp_rank": 734,
"gs_value": 2.0,
"gs_rank": 268,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 7.875,
"era_rank": null,
"w_value": 0.0,
"w_rank": 514,
"l_value": 0.0,
"l_rank": 560,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 8.0,
"ip_rank": 634,
"h_value": 8.0,
"h_rank": 641,
"er_value": 7.0,
"er_rank": 573,
"hr_value": 2.0,
"hr_rank": 496,
"bb_value": 7.0,
"bb_rank": 538,
"k_value": 5.0,
"k_rank": 664,
"k_per_9_value": 5.625,
"k_per_9_rank": 28,
"whip_value": 1.875,
"whip_rank": null,
"war_value": -0.17,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0234,
"adjusted": 4
},
"predicted_H": {
"original": 4.0,
"factor": 1.0234,
"adjusted": 4
},
"predicted_BB": {
"original": 4.0,
"factor": 1.0352,
"adjusted": 4
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0315,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9891,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 2,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 16,
"Pitches": 66,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 2 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/20260830_HOU@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_HOU@NYM | home | Zac Thornton | Zac Thornton | True | 5.2 | 5.0 | -2 | 0 | 2 | 2 | 2/6 | 1/0 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.8757396449704142,
"WHIP": 1.1538461538461537,
"IP": 56.1,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 5.633,
"recent_avg_IP": 5.333,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1931,
"sample_weight": 0.72,
"run_prevention_factor": 1.0164,
"strikeout_factor": 0.9605,
"walk_factor": 0.9582,
"homer_factor": 1.0271,
"regression_flag": "negative_pitcher_regression",
"k_percent": 17.9,
"bb_percent": 6.3,
"woba": 0.293,
"xwoba": 0.325,
"barrel_percent": 8.3,
"hard_hit_percent": 38.7,
"whiff_percent": 19.7
},
"espn_rank": {
"rank": 95,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 56.1,
"season_ERA": 2.876,
"season_WHIP": 1.154,
"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.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "804267",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 10.0,
"R": 11.0,
"H": 31.0,
"BB": 7.0,
"SO": 18.0,
"HR": 4.0,
"BF": 113.0,
"Pitches": 425.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.2,
"H": 6.2,
"BB": 1.4,
"SO": 3.6,
"HR": 0.8,
"BF": 22.6,
"Pitches": 85.0
},
"rates": {
"ERA": 3.375,
"WHIP": 1.425,
"ER_per_IP": 0.375,
"H_per_IP": 1.1625,
"BB_per_IP": 0.2625,
"SO_per_IP": 0.675,
"HR_per_IP": 0.15
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 18.0,
"R": 19.0,
"H": 51.0,
"BB": 14.0,
"SO": 40.0,
"HR": 6.0,
"BF": 223.0,
"Pitches": 827.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.9,
"H": 5.1,
"BB": 1.4,
"SO": 4.0,
"HR": 0.6,
"BF": 22.3,
"Pitches": 82.7
},
"rates": {
"ERA": 2.8757,
"WHIP": 1.1538,
"ER_per_IP": 0.31953,
"H_per_IP": 0.90533,
"BB_per_IP": 0.24852,
"SO_per_IP": 0.71006,
"HR_per_IP": 0.10651
}
},
"season": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 18.0,
"R": 19.0,
"H": 51.0,
"BB": 14.0,
"SO": 40.0,
"HR": 6.0,
"BF": 223.0,
"Pitches": 827.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.9,
"H": 5.1,
"BB": 1.4,
"SO": 4.0,
"HR": 0.6,
"BF": 22.3,
"Pitches": 82.7
},
"rates": {
"ERA": 2.8757,
"WHIP": 1.1538,
"ER_per_IP": 0.31953,
"H_per_IP": 0.90533,
"BB_per_IP": 0.24852,
"SO_per_IP": 0.71006,
"HR_per_IP": 0.10651
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.217,
"predicted_H": 5.678,
"predicted_BB": 1.628,
"predicted_SO": 4.286,
"predicted_HR": 0.754,
"predicted_ERA": 3.6013,
"predicted_WHIP": 1.3184
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.217,
"final": 1.1289,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.678,
"final": 3.8728,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.628,
"final": 1.3198,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.286,
"final": 5.1273,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.754,
"final": 0.3839,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6013,
"final": 3.6013,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3184,
"final": 1.3184,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 18,
"H": 51,
"BB": 14,
"SO": 40,
"HR": 6,
"ERA": 2.8757396449704142,
"WHIP": 1.1538461538461537,
"K9": 6.390532544378698,
"HR9": 0.9585798816568047,
"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.8264468785320126,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
},
{
"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": 0,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "804267",
"player_name": "Zac Thornton",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.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": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.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": 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": 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": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 0.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": 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": 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": 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": 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": "NYM",
"games": 136,
"wins": 61,
"losses": 75,
"win_pct": 0.4485,
"runs_scored": 559.0,
"runs_allowed": 609.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3676,
"avg_runs_scored": 4.1103,
"avg_runs_allowed": 4.4779,
"offense_index": 0.9217,
"defense_index": 0.9959,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.3,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.1241
},
"opponent": {
"team": "HOU",
"games": 136,
"wins": 68,
"losses": 68,
"win_pct": 0.5,
"runs_scored": 618.0,
"runs_allowed": 664.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3382,
"avg_runs_scored": 4.5441,
"avg_runs_allowed": 4.8824,
"offense_index": 1.0189,
"defense_index": 0.9134,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.5,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.0417
},
"edges": {
"quality_edge": -0.0824,
"offense_edge": -0.0783,
"opponent_offense_edge": 0.0189,
"defense_strength": -0.0041,
"opponent_defense_weakness": 0.0866,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9958,
"run_prevention": 1.0076,
"strikeout": 0.996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "804267",
"profile": {
"available": true,
"pitcher_id": "804267",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 180.0,
"k_percent": 17.9,
"bb_percent": 6.3,
"woba": 0.293,
"xwoba": 0.325,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 38.7,
"avg_best_speed": 77.1854,
"avg_hyper_speed": 94.1596,
"whiff_percent": 19.7,
"swing_percent": 51.0
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1134,
"command_and_miss": -0.395,
"regression_edge": -0.9143,
"xwoba_edge": -0.3714,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.1286,
"whiff_edge": -0.7714,
"bb_edge": 0.725,
"pitch_design_score": -0.1325
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "804267",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 87.4931944684895,
"release_spin_rate": 2355.422462840988,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 87.4931944684895,
"release_spin_rate": 2355.422462840988,
"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.4932,
"release_spin_rate": 2355.4225,
"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.1325,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9462,
"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.1931,
"sample_weight": 0.72,
"run_prevention_factor": 1.0164,
"strikeout_factor": 0.9605,
"walk_factor": 0.9582,
"homer_factor": 1.0271,
"woba_minus_xwoba": -0.032,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "804267",
"espn_id": 5129576,
"player_name": "Zac Thornton",
"team": "NYM",
"role": "pitcher",
"espn_rank": 95,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 95,
"gp_value": 10.0,
"gp_rank": 507,
"gs_value": 10.0,
"gs_rank": 167,
"qs_value": 6.0,
"qs_rank": 84,
"era_value": 2.8757,
"era_rank": null,
"w_value": 3.0,
"w_rank": 232,
"l_value": 4.0,
"l_rank": 168,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 56.1,
"ip_rank": 232,
"h_value": 51.0,
"h_rank": 219,
"er_value": 18.0,
"er_rank": 335,
"hr_value": 6.0,
"hr_rank": 253,
"bb_value": 14.0,
"bb_rank": 376,
"k_value": 40.0,
"k_rank": 333,
"k_per_9_value": 6.3905325,
"k_per_9_rank": 38,
"whip_value": 1.1538,
"whip_rank": null,
"war_value": 1.64,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0118,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0118,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9699,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0195,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9716,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 86,
"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/20260830_HOU@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_KC@CLE | away | Seth Lugo | Seth Lugo | True | 5.1 | 3.2 | -5 | 2 | 9 | 7 | 8/9 | 2/2 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.609756097560975,
"WHIP": 1.3835920177383592,
"IP": 150.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.568,
"recent_avg_IP": 5.333,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5109,
"sample_weight": 1.0,
"run_prevention_factor": 1.0434,
"strikeout_factor": 0.9411,
"walk_factor": 0.962,
"homer_factor": 1.0678,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 7.3,
"woba": 0.341,
"xwoba": 0.344,
"barrel_percent": 7.7,
"hard_hit_percent": 43.0,
"whiff_percent": 18.8
},
"espn_rank": {
"rank": 313,
"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": "607625",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 19.0,
"R": 19.0,
"H": 32.0,
"BB": 7.0,
"SO": 20.0,
"HR": 1.0,
"BF": 117.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.1,
"ER": 3.8,
"R": 3.8,
"H": 6.4,
"BB": 1.4,
"SO": 4.0,
"HR": 0.2,
"BF": 23.4,
"Pitches": 92.0
},
"rates": {
"ERA": 6.4125,
"WHIP": 1.4625,
"ER_per_IP": 0.7125,
"H_per_IP": 1.2,
"BB_per_IP": 0.2625,
"SO_per_IP": 0.75,
"HR_per_IP": 0.0375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 32.0,
"R": 36.0,
"H": 58.0,
"BB": 17.0,
"SO": 40.0,
"HR": 4.0,
"BF": 233.0,
"Pitches": 911.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.6,
"H": 5.8,
"BB": 1.7,
"SO": 4.0,
"HR": 0.4,
"BF": 23.3,
"Pitches": 91.1
},
"rates": {
"ERA": 5.3333,
"WHIP": 1.3889,
"ER_per_IP": 0.59259,
"H_per_IP": 1.07407,
"BB_per_IP": 0.31481,
"SO_per_IP": 0.74074,
"HR_per_IP": 0.07407
}
},
"season": {
"games": 27,
"totals": {
"IP": 150.1,
"ER": 77.0,
"R": 85.0,
"H": 161.0,
"BB": 47.0,
"SO": 116.0,
"HR": 16.0,
"BF": 640.0,
"Pitches": 2427.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8519,
"R": 3.1481,
"H": 5.963,
"BB": 1.7407,
"SO": 4.2963,
"HR": 0.5926,
"BF": 23.7037,
"Pitches": 89.8889
},
"rates": {
"ERA": 4.6098,
"WHIP": 1.3836,
"ER_per_IP": 0.5122,
"H_per_IP": 1.07095,
"BB_per_IP": 0.31264,
"SO_per_IP": 0.77162,
"HR_per_IP": 0.10643
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.287,
"predicted_H": 5.959,
"predicted_BB": 1.633,
"predicted_SO": 4.207,
"predicted_HR": 0.414,
"predicted_ERA": 5.4894,
"predicted_WHIP": 1.4087
}
},
"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": 3.287,
"final": 2.7516,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.959,
"final": 6.808,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.633,
"final": 1.7857,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.207,
"final": 4.5369,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.414,
"final": 0.2418,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.4894,
"final": 5.4894,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4087,
"final": 1.4087,
"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": 32,
"H": 58,
"BB": 17,
"SO": 40,
"HR": 4,
"ERA": 5.333333333333333,
"WHIP": 1.3888888888888886,
"K9": 6.666666666666666,
"HR9": 0.6666666666666666,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 1.1088022368489092,
"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": 8.0,
"predicted_BB": 2.0,
"predicted_SO": 5.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": "607625",
"player_name": "Seth Lugo",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 137,
"wins": 62,
"losses": 75,
"win_pct": 0.4526,
"runs_scored": 589.0,
"runs_allowed": 662.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5328,
"avg_runs_scored": 4.2993,
"avg_runs_allowed": 4.8321,
"offense_index": 0.9624,
"defense_index": 0.9245,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 3.0,
"run_differential": 33.0
},
"available": true,
"quality_score": 0.0341
},
"opponent": {
"team": "CLE",
"games": 136,
"wins": 68,
"losses": 68,
"win_pct": 0.5,
"runs_scored": 546.0,
"runs_allowed": 558.0,
"run_differential": -12.0,
"run_differential_per_game": -0.0882,
"avg_runs_scored": 4.0147,
"avg_runs_allowed": 4.1029,
"offense_index": 0.8987,
"defense_index": 1.0888,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.1,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.0591
},
"edges": {
"quality_edge": -0.025,
"offense_edge": -0.0376,
"opponent_offense_edge": -0.1013,
"defense_strength": -0.0755,
"opponent_defense_weakness": -0.0888,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0008,
"run_prevention": 0.9926,
"strikeout": 1.0074
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607625",
"profile": {
"available": true,
"pitcher_id": "607625",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 614.0,
"k_percent": 18.1,
"bb_percent": 7.3,
"woba": 0.341,
"xwoba": 0.344,
"sweet_spot_percent": 36.6,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 43.0,
"avg_best_speed": 79.314,
"avg_hyper_speed": 94.5893,
"whiff_percent": 18.8,
"swing_percent": 46.1
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6418,
"command_and_miss": -0.4771,
"regression_edge": -0.0857,
"xwoba_edge": -0.9143,
"barrel_edge": -0.1333,
"hard_hit_edge": -0.7429,
"whiff_edge": -0.9,
"bb_edge": 0.475,
"pitch_design_score": -0.2355
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607625",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 85.65388563891052,
"release_spin_rate": 2512.4854293940252,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 85.65388563891052,
"release_spin_rate": 2512.4854293940252,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.6539,
"release_spin_rate": 2512.4854,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2355,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.6819,
"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.5109,
"sample_weight": 1.0,
"run_prevention_factor": 1.0434,
"strikeout_factor": 0.9411,
"walk_factor": 0.962,
"homer_factor": 1.0678,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607625",
"espn_id": 34873,
"player_name": "Seth Lugo",
"team": "KC",
"role": "pitcher",
"espn_rank": 313,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 313,
"gp_value": 27.0,
"gp_rank": 235,
"gs_value": 27.0,
"gs_rank": 10,
"qs_value": 14.0,
"qs_rank": 16,
"era_value": 4.6097,
"era_rank": 50.0,
"w_value": 6.0,
"w_rank": 98,
"l_value": 7.0,
"l_rank": 73,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 150.1,
"ip_rank": 23,
"h_value": 161.0,
"h_rank": 5,
"er_value": 77.0,
"er_rank": 9,
"hr_value": 16.0,
"hr_rank": 70,
"bb_value": 47.0,
"bb_rank": 40,
"k_value": 116.0,
"k_rank": 67,
"k_per_9_value": 6.944568,
"k_per_9_rank": 78,
"whip_value": 1.3835,
"whip_rank": 46.0,
"war_value": 0.26,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0434,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0434,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0678,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9411,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 8,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 7",
"detail": "Actual minus predicted earned runs was +7; this is the primary run-prevention error."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260830_KC@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_KC@CLE | home | Parker Messick | Parker Messick | True | 6.0 | 6.0 | 0 | 2 | 1 | -1 | 3/5 | 1/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.496774193548387,
"WHIP": 1.0129032258064516,
"IP": 155.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.962,
"recent_avg_IP": 5.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6424,
"sample_weight": 1.0,
"run_prevention_factor": 0.9454,
"strikeout_factor": 1.0246,
"walk_factor": 0.95,
"homer_factor": 0.8848,
"regression_flag": "neutral",
"k_percent": 25.5,
"bb_percent": 6.7,
"woba": 0.263,
"xwoba": 0.266,
"barrel_percent": 4.8,
"hard_hit_percent": 31.7,
"whiff_percent": 26.0
},
"espn_rank": {
"rank": 8,
"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": "800048",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 7.0,
"R": 8.0,
"H": 22.0,
"BB": 5.0,
"SO": 34.0,
"HR": 3.0,
"BF": 116.0,
"Pitches": 482.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.6,
"H": 4.4,
"BB": 1.0,
"SO": 6.8,
"HR": 0.6,
"BF": 23.2,
"Pitches": 96.4
},
"rates": {
"ERA": 2.1236,
"WHIP": 0.9101,
"ER_per_IP": 0.23596,
"H_per_IP": 0.74157,
"BB_per_IP": 0.16854,
"SO_per_IP": 1.14607,
"HR_per_IP": 0.10112
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.2,
"ER": 15.0,
"R": 17.0,
"H": 46.0,
"BB": 12.0,
"SO": 55.0,
"HR": 5.0,
"BF": 240.0,
"Pitches": 938.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5,
"R": 1.7,
"H": 4.6,
"BB": 1.2,
"SO": 5.5,
"HR": 0.5,
"BF": 24.0,
"Pitches": 93.8
},
"rates": {
"ERA": 2.2253,
"WHIP": 0.956,
"ER_per_IP": 0.24725,
"H_per_IP": 0.75824,
"BB_per_IP": 0.1978,
"SO_per_IP": 0.90659,
"HR_per_IP": 0.08242
}
},
"season": {
"games": 26,
"totals": {
"IP": 155.0,
"ER": 43.0,
"R": 47.0,
"H": 116.0,
"BB": 41.0,
"SO": 156.0,
"HR": 14.0,
"BF": 612.0,
"Pitches": 2399.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6538,
"R": 1.8077,
"H": 4.4615,
"BB": 1.5769,
"SO": 6.0,
"HR": 0.5385,
"BF": 23.5385,
"Pitches": 92.2692
},
"rates": {
"ERA": 2.4968,
"WHIP": 1.0129,
"ER_per_IP": 0.27742,
"H_per_IP": 0.74839,
"BB_per_IP": 0.26452,
"SO_per_IP": 1.00645,
"HR_per_IP": 0.09032
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.732,
"predicted_H": 4.71,
"predicted_BB": 1.353,
"predicted_SO": 6.114,
"predicted_HR": 0.606,
"predicted_ERA": 2.5979,
"predicted_WHIP": 1.0106
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.732,
"final": 1.8441,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.71,
"final": 3.995,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.353,
"final": 1.2054,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.114,
"final": 5.23,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.606,
"final": 0.7708,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5979,
"final": 2.5979,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0106,
"final": 1.0106,
"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.2,
"ER": 15,
"H": 46,
"BB": 12,
"SO": 55,
"HR": 5,
"ERA": 2.2252747252747254,
"WHIP": 0.9560439560439561,
"K9": 8.159340659340659,
"HR9": 0.7417582417582418,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-24T00:00:00"
},
"recent_form_boost": 0.7483245201211927,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800048",
"player_name": "Parker Messick",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 136,
"wins": 68,
"losses": 68,
"win_pct": 0.5,
"runs_scored": 546.0,
"runs_allowed": 558.0,
"run_differential": -12.0,
"run_differential_per_game": -0.0882,
"avg_runs_scored": 4.0147,
"avg_runs_allowed": 4.1029,
"offense_index": 0.8987,
"defense_index": 1.0888,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.1,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.0591
},
"opponent": {
"team": "KC",
"games": 137,
"wins": 62,
"losses": 75,
"win_pct": 0.4526,
"runs_scored": 589.0,
"runs_allowed": 662.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5328,
"avg_runs_scored": 4.2993,
"avg_runs_allowed": 4.8321,
"offense_index": 0.9624,
"defense_index": 0.9245,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 3.0,
"run_differential": 33.0
},
"available": true,
"quality_score": 0.0341
},
"edges": {
"quality_edge": 0.025,
"offense_edge": -0.1013,
"opponent_offense_edge": -0.0376,
"defense_strength": 0.0888,
"opponent_defense_weakness": 0.0755,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0052,
"run_prevention": 0.9839,
"strikeout": 1.0038
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800048",
"profile": {
"available": true,
"pitcher_id": "800048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 586.0,
"k_percent": 25.5,
"bb_percent": 6.7,
"woba": 0.263,
"xwoba": 0.266,
"sweet_spot_percent": 31.5,
"barrel_batted_rate": 4.8,
"hard_hit_percent": 31.7,
"avg_best_speed": 75.9066,
"avg_hyper_speed": 93.1747,
"whiff_percent": 26.0,
"swing_percent": 48.6
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.9816,
"command_and_miss": 0.3886,
"regression_edge": -0.0857,
"xwoba_edge": 1.3143,
"barrel_edge": 0.5111,
"hard_hit_edge": 0.8714,
"whiff_edge": 0.1286,
"bb_edge": 0.625,
"pitch_design_score": 0.0032
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800048",
"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": 89.91564892850265,
"release_spin_rate": 2099.092261917475,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 89.91564892850265,
"release_spin_rate": 2099.092261917475,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.9156,
"release_spin_rate": 2099.0923,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0032,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0228,
"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.6424,
"sample_weight": 1.0,
"run_prevention_factor": 0.9454,
"strikeout_factor": 1.0246,
"walk_factor": 0.95,
"homer_factor": 0.8848,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "800048",
"espn_id": 4619898,
"player_name": "Parker Messick",
"team": "CLE",
"role": "pitcher",
"espn_rank": 8,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 8,
"gp_value": 26.0,
"gp_rank": 259,
"gs_value": 26.0,
"gs_rank": 25,
"qs_value": 11.0,
"qs_rank": 38,
"era_value": 2.4967,
"era_rank": 5.0,
"w_value": 10.0,
"w_rank": 24,
"l_value": 8.0,
"l_rank": 41,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 155.0,
"ip_rank": 16,
"h_value": 116.0,
"h_rank": 75,
"er_value": 43.0,
"er_rank": 125,
"hr_value": 14.0,
"hr_rank": 91,
"bb_value": 41.0,
"bb_rank": 70,
"k_value": 156.0,
"k_rank": 19,
"k_per_9_value": 9.058065,
"k_per_9_rank": 32,
"whip_value": 1.0129,
"whip_rank": 7.0,
"war_value": 5.04,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9454,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9454,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.95,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.8848,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0246,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"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."
}
],
"provenance": {
"prediction": "output/games/20260830_KC@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_LAD@DET | away | Tyler Glasnow | Tyler Glasnow | True | 5.2 | 7.0 | 4 | 3 | 1 | -2 | 8/2 | 2/1 | 6/6 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 3.0223880597014925,
"WHIP": 0.873134328358209,
"IP": 44.2,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 5.583,
"recent_avg_IP": 5.333,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4916,
"sample_weight": 0.588,
"run_prevention_factor": 0.9582,
"strikeout_factor": 1.0548,
"walk_factor": 0.9824,
"homer_factor": 0.9664,
"regression_flag": "neutral",
"k_percent": 33.1,
"bb_percent": 7.7,
"woba": 0.237,
"xwoba": 0.246,
"barrel_percent": 7.0,
"hard_hit_percent": 38.0,
"whiff_percent": 30.4
},
"espn_rank": {
"rank": 130,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 44.2,
"season_ERA": 3.022,
"season_WHIP": 0.873,
"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.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607192",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 7.0,
"R": 7.0,
"H": 13.0,
"BB": 9.0,
"SO": 34.0,
"HR": 3.0,
"BF": 98.0,
"Pitches": 397.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 2.6,
"BB": 1.8,
"SO": 6.8,
"HR": 0.6,
"BF": 19.6,
"Pitches": 79.4
},
"rates": {
"ERA": 2.3625,
"WHIP": 0.825,
"ER_per_IP": 0.2625,
"H_per_IP": 0.4875,
"BB_per_IP": 0.3375,
"SO_per_IP": 1.275,
"HR_per_IP": 0.1125
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 44.2,
"ER": 15.0,
"R": 15.0,
"H": 26.0,
"BB": 13.0,
"SO": 56.0,
"HR": 5.0,
"BF": 169.0,
"Pitches": 688.0
},
"per_game": {
"IP": 5.2,
"ER": 1.875,
"R": 1.875,
"H": 3.25,
"BB": 1.625,
"SO": 7.0,
"HR": 0.625,
"BF": 21.125,
"Pitches": 86.0
},
"rates": {
"ERA": 3.0224,
"WHIP": 0.8731,
"ER_per_IP": 0.33582,
"H_per_IP": 0.58209,
"BB_per_IP": 0.29104,
"SO_per_IP": 1.25373,
"HR_per_IP": 0.11194
}
},
"season": {
"games": 8,
"totals": {
"IP": 44.2,
"ER": 15.0,
"R": 15.0,
"H": 26.0,
"BB": 13.0,
"SO": 56.0,
"HR": 5.0,
"BF": 169.0,
"Pitches": 688.0
},
"per_game": {
"IP": 5.2,
"ER": 1.875,
"R": 1.875,
"H": 3.25,
"BB": 1.625,
"SO": 7.0,
"HR": 0.625,
"BF": 21.125,
"Pitches": 86.0
},
"rates": {
"ERA": 3.0224,
"WHIP": 0.8731,
"ER_per_IP": 0.33582,
"H_per_IP": 0.58209,
"BB_per_IP": 0.29104,
"SO_per_IP": 1.25373,
"HR_per_IP": 0.11194
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.033,
"predicted_H": 3.83,
"predicted_BB": 1.882,
"predicted_SO": 6.31,
"predicted_HR": 0.692,
"predicted_ERA": 3.3103,
"predicted_WHIP": 1.0335
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.033,
"final": 2.5286,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 3.83,
"final": 5.9671,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.882,
"final": 1.9425,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.31,
"final": 5.6386,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.692,
"final": 0.8498,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3103,
"final": 3.3103,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0335,
"final": 1.0335,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.2,
"ER": 15,
"H": 26,
"BB": 13,
"SO": 56,
"HR": 5,
"ERA": 3.022388059701492,
"WHIP": 0.8731343283582088,
"K9": 11.283582089552237,
"HR9": 1.007462686567164,
"games_pitched": 8,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 0.8359270295520602,
"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": 8.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
},
{
"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": 8,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607192",
"player_name": "Tyler Glasnow",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"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": {
"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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 136,
"wins": 81,
"losses": 55,
"win_pct": 0.5956,
"runs_scored": 664.0,
"runs_allowed": 516.0,
"run_differential": 148.0,
"run_differential_per_game": 1.0882,
"avg_runs_scored": 4.8824,
"avg_runs_allowed": 3.7941,
"offense_index": 1.0929,
"defense_index": 1.1774,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.1,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.2502
},
"opponent": {
"team": "DET",
"games": 135,
"wins": 63,
"losses": 72,
"win_pct": 0.4667,
"runs_scored": 595.0,
"runs_allowed": 525.0,
"run_differential": 70.0,
"run_differential_per_game": 0.5185,
"avg_runs_scored": 4.4074,
"avg_runs_allowed": 3.8889,
"offense_index": 0.9866,
"defense_index": 1.1487,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.2,
"avg_runs_allowed": 3.8,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.0695
},
"edges": {
"quality_edge": 0.3197,
"offense_edge": 0.0929,
"opponent_offense_edge": -0.0134,
"defense_strength": 0.1774,
"opponent_defense_weakness": -0.1487,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0186,
"run_prevention": 0.9641,
"strikeout": 1.0107
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607192",
"profile": {
"available": true,
"pitcher_id": "607192",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 147.0,
"k_percent": 33.1,
"bb_percent": 7.7,
"woba": 0.237,
"xwoba": 0.246,
"sweet_spot_percent": 30.0,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 38.0,
"avg_best_speed": 81.4658,
"avg_hyper_speed": 93.7016,
"whiff_percent": 30.4,
"swing_percent": 44.0
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 1.048,
"command_and_miss": 1.0471,
"regression_edge": -0.2571,
"xwoba_edge": 1.8857,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.0286,
"whiff_edge": 0.7571,
"bb_edge": 0.375,
"pitch_design_score": 0.033
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607192",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.4479219166441,
"release_spin_rate": 2625.6509472387484,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.4479219166441,
"release_spin_rate": 2625.6509472387484,
"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.4479,
"release_spin_rate": 2625.6509,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.033,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2357,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.4916,
"sample_weight": 0.588,
"run_prevention_factor": 0.9582,
"strikeout_factor": 1.0548,
"walk_factor": 0.9824,
"homer_factor": 0.9664,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607192",
"espn_id": 33190,
"player_name": "Tyler Glasnow",
"team": "LAD",
"role": "pitcher",
"espn_rank": 130,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 130,
"gp_value": 8.0,
"gp_rank": 540,
"gs_value": 8.0,
"gs_rank": 180,
"qs_value": 4.0,
"qs_rank": 119,
"era_value": 3.0223,
"era_rank": null,
"w_value": 3.0,
"w_rank": 232,
"l_value": 0.0,
"l_rank": 560,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 44.2,
"ip_rank": 313,
"h_value": 26.0,
"h_rank": 434,
"er_value": 15.0,
"er_rank": 395,
"hr_value": 5.0,
"hr_rank": 296,
"bb_value": 13.0,
"bb_rank": 399,
"k_value": 56.0,
"k_rank": 231,
"k_per_9_value": 11.283582,
"k_per_9_rank": 19,
"whip_value": 0.8731,
"whip_rank": null,
"war_value": 1.29,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9754,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9754,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9897,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9802,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0322,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 115,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was -6."
},
{
"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/20260830_LAD@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_LAD@DET | home | Framber Valdez | Framber Valdez | True | 5.0 | 6.0 | 3 | 3 | 3 | 0 | 5/6 | 0/1 | 2/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.35483870967742,
"WHIP": 1.4101382488479264,
"IP": 144.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.564,
"recent_avg_IP": 6.267,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2824,
"sample_weight": 1.0,
"run_prevention_factor": 1.024,
"strikeout_factor": 0.9429,
"walk_factor": 0.992,
"homer_factor": 1.0274,
"regression_flag": "neutral",
"k_percent": 17.4,
"bb_percent": 8.8,
"woba": 0.324,
"xwoba": 0.326,
"barrel_percent": 6.1,
"hard_hit_percent": 43.6,
"whiff_percent": 19.8
},
"espn_rank": {
"rank": 193,
"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": "664285",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 13.0,
"R": 15.0,
"H": 33.0,
"BB": 15.0,
"SO": 19.0,
"HR": 2.0,
"BF": 136.0,
"Pitches": 468.0
},
"per_game": {
"IP": 6.1,
"ER": 2.6,
"R": 3.0,
"H": 6.6,
"BB": 3.0,
"SO": 3.8,
"HR": 0.4,
"BF": 27.2,
"Pitches": 93.6
},
"rates": {
"ERA": 3.734,
"WHIP": 1.5319,
"ER_per_IP": 0.41489,
"H_per_IP": 1.05319,
"BB_per_IP": 0.47872,
"SO_per_IP": 0.60638,
"HR_per_IP": 0.06383
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 31.0,
"R": 34.0,
"H": 63.0,
"BB": 22.0,
"SO": 36.0,
"HR": 5.0,
"BF": 248.0,
"Pitches": 869.0
},
"per_game": {
"IP": 5.1,
"ER": 3.1,
"R": 3.4,
"H": 6.3,
"BB": 2.2,
"SO": 3.6,
"HR": 0.5,
"BF": 24.8,
"Pitches": 86.9
},
"rates": {
"ERA": 5.0727,
"WHIP": 1.5455,
"ER_per_IP": 0.56364,
"H_per_IP": 1.14545,
"BB_per_IP": 0.4,
"SO_per_IP": 0.65455,
"HR_per_IP": 0.09091
}
},
"season": {
"games": 26,
"totals": {
"IP": 144.2,
"ER": 70.0,
"R": 78.0,
"H": 148.0,
"BB": 56.0,
"SO": 111.0,
"HR": 14.0,
"BF": 639.0,
"Pitches": 2302.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6923,
"R": 3.0,
"H": 5.6923,
"BB": 2.1538,
"SO": 4.2692,
"HR": 0.5385,
"BF": 24.5769,
"Pitches": 88.5385
},
"rates": {
"ERA": 4.3548,
"WHIP": 1.4101,
"ER_per_IP": 0.48387,
"H_per_IP": 1.02304,
"BB_per_IP": 0.3871,
"SO_per_IP": 0.76728,
"HR_per_IP": 0.09677
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.841,
"predicted_H": 6.241,
"predicted_BB": 2.482,
"predicted_SO": 4.119,
"predicted_HR": 0.532,
"predicted_ERA": 4.3532,
"predicted_WHIP": 1.4849
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.841,
"final": 2.9075,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.241,
"final": 5.7221,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.482,
"final": 1.4442,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.119,
"final": 3.2329,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.532,
"final": 0.7277,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3532,
"final": 4.3532,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4849,
"final": 1.4849,
"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": 31,
"H": 63,
"BB": 22,
"SO": 36,
"HR": 5,
"ERA": 5.072727272727272,
"WHIP": 1.5454545454545454,
"K9": 5.890909090909091,
"HR9": 0.8181818181818182,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-24T00:00:00"
},
"recent_form_boost": 1.083398196444869,
"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": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "664285",
"player_name": "Framber Valdez",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 2.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"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": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 2.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"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": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"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": 135,
"wins": 63,
"losses": 72,
"win_pct": 0.4667,
"runs_scored": 595.0,
"runs_allowed": 525.0,
"run_differential": 70.0,
"run_differential_per_game": 0.5185,
"avg_runs_scored": 4.4074,
"avg_runs_allowed": 3.8889,
"offense_index": 0.9866,
"defense_index": 1.1487,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.2,
"avg_runs_allowed": 3.8,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.0695
},
"opponent": {
"team": "LAD",
"games": 136,
"wins": 81,
"losses": 55,
"win_pct": 0.5956,
"runs_scored": 664.0,
"runs_allowed": 516.0,
"run_differential": 148.0,
"run_differential_per_game": 1.0882,
"avg_runs_scored": 4.8824,
"avg_runs_allowed": 3.7941,
"offense_index": 1.0929,
"defense_index": 1.1774,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.1,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.2502
},
"edges": {
"quality_edge": -0.3197,
"offense_edge": -0.0134,
"opponent_offense_edge": 0.0929,
"defense_strength": 0.1487,
"opponent_defense_weakness": -0.1774,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.988,
"run_prevention": 1.016,
"strikeout": 0.983
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664285",
"profile": {
"available": true,
"pitcher_id": "664285",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 611.0,
"k_percent": 17.4,
"bb_percent": 8.8,
"woba": 0.324,
"xwoba": 0.326,
"sweet_spot_percent": 29.2,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 43.6,
"avg_best_speed": 79.5674,
"avg_hyper_speed": 94.8282,
"whiff_percent": 19.8,
"swing_percent": 46.4
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.2265,
"command_and_miss": -0.5471,
"regression_edge": -0.0571,
"xwoba_edge": -0.4,
"barrel_edge": 0.2222,
"hard_hit_edge": -0.8286,
"whiff_edge": -0.7571,
"bb_edge": 0.1,
"pitch_design_score": -0.0953
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664285",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.15669735231863,
"release_spin_rate": 2286.472783096767,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.15669735231863,
"release_spin_rate": 2286.472783096767,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.1567,
"release_spin_rate": 2286.4728,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0953,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6808,
"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.2824,
"sample_weight": 1.0,
"run_prevention_factor": 1.024,
"strikeout_factor": 0.9429,
"walk_factor": 0.992,
"homer_factor": 1.0274,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "664285",
"espn_id": 36581,
"player_name": "Framber Valdez",
"team": "DET",
"role": "pitcher",
"espn_rank": 193,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 193,
"gp_value": 26.0,
"gp_rank": 259,
"gs_value": 26.0,
"gs_rank": 25,
"qs_value": 13.0,
"qs_rank": 22,
"era_value": 4.3548,
"era_rank": 44.0,
"w_value": 8.0,
"w_rank": 54,
"l_value": 9.0,
"l_rank": 23,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 144.2,
"ip_rank": 34,
"h_value": 148.0,
"h_rank": 11,
"er_value": 70.0,
"er_rank": 18,
"hr_value": 14.0,
"hr_rank": 91,
"bb_value": 56.0,
"bb_rank": 15,
"k_value": 111.0,
"k_rank": 73,
"k_per_9_value": 6.90553,
"k_per_9_rank": 57,
"whip_value": 1.4101,
"whip_rank": 48.0,
"war_value": 0.85,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.024,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.024,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 0.992,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0274,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9429,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 78,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260830_LAD@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_MIA@WAS | away | Janson Junk | Janson Junk | True | 5.0 | 4.2 | -1 | 2 | 1 | -1 | 5/4 | 3/2 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.2101694915254235,
"WHIP": 1.3016949152542374,
"IP": 98.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.123,
"recent_avg_IP": 4.733,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2165,
"sample_weight": 1.0,
"run_prevention_factor": 1.0184,
"strikeout_factor": 0.9109,
"walk_factor": 0.94,
"homer_factor": 1.0096,
"regression_flag": "neutral",
"k_percent": 16.3,
"bb_percent": 6.2,
"woba": 0.322,
"xwoba": 0.316,
"barrel_percent": 6.9,
"hard_hit_percent": 39.5,
"whiff_percent": 15.3
},
"espn_rank": {
"rank": 241,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676083",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.2,
"ER": 6.0,
"R": 7.0,
"H": 19.0,
"BB": 4.0,
"SO": 7.0,
"HR": 1.0,
"BF": 80.0,
"Pitches": 293.0
},
"per_game": {
"IP": 4.0,
"ER": 1.2,
"R": 1.4,
"H": 3.8,
"BB": 0.8,
"SO": 1.4,
"HR": 0.2,
"BF": 16.0,
"Pitches": 58.6
},
"rates": {
"ERA": 2.7458,
"WHIP": 1.1695,
"ER_per_IP": 0.30508,
"H_per_IP": 0.9661,
"BB_per_IP": 0.20339,
"SO_per_IP": 0.35593,
"HR_per_IP": 0.05085
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.1,
"ER": 15.0,
"R": 18.0,
"H": 45.0,
"BB": 13.0,
"SO": 28.0,
"HR": 4.0,
"BF": 185.0,
"Pitches": 699.0
},
"per_game": {
"IP": 4.1,
"ER": 1.5,
"R": 1.8,
"H": 4.5,
"BB": 1.3,
"SO": 2.8,
"HR": 0.4,
"BF": 18.5,
"Pitches": 69.9
},
"rates": {
"ERA": 3.1154,
"WHIP": 1.3385,
"ER_per_IP": 0.34615,
"H_per_IP": 1.03846,
"BB_per_IP": 0.3,
"SO_per_IP": 0.64615,
"HR_per_IP": 0.09231
}
},
"season": {
"games": 20,
"totals": {
"IP": 98.1,
"ER": 46.0,
"R": 51.0,
"H": 102.0,
"BB": 26.0,
"SO": 68.0,
"HR": 12.0,
"BF": 417.0,
"Pitches": 1561.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3,
"R": 2.55,
"H": 5.1,
"BB": 1.3,
"SO": 3.4,
"HR": 0.6,
"BF": 20.85,
"Pitches": 78.05
},
"rates": {
"ERA": 4.2102,
"WHIP": 1.3017,
"ER_per_IP": 0.4678,
"H_per_IP": 1.03729,
"BB_per_IP": 0.26441,
"SO_per_IP": 0.69153,
"HR_per_IP": 0.12203
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.698,
"predicted_H": 4.45,
"predicted_BB": 1.217,
"predicted_SO": 2.706,
"predicted_HR": 0.414,
"predicted_ERA": 3.4326,
"predicted_WHIP": 1.2726
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.698,
"final": 1.8292,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.45,
"final": 4.689,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.217,
"final": 1.9917,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.706,
"final": 4.1372,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.414,
"final": 0.6686,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4326,
"final": 3.4326,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2726,
"final": 1.2726,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.1,
"ER": 15,
"H": 45,
"BB": 13,
"SO": 28,
"HR": 4,
"ERA": 3.1153846153846154,
"WHIP": 1.3384615384615384,
"K9": 5.815384615384615,
"HR9": 0.8307692307692307,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 0.8580223223189948,
"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": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676083",
"player_name": "Janson Junk",
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "MIA",
"games": 136,
"wins": 68,
"losses": 68,
"win_pct": 0.5,
"runs_scored": 588.0,
"runs_allowed": 577.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0809,
"avg_runs_scored": 4.3235,
"avg_runs_allowed": 4.2426,
"offense_index": 0.966,
"defense_index": 1.0549,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 4.1,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0251
},
"opponent": {
"team": "WAS",
"games": 138,
"wins": 65,
"losses": 73,
"win_pct": 0.471,
"runs_scored": 718.0,
"runs_allowed": 698.0,
"run_differential": 20.0,
"run_differential_per_game": 0.1449,
"avg_runs_scored": 5.2029,
"avg_runs_allowed": 5.058,
"offense_index": 1.1625,
"defense_index": 0.8849,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.1,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0418
},
"edges": {
"quality_edge": 0.0167,
"offense_edge": -0.034,
"opponent_offense_edge": 0.1625,
"defense_strength": 0.0549,
"opponent_defense_weakness": 0.1151,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9958,
"run_prevention": 1.0197,
"strikeout": 0.9875
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676083",
"profile": {
"available": true,
"pitcher_id": "676083",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 372.0,
"k_percent": 16.3,
"bb_percent": 6.2,
"woba": 0.322,
"xwoba": 0.316,
"sweet_spot_percent": 29.5,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 39.5,
"avg_best_speed": 79.2547,
"avg_hyper_speed": 94.5675,
"whiff_percent": 15.3,
"swing_percent": 48.2
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.074,
"command_and_miss": -0.7129,
"regression_edge": 0.1714,
"xwoba_edge": -0.1143,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.2429,
"whiff_edge": -1.4,
"bb_edge": 0.75,
"pitch_design_score": -0.0861
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676083",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 74,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 74,
"pitch_usage": 0.0,
"release_speed": 88.32055855990507,
"release_spin_rate": 2207.610368540037,
"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": 74,
"pitch_usage": 0.0,
"release_speed": 88.32055855990507,
"release_spin_rate": 2207.610368540037,
"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.3206,
"release_spin_rate": 2207.6104,
"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.0861,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6153,
"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.2165,
"sample_weight": 1.0,
"run_prevention_factor": 1.0184,
"strikeout_factor": 0.9109,
"walk_factor": 0.94,
"homer_factor": 1.0096,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676083",
"espn_id": 4881980,
"player_name": "Janson Junk",
"team": "MIA",
"role": "pitcher",
"espn_rank": 241,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 241,
"gp_value": 20.0,
"gp_rank": 372,
"gs_value": 19.0,
"gs_rank": 98,
"qs_value": 3.0,
"qs_rank": 133,
"era_value": 4.2101,
"era_rank": null,
"w_value": 6.0,
"w_rank": 98,
"l_value": 8.0,
"l_rank": 41,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 1.0,
"hld_rank": 257,
"ip_value": 98.1,
"ip_rank": 112,
"h_value": 102.0,
"h_rank": 100,
"er_value": 46.0,
"er_rank": 108,
"hr_value": 12.0,
"hr_rank": 124,
"bb_value": 26.0,
"bb_rank": 191,
"k_value": 68.0,
"k_rank": 168,
"k_per_9_value": 6.2237287,
"k_per_9_rank": 40,
"whip_value": 1.3016,
"whip_rank": null,
"war_value": 0.55,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0184,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0184,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.94,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0096,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9109,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"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."
}
],
"provenance": {
"prediction": "output/games/20260830_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"
}
} |
| 20260830 | 20260830_MIA@WAS | home | Andrew Alvarez | Andrew Alvarez | True | 5.0 | 6.0 | 3 | 0 | 0 | 0 | 1/2 | 2/3 | 8/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7204724409448815,
"WHIP": 1.3464566929133857,
"IP": 84.2,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 4.833,
"recent_avg_IP": 5.4,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1749,
"sample_weight": 1.0,
"run_prevention_factor": 1.0149,
"strikeout_factor": 1.0074,
"walk_factor": 1.028,
"homer_factor": 1.0195,
"regression_flag": "neutral",
"k_percent": 22.3,
"bb_percent": 10.6,
"woba": 0.308,
"xwoba": 0.329,
"barrel_percent": 5.9,
"hard_hit_percent": 42.4,
"whiff_percent": 26.2
},
"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": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "674841",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 9.0,
"R": 9.0,
"H": 17.0,
"BB": 10.0,
"SO": 22.0,
"HR": 3.0,
"BF": 107.0,
"Pitches": 383.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 1.8,
"H": 3.4,
"BB": 2.0,
"SO": 4.4,
"HR": 0.6,
"BF": 21.4,
"Pitches": 76.6
},
"rates": {
"ERA": 3.0,
"WHIP": 1.0,
"ER_per_IP": 0.33333,
"H_per_IP": 0.62963,
"BB_per_IP": 0.37037,
"SO_per_IP": 0.81481,
"HR_per_IP": 0.11111
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 21.0,
"R": 21.0,
"H": 37.0,
"BB": 23.0,
"SO": 38.0,
"HR": 3.0,
"BF": 202.0,
"Pitches": 748.0
},
"per_game": {
"IP": 4.2,
"ER": 2.1,
"R": 2.1,
"H": 3.7,
"BB": 2.3,
"SO": 3.8,
"HR": 0.3,
"BF": 20.2,
"Pitches": 74.8
},
"rates": {
"ERA": 3.9375,
"WHIP": 1.25,
"ER_per_IP": 0.4375,
"H_per_IP": 0.77083,
"BB_per_IP": 0.47917,
"SO_per_IP": 0.79167,
"HR_per_IP": 0.0625
}
},
"season": {
"games": 20,
"totals": {
"IP": 84.2,
"ER": 35.0,
"R": 35.0,
"H": 76.0,
"BB": 38.0,
"SO": 80.0,
"HR": 5.0,
"BF": 359.0,
"Pitches": 1392.0
},
"per_game": {
"IP": 4.1,
"ER": 1.75,
"R": 1.75,
"H": 3.8,
"BB": 1.9,
"SO": 4.0,
"HR": 0.25,
"BF": 17.95,
"Pitches": 69.6
},
"rates": {
"ERA": 3.7205,
"WHIP": 1.3465,
"ER_per_IP": 0.41339,
"H_per_IP": 0.89764,
"BB_per_IP": 0.44882,
"SO_per_IP": 0.94488,
"HR_per_IP": 0.05906
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.01,
"predicted_H": 3.842,
"predicted_BB": 2.032,
"predicted_SO": 4.202,
"predicted_HR": 0.473,
"predicted_ERA": 3.676,
"predicted_WHIP": 1.194
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.01,
"final": 1.1367,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.842,
"final": 2.6072,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.032,
"final": 2.0181,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.202,
"final": 5.8522,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.473,
"final": 0.2675,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.676,
"final": 3.676,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.194,
"final": 1.194,
"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.0,
"ER": 21,
"H": 37,
"BB": 23,
"SO": 38,
"HR": 3,
"ERA": 3.9375,
"WHIP": 1.25,
"K9": 7.125,
"HR9": 0.5625,
"games_pitched": 10,
"quality_starts": 1,
"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.948298764626687,
"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": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "674841",
"player_name": "Andrew Alvarez",
"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": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.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": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "WAS",
"games": 138,
"wins": 65,
"losses": 73,
"win_pct": 0.471,
"runs_scored": 718.0,
"runs_allowed": 698.0,
"run_differential": 20.0,
"run_differential_per_game": 0.1449,
"avg_runs_scored": 5.2029,
"avg_runs_allowed": 5.058,
"offense_index": 1.1625,
"defense_index": 0.8849,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.1,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0418
},
"opponent": {
"team": "MIA",
"games": 136,
"wins": 68,
"losses": 68,
"win_pct": 0.5,
"runs_scored": 588.0,
"runs_allowed": 577.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0809,
"avg_runs_scored": 4.3235,
"avg_runs_allowed": 4.2426,
"offense_index": 0.966,
"defense_index": 1.0549,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 4.1,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0251
},
"edges": {
"quality_edge": -0.0167,
"offense_edge": 0.1625,
"opponent_offense_edge": -0.034,
"defense_strength": -0.1151,
"opponent_defense_weakness": -0.0549,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9972,
"run_prevention": 1.0069,
"strikeout": 1.0022
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "674841",
"profile": {
"available": true,
"pitcher_id": "674841",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 302.0,
"k_percent": 22.3,
"bb_percent": 10.6,
"woba": 0.308,
"xwoba": 0.329,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 42.4,
"avg_best_speed": 78.1601,
"avg_hyper_speed": 94.7395,
"whiff_percent": 26.2,
"swing_percent": 44.4
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1824,
"command_and_miss": -0.0021,
"regression_edge": -0.6,
"xwoba_edge": -0.4857,
"barrel_edge": 0.2667,
"hard_hit_edge": -0.6571,
"whiff_edge": 0.1571,
"bb_edge": -0.35,
"pitch_design_score": -0.1524
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "674841",
"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": 87.13661568408875,
"release_spin_rate": 2504.9833130374473,
"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": 87.13661568408875,
"release_spin_rate": 2504.9833130374473,
"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.1366,
"release_spin_rate": 2504.9833,
"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.1524,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0888,
"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.1749,
"sample_weight": 1.0,
"run_prevention_factor": 1.0149,
"strikeout_factor": 1.0074,
"walk_factor": 1.028,
"homer_factor": 1.0195,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "674841",
"espn_id": 4300668,
"player_name": "Andrew Alvarez",
"team": "WSH",
"role": "pitcher",
"espn_rank": 117,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 117,
"gp_value": 20.0,
"gp_rank": 372,
"gs_value": 12.0,
"gs_rank": 151,
"qs_value": 1.0,
"qs_rank": 174,
"era_value": 3.7204,
"era_rank": null,
"w_value": 2.0,
"w_rank": 296,
"l_value": 6.0,
"l_rank": 101,
"sv_value": 1.0,
"sv_rank": 132,
"hld_value": 2.0,
"hld_rank": 223,
"ip_value": 84.2,
"ip_rank": 140,
"h_value": 76.0,
"h_rank": 148,
"er_value": 35.0,
"er_rank": 157,
"hr_value": 5.0,
"hr_rank": 296,
"bb_value": 38.0,
"bb_rank": 82,
"k_value": 80.0,
"k_rank": 140,
"k_per_9_value": 8.503937,
"k_per_9_rank": 27,
"whip_value": 1.3464,
"whip_rank": null,
"war_value": 1.44,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0149,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0149,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.028,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0195,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0074,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260830_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"
}
} |
| 20260830 | 20260830_PHI@LAA | away | Zack Wheeler | Zack Wheeler | True | 5.1 | 6.0 | 2 | 1 | 1 | 0 | 4/4 | 3/3 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4021447721179627,
"WHIP": 1.0857908847184987,
"IP": 124.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.652,
"recent_avg_IP": 4.267,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6572,
"sample_weight": 1.0,
"run_prevention_factor": 0.9441,
"strikeout_factor": 1.076,
"walk_factor": 0.968,
"homer_factor": 0.9445,
"regression_flag": "neutral",
"k_percent": 29.7,
"bb_percent": 7.6,
"woba": 0.29,
"xwoba": 0.271,
"barrel_percent": 6.5,
"hard_hit_percent": 36.1,
"whiff_percent": 30.8
},
"espn_rank": {
"rank": 13,
"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": "554430",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 18.0,
"R": 19.0,
"H": 25.0,
"BB": 15.0,
"SO": 25.0,
"HR": 6.0,
"BF": 103.0,
"Pitches": 433.0
},
"per_game": {
"IP": 4.1,
"ER": 3.6,
"R": 3.8,
"H": 5.0,
"BB": 3.0,
"SO": 5.0,
"HR": 1.2,
"BF": 20.6,
"Pitches": 86.6
},
"rates": {
"ERA": 7.5938,
"WHIP": 1.875,
"ER_per_IP": 0.84375,
"H_per_IP": 1.17188,
"BB_per_IP": 0.70312,
"SO_per_IP": 1.17188,
"HR_per_IP": 0.28125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 30.0,
"R": 31.0,
"H": 51.0,
"BB": 19.0,
"SO": 74.0,
"HR": 11.0,
"BF": 215.0,
"Pitches": 898.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.1,
"H": 5.1,
"BB": 1.9,
"SO": 7.4,
"HR": 1.1,
"BF": 21.5,
"Pitches": 89.8
},
"rates": {
"ERA": 5.5102,
"WHIP": 1.4286,
"ER_per_IP": 0.61224,
"H_per_IP": 1.04082,
"BB_per_IP": 0.38776,
"SO_per_IP": 1.5102,
"HR_per_IP": 0.22449
}
},
"season": {
"games": 22,
"totals": {
"IP": 124.1,
"ER": 47.0,
"R": 48.0,
"H": 97.0,
"BB": 38.0,
"SO": 148.0,
"HR": 19.0,
"BF": 499.0,
"Pitches": 2047.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1364,
"R": 2.1818,
"H": 4.4091,
"BB": 1.7273,
"SO": 6.7273,
"HR": 0.8636,
"BF": 22.6818,
"Pitches": 93.0455
},
"rates": {
"ERA": 3.4021,
"WHIP": 1.0858,
"ER_per_IP": 0.37802,
"H_per_IP": 0.78016,
"BB_per_IP": 0.30563,
"SO_per_IP": 1.19035,
"HR_per_IP": 0.15282
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.143,
"predicted_H": 5.093,
"predicted_BB": 2.396,
"predicted_SO": 6.051,
"predicted_HR": 1.079,
"predicted_ERA": 5.7419,
"predicted_WHIP": 1.5205
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.143,
"final": 2.2253,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.093,
"final": 4.6249,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.396,
"final": 2.6547,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.051,
"final": 5.1727,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.079,
"final": 0.6169,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7419,
"final": 5.7419,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5205,
"final": 1.5205,
"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": 30,
"H": 51,
"BB": 19,
"SO": 74,
"HR": 11,
"ERA": 5.510204081632654,
"WHIP": 1.4285714285714288,
"K9": 13.59183673469388,
"HR9": 2.0204081632653064,
"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-24T00:00:00"
},
"recent_form_boost": 1.1296922595246466,
"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": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 4.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": 5.1,
"predicted_ER": 1,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "554430",
"player_name": "Zack Wheeler",
"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": 3.0,
"predicted_ER": 1.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": "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": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 136,
"wins": 76,
"losses": 60,
"win_pct": 0.5588,
"runs_scored": 617.0,
"runs_allowed": 590.0,
"run_differential": 27.0,
"run_differential_per_game": 0.1985,
"avg_runs_scored": 4.5368,
"avg_runs_allowed": 4.3382,
"offense_index": 1.0158,
"defense_index": 1.0295,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.6,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.1794
},
"opponent": {
"team": "LAA",
"games": 136,
"wins": 52,
"losses": 84,
"win_pct": 0.3824,
"runs_scored": 553.0,
"runs_allowed": 632.0,
"run_differential": -79.0,
"run_differential_per_game": -0.5809,
"avg_runs_scored": 4.0662,
"avg_runs_allowed": 4.6471,
"offense_index": 0.9104,
"defense_index": 0.9611,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.8,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.2765
},
"edges": {
"quality_edge": 0.4559,
"offense_edge": 0.0158,
"opponent_offense_edge": -0.0896,
"defense_strength": 0.0295,
"opponent_defense_weakness": 0.0389,
"recent_win_pct_edge": 0.6
},
"player_factors": {
"ip": 1.0227,
"run_prevention": 0.9599,
"strikeout": 1.0208
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "554430",
"profile": {
"available": true,
"pitcher_id": "554430",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 473.0,
"k_percent": 29.7,
"bb_percent": 7.6,
"woba": 0.29,
"xwoba": 0.271,
"sweet_spot_percent": 33.5,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 36.1,
"avg_best_speed": 75.3085,
"avg_hyper_speed": 93.5582,
"whiff_percent": 30.8,
"swing_percent": 49.5
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.6789,
"command_and_miss": 0.8536,
"regression_edge": 0.5429,
"xwoba_edge": 1.1714,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.2429,
"whiff_edge": 0.8143,
"bb_edge": 0.4,
"pitch_design_score": 0.0103
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "554430",
"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.04289921739226,
"release_spin_rate": 2372.877200953717,
"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.04289921739226,
"release_spin_rate": 2372.877200953717,
"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.0429,
"release_spin_rate": 2372.8772,
"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.0103,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0737,
"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.6572,
"sample_weight": 1.0,
"run_prevention_factor": 0.9441,
"strikeout_factor": 1.076,
"walk_factor": 0.968,
"homer_factor": 0.9445,
"woba_minus_xwoba": 0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "554430",
"espn_id": 31267,
"player_name": "Zack Wheeler",
"team": "PHI",
"role": "pitcher",
"espn_rank": 13,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 13,
"gp_value": 22.0,
"gp_rank": 344,
"gs_value": 22.0,
"gs_rank": 77,
"qs_value": 12.0,
"qs_rank": 29,
"era_value": 3.4021,
"era_rank": null,
"w_value": 10.0,
"w_rank": 24,
"l_value": 5.0,
"l_rank": 128,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 124.1,
"ip_rank": 76,
"h_value": 97.0,
"h_rank": 108,
"er_value": 47.0,
"er_rank": 106,
"hr_value": 19.0,
"hr_rank": 35,
"bb_value": 38.0,
"bb_rank": 82,
"k_value": 148.0,
"k_rank": 25,
"k_per_9_value": 10.713137,
"k_per_9_rank": 8,
"whip_value": 1.0857,
"whip_rank": null,
"war_value": 3.66,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9441,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9441,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 0.968,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9445,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.076,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260830_PHI@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"
}
} |
| 20260830 | 20260830_PHI@LAA | home | Yusei Kikuchi | Yusei Kikuchi | True | 4.1 | 7.0 | 8 | 5 | 2 | -3 | 6/6 | 0/1 | 5/6 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 6.25,
"WHIP": 1.5833333333333333,
"IP": 36.0,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 4.5,
"recent_avg_IP": 4.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2973,
"sample_weight": 0.568,
"run_prevention_factor": 1.0253,
"strikeout_factor": 1.0039,
"walk_factor": 0.9989,
"homer_factor": 1.0755,
"regression_flag": "neutral",
"k_percent": 22.4,
"bb_percent": 9.1,
"woba": 0.365,
"xwoba": 0.355,
"barrel_percent": 9.9,
"hard_hit_percent": 45.9,
"whiff_percent": 26.0
},
"espn_rank": {
"rank": 670,
"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.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "579328",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 14.0,
"R": 14.0,
"H": 22.0,
"BB": 9.0,
"SO": 21.0,
"HR": 4.0,
"BF": 95.0,
"Pitches": 382.0
},
"per_game": {
"IP": 4.1,
"ER": 2.8,
"R": 2.8,
"H": 4.4,
"BB": 1.8,
"SO": 4.2,
"HR": 0.8,
"BF": 19.0,
"Pitches": 76.4
},
"rates": {
"ERA": 5.9062,
"WHIP": 1.4531,
"ER_per_IP": 0.65625,
"H_per_IP": 1.03125,
"BB_per_IP": 0.42188,
"SO_per_IP": 0.98438,
"HR_per_IP": 0.1875
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 36.0,
"ER": 25.0,
"R": 25.0,
"H": 42.0,
"BB": 15.0,
"SO": 37.0,
"HR": 5.0,
"BF": 165.0,
"Pitches": 656.0
},
"per_game": {
"IP": 4.2,
"ER": 3.125,
"R": 3.125,
"H": 5.25,
"BB": 1.875,
"SO": 4.625,
"HR": 0.625,
"BF": 20.625,
"Pitches": 82.0
},
"rates": {
"ERA": 6.25,
"WHIP": 1.5833,
"ER_per_IP": 0.69444,
"H_per_IP": 1.16667,
"BB_per_IP": 0.41667,
"SO_per_IP": 1.02778,
"HR_per_IP": 0.13889
}
},
"season": {
"games": 8,
"totals": {
"IP": 36.0,
"ER": 25.0,
"R": 25.0,
"H": 42.0,
"BB": 15.0,
"SO": 37.0,
"HR": 5.0,
"BF": 165.0,
"Pitches": 656.0
},
"per_game": {
"IP": 4.2,
"ER": 3.125,
"R": 3.125,
"H": 5.25,
"BB": 1.875,
"SO": 4.625,
"HR": 0.625,
"BF": 20.625,
"Pitches": 82.0
},
"rates": {
"ERA": 6.25,
"WHIP": 1.5833,
"ER_per_IP": 0.69444,
"H_per_IP": 1.16667,
"BB_per_IP": 0.41667,
"SO_per_IP": 1.02778,
"HR_per_IP": 0.13889
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.653,
"predicted_H": 4.555,
"predicted_BB": 1.761,
"predicted_SO": 4.291,
"predicted_HR": 0.713,
"predicted_ERA": 5.4292,
"predicted_WHIP": 1.4361
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.653,
"final": 3.8558,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.555,
"final": 5.2956,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.761,
"final": 0.8585,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.291,
"final": 4.6544,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.713,
"final": 0.8601,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.4292,
"final": 5.4292,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4361,
"final": 1.4361,
"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": 36.0,
"ER": 25,
"H": 42,
"BB": 15,
"SO": 37,
"HR": 5,
"ERA": 6.25,
"WHIP": 1.5833333333333333,
"K9": 9.25,
"HR9": 1.25,
"games_pitched": 8,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 1.2167883479600203,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "579328",
"player_name": "Yusei Kikuchi",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 5.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 136,
"wins": 52,
"losses": 84,
"win_pct": 0.3824,
"runs_scored": 553.0,
"runs_allowed": 632.0,
"run_differential": -79.0,
"run_differential_per_game": -0.5809,
"avg_runs_scored": 4.0662,
"avg_runs_allowed": 4.6471,
"offense_index": 0.9104,
"defense_index": 0.9611,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.8,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.2765
},
"opponent": {
"team": "PHI",
"games": 136,
"wins": 76,
"losses": 60,
"win_pct": 0.5588,
"runs_scored": 617.0,
"runs_allowed": 590.0,
"run_differential": 27.0,
"run_differential_per_game": 0.1985,
"avg_runs_scored": 4.5368,
"avg_runs_allowed": 4.3382,
"offense_index": 1.0158,
"defense_index": 1.0295,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.6,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.1794
},
"edges": {
"quality_edge": -0.4559,
"offense_edge": -0.0896,
"opponent_offense_edge": 0.0158,
"defense_strength": -0.0389,
"opponent_defense_weakness": -0.0295,
"recent_win_pct_edge": -0.6
},
"player_factors": {
"ip": 0.98,
"run_prevention": 1.0292,
"strikeout": 0.9851
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "579328",
"profile": {
"available": true,
"pitcher_id": "579328",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 142.0,
"k_percent": 22.4,
"bb_percent": 9.1,
"woba": 0.365,
"xwoba": 0.355,
"sweet_spot_percent": 37.8,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 45.9,
"avg_best_speed": 80.3485,
"avg_hyper_speed": 95.653,
"whiff_percent": 26.0,
"swing_percent": 49.2
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -1.0137,
"command_and_miss": 0.0693,
"regression_edge": 0.2857,
"xwoba_edge": -1.2286,
"barrel_edge": -0.6222,
"hard_hit_edge": -1.1571,
"whiff_edge": 0.1286,
"bb_edge": 0.025,
"pitch_design_score": -0.0291
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "579328",
"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": 89.33948369974534,
"release_spin_rate": 2182.3887540174815,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 89.33948369974534,
"release_spin_rate": 2182.3887540174815,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.3395,
"release_spin_rate": 2182.3888,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0291,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2077,
"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.2973,
"sample_weight": 0.568,
"run_prevention_factor": 1.0253,
"strikeout_factor": 1.0039,
"walk_factor": 0.9989,
"homer_factor": 1.0755,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "579328",
"espn_id": 41415,
"player_name": "Yusei Kikuchi",
"team": "LAA",
"role": "pitcher",
"espn_rank": 670,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 670,
"gp_value": 8.0,
"gp_rank": 540,
"gs_value": 8.0,
"gs_rank": 180,
"qs_value": 1.0,
"qs_rank": 174,
"era_value": 6.25,
"era_rank": null,
"w_value": 0.0,
"w_rank": 514,
"l_value": 4.0,
"l_rank": 168,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 36.0,
"ip_rank": 373,
"h_value": 42.0,
"h_rank": 285,
"er_value": 25.0,
"er_rank": 220,
"hr_value": 5.0,
"hr_rank": 296,
"bb_value": 15.0,
"bb_rank": 363,
"k_value": 37.0,
"k_rank": 356,
"k_per_9_value": 9.25,
"k_per_9_rank": 25,
"whip_value": 1.5833,
"whip_rank": null,
"war_value": -0.23,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0144,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0144,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9994,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0429,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0022,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +8 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/20260830_PHI@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"
}
} |
| 20260830 | 20260830_PIT@STL | away | Braxton Ashcraft | Braxton Ashcraft | True | 6.1 | 5.0 | -4 | 0 | 2 | 2 | 4/6 | 0/1 | 9/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.650214592274678,
"WHIP": 1.075107296137339,
"IP": 155.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.974,
"recent_avg_IP": 6.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3323,
"sample_weight": 1.0,
"run_prevention_factor": 0.9718,
"strikeout_factor": 1.024,
"walk_factor": 0.926,
"homer_factor": 0.9878,
"regression_flag": "neutral",
"k_percent": 25.8,
"bb_percent": 5.5,
"woba": 0.29,
"xwoba": 0.287,
"barrel_percent": 6.4,
"hard_hit_percent": 41.6,
"whiff_percent": 25.6
},
"espn_rank": {
"rank": 17,
"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": "677952",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 8.0,
"R": 8.0,
"H": 18.0,
"BB": 4.0,
"SO": 26.0,
"HR": 5.0,
"BF": 116.0,
"Pitches": 407.0
},
"per_game": {
"IP": 6.2,
"ER": 1.6,
"R": 1.6,
"H": 3.6,
"BB": 0.8,
"SO": 5.2,
"HR": 1.0,
"BF": 23.2,
"Pitches": 81.4
},
"rates": {
"ERA": 2.1818,
"WHIP": 0.6667,
"ER_per_IP": 0.24242,
"H_per_IP": 0.54545,
"BB_per_IP": 0.12121,
"SO_per_IP": 0.78788,
"HR_per_IP": 0.15152
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.2,
"ER": 30.0,
"R": 31.0,
"H": 50.0,
"BB": 12.0,
"SO": 54.0,
"HR": 13.0,
"BF": 231.0,
"Pitches": 863.0
},
"per_game": {
"IP": 6.0,
"ER": 3.0,
"R": 3.1,
"H": 5.0,
"BB": 1.2,
"SO": 5.4,
"HR": 1.3,
"BF": 23.1,
"Pitches": 86.3
},
"rates": {
"ERA": 4.6023,
"WHIP": 1.0568,
"ER_per_IP": 0.51136,
"H_per_IP": 0.85227,
"BB_per_IP": 0.20455,
"SO_per_IP": 0.92045,
"HR_per_IP": 0.22159
}
},
"season": {
"games": 26,
"totals": {
"IP": 155.1,
"ER": 63.0,
"R": 68.0,
"H": 133.0,
"BB": 34.0,
"SO": 161.0,
"HR": 21.0,
"BF": 623.0,
"Pitches": 2275.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4231,
"R": 2.6154,
"H": 5.1154,
"BB": 1.3077,
"SO": 6.1923,
"HR": 0.8077,
"BF": 23.9615,
"Pitches": 87.5
},
"rates": {
"ERA": 3.6502,
"WHIP": 1.0751,
"ER_per_IP": 0.40558,
"H_per_IP": 0.85622,
"BB_per_IP": 0.21888,
"SO_per_IP": 1.03648,
"HR_per_IP": 0.13519
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.46,
"predicted_H": 4.771,
"predicted_BB": 1.274,
"predicted_SO": 5.63,
"predicted_HR": 1.062,
"predicted_ERA": 3.5111,
"predicted_WHIP": 0.9587
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.46,
"final": 1.4314,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.771,
"final": 4.4486,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.274,
"final": 0.7413,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 5.63,
"final": 7.0392,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.062,
"final": 0.6179,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5111,
"final": 3.5111,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9587,
"final": 0.9587,
"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": 30,
"H": 50,
"BB": 12,
"SO": 54,
"HR": 13,
"ERA": 4.6022727272727275,
"WHIP": 1.0568181818181819,
"K9": 8.28409090909091,
"HR9": 1.9943181818181819,
"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-24T00:00:00"
},
"recent_form_boost": 1.0182561509903234,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 9.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 0,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 9,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677952",
"player_name": "Braxton Ashcraft",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 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": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 0.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 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": "PIT",
"games": 137,
"wins": 66,
"losses": 71,
"win_pct": 0.4818,
"runs_scored": 664.0,
"runs_allowed": 639.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1825,
"avg_runs_scored": 4.8467,
"avg_runs_allowed": 4.6642,
"offense_index": 1.086,
"defense_index": 0.9569,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.6,
"avg_runs_allowed": 2.8,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.007
},
"opponent": {
"team": "STL",
"games": 137,
"wins": 68,
"losses": 69,
"win_pct": 0.4964,
"runs_scored": 606.0,
"runs_allowed": 620.0,
"run_differential": -14.0,
"run_differential_per_game": -0.1022,
"avg_runs_scored": 4.4234,
"avg_runs_allowed": 4.5255,
"offense_index": 0.9911,
"defense_index": 0.9862,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 7.2,
"run_differential": -24.0
},
"available": true,
"quality_score": -0.0857
},
"edges": {
"quality_edge": 0.0927,
"offense_edge": 0.086,
"opponent_offense_edge": -0.0089,
"defense_strength": -0.0431,
"opponent_defense_weakness": 0.0138,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0028,
"run_prevention": 0.9983,
"strikeout": 1.0035
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677952",
"profile": {
"available": true,
"pitcher_id": "677952",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 599.0,
"k_percent": 25.8,
"bb_percent": 5.5,
"woba": 0.29,
"xwoba": 0.287,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 41.6,
"avg_best_speed": 79.3625,
"avg_hyper_speed": 94.4435,
"whiff_percent": 25.6,
"swing_percent": 52.4
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3491,
"command_and_miss": 0.4479,
"regression_edge": 0.0857,
"xwoba_edge": 0.7143,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.5429,
"whiff_edge": 0.0714,
"bb_edge": 0.925,
"pitch_design_score": 0.1471
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677952",
"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": 92.48482503258485,
"release_spin_rate": 2475.2218591031974,
"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": 92.48482503258485,
"release_spin_rate": 2475.2218591031974,
"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.4848,
"release_spin_rate": 2475.2219,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1471,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0504,
"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.3323,
"sample_weight": 1.0,
"run_prevention_factor": 0.9718,
"strikeout_factor": 1.024,
"walk_factor": 0.926,
"homer_factor": 0.9878,
"woba_minus_xwoba": 0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677952",
"espn_id": 41282,
"player_name": "Braxton Ashcraft",
"team": "PIT",
"role": "pitcher",
"espn_rank": 17,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 17,
"gp_value": 26.0,
"gp_rank": 259,
"gs_value": 26.0,
"gs_rank": 25,
"qs_value": 13.0,
"qs_rank": 22,
"era_value": 3.5922,
"era_rank": 27.0,
"w_value": 13.0,
"w_rank": 8,
"l_value": 5.0,
"l_rank": 128,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 155.1,
"ip_rank": 13,
"h_value": 132.0,
"h_rank": 34,
"er_value": 62.0,
"er_rank": 42,
"hr_value": 21.0,
"hr_rank": 23,
"bb_value": 34.0,
"bb_rank": 118,
"k_value": 161.0,
"k_rank": 16,
"k_per_9_value": 9.328325,
"k_per_9_rank": 33,
"whip_value": 1.0686,
"whip_rank": 10.0,
"war_value": 3.47,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9718,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9718,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.926,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9878,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.024,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "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/20260830_PIT@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_PIT@STL | home | Matthew Liberatore | Matthew Liberatore | True | 5.0 | 5.2 | 2 | 2 | 3 | 1 | 5/6 | 1/2 | 6/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.441860465116279,
"WHIP": 1.4651162790697674,
"IP": 129.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 4.962,
"recent_avg_IP": 5.267,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3725,
"sample_weight": 1.0,
"run_prevention_factor": 1.0317,
"strikeout_factor": 0.9989,
"walk_factor": 0.976,
"homer_factor": 1.0882,
"regression_flag": "neutral",
"k_percent": 23.4,
"bb_percent": 8.0,
"woba": 0.354,
"xwoba": 0.34,
"barrel_percent": 9.2,
"hard_hit_percent": 42.5,
"whiff_percent": 23.6
},
"espn_rank": {
"rank": 810,
"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": "669461",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 18.0,
"R": 18.0,
"H": 24.0,
"BB": 5.0,
"SO": 32.0,
"HR": 4.0,
"BF": 107.0,
"Pitches": 465.0
},
"per_game": {
"IP": 5.1,
"ER": 3.6,
"R": 3.6,
"H": 4.8,
"BB": 1.0,
"SO": 6.4,
"HR": 0.8,
"BF": 21.4,
"Pitches": 93.0
},
"rates": {
"ERA": 6.1519,
"WHIP": 1.1013,
"ER_per_IP": 0.68354,
"H_per_IP": 0.91139,
"BB_per_IP": 0.18987,
"SO_per_IP": 1.21519,
"HR_per_IP": 0.1519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 30.0,
"R": 31.0,
"H": 50.0,
"BB": 16.0,
"SO": 62.0,
"HR": 6.0,
"BF": 217.0,
"Pitches": 874.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.1,
"H": 5.0,
"BB": 1.6,
"SO": 6.2,
"HR": 0.6,
"BF": 21.7,
"Pitches": 87.4
},
"rates": {
"ERA": 5.2597,
"WHIP": 1.2857,
"ER_per_IP": 0.58442,
"H_per_IP": 0.97403,
"BB_per_IP": 0.31169,
"SO_per_IP": 1.20779,
"HR_per_IP": 0.11688
}
},
"season": {
"games": 26,
"totals": {
"IP": 129.0,
"ER": 78.0,
"R": 83.0,
"H": 144.0,
"BB": 45.0,
"SO": 132.0,
"HR": 23.0,
"BF": 563.0,
"Pitches": 2200.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.1923,
"H": 5.5385,
"BB": 1.7308,
"SO": 5.0769,
"HR": 0.8846,
"BF": 21.6538,
"Pitches": 84.6154
},
"rates": {
"ERA": 5.4419,
"WHIP": 1.4651,
"ER_per_IP": 0.60465,
"H_per_IP": 1.11628,
"BB_per_IP": 0.34884,
"SO_per_IP": 1.02326,
"HR_per_IP": 0.17829
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.134,
"predicted_H": 4.994,
"predicted_BB": 1.441,
"predicted_SO": 5.825,
"predicted_HR": 0.744,
"predicted_ERA": 5.503,
"predicted_WHIP": 1.2554
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.134,
"final": 2.6598,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.994,
"final": 4.9965,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.441,
"final": 1.2566,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.825,
"final": 5.8982,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.744,
"final": 0.4329,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.503,
"final": 5.503,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2554,
"final": 1.2554,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.1,
"ER": 30,
"H": 50,
"BB": 16,
"SO": 62,
"HR": 6,
"ERA": 5.25974025974026,
"WHIP": 1.2857142857142858,
"K9": 10.87012987012987,
"HR9": 1.051948051948052,
"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-25T00:00:00"
},
"recent_form_boost": 1.0979436509903233,
"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": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669461",
"player_name": "Matthew Liberatore",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 137,
"wins": 68,
"losses": 69,
"win_pct": 0.4964,
"runs_scored": 606.0,
"runs_allowed": 620.0,
"run_differential": -14.0,
"run_differential_per_game": -0.1022,
"avg_runs_scored": 4.4234,
"avg_runs_allowed": 4.5255,
"offense_index": 0.9911,
"defense_index": 0.9862,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 7.2,
"run_differential": -24.0
},
"available": true,
"quality_score": -0.0857
},
"opponent": {
"team": "PIT",
"games": 137,
"wins": 66,
"losses": 71,
"win_pct": 0.4818,
"runs_scored": 664.0,
"runs_allowed": 639.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1825,
"avg_runs_scored": 4.8467,
"avg_runs_allowed": 4.6642,
"offense_index": 1.086,
"defense_index": 0.9569,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.6,
"avg_runs_allowed": 2.8,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.007
},
"edges": {
"quality_edge": -0.0927,
"offense_edge": -0.0089,
"opponent_offense_edge": 0.086,
"defense_strength": -0.0138,
"opponent_defense_weakness": 0.0431,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9924,
"run_prevention": 1.0198,
"strikeout": 0.9903
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669461",
"profile": {
"available": true,
"pitcher_id": "669461",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 540.0,
"k_percent": 23.4,
"bb_percent": 8.0,
"woba": 0.354,
"xwoba": 0.34,
"sweet_spot_percent": 40.7,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 42.5,
"avg_best_speed": 79.8289,
"avg_hyper_speed": 94.6356,
"whiff_percent": 23.6,
"swing_percent": 46.5
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.7605,
"command_and_miss": 0.0686,
"regression_edge": 0.4,
"xwoba_edge": -0.8,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.6714,
"whiff_edge": -0.2143,
"bb_edge": 0.3,
"pitch_design_score": -0.0548
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669461",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.88051548154917,
"release_spin_rate": 2373.4956500680873,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.88051548154917,
"release_spin_rate": 2373.4956500680873,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.8805,
"release_spin_rate": 2373.4957,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0548,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3913,
"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.3725,
"sample_weight": 1.0,
"run_prevention_factor": 1.0317,
"strikeout_factor": 0.9989,
"walk_factor": 0.976,
"homer_factor": 1.0882,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669461",
"espn_id": 41173,
"player_name": "Matthew Liberatore",
"team": "STL",
"role": "pitcher",
"espn_rank": 810,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 810,
"gp_value": 26.0,
"gp_rank": 259,
"gs_value": 26.0,
"gs_rank": 25,
"qs_value": 6.0,
"qs_rank": 84,
"era_value": 5.4418,
"era_rank": null,
"w_value": 5.0,
"w_rank": 127,
"l_value": 12.0,
"l_rank": 4,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 129.0,
"ip_rank": 64,
"h_value": 144.0,
"h_rank": 16,
"er_value": 78.0,
"er_rank": 7,
"hr_value": 23.0,
"hr_rank": 15,
"bb_value": 45.0,
"bb_rank": 47,
"k_value": 132.0,
"k_rank": 43,
"k_per_9_value": 9.209303,
"k_per_9_rank": 18,
"whip_value": 1.4651,
"whip_rank": null,
"war_value": -0.86,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0317,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0317,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.976,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0882,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9989,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 82,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260830_PIT@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_SD@TB | away | Robbie Ray | Robbie Ray | True | 5.2 | 6.0 | 1 | 1 | 1 | 0 | 4/3 | 1/3 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2097902097902096,
"WHIP": 1.3146853146853146,
"IP": 143.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.467,
"recent_avg_IP": 5.267,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2474,
"sample_weight": 1.0,
"run_prevention_factor": 1.021,
"strikeout_factor": 0.9891,
"walk_factor": 1.05,
"homer_factor": 1.0401,
"regression_flag": "neutral",
"k_percent": 20.3,
"bb_percent": 11.7,
"woba": 0.31,
"xwoba": 0.329,
"barrel_percent": 8.6,
"hard_hit_percent": 37.6,
"whiff_percent": 25.0
},
"espn_rank": {
"rank": 53,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 143.0,
"season_ERA": 3.21,
"season_WHIP": 1.315,
"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": 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": "592662",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 10.0,
"R": 10.0,
"H": 21.0,
"BB": 14.0,
"SO": 21.0,
"HR": 4.0,
"BF": 110.0,
"Pitches": 452.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0,
"H": 4.2,
"BB": 2.8,
"SO": 4.2,
"HR": 0.8,
"BF": 22.0,
"Pitches": 90.4
},
"rates": {
"ERA": 3.4177,
"WHIP": 1.3291,
"ER_per_IP": 0.37975,
"H_per_IP": 0.79747,
"BB_per_IP": 0.53165,
"SO_per_IP": 0.79747,
"HR_per_IP": 0.1519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 15.0,
"R": 18.0,
"H": 48.0,
"BB": 28.0,
"SO": 42.0,
"HR": 5.0,
"BF": 234.0,
"Pitches": 901.0
},
"per_game": {
"IP": 5.2,
"ER": 1.5,
"R": 1.8,
"H": 4.8,
"BB": 2.8,
"SO": 4.2,
"HR": 0.5,
"BF": 23.4,
"Pitches": 90.1
},
"rates": {
"ERA": 2.4398,
"WHIP": 1.3735,
"ER_per_IP": 0.27108,
"H_per_IP": 0.86747,
"BB_per_IP": 0.50602,
"SO_per_IP": 0.75904,
"HR_per_IP": 0.09036
}
},
"season": {
"games": 26,
"totals": {
"IP": 143.0,
"ER": 51.0,
"R": 59.0,
"H": 118.0,
"BB": 70.0,
"SO": 122.0,
"HR": 19.0,
"BF": 600.0,
"Pitches": 2427.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9615,
"R": 2.2692,
"H": 4.5385,
"BB": 2.6923,
"SO": 4.6923,
"HR": 0.7308,
"BF": 23.0769,
"Pitches": 93.3462
},
"rates": {
"ERA": 3.2098,
"WHIP": 1.3147,
"ER_per_IP": 0.35664,
"H_per_IP": 0.82517,
"BB_per_IP": 0.48951,
"SO_per_IP": 0.85315,
"HR_per_IP": 0.13287
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.992,
"predicted_H": 4.668,
"predicted_BB": 2.692,
"predicted_SO": 4.489,
"predicted_HR": 0.711,
"predicted_ERA": 3.2689,
"predicted_WHIP": 1.3419
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.992,
"final": 1.5772,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.668,
"final": 4.3887,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.692,
"final": 1.9845,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.489,
"final": 4.2845,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.711,
"final": 0.4137,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2689,
"final": 3.2689,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3419,
"final": 1.3419,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.1,
"ER": 15,
"H": 48,
"BB": 28,
"SO": 42,
"HR": 5,
"ERA": 2.4397590361445785,
"WHIP": 1.3734939759036147,
"K9": 6.83132530120482,
"HR9": 0.8132530120481929,
"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-24T00:00:00"
},
"recent_form_boost": 0.7828902555905425,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592662",
"player_name": "Robbie Ray",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 136,
"wins": 72,
"losses": 64,
"win_pct": 0.5294,
"runs_scored": 579.0,
"runs_allowed": 568.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0809,
"avg_runs_scored": 4.2574,
"avg_runs_allowed": 4.1765,
"offense_index": 0.953,
"defense_index": 1.0696,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.4,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.035
},
"opponent": {
"team": "TB",
"games": 135,
"wins": 81,
"losses": 54,
"win_pct": 0.6,
"runs_scored": 611.0,
"runs_allowed": 558.0,
"run_differential": 53.0,
"run_differential_per_game": 0.3926,
"avg_runs_scored": 4.5259,
"avg_runs_allowed": 4.1333,
"offense_index": 1.0131,
"defense_index": 1.0808,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.5,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.1683
},
"edges": {
"quality_edge": -0.1333,
"offense_edge": -0.047,
"opponent_offense_edge": 0.0131,
"defense_strength": 0.0696,
"opponent_defense_weakness": -0.0808,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9962,
"run_prevention": 1.0018,
"strikeout": 0.995
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592662",
"profile": {
"available": true,
"pitcher_id": "592662",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 551.0,
"k_percent": 20.3,
"bb_percent": 11.7,
"woba": 0.31,
"xwoba": 0.329,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 8.6,
"hard_hit_percent": 37.6,
"avg_best_speed": 78.4058,
"avg_hyper_speed": 93.9995,
"whiff_percent": 25.0,
"swing_percent": 47.0
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.22,
"command_and_miss": -0.2457,
"regression_edge": -0.5429,
"xwoba_edge": -0.4857,
"barrel_edge": -0.3333,
"hard_hit_edge": 0.0286,
"whiff_edge": -0.0143,
"bb_edge": -0.625,
"pitch_design_score": -0.0753
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592662",
"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": 88.51374193206205,
"release_spin_rate": 2134.8108860159628,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.51374193206205,
"release_spin_rate": 2134.8108860159628,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.5137,
"release_spin_rate": 2134.8109,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0753,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.538,
"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.2474,
"sample_weight": 1.0,
"run_prevention_factor": 1.021,
"strikeout_factor": 0.9891,
"walk_factor": 1.05,
"homer_factor": 1.0401,
"woba_minus_xwoba": -0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "592662",
"espn_id": 32175,
"player_name": "Robbie Ray",
"team": "SD",
"role": "pitcher",
"espn_rank": 53,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 53,
"gp_value": 26.0,
"gp_rank": 259,
"gs_value": 25.0,
"gs_rank": 38,
"qs_value": 10.0,
"qs_rank": 52,
"era_value": 3.2097,
"era_rank": 17.0,
"w_value": 11.0,
"w_rank": 20,
"l_value": 7.0,
"l_rank": 73,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 143.0,
"ip_rank": 38,
"h_value": 118.0,
"h_rank": 69,
"er_value": 51.0,
"er_rank": 85,
"hr_value": 19.0,
"hr_rank": 35,
"bb_value": 70.0,
"bb_rank": 1,
"k_value": 122.0,
"k_rank": 53,
"k_per_9_value": 7.6783214,
"k_per_9_rank": 37,
"whip_value": 1.3146,
"whip_rank": 43.0,
"war_value": 2.35,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.021,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.021,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.05,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0401,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9891,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"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."
},
{
"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/20260830_SD@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"
}
} |
| 20260830 | 20260830_SD@TB | home | Drew Rasmussen | Drew Rasmussen | True | 6.0 | 6.0 | 0 | 2 | 2 | 0 | 4/4 | 2/2 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9501187648456053,
"WHIP": 0.9263657957244655,
"IP": 140.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.613,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5108,
"sample_weight": 1.0,
"run_prevention_factor": 0.9566,
"strikeout_factor": 1.0217,
"walk_factor": 0.906,
"homer_factor": 0.9291,
"regression_flag": "neutral",
"k_percent": 26.0,
"bb_percent": 4.5,
"woba": 0.25,
"xwoba": 0.276,
"barrel_percent": 6.1,
"hard_hit_percent": 33.9,
"whiff_percent": 25.0
},
"espn_rank": {
"rank": 26,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 140.1,
"season_ERA": 2.95,
"season_WHIP": 0.926,
"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": 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": "656876",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 8.0,
"R": 8.0,
"H": 20.0,
"BB": 6.0,
"SO": 31.0,
"HR": 1.0,
"BF": 111.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 4.0,
"BB": 1.2,
"SO": 6.2,
"HR": 0.2,
"BF": 22.2,
"Pitches": 92.0
},
"rates": {
"ERA": 2.4828,
"WHIP": 0.8966,
"ER_per_IP": 0.27586,
"H_per_IP": 0.68966,
"BB_per_IP": 0.2069,
"SO_per_IP": 1.06897,
"HR_per_IP": 0.03448
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 21.0,
"R": 21.0,
"H": 44.0,
"BB": 10.0,
"SO": 54.0,
"HR": 4.0,
"BF": 218.0,
"Pitches": 877.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1,
"R": 2.1,
"H": 4.4,
"BB": 1.0,
"SO": 5.4,
"HR": 0.4,
"BF": 21.8,
"Pitches": 87.7
},
"rates": {
"ERA": 3.4785,
"WHIP": 0.9939,
"ER_per_IP": 0.3865,
"H_per_IP": 0.80982,
"BB_per_IP": 0.18405,
"SO_per_IP": 0.99387,
"HR_per_IP": 0.07362
}
},
"season": {
"games": 25,
"totals": {
"IP": 140.1,
"ER": 46.0,
"R": 48.0,
"H": 105.0,
"BB": 25.0,
"SO": 143.0,
"HR": 13.0,
"BF": 550.0,
"Pitches": 2184.0
},
"per_game": {
"IP": 5.2,
"ER": 1.84,
"R": 1.92,
"H": 4.2,
"BB": 1.0,
"SO": 5.72,
"HR": 0.52,
"BF": 22.0,
"Pitches": 87.36
},
"rates": {
"ERA": 2.9501,
"WHIP": 0.9264,
"ER_per_IP": 0.32779,
"H_per_IP": 0.74822,
"BB_per_IP": 0.17815,
"SO_per_IP": 1.019,
"HR_per_IP": 0.09264
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.991,
"predicted_H": 4.398,
"predicted_BB": 1.251,
"predicted_SO": 5.721,
"predicted_HR": 0.417,
"predicted_ERA": 3.1858,
"predicted_WHIP": 1.0043
}
},
"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": 2.0,
"form": 1.991,
"final": 1.9948,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.398,
"final": 4.2307,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.251,
"final": 1.5659,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.721,
"final": 5.8383,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.417,
"final": 1.0825,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1858,
"final": 3.1858,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0043,
"final": 1.0043,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 21,
"H": 44,
"BB": 10,
"SO": 54,
"HR": 4,
"ERA": 3.478527607361963,
"WHIP": 0.9938650306748466,
"K9": 8.944785276073619,
"HR9": 0.6625766871165644,
"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-24T00:00:00"
},
"recent_form_boost": 0.8902609962217791,
"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": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656876",
"player_name": "Drew Rasmussen",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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_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": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"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": 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": 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": 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": "TB",
"games": 135,
"wins": 81,
"losses": 54,
"win_pct": 0.6,
"runs_scored": 611.0,
"runs_allowed": 558.0,
"run_differential": 53.0,
"run_differential_per_game": 0.3926,
"avg_runs_scored": 4.5259,
"avg_runs_allowed": 4.1333,
"offense_index": 1.0131,
"defense_index": 1.0808,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.5,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.1683
},
"opponent": {
"team": "SD",
"games": 136,
"wins": 72,
"losses": 64,
"win_pct": 0.5294,
"runs_scored": 579.0,
"runs_allowed": 568.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0809,
"avg_runs_scored": 4.2574,
"avg_runs_allowed": 4.1765,
"offense_index": 0.953,
"defense_index": 1.0696,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.4,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.035
},
"edges": {
"quality_edge": 0.1333,
"offense_edge": 0.0131,
"opponent_offense_edge": -0.047,
"defense_strength": 0.0808,
"opponent_defense_weakness": -0.0696,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0096,
"run_prevention": 0.9777,
"strikeout": 1.0078
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656876",
"profile": {
"available": true,
"pitcher_id": "656876",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 529.0,
"k_percent": 26.0,
"bb_percent": 4.5,
"woba": 0.25,
"xwoba": 0.276,
"sweet_spot_percent": 32.8,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 33.9,
"avg_best_speed": 77.4514,
"avg_hyper_speed": 93.5122,
"whiff_percent": 25.0,
"swing_percent": 50.4
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.8011,
"command_and_miss": 0.4807,
"regression_edge": -0.7429,
"xwoba_edge": 1.0286,
"barrel_edge": 0.2222,
"hard_hit_edge": 0.5571,
"whiff_edge": -0.0143,
"bb_edge": 1.175,
"pitch_design_score": 0.1438
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656876",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 92.42635744843004,
"release_spin_rate": 2377.5376841860666,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 92.42635744843004,
"release_spin_rate": 2377.5376841860666,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.4264,
"release_spin_rate": 2377.5377,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1438,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0271,
"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.5108,
"sample_weight": 1.0,
"run_prevention_factor": 0.9566,
"strikeout_factor": 1.0217,
"walk_factor": 0.906,
"homer_factor": 0.9291,
"woba_minus_xwoba": -0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656876",
"espn_id": 42584,
"player_name": "Drew Rasmussen",
"team": "TB",
"role": "pitcher",
"espn_rank": 26,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 26,
"gp_value": 25.0,
"gp_rank": 288,
"gs_value": 25.0,
"gs_rank": 38,
"qs_value": 14.0,
"qs_rank": 16,
"era_value": 2.9501,
"era_rank": 11.0,
"w_value": 14.0,
"w_rank": 4,
"l_value": 5.0,
"l_rank": 128,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 140.1,
"ip_rank": 45,
"h_value": 105.0,
"h_rank": 93,
"er_value": 46.0,
"er_rank": 108,
"hr_value": 13.0,
"hr_rank": 111,
"bb_value": 25.0,
"bb_rank": 199,
"k_value": 143.0,
"k_rank": 28,
"k_per_9_value": 9.171021,
"k_per_9_rank": 16,
"whip_value": 0.9263,
"whip_rank": 3.0,
"war_value": 3.14,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9566,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9566,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.906,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9291,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0217,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 25,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260830_SD@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"
}
} |
| 20260830 | 20260830_SEA@TOR | away | Logan Gilbert | Logan Gilbert | True | 6.0 | 5.0 | -3 | 1 | 3 | 2 | 3/6 | 1/1 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.360515021459227,
"WHIP": 1.0236051502145922,
"IP": 155.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.974,
"recent_avg_IP": 5.933,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1674,
"sample_weight": 1.0,
"run_prevention_factor": 0.9858,
"strikeout_factor": 1.0503,
"walk_factor": 0.942,
"homer_factor": 1.0607,
"regression_flag": "neutral",
"k_percent": 26.3,
"bb_percent": 6.3,
"woba": 0.284,
"xwoba": 0.298,
"barrel_percent": 10.0,
"hard_hit_percent": 41.5,
"whiff_percent": 29.7
},
"espn_rank": {
"rank": 24,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "669302",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 10.0,
"R": 10.0,
"H": 22.0,
"BB": 12.0,
"SO": 29.0,
"HR": 6.0,
"BF": 120.0,
"Pitches": 488.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 4.4,
"BB": 2.4,
"SO": 5.8,
"HR": 1.2,
"BF": 24.0,
"Pitches": 97.6
},
"rates": {
"ERA": 3.0337,
"WHIP": 1.1461,
"ER_per_IP": 0.33708,
"H_per_IP": 0.74157,
"BB_per_IP": 0.40449,
"SO_per_IP": 0.97753,
"HR_per_IP": 0.20225
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.1,
"ER": 24.0,
"R": 24.0,
"H": 48.0,
"BB": 17.0,
"SO": 62.0,
"HR": 7.0,
"BF": 248.0,
"Pitches": 966.0
},
"per_game": {
"IP": 6.1,
"ER": 2.4,
"R": 2.4,
"H": 4.8,
"BB": 1.7,
"SO": 6.2,
"HR": 0.7,
"BF": 24.8,
"Pitches": 96.6
},
"rates": {
"ERA": 3.4652,
"WHIP": 1.0428,
"ER_per_IP": 0.38503,
"H_per_IP": 0.77005,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.99465,
"HR_per_IP": 0.1123
}
},
"season": {
"games": 26,
"totals": {
"IP": 155.1,
"ER": 58.0,
"R": 58.0,
"H": 120.0,
"BB": 39.0,
"SO": 162.0,
"HR": 21.0,
"BF": 616.0,
"Pitches": 2459.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2308,
"R": 2.2308,
"H": 4.6154,
"BB": 1.5,
"SO": 6.2308,
"HR": 0.8077,
"BF": 23.6923,
"Pitches": 94.5769
},
"rates": {
"ERA": 3.3605,
"WHIP": 1.0236,
"ER_per_IP": 0.37339,
"H_per_IP": 0.77253,
"BB_per_IP": 0.25107,
"SO_per_IP": 1.04292,
"HR_per_IP": 0.13519
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.338,
"predicted_H": 4.833,
"predicted_BB": 2.039,
"predicted_SO": 6.021,
"predicted_HR": 0.948,
"predicted_ERA": 3.4502,
"predicted_WHIP": 1.1269
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.338,
"final": 1.7785,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.833,
"final": 4.0665,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.039,
"final": 1.6045,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.021,
"final": 5.5941,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.948,
"final": 0.5516,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4502,
"final": 3.4502,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1269,
"final": 1.1269,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.1,
"ER": 24,
"H": 48,
"BB": 17,
"SO": 62,
"HR": 7,
"ERA": 3.46524064171123,
"WHIP": 1.0427807486631016,
"K9": 8.95187165775401,
"HR9": 1.0106951871657754,
"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-24T00:00:00"
},
"recent_form_boost": 0.889989105535778,
"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": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "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": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669302",
"player_name": "Logan Gilbert",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 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.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": 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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.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": 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.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 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": "SEA",
"games": 136,
"wins": 64,
"losses": 72,
"win_pct": 0.4706,
"runs_scored": 530.0,
"runs_allowed": 595.0,
"run_differential": -65.0,
"run_differential_per_game": -0.4779,
"avg_runs_scored": 3.8971,
"avg_runs_allowed": 4.375,
"offense_index": 0.8724,
"defense_index": 1.0211,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 6.1,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.0838
},
"opponent": {
"team": "TOR",
"games": 137,
"wins": 67,
"losses": 70,
"win_pct": 0.4891,
"runs_scored": 541.0,
"runs_allowed": 598.0,
"run_differential": -57.0,
"run_differential_per_game": -0.4161,
"avg_runs_scored": 3.9489,
"avg_runs_allowed": 4.365,
"offense_index": 0.884,
"defense_index": 1.0234,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.4,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0605
},
"edges": {
"quality_edge": -0.0233,
"offense_edge": -0.1276,
"opponent_offense_edge": -0.116,
"defense_strength": 0.0211,
"opponent_defense_weakness": -0.0234,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0043,
"run_prevention": 0.9805,
"strikeout": 1.0086
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669302",
"profile": {
"available": true,
"pitcher_id": "669302",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 590.0,
"k_percent": 26.3,
"bb_percent": 6.3,
"woba": 0.284,
"xwoba": 0.298,
"sweet_spot_percent": 37.1,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 41.5,
"avg_best_speed": 79.2177,
"avg_hyper_speed": 94.4277,
"whiff_percent": 29.7,
"swing_percent": 50.1
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0734,
"command_and_miss": 0.645,
"regression_edge": -0.4,
"xwoba_edge": 0.4,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.5286,
"whiff_edge": 0.6571,
"bb_edge": 0.725,
"pitch_design_score": -0.0172
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669302",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 89.55212588420072,
"release_spin_rate": 1933.4323936506946,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 89.55212588420072,
"release_spin_rate": 1933.4323936506946,
"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.5521,
"release_spin_rate": 1933.4324,
"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.0172,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1226,
"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.1674,
"sample_weight": 1.0,
"run_prevention_factor": 0.9858,
"strikeout_factor": 1.0503,
"walk_factor": 0.942,
"homer_factor": 1.0607,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669302",
"espn_id": 41221,
"player_name": "Logan Gilbert",
"team": "SEA",
"role": "pitcher",
"espn_rank": 24,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 24,
"gp_value": 26.0,
"gp_rank": 259,
"gs_value": 26.0,
"gs_rank": 25,
"qs_value": 12.0,
"qs_rank": 29,
"era_value": 3.3605,
"era_rank": 22.0,
"w_value": 11.0,
"w_rank": 20,
"l_value": 7.0,
"l_rank": 73,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 155.1,
"ip_rank": 13,
"h_value": 120.0,
"h_rank": 65,
"er_value": 58.0,
"er_rank": 59,
"hr_value": 21.0,
"hr_rank": 23,
"bb_value": 39.0,
"bb_rank": 75,
"k_value": 162.0,
"k_rank": 15,
"k_per_9_value": 9.386266,
"k_per_9_rank": 31,
"whip_value": 1.0236,
"whip_rank": 8.0,
"war_value": 3.31,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9858,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9858,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.942,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0607,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0503,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"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/20260830_SEA@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_SEA@TOR | home | Max Scherzer | Max Scherzer | True | 4.2 | 7.0 | 7 | 4 | 0 | -4 | 7/1 | 2/1 | 4/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 7.02,
"WHIP": 1.54,
"IP": 50.0,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 4.167,
"recent_avg_IP": 5.067,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3485,
"sample_weight": 0.804,
"run_prevention_factor": 1.0296,
"strikeout_factor": 0.9417,
"walk_factor": 1.0306,
"homer_factor": 1.025,
"regression_flag": "neutral",
"k_percent": 16.0,
"bb_percent": 11.1,
"woba": 0.362,
"xwoba": 0.336,
"barrel_percent": 9.2,
"hard_hit_percent": 33.1,
"whiff_percent": 18.5
},
"espn_rank": {
"rank": 796,
"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": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "453286",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 13.0,
"R": 13.0,
"H": 21.0,
"BB": 11.0,
"SO": 18.0,
"HR": 3.0,
"BF": 108.0,
"Pitches": 425.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.6,
"H": 4.2,
"BB": 2.2,
"SO": 3.6,
"HR": 0.6,
"BF": 21.6,
"Pitches": 85.0
},
"rates": {
"ERA": 4.6184,
"WHIP": 1.2632,
"ER_per_IP": 0.51316,
"H_per_IP": 0.82895,
"BB_per_IP": 0.43421,
"SO_per_IP": 0.71053,
"HR_per_IP": 0.11842
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 42.0,
"ER": 36.0,
"R": 36.0,
"H": 46.0,
"BB": 23.0,
"SO": 30.0,
"HR": 10.0,
"BF": 194.0,
"Pitches": 806.0
},
"per_game": {
"IP": 4.1,
"ER": 3.6,
"R": 3.6,
"H": 4.6,
"BB": 2.3,
"SO": 3.0,
"HR": 1.0,
"BF": 19.4,
"Pitches": 80.6
},
"rates": {
"ERA": 7.7143,
"WHIP": 1.6429,
"ER_per_IP": 0.85714,
"H_per_IP": 1.09524,
"BB_per_IP": 0.54762,
"SO_per_IP": 0.71429,
"HR_per_IP": 0.2381
}
},
"season": {
"games": 12,
"totals": {
"IP": 50.0,
"ER": 39.0,
"R": 39.0,
"H": 52.0,
"BB": 25.0,
"SO": 36.0,
"HR": 12.0,
"BF": 225.0,
"Pitches": 925.0
},
"per_game": {
"IP": 4.0,
"ER": 3.25,
"R": 3.25,
"H": 4.3333,
"BB": 2.0833,
"SO": 3.0,
"HR": 1.0,
"BF": 18.75,
"Pitches": 77.0833
},
"rates": {
"ERA": 7.02,
"WHIP": 1.54,
"ER_per_IP": 0.78,
"H_per_IP": 1.04,
"BB_per_IP": 0.5,
"SO_per_IP": 0.72,
"HR_per_IP": 0.24
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.903,
"predicted_H": 4.445,
"predicted_BB": 2.079,
"predicted_SO": 3.585,
"predicted_HR": 0.796,
"predicted_ERA": 5.6849,
"predicted_WHIP": 1.4194
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4743,
"form_weight": 0.5257,
"form_reliability": 0.7059,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.903,
"final": 3.4233,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.445,
"final": 5.6567,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.079,
"final": 2.0415,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.585,
"final": 3.7818,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.796,
"final": 0.8927,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.6849,
"final": 5.6849,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4194,
"final": 1.4194,
"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": 42.0,
"ER": 36,
"H": 46,
"BB": 23,
"SO": 30,
"HR": 10,
"ERA": 7.714285714285714,
"WHIP": 1.6428571428571428,
"K9": 6.428571428571429,
"HR9": 2.142857142857143,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-25T00:00:00"
},
"recent_form_boost": 1.3830085860552583,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "453286",
"player_name": "Max Scherzer",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 137,
"wins": 67,
"losses": 70,
"win_pct": 0.4891,
"runs_scored": 541.0,
"runs_allowed": 598.0,
"run_differential": -57.0,
"run_differential_per_game": -0.4161,
"avg_runs_scored": 3.9489,
"avg_runs_allowed": 4.365,
"offense_index": 0.884,
"defense_index": 1.0234,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.4,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0605
},
"opponent": {
"team": "SEA",
"games": 136,
"wins": 64,
"losses": 72,
"win_pct": 0.4706,
"runs_scored": 530.0,
"runs_allowed": 595.0,
"run_differential": -65.0,
"run_differential_per_game": -0.4779,
"avg_runs_scored": 3.8971,
"avg_runs_allowed": 4.375,
"offense_index": 0.8724,
"defense_index": 1.0211,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 6.1,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.0838
},
"edges": {
"quality_edge": 0.0233,
"offense_edge": -0.116,
"opponent_offense_edge": -0.1276,
"defense_strength": 0.0234,
"opponent_defense_weakness": -0.0211,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0067,
"run_prevention": 0.9761,
"strikeout": 1.0109
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "453286",
"profile": {
"available": true,
"pitcher_id": "453286",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 201.0,
"k_percent": 16.0,
"bb_percent": 11.1,
"woba": 0.362,
"xwoba": 0.336,
"sweet_spot_percent": 35.6,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 33.1,
"avg_best_speed": 76.8987,
"avg_hyper_speed": 93.339,
"whiff_percent": 18.5,
"swing_percent": 49.7
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.5097,
"command_and_miss": -0.8171,
"regression_edge": 0.7429,
"xwoba_edge": -0.6857,
"barrel_edge": -0.4667,
"hard_hit_edge": 0.6714,
"whiff_edge": -0.9429,
"bb_edge": -0.475,
"pitch_design_score": -0.1224
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "453286",
"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": 87.67251054611137,
"release_spin_rate": 2262.3263033136295,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 87.67251054611137,
"release_spin_rate": 2262.3263033136295,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.6725,
"release_spin_rate": 2262.3263,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1224,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.8745,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3485,
"sample_weight": 0.804,
"run_prevention_factor": 1.0296,
"strikeout_factor": 0.9417,
"walk_factor": 1.0306,
"homer_factor": 1.025,
"woba_minus_xwoba": 0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "453286",
"espn_id": 28976,
"player_name": "Max Scherzer",
"team": "TOR",
"role": "pitcher",
"espn_rank": 796,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 796,
"gp_value": 12.0,
"gp_rank": 483,
"gs_value": 12.0,
"gs_rank": 151,
"qs_value": 3.0,
"qs_rank": 133,
"era_value": 7.02,
"era_rank": null,
"w_value": 1.0,
"w_rank": 395,
"l_value": 7.0,
"l_rank": 73,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 50.0,
"ip_rank": 280,
"h_value": 52.0,
"h_rank": 214,
"er_value": 39.0,
"er_rank": 142,
"hr_value": 12.0,
"hr_rank": 124,
"bb_value": 25.0,
"bb_rank": 199,
"k_value": 36.0,
"k_rank": 359,
"k_per_9_value": 6.48,
"k_per_9_rank": 34,
"whip_value": 1.54,
"whip_rank": null,
"war_value": -0.75,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0238,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0238,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0246,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0201,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9531,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +7 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was -6."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260830_SEA@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_TEX@MIL | away | Kumar Rocker | Kumar Rocker | True | 5.0 | 3.0 | -6 | 3 | 2 | -1 | 5/4 | 2/4 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.405263157894737,
"WHIP": 1.3973684210526316,
"IP": 126.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 4.957,
"recent_avg_IP": 4.8,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1709,
"sample_weight": 1.0,
"run_prevention_factor": 1.0145,
"strikeout_factor": 1.0006,
"walk_factor": 1.0,
"homer_factor": 1.0383,
"regression_flag": "neutral",
"k_percent": 21.2,
"bb_percent": 9.2,
"woba": 0.33,
"xwoba": 0.329,
"barrel_percent": 7.6,
"hard_hit_percent": 40.4,
"whiff_percent": 26.1
},
"espn_rank": {
"rank": 184,
"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": "677958",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.0,
"ER": 16.0,
"R": 16.0,
"H": 32.0,
"BB": 13.0,
"SO": 24.0,
"HR": 5.0,
"BF": 117.0,
"Pitches": 436.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 3.2,
"H": 6.4,
"BB": 2.6,
"SO": 4.8,
"HR": 1.0,
"BF": 23.4,
"Pitches": 87.2
},
"rates": {
"ERA": 6.0,
"WHIP": 1.875,
"ER_per_IP": 0.66667,
"H_per_IP": 1.33333,
"BB_per_IP": 0.54167,
"SO_per_IP": 1.0,
"HR_per_IP": 0.20833
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 28.0,
"R": 28.0,
"H": 54.0,
"BB": 21.0,
"SO": 52.0,
"HR": 10.0,
"BF": 232.0,
"Pitches": 867.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 2.8,
"H": 5.4,
"BB": 2.1,
"SO": 5.2,
"HR": 1.0,
"BF": 23.2,
"Pitches": 86.7
},
"rates": {
"ERA": 4.7848,
"WHIP": 1.4241,
"ER_per_IP": 0.53165,
"H_per_IP": 1.02532,
"BB_per_IP": 0.39873,
"SO_per_IP": 0.98734,
"HR_per_IP": 0.18987
}
},
"season": {
"games": 25,
"totals": {
"IP": 126.2,
"ER": 62.0,
"R": 63.0,
"H": 126.0,
"BB": 51.0,
"SO": 117.0,
"HR": 18.0,
"BF": 553.0,
"Pitches": 2122.0
},
"per_game": {
"IP": 5.0,
"ER": 2.48,
"R": 2.52,
"H": 5.04,
"BB": 2.04,
"SO": 4.68,
"HR": 0.72,
"BF": 22.12,
"Pitches": 84.88
},
"rates": {
"ERA": 4.4053,
"WHIP": 1.3974,
"ER_per_IP": 0.48947,
"H_per_IP": 0.99474,
"BB_per_IP": 0.40263,
"SO_per_IP": 0.92368,
"HR_per_IP": 0.14211
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.833,
"predicted_H": 5.604,
"predicted_BB": 2.228,
"predicted_SO": 4.84,
"predicted_HR": 0.903,
"predicted_ERA": 5.1282,
"predicted_WHIP": 1.5751
}
},
"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": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.833,
"final": 2.9032,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.604,
"final": 5.3501,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.228,
"final": 2.1321,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.84,
"final": 4.9073,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.903,
"final": 1.3642,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1282,
"final": 5.1282,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5751,
"final": 1.5751,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.2,
"ER": 28,
"H": 54,
"BB": 21,
"SO": 52,
"HR": 10,
"ERA": 4.784810126582278,
"WHIP": 1.4240506329113922,
"K9": 8.886075949367088,
"HR9": 1.7088607594936707,
"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-24T00:00:00"
},
"recent_form_boost": 1.047972419689978,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 2.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": "677958",
"player_name": "Kumar Rocker",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.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": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.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": 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": "TEX",
"games": 136,
"wins": 66,
"losses": 70,
"win_pct": 0.4853,
"runs_scored": 547.0,
"runs_allowed": 601.0,
"run_differential": -54.0,
"run_differential_per_game": -0.3971,
"avg_runs_scored": 4.0221,
"avg_runs_allowed": 4.4191,
"offense_index": 0.9012,
"defense_index": 1.0099,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.7,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.0964
},
"opponent": {
"team": "MIL",
"games": 136,
"wins": 85,
"losses": 51,
"win_pct": 0.625,
"runs_scored": 679.0,
"runs_allowed": 499.0,
"run_differential": 180.0,
"run_differential_per_game": 1.3235,
"avg_runs_scored": 4.9926,
"avg_runs_allowed": 3.6691,
"offense_index": 1.1187,
"defense_index": 1.2164,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 2.7,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.3393
},
"edges": {
"quality_edge": -0.4357,
"offense_edge": -0.0988,
"opponent_offense_edge": 0.1187,
"defense_strength": 0.0099,
"opponent_defense_weakness": -0.2164,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9781,
"run_prevention": 1.0398,
"strikeout": 0.9774
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677958",
"profile": {
"available": true,
"pitcher_id": "677958",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 527.0,
"k_percent": 21.2,
"bb_percent": 9.2,
"woba": 0.33,
"xwoba": 0.329,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 40.4,
"avg_best_speed": 77.9327,
"avg_hyper_speed": 94.4142,
"whiff_percent": 26.1,
"swing_percent": 47.8
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.3013,
"command_and_miss": -0.0079,
"regression_edge": 0.0286,
"xwoba_edge": -0.4857,
"barrel_edge": -0.1111,
"hard_hit_edge": -0.3714,
"whiff_edge": 0.1429,
"bb_edge": 0.0,
"pitch_design_score": -0.038
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677958",
"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.18085451032329,
"release_spin_rate": 2133.619480737421,
"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.18085451032329,
"release_spin_rate": 2133.619480737421,
"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.1809,
"release_spin_rate": 2133.6195,
"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.038,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2712,
"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.1709,
"sample_weight": 1.0,
"run_prevention_factor": 1.0145,
"strikeout_factor": 1.0006,
"walk_factor": 1.0,
"homer_factor": 1.0383,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677958",
"espn_id": 4414525,
"player_name": "Kumar Rocker",
"team": "TEX",
"role": "pitcher",
"espn_rank": 184,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 184,
"gp_value": 25.0,
"gp_rank": 288,
"gs_value": 23.0,
"gs_rank": 68,
"qs_value": 6.0,
"qs_rank": 84,
"era_value": 4.4052,
"era_rank": null,
"w_value": 5.0,
"w_rank": 127,
"l_value": 10.0,
"l_rank": 13,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 126.2,
"ip_rank": 68,
"h_value": 126.0,
"h_rank": 50,
"er_value": 62.0,
"er_rank": 42,
"hr_value": 18.0,
"hr_rank": 43,
"bb_value": 51.0,
"bb_rank": 24,
"k_value": 117.0,
"k_rank": 63,
"k_per_9_value": 8.313158,
"k_per_9_rank": 25,
"whip_value": 1.3973,
"whip_rank": null,
"war_value": 0.92,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0145,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0145,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0383,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0006,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260830_TEX@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260830 | 20260830_TEX@MIL | home | Dustin May | Dustin May | True | 4.2 | 4.1 | -1 | 3 | 4 | 1 | 2/6 | 3/3 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.560321715817695,
"WHIP": 1.2949061662198391,
"IP": 124.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 4.973,
"recent_avg_IP": 4.067,
"last_start_IP": 0.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1072,
"sample_weight": 1.0,
"run_prevention_factor": 1.0091,
"strikeout_factor": 0.9863,
"walk_factor": 0.976,
"homer_factor": 1.0387,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 8.0,
"woba": 0.309,
"xwoba": 0.316,
"barrel_percent": 6.8,
"hard_hit_percent": 44.9,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 264,
"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": "669160",
"report_date": "20260830",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.1,
"ER": 10.0,
"R": 10.0,
"H": 15.0,
"BB": 9.0,
"SO": 15.0,
"HR": 2.0,
"BF": 83.0,
"Pitches": 317.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 1.8,
"SO": 3.0,
"HR": 0.4,
"BF": 16.6,
"Pitches": 63.4
},
"rates": {
"ERA": 4.4262,
"WHIP": 1.1803,
"ER_per_IP": 0.4918,
"H_per_IP": 0.7377,
"BB_per_IP": 0.44262,
"SO_per_IP": 0.7377,
"HR_per_IP": 0.09836
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 40.2,
"ER": 23.0,
"R": 23.0,
"H": 41.0,
"BB": 20.0,
"SO": 41.0,
"HR": 2.0,
"BF": 182.0,
"Pitches": 703.0
},
"per_game": {
"IP": 4.0,
"ER": 2.3,
"R": 2.3,
"H": 4.1,
"BB": 2.0,
"SO": 4.1,
"HR": 0.2,
"BF": 18.2,
"Pitches": 70.3
},
"rates": {
"ERA": 5.0902,
"WHIP": 1.5,
"ER_per_IP": 0.56557,
"H_per_IP": 1.0082,
"BB_per_IP": 0.4918,
"SO_per_IP": 1.0082,
"HR_per_IP": 0.04918
}
},
"season": {
"games": 25,
"totals": {
"IP": 124.1,
"ER": 63.0,
"R": 66.0,
"H": 119.0,
"BB": 42.0,
"SO": 118.0,
"HR": 9.0,
"BF": 524.0,
"Pitches": 1998.0
},
"per_game": {
"IP": 5.0,
"ER": 2.52,
"R": 2.64,
"H": 4.76,
"BB": 1.68,
"SO": 4.72,
"HR": 0.36,
"BF": 20.96,
"Pitches": 79.92
},
"rates": {
"ERA": 4.5603,
"WHIP": 1.2949,
"ER_per_IP": 0.5067,
"H_per_IP": 0.9571,
"BB_per_IP": 0.3378,
"SO_per_IP": 0.94906,
"HR_per_IP": 0.07239
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.212,
"predicted_H": 3.818,
"predicted_BB": 1.827,
"predicted_SO": 3.788,
"predicted_HR": 0.375,
"predicted_ERA": 4.653,
"predicted_WHIP": 1.3197
}
},
"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": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.212,
"final": 2.5433,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.818,
"final": 3.0537,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.827,
"final": 2.3202,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.788,
"final": 3.8771,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.375,
"final": 0.6378,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.653,
"final": 4.653,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3197,
"final": 1.3197,
"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": 40.2,
"ER": 23,
"H": 41,
"BB": 20,
"SO": 41,
"HR": 2,
"ERA": 5.09016393442623,
"WHIP": 1.5,
"K9": 9.073770491803279,
"HR9": 0.4426229508196722,
"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-26T00:00:00"
},
"recent_form_boost": 1.0842234572496379,
"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": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 4.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": "669160",
"player_name": "Dustin May",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 136,
"wins": 85,
"losses": 51,
"win_pct": 0.625,
"runs_scored": 679.0,
"runs_allowed": 499.0,
"run_differential": 180.0,
"run_differential_per_game": 1.3235,
"avg_runs_scored": 4.9926,
"avg_runs_allowed": 3.6691,
"offense_index": 1.1187,
"defense_index": 1.2164,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 2.7,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.3393
},
"opponent": {
"team": "TEX",
"games": 136,
"wins": 66,
"losses": 70,
"win_pct": 0.4853,
"runs_scored": 547.0,
"runs_allowed": 601.0,
"run_differential": -54.0,
"run_differential_per_game": -0.3971,
"avg_runs_scored": 4.0221,
"avg_runs_allowed": 4.4191,
"offense_index": 0.9012,
"defense_index": 1.0099,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.7,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.0964
},
"edges": {
"quality_edge": 0.4357,
"offense_edge": 0.1187,
"opponent_offense_edge": -0.0988,
"defense_strength": 0.2164,
"opponent_defense_weakness": -0.0099,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0279,
"run_prevention": 0.9408,
"strikeout": 1.021
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669160",
"profile": {
"available": true,
"pitcher_id": "669160",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 520.0,
"k_percent": 22.5,
"bb_percent": 8.0,
"woba": 0.309,
"xwoba": 0.316,
"sweet_spot_percent": 35.6,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 44.9,
"avg_best_speed": 78.9675,
"avg_hyper_speed": 94.6291,
"whiff_percent": 22.3,
"swing_percent": 47.1
},
"league_medians": {
"pa": 120.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8989,
"whiff_percent": 25.1,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1518,
"command_and_miss": -0.0543,
"regression_edge": -0.2,
"xwoba_edge": -0.1143,
"barrel_edge": 0.0667,
"hard_hit_edge": -1.0143,
"whiff_edge": -0.4,
"bb_edge": 0.3,
"pitch_design_score": 0.1488
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669160",
"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": 92.51580093046432,
"release_spin_rate": 2533.5004535710195,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 92.51580093046432,
"release_spin_rate": 2533.5004535710195,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.5158,
"release_spin_rate": 2533.5005,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1488,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0628,
"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.1072,
"sample_weight": 1.0,
"run_prevention_factor": 1.0091,
"strikeout_factor": 0.9863,
"walk_factor": 0.976,
"homer_factor": 1.0387,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669160",
"espn_id": 40937,
"player_name": "Dustin May",
"team": "MIL",
"role": "pitcher",
"espn_rank": 264,
"espn_total_ranked": 840,
"metrics": {
"espn_rank": 264,
"gp_value": 25.0,
"gp_rank": 288,
"gs_value": 25.0,
"gs_rank": 38,
"qs_value": 12.0,
"qs_rank": 29,
"era_value": 4.5603,
"era_rank": null,
"w_value": 6.0,
"w_rank": 98,
"l_value": 8.0,
"l_rank": 41,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 341,
"ip_value": 124.1,
"ip_rank": 76,
"h_value": 119.0,
"h_rank": 67,
"er_value": 63.0,
"er_rank": 37,
"hr_value": 9.0,
"hr_rank": 168,
"bb_value": 42.0,
"bb_rank": 60,
"k_value": 118.0,
"k_rank": 59,
"k_per_9_value": 8.541555,
"k_per_9_rank": 20,
"whip_value": 1.2949,
"whip_rank": null,
"war_value": 0.41,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0091,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0091,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0387,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9863,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 77,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260830_TEX@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |