| 20260824 | 20260824_BOS@MIA | away | Ranger Suarez | Ranger Suarez | True | 5.0 | 5.0 | 0 | 0 | 1 | 1 | 2/4 | 2/4 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4147058823529415,
"WHIP": 1.1823529411764706,
"IP": 113.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.152,
"recent_avg_IP": 4.4,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2585,
"sample_weight": 1.0,
"run_prevention_factor": 0.978,
"strikeout_factor": 0.9989,
"walk_factor": 0.958,
"homer_factor": 0.9133,
"regression_flag": "neutral",
"k_percent": 24.2,
"bb_percent": 7.1,
"woba": 0.284,
"xwoba": 0.295,
"barrel_percent": 4.7,
"hard_hit_percent": 32.8,
"whiff_percent": 23.0
},
"espn_rank": {
"rank": 98,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 113.1,
"season_ERA": 3.415,
"season_WHIP": 1.182,
"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": 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": "624133",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.0,
"ER": 11.0,
"R": 12.0,
"H": 21.0,
"BB": 7.0,
"SO": 16.0,
"HR": 2.0,
"BF": 91.0,
"Pitches": 373.0
},
"per_game": {
"IP": 4.1,
"ER": 2.2,
"R": 2.4,
"H": 4.2,
"BB": 1.4,
"SO": 3.2,
"HR": 0.4,
"BF": 18.2,
"Pitches": 74.6
},
"rates": {
"ERA": 4.5,
"WHIP": 1.2727,
"ER_per_IP": 0.5,
"H_per_IP": 0.95455,
"BB_per_IP": 0.31818,
"SO_per_IP": 0.72727,
"HR_per_IP": 0.09091
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 20.0,
"R": 23.0,
"H": 46.0,
"BB": 14.0,
"SO": 50.0,
"HR": 3.0,
"BF": 204.0,
"Pitches": 814.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.3,
"H": 4.6,
"BB": 1.4,
"SO": 5.0,
"HR": 0.3,
"BF": 20.4,
"Pitches": 81.4
},
"rates": {
"ERA": 3.7241,
"WHIP": 1.2414,
"ER_per_IP": 0.41379,
"H_per_IP": 0.95172,
"BB_per_IP": 0.28966,
"SO_per_IP": 1.03448,
"HR_per_IP": 0.06207
}
},
"season": {
"games": 22,
"totals": {
"IP": 113.1,
"ER": 43.0,
"R": 46.0,
"H": 101.0,
"BB": 33.0,
"SO": 113.0,
"HR": 7.0,
"BF": 467.0,
"Pitches": 1819.0
},
"per_game": {
"IP": 5.0,
"ER": 1.9545,
"R": 2.0909,
"H": 4.5909,
"BB": 1.5,
"SO": 5.1364,
"HR": 0.3182,
"BF": 21.2273,
"Pitches": 82.6818
},
"rates": {
"ERA": 3.4147,
"WHIP": 1.1824,
"ER_per_IP": 0.37941,
"H_per_IP": 0.89118,
"BB_per_IP": 0.29118,
"SO_per_IP": 0.99706,
"HR_per_IP": 0.06176
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.126,
"predicted_H": 4.414,
"predicted_BB": 1.466,
"predicted_SO": 4.192,
"predicted_HR": 0.412,
"predicted_ERA": 4.1052,
"predicted_WHIP": 1.2618
}
},
"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.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.126,
"final": 1.2155,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.414,
"final": 3.3802,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.466,
"final": 1.6947,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.192,
"final": 4.1098,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.412,
"final": 0.2356,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1052,
"final": 4.1052,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2618,
"final": 1.2618,
"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": 20,
"H": 46,
"BB": 14,
"SO": 50,
"HR": 3,
"ERA": 3.724137931034483,
"WHIP": 1.2413793103448276,
"K9": 9.310344827586208,
"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-18T00:00:00"
},
"recent_form_boost": 0.9210673590803672,
"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": 2.0,
"predicted_BB": 2.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "624133",
"player_name": "Ranger Suarez",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.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": 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.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.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": "BOS",
"games": 130,
"wins": 71,
"losses": 59,
"win_pct": 0.5462,
"runs_scored": 589.0,
"runs_allowed": 490.0,
"run_differential": 99.0,
"run_differential_per_game": 0.7615,
"avg_runs_scored": 4.5308,
"avg_runs_allowed": 3.7692,
"offense_index": 1.0107,
"defense_index": 1.1893,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 3.8,
"run_differential": 20.0
},
"available": true,
"quality_score": 0.2027
},
"opponent": {
"team": "MIA",
"games": 131,
"wins": 67,
"losses": 64,
"win_pct": 0.5115,
"runs_scored": 573.0,
"runs_allowed": 552.0,
"run_differential": 21.0,
"run_differential_per_game": 0.1603,
"avg_runs_scored": 4.374,
"avg_runs_allowed": 4.2137,
"offense_index": 0.9758,
"defense_index": 1.0638,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.1,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0294
},
"edges": {
"quality_edge": 0.1733,
"offense_edge": 0.0107,
"opponent_offense_edge": -0.0242,
"defense_strength": 0.1893,
"opponent_defense_weakness": -0.0638,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0136,
"run_prevention": 0.9685,
"strikeout": 1.0071
},
"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": 445.0,
"k_percent": 24.2,
"bb_percent": 7.1,
"woba": 0.284,
"xwoba": 0.295,
"sweet_spot_percent": 37.5,
"barrel_batted_rate": 4.7,
"hard_hit_percent": 32.8,
"avg_best_speed": 74.8428,
"avg_hyper_speed": 93.0229,
"whiff_percent": 23.0,
"swing_percent": 46.0
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.49,
"command_and_miss": 0.125,
"regression_edge": -0.3143,
"xwoba_edge": 0.4571,
"barrel_edge": 0.5556,
"hard_hit_edge": 0.7143,
"whiff_edge": -0.3286,
"bb_edge": 0.525,
"pitch_design_score": -0.2121
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "624133",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 66,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 86.05893354315086,
"release_spin_rate": 1974.8528642212775,
"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": 66,
"pitch_usage": 0.0,
"release_speed": 86.05893354315086,
"release_spin_rate": 1974.8528642212775,
"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.0589,
"release_spin_rate": 1974.8529,
"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.2121,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5147,
"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.2585,
"sample_weight": 1.0,
"run_prevention_factor": 0.978,
"strikeout_factor": 0.9989,
"walk_factor": 0.958,
"homer_factor": 0.9133,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "624133",
"espn_id": 39817,
"player_name": "Ranger Suarez",
"team": "BOS",
"role": "pitcher",
"espn_rank": 98,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 98,
"gp_value": 22.0,
"gp_rank": 332,
"gs_value": 22.0,
"gs_rank": 70,
"qs_value": 7.0,
"qs_rank": 73,
"era_value": 3.4147,
"era_rank": null,
"w_value": 5.0,
"w_rank": 120,
"l_value": 3.0,
"l_rank": 217,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 113.1,
"ip_rank": 92,
"h_value": 101.0,
"h_rank": 94,
"er_value": 43.0,
"er_rank": 119,
"hr_value": 7.0,
"hr_rank": 210,
"bb_value": 33.0,
"bb_rank": 113,
"k_value": 113.0,
"k_rank": 63,
"k_per_9_value": 8.97353,
"k_per_9_rank": 18,
"whip_value": 1.1823,
"whip_rank": null,
"war_value": 1.58,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.978,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.958,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9133,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9989,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260824_BOS@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260824 | 20260824_BOS@MIA | home | Sandy Alcantara | Sandy Alcantara | True | 6.1 | 7.0 | 2 | 2 | 1 | -1 | 5/6 | 4/2 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4641509433962265,
"WHIP": 1.1773584905660377,
"IP": 176.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 6.543,
"recent_avg_IP": 6.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1178,
"sample_weight": 1.0,
"run_prevention_factor": 0.99,
"strikeout_factor": 0.9526,
"walk_factor": 0.946,
"homer_factor": 0.9411,
"regression_flag": "neutral",
"k_percent": 18.0,
"bb_percent": 6.5,
"woba": 0.294,
"xwoba": 0.297,
"barrel_percent": 5.4,
"hard_hit_percent": 35.2,
"whiff_percent": 21.1
},
"espn_rank": {
"rank": 22,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "645261",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 4.0,
"R": 4.0,
"H": 22.0,
"BB": 9.0,
"SO": 21.0,
"HR": 1.0,
"BF": 130.0,
"Pitches": 507.0
},
"per_game": {
"IP": 6.2,
"ER": 0.8,
"R": 0.8,
"H": 4.4,
"BB": 1.8,
"SO": 4.2,
"HR": 0.2,
"BF": 26.0,
"Pitches": 101.4
},
"rates": {
"ERA": 1.0909,
"WHIP": 0.9394,
"ER_per_IP": 0.12121,
"H_per_IP": 0.66667,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.63636,
"HR_per_IP": 0.0303
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 66.2,
"ER": 19.0,
"R": 19.0,
"H": 52.0,
"BB": 20.0,
"SO": 50.0,
"HR": 6.0,
"BF": 269.0,
"Pitches": 1014.0
},
"per_game": {
"IP": 6.2,
"ER": 1.9,
"R": 1.9,
"H": 5.2,
"BB": 2.0,
"SO": 5.0,
"HR": 0.6,
"BF": 26.9,
"Pitches": 101.4
},
"rates": {
"ERA": 2.565,
"WHIP": 1.08,
"ER_per_IP": 0.285,
"H_per_IP": 0.78,
"BB_per_IP": 0.3,
"SO_per_IP": 0.75,
"HR_per_IP": 0.09
}
},
"season": {
"games": 27,
"totals": {
"IP": 176.2,
"ER": 68.0,
"R": 73.0,
"H": 161.0,
"BB": 47.0,
"SO": 131.0,
"HR": 18.0,
"BF": 728.0,
"Pitches": 2667.0
},
"per_game": {
"IP": 6.2,
"ER": 2.5185,
"R": 2.7037,
"H": 5.963,
"BB": 1.7407,
"SO": 4.8519,
"HR": 0.6667,
"BF": 26.963,
"Pitches": 98.7778
},
"rates": {
"ERA": 3.4642,
"WHIP": 1.1774,
"ER_per_IP": 0.38491,
"H_per_IP": 0.91132,
"BB_per_IP": 0.26604,
"SO_per_IP": 0.74151,
"HR_per_IP": 0.10189
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.2,
"predicted_ER": 1.81,
"predicted_H": 5.223,
"predicted_BB": 1.947,
"predicted_SO": 4.869,
"predicted_HR": 0.518,
"predicted_ERA": 2.4621,
"predicted_WHIP": 1.0839
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.2,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.81,
"final": 1.473,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.223,
"final": 5.1302,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.947,
"final": 2.801,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.869,
"final": 4.0915,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.518,
"final": 0.7185,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4621,
"final": 2.4621,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0839,
"final": 1.0839,
"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": 66.2,
"ER": 19,
"H": 52,
"BB": 20,
"SO": 50,
"HR": 6,
"ERA": 2.565,
"WHIP": 1.0799999999999998,
"K9": 6.749999999999999,
"HR9": 0.8099999999999999,
"games_pitched": 10,
"quality_starts": 8,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 0.7866298590803671,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "645261",
"player_name": "Sandy Alcantara",
"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": 4.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 131,
"wins": 67,
"losses": 64,
"win_pct": 0.5115,
"runs_scored": 573.0,
"runs_allowed": 552.0,
"run_differential": 21.0,
"run_differential_per_game": 0.1603,
"avg_runs_scored": 4.374,
"avg_runs_allowed": 4.2137,
"offense_index": 0.9758,
"defense_index": 1.0638,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.1,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0294
},
"opponent": {
"team": "BOS",
"games": 130,
"wins": 71,
"losses": 59,
"win_pct": 0.5462,
"runs_scored": 589.0,
"runs_allowed": 490.0,
"run_differential": 99.0,
"run_differential_per_game": 0.7615,
"avg_runs_scored": 4.5308,
"avg_runs_allowed": 3.7692,
"offense_index": 1.0107,
"defense_index": 1.1893,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 3.8,
"run_differential": 20.0
},
"available": true,
"quality_score": 0.2027
},
"edges": {
"quality_edge": -0.1733,
"offense_edge": -0.0242,
"opponent_offense_edge": 0.0107,
"defense_strength": 0.0638,
"opponent_defense_weakness": -0.1893,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9946,
"run_prevention": 1.004,
"strikeout": 0.9939
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "645261",
"profile": {
"available": true,
"pitcher_id": "645261",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 698.0,
"k_percent": 18.0,
"bb_percent": 6.5,
"woba": 0.294,
"xwoba": 0.297,
"sweet_spot_percent": 32.2,
"barrel_batted_rate": 5.4,
"hard_hit_percent": 35.2,
"avg_best_speed": 77.8039,
"avg_hyper_speed": 93.5707,
"whiff_percent": 21.1,
"swing_percent": 50.9
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3617,
"command_and_miss": -0.3386,
"regression_edge": -0.0857,
"xwoba_edge": 0.4,
"barrel_edge": 0.4,
"hard_hit_edge": 0.3714,
"whiff_edge": -0.6,
"bb_edge": 0.675,
"pitch_design_score": 0.1475
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "645261",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 103,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 103,
"pitch_usage": 0.0,
"release_speed": 92.48025466542275,
"release_spin_rate": 2242.949925139654,
"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": 103,
"pitch_usage": 0.0,
"release_speed": 92.48025466542275,
"release_spin_rate": 2242.949925139654,
"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.4803,
"release_spin_rate": 2242.9499,
"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.1475,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0538,
"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.1178,
"sample_weight": 1.0,
"run_prevention_factor": 0.99,
"strikeout_factor": 0.9526,
"walk_factor": 0.946,
"homer_factor": 0.9411,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "645261",
"espn_id": 35241,
"player_name": "Sandy Alcantara",
"team": "MIA",
"role": "pitcher",
"espn_rank": 22,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 22,
"gp_value": 27.0,
"gp_rank": 220,
"gs_value": 27.0,
"gs_rank": 1,
"qs_value": 20.0,
"qs_rank": 1,
"era_value": 3.4641,
"era_rank": 24.0,
"w_value": 13.0,
"w_rank": 5,
"l_value": 8.0,
"l_rank": 36,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 176.2,
"ip_rank": 1,
"h_value": 161.0,
"h_rank": 3,
"er_value": 68.0,
"er_rank": 16,
"hr_value": 18.0,
"hr_rank": 36,
"bb_value": 47.0,
"bb_rank": 32,
"k_value": 131.0,
"k_rank": 37,
"k_per_9_value": 6.673585,
"k_per_9_rank": 999,
"whip_value": 1.1773,
"whip_rank": 28.0,
"war_value": 3.08,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.99,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.99,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.946,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9411,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9526,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 123,
"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/20260824_BOS@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260824 | 20260824_CHC@ARI | away | Kevin Gausman | Kevin Gausman | True | 5.2 | 7.0 | 4 | 2 | 0 | -2 | 1/3 | 5/1 | 2/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.583720930232558,
"WHIP": 1.2976744186046512,
"IP": 143.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.513,
"recent_avg_IP": 5.533,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1057,
"sample_weight": 1.0,
"run_prevention_factor": 0.991,
"strikeout_factor": 1.02,
"walk_factor": 0.948,
"homer_factor": 1.0095,
"regression_flag": "neutral",
"k_percent": 23.5,
"bb_percent": 6.6,
"woba": 0.316,
"xwoba": 0.31,
"barrel_percent": 7.3,
"hard_hit_percent": 39.3,
"whiff_percent": 27.4
},
"espn_rank": {
"rank": 179,
"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": "592332",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 15.0,
"R": 15.0,
"H": 32.0,
"BB": 6.0,
"SO": 26.0,
"HR": 3.0,
"BF": 118.0,
"Pitches": 467.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 6.4,
"BB": 1.2,
"SO": 5.2,
"HR": 0.6,
"BF": 23.6,
"Pitches": 93.4
},
"rates": {
"ERA": 4.8795,
"WHIP": 1.3735,
"ER_per_IP": 0.54217,
"H_per_IP": 1.15663,
"BB_per_IP": 0.21687,
"SO_per_IP": 0.93976,
"HR_per_IP": 0.10843
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 33.0,
"R": 37.0,
"H": 65.0,
"BB": 20.0,
"SO": 54.0,
"HR": 7.0,
"BF": 243.0,
"Pitches": 947.0
},
"per_game": {
"IP": 5.1,
"ER": 3.3,
"R": 3.7,
"H": 6.5,
"BB": 2.0,
"SO": 5.4,
"HR": 0.7,
"BF": 24.3,
"Pitches": 94.7
},
"rates": {
"ERA": 5.4663,
"WHIP": 1.5644,
"ER_per_IP": 0.60736,
"H_per_IP": 1.19632,
"BB_per_IP": 0.3681,
"SO_per_IP": 0.99387,
"HR_per_IP": 0.12883
}
},
"season": {
"games": 26,
"totals": {
"IP": 143.1,
"ER": 73.0,
"R": 79.0,
"H": 146.0,
"BB": 40.0,
"SO": 143.0,
"HR": 18.0,
"BF": 609.0,
"Pitches": 2415.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8077,
"R": 3.0385,
"H": 5.6154,
"BB": 1.5385,
"SO": 5.5,
"HR": 0.6923,
"BF": 23.4231,
"Pitches": 92.8846
},
"rates": {
"ERA": 4.5837,
"WHIP": 1.2977,
"ER_per_IP": 0.5093,
"H_per_IP": 1.0186,
"BB_per_IP": 0.27907,
"SO_per_IP": 0.99767,
"HR_per_IP": 0.12558
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.059,
"predicted_H": 6.214,
"predicted_BB": 1.648,
"predicted_SO": 5.382,
"predicted_HR": 0.688,
"predicted_ERA": 4.9438,
"predicted_WHIP": 1.4117
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.059,
"final": 2.6162,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 6.214,
"final": 4.4519,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.648,
"final": 3.0496,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.382,
"final": 3.9678,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.688,
"final": 0.4003,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9438,
"final": 4.9438,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4117,
"final": 1.4117,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 33,
"H": 65,
"BB": 20,
"SO": 54,
"HR": 7,
"ERA": 5.466257668711657,
"WHIP": 1.5644171779141105,
"K9": 8.94478527607362,
"HR9": 1.159509202453988,
"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-18T00:00:00"
},
"recent_form_boost": 1.1251317762582813,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 5.0,
"predicted_SO": 2.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": "592332",
"player_name": "Kevin Gausman",
"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": 5.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 131,
"wins": 75,
"losses": 56,
"win_pct": 0.5725,
"runs_scored": 684.0,
"runs_allowed": 569.0,
"run_differential": 115.0,
"run_differential_per_game": 0.8779,
"avg_runs_scored": 5.2214,
"avg_runs_allowed": 4.3435,
"offense_index": 1.166,
"defense_index": 1.031,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 5.0,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.1344
},
"opponent": {
"team": "ARI",
"games": 131,
"wins": 69,
"losses": 62,
"win_pct": 0.5267,
"runs_scored": 598.0,
"runs_allowed": 589.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0687,
"avg_runs_scored": 4.5649,
"avg_runs_allowed": 4.4962,
"offense_index": 1.0194,
"defense_index": 0.996,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 5.4,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0311
},
"edges": {
"quality_edge": 0.1033,
"offense_edge": 0.166,
"opponent_offense_edge": 0.0194,
"defense_strength": 0.031,
"opponent_defense_weakness": 0.004,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0043,
"run_prevention": 0.9948,
"strikeout": 1.0015
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592332",
"profile": {
"available": true,
"pitcher_id": "592332",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 580.0,
"k_percent": 23.5,
"bb_percent": 6.6,
"woba": 0.316,
"xwoba": 0.31,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 39.3,
"avg_best_speed": 76.2822,
"avg_hyper_speed": 94.4214,
"whiff_percent": 27.4,
"swing_percent": 50.3
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0127,
"command_and_miss": 0.325,
"regression_edge": 0.1714,
"xwoba_edge": 0.0286,
"barrel_edge": -0.0222,
"hard_hit_edge": -0.2143,
"whiff_edge": 0.3,
"bb_edge": 0.65,
"pitch_design_score": -0.0379
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592332",
"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": 89.1682726138402,
"release_spin_rate": 2002.91926935879,
"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": 89.1682726138402,
"release_spin_rate": 2002.91926935879,
"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.1683,
"release_spin_rate": 2002.9193,
"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.0379,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2709,
"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.1057,
"sample_weight": 1.0,
"run_prevention_factor": 0.991,
"strikeout_factor": 1.02,
"walk_factor": 0.948,
"homer_factor": 1.0095,
"woba_minus_xwoba": 0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "592332",
"espn_id": 32667,
"player_name": "Kevin Gausman",
"team": "CHC",
"role": "pitcher",
"espn_rank": 179,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 179,
"gp_value": 26.0,
"gp_rank": 234,
"gs_value": 26.0,
"gs_rank": 9,
"qs_value": 12.0,
"qs_rank": 24,
"era_value": 4.5837,
"era_rank": 50.0,
"w_value": 6.0,
"w_rank": 92,
"l_value": 11.0,
"l_rank": 5,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 143.1,
"ip_rank": 27,
"h_value": 146.0,
"h_rank": 9,
"er_value": 73.0,
"er_rank": 9,
"hr_value": 18.0,
"hr_rank": 36,
"bb_value": 40.0,
"bb_rank": 67,
"k_value": 143.0,
"k_rank": 26,
"k_per_9_value": 8.97907,
"k_per_9_rank": 26,
"whip_value": 1.2976,
"whip_rank": 43.0,
"war_value": 0.9,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.991,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.991,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.948,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0095,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.02,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 5,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260824_CHC@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260824 | 20260824_CHC@ARI | home | Merrill Kelly | Merrill Kelly | True | 4.2 | 5.2 | 3 | 5 | 3 | -2 | 6/5 | 3/3 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.372093023255814,
"WHIP": 1.5193798449612403,
"IP": 129.0,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.609,
"recent_avg_IP": 5.067,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -1.1707,
"sample_weight": 1.0,
"run_prevention_factor": 1.0995,
"strikeout_factor": 0.936,
"walk_factor": 1.018,
"homer_factor": 1.2064,
"regression_flag": "negative_pitcher_regression",
"k_percent": 14.9,
"bb_percent": 10.1,
"woba": 0.366,
"xwoba": 0.399,
"barrel_percent": 12.6,
"hard_hit_percent": 44.0,
"whiff_percent": 21.3
},
"espn_rank": {
"rank": 698,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "518876",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 18.0,
"R": 19.0,
"H": 27.0,
"BB": 16.0,
"SO": 19.0,
"HR": 4.0,
"BF": 114.0,
"Pitches": 426.0
},
"per_game": {
"IP": 5.0,
"ER": 3.6,
"R": 3.8,
"H": 5.4,
"BB": 3.2,
"SO": 3.8,
"HR": 0.8,
"BF": 22.8,
"Pitches": 85.2
},
"rates": {
"ERA": 6.3947,
"WHIP": 1.6974,
"ER_per_IP": 0.71053,
"H_per_IP": 1.06579,
"BB_per_IP": 0.63158,
"SO_per_IP": 0.75,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 29.0,
"R": 32.0,
"H": 55.0,
"BB": 26.0,
"SO": 40.0,
"HR": 11.0,
"BF": 230.0,
"Pitches": 879.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9,
"R": 3.2,
"H": 5.5,
"BB": 2.6,
"SO": 4.0,
"HR": 1.1,
"BF": 23.0,
"Pitches": 87.9
},
"rates": {
"ERA": 4.8937,
"WHIP": 1.5187,
"ER_per_IP": 0.54375,
"H_per_IP": 1.03125,
"BB_per_IP": 0.4875,
"SO_per_IP": 0.75,
"HR_per_IP": 0.20625
}
},
"season": {
"games": 23,
"totals": {
"IP": 129.0,
"ER": 77.0,
"R": 80.0,
"H": 139.0,
"BB": 57.0,
"SO": 84.0,
"HR": 26.0,
"BF": 565.0,
"Pitches": 2079.0
},
"per_game": {
"IP": 5.2,
"ER": 3.3478,
"R": 3.4783,
"H": 6.0435,
"BB": 2.4783,
"SO": 3.6522,
"HR": 1.1304,
"BF": 24.5652,
"Pitches": 90.3913
},
"rates": {
"ERA": 5.3721,
"WHIP": 1.5194,
"ER_per_IP": 0.5969,
"H_per_IP": 1.07752,
"BB_per_IP": 0.44186,
"SO_per_IP": 0.65116,
"HR_per_IP": 0.20155
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.194,
"predicted_H": 5.484,
"predicted_BB": 2.694,
"predicted_SO": 4.048,
"predicted_HR": 0.932,
"predicted_ERA": 5.46,
"predicted_WHIP": 1.5532
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.194,
"final": 3.9624,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.484,
"final": 5.7035,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.694,
"final": 2.8242,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.048,
"final": 3.6021,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.932,
"final": 0.9609,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.46,
"final": 5.46,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5532,
"final": 1.5532,
"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": 29,
"H": 55,
"BB": 26,
"SO": 40,
"HR": 11,
"ERA": 4.89375,
"WHIP": 1.5187499999999998,
"K9": 6.75,
"HR9": 1.85625,
"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-18T00:00:00"
},
"recent_form_boost": 1.0595829840803672,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 3.0,
"predicted_SO": 3.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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 5,
"predicted_H": 6,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "518876",
"player_name": "Merrill Kelly",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"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": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 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.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 131,
"wins": 69,
"losses": 62,
"win_pct": 0.5267,
"runs_scored": 598.0,
"runs_allowed": 589.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0687,
"avg_runs_scored": 4.5649,
"avg_runs_allowed": 4.4962,
"offense_index": 1.0194,
"defense_index": 0.996,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 5.4,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0311
},
"opponent": {
"team": "CHC",
"games": 131,
"wins": 75,
"losses": 56,
"win_pct": 0.5725,
"runs_scored": 684.0,
"runs_allowed": 569.0,
"run_differential": 115.0,
"run_differential_per_game": 0.8779,
"avg_runs_scored": 5.2214,
"avg_runs_allowed": 4.3435,
"offense_index": 1.166,
"defense_index": 1.031,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 5.0,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.1344
},
"edges": {
"quality_edge": -0.1033,
"offense_edge": 0.0194,
"opponent_offense_edge": 0.166,
"defense_strength": -0.004,
"opponent_defense_weakness": -0.031,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9891,
"run_prevention": 1.0321,
"strikeout": 0.9836
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "518876",
"profile": {
"available": true,
"pitcher_id": "518876",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 513.0,
"k_percent": 14.9,
"bb_percent": 10.1,
"woba": 0.366,
"xwoba": 0.399,
"sweet_spot_percent": 38.8,
"barrel_batted_rate": 12.6,
"hard_hit_percent": 44.0,
"avg_best_speed": 79.2521,
"avg_hyper_speed": 95.0057,
"whiff_percent": 21.3,
"swing_percent": 49.0
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": -1.5885,
"command_and_miss": -0.7079,
"regression_edge": -0.9429,
"xwoba_edge": -2.5,
"barrel_edge": -1.2,
"hard_hit_edge": -0.8857,
"whiff_edge": -0.5714,
"bb_edge": -0.225,
"pitch_design_score": -0.0354
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "518876",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 89.2138630197874,
"release_spin_rate": 2318.4380832864795,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 89.2138630197874,
"release_spin_rate": 2318.4380832864795,
"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.2139,
"release_spin_rate": 2318.4381,
"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.0354,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2527,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -1.1707,
"sample_weight": 1.0,
"run_prevention_factor": 1.0995,
"strikeout_factor": 0.936,
"walk_factor": 1.018,
"homer_factor": 1.2064,
"woba_minus_xwoba": -0.033,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "518876",
"espn_id": 32968,
"player_name": "Merrill Kelly",
"team": "ARI",
"role": "pitcher",
"espn_rank": 698,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 698,
"gp_value": 23.0,
"gp_rank": 312,
"gs_value": 23.0,
"gs_rank": 60,
"qs_value": 7.0,
"qs_rank": 73,
"era_value": 5.372,
"era_rank": null,
"w_value": 8.0,
"w_rank": 46,
"l_value": 11.0,
"l_rank": 5,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 129.0,
"ip_rank": 56,
"h_value": 139.0,
"h_rank": 15,
"er_value": 77.0,
"er_rank": 5,
"hr_value": 26.0,
"hr_rank": 6,
"bb_value": 57.0,
"bb_rank": 13,
"k_value": 84.0,
"k_rank": 117,
"k_per_9_value": 5.860465,
"k_per_9_rank": 56,
"whip_value": 1.5193,
"whip_rank": null,
"war_value": -0.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0995,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0995,
"adjusted": 7
},
"predicted_BB": {
"original": 3.0,
"factor": 1.018,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.2,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.936,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 101,
"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/20260824_CHC@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260824 | 20260824_CIN@SF | away | Chase Burns | Chase Burns | True | 6.0 | 3.2 | -7 | 2 | 5 | 3 | 1/9 | 2/1 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.514705882352941,
"WHIP": 1.1102941176470589,
"IP": 136.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.667,
"recent_avg_IP": 5.667,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5667,
"sample_weight": 1.0,
"run_prevention_factor": 0.9518,
"strikeout_factor": 1.076,
"walk_factor": 0.992,
"homer_factor": 0.9668,
"regression_flag": "neutral",
"k_percent": 29.0,
"bb_percent": 8.8,
"woba": 0.274,
"xwoba": 0.27,
"barrel_percent": 7.6,
"hard_hit_percent": 36.9,
"whiff_percent": 31.7
},
"espn_rank": {
"rank": 5,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 136.0,
"season_ERA": 2.515,
"season_WHIP": 1.11,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695505",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 9.0,
"R": 13.0,
"H": 23.0,
"BB": 9.0,
"SO": 35.0,
"HR": 1.0,
"BF": 115.0,
"Pitches": 470.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 2.6,
"H": 4.6,
"BB": 1.8,
"SO": 7.0,
"HR": 0.2,
"BF": 23.0,
"Pitches": 94.0
},
"rates": {
"ERA": 2.8588,
"WHIP": 1.1294,
"ER_per_IP": 0.31765,
"H_per_IP": 0.81176,
"BB_per_IP": 0.31765,
"SO_per_IP": 1.23529,
"HR_per_IP": 0.03529
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 20.0,
"R": 24.0,
"H": 47.0,
"BB": 22.0,
"SO": 64.0,
"HR": 4.0,
"BF": 229.0,
"Pitches": 945.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.4,
"H": 4.7,
"BB": 2.2,
"SO": 6.4,
"HR": 0.4,
"BF": 22.9,
"Pitches": 94.5
},
"rates": {
"ERA": 3.253,
"WHIP": 1.247,
"ER_per_IP": 0.36145,
"H_per_IP": 0.8494,
"BB_per_IP": 0.39759,
"SO_per_IP": 1.15663,
"HR_per_IP": 0.07229
}
},
"season": {
"games": 24,
"totals": {
"IP": 136.0,
"ER": 38.0,
"R": 42.0,
"H": 103.0,
"BB": 48.0,
"SO": 159.0,
"HR": 13.0,
"BF": 548.0,
"Pitches": 2238.0
},
"per_game": {
"IP": 5.2,
"ER": 1.5833,
"R": 1.75,
"H": 4.2917,
"BB": 2.0,
"SO": 6.625,
"HR": 0.5417,
"BF": 22.8333,
"Pitches": 93.25
},
"rates": {
"ERA": 2.5147,
"WHIP": 1.1103,
"ER_per_IP": 0.27941,
"H_per_IP": 0.75735,
"BB_per_IP": 0.35294,
"SO_per_IP": 1.16912,
"HR_per_IP": 0.09559
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.037,
"predicted_H": 4.818,
"predicted_BB": 2.033,
"predicted_SO": 6.593,
"predicted_HR": 0.431,
"predicted_ERA": 3.2021,
"predicted_WHIP": 1.1969
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.037,
"final": 2.0214,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.818,
"final": 3.2036,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.033,
"final": 2.019,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.593,
"final": 6.3423,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.431,
"final": 0.2488,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2021,
"final": 3.2021,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1969,
"final": 1.1969,
"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": 50.1,
"ER": 19,
"H": 42,
"BB": 19,
"SO": 57,
"HR": 3,
"ERA": 3.3973509933774837,
"WHIP": 1.2119205298013247,
"K9": 10.192052980132452,
"HR9": 0.5364238410596027,
"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-19T00:00:00"
},
"recent_form_boost": 0.8835673590803672,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695505",
"player_name": "Chase Burns",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"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": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 131,
"wins": 62,
"losses": 69,
"win_pct": 0.4733,
"runs_scored": 537.0,
"runs_allowed": 631.0,
"run_differential": -94.0,
"run_differential_per_game": -0.7176,
"avg_runs_scored": 4.0992,
"avg_runs_allowed": 4.8168,
"offense_index": 0.9154,
"defense_index": 0.9297,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.8,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.1808
},
"opponent": {
"team": "SF",
"games": 130,
"wins": 52,
"losses": 78,
"win_pct": 0.4,
"runs_scored": 523.0,
"runs_allowed": 603.0,
"run_differential": -80.0,
"run_differential_per_game": -0.6154,
"avg_runs_scored": 4.0231,
"avg_runs_allowed": 4.6385,
"offense_index": 0.8984,
"defense_index": 0.9654,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 4.8,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.2656
},
"edges": {
"quality_edge": 0.0848,
"offense_edge": -0.0846,
"opponent_offense_edge": -0.1016,
"defense_strength": -0.0703,
"opponent_defense_weakness": 0.0346,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0053,
"run_prevention": 0.9865,
"strikeout": 1.0107
},
"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": 518.0,
"k_percent": 29.0,
"bb_percent": 8.8,
"woba": 0.274,
"xwoba": 0.27,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 36.9,
"avg_best_speed": 79.5583,
"avg_hyper_speed": 93.6168,
"whiff_percent": 31.7,
"swing_percent": 49.0
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.5915,
"command_and_miss": 0.7836,
"regression_edge": 0.1143,
"xwoba_edge": 1.1714,
"barrel_edge": -0.0889,
"hard_hit_edge": 0.1286,
"whiff_edge": 0.9143,
"bb_edge": 0.1,
"pitch_design_score": 0.2543
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695505",
"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": 94.38654324653888,
"release_spin_rate": 2640.7238055362604,
"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": 94.38654324653888,
"release_spin_rate": 2640.7238055362604,
"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.3865,
"release_spin_rate": 2640.7238,
"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.2543,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.8164,
"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.5667,
"sample_weight": 1.0,
"run_prevention_factor": 0.9518,
"strikeout_factor": 1.076,
"walk_factor": 0.992,
"homer_factor": 0.9668,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695505",
"espn_id": 4927516,
"player_name": "Chase Burns",
"team": "CIN",
"role": "pitcher",
"espn_rank": 5,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 5,
"gp_value": 24.0,
"gp_rank": 292,
"gs_value": 24.0,
"gs_rank": 40,
"qs_value": 11.0,
"qs_rank": 37,
"era_value": 2.5147,
"era_rank": 5.0,
"w_value": 14.0,
"w_rank": 4,
"l_value": 2.0,
"l_rank": 297,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 136.0,
"ip_rank": 43,
"h_value": 103.0,
"h_rank": 88,
"er_value": 38.0,
"er_rank": 139,
"hr_value": 13.0,
"hr_rank": 102,
"bb_value": 48.0,
"bb_rank": 26,
"k_value": 159.0,
"k_rank": 13,
"k_per_9_value": 10.522059,
"k_per_9_rank": 8,
"whip_value": 1.1102,
"whip_rank": 16.0,
"war_value": 5.03,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9518,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9518,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.992,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9668,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.076,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 89,
"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 -7 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 8",
"detail": "Actual minus predicted hits was +8."
},
{
"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/20260824_CIN@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260824 | 20260824_CIN@SF | home | Carson Whisenhunt | Carson Whisenhunt | True | 4.1 | 2.2 | -5 | 4 | 0 | -4 | 7/2 | 2/1 | 8/3 | Last 10 before this game (7 available){
"model_context": {
"embedded_season": {
"ERA": 7.03125,
"WHIP": 1.84375,
"IP": 32.0,
"games_started": null,
"games_pitched": 7,
"role_avg_IP": 4.571,
"recent_avg_IP": 4.267,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4735,
"sample_weight": 0.52,
"run_prevention_factor": 1.0402,
"strikeout_factor": 0.9869,
"walk_factor": 1.0406,
"homer_factor": 1.0694,
"regression_flag": "neutral",
"k_percent": 15.0,
"bb_percent": 13.1,
"woba": 0.382,
"xwoba": 0.378,
"barrel_percent": 8.3,
"hard_hit_percent": 47.7,
"whiff_percent": 28.0
},
"espn_rank": {
"rank": 788,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.7627118644067797,
"last_10": 0.23728813559322032
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687931",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 7,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 21.0,
"R": 22.0,
"H": 30.0,
"BB": 14.0,
"SO": 17.0,
"HR": 4.0,
"BF": 107.0,
"Pitches": 398.0
},
"per_game": {
"IP": 4.1,
"ER": 4.2,
"R": 4.4,
"H": 6.0,
"BB": 2.8,
"SO": 3.4,
"HR": 0.8,
"BF": 21.4,
"Pitches": 79.6
},
"rates": {
"ERA": 8.8594,
"WHIP": 2.0625,
"ER_per_IP": 0.98438,
"H_per_IP": 1.40625,
"BB_per_IP": 0.65625,
"SO_per_IP": 0.79688,
"HR_per_IP": 0.1875
}
},
"last_10": {
"games": 7,
"totals": {
"IP": 32.0,
"ER": 25.0,
"R": 26.0,
"H": 39.0,
"BB": 20.0,
"SO": 23.0,
"HR": 5.0,
"BF": 153.0,
"Pitches": 570.0
},
"per_game": {
"IP": 4.2,
"ER": 3.5714,
"R": 3.7143,
"H": 5.5714,
"BB": 2.8571,
"SO": 3.2857,
"HR": 0.7143,
"BF": 21.8571,
"Pitches": 81.4286
},
"rates": {
"ERA": 7.0312,
"WHIP": 1.8438,
"ER_per_IP": 0.78125,
"H_per_IP": 1.21875,
"BB_per_IP": 0.625,
"SO_per_IP": 0.71875,
"HR_per_IP": 0.15625
}
},
"season": {
"games": 7,
"totals": {
"IP": 32.0,
"ER": 25.0,
"R": 26.0,
"H": 39.0,
"BB": 20.0,
"SO": 23.0,
"HR": 5.0,
"BF": 153.0,
"Pitches": 570.0
},
"per_game": {
"IP": 4.2,
"ER": 3.5714,
"R": 3.7143,
"H": 5.5714,
"BB": 2.8571,
"SO": 3.2857,
"HR": 0.7143,
"BF": 21.8571,
"Pitches": 81.4286
},
"rates": {
"ERA": 7.0312,
"WHIP": 1.8438,
"ER_per_IP": 0.78125,
"H_per_IP": 1.21875,
"BB_per_IP": 0.625,
"SO_per_IP": 0.71875,
"HR_per_IP": 0.15625
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.308,
"predicted_H": 5.258,
"predicted_BB": 2.327,
"predicted_SO": 3.716,
"predicted_HR": 0.729,
"predicted_ERA": 6.7973,
"predicted_WHIP": 1.7318
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5261,
"form_weight": 0.4739,
"form_reliability": 0.5833,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.308,
"final": 2.6199,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.258,
"final": 6.1744,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.327,
"final": 2.155,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 3.716,
"final": 5.9696,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.729,
"final": 0.3455,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.7973,
"final": 6.7973,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.7318,
"final": 1.7318,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 32.0,
"ER": 25,
"H": 39,
"BB": 20,
"SO": 23,
"HR": 5,
"ERA": 7.03125,
"WHIP": 1.84375,
"K9": 6.46875,
"HR9": 1.40625,
"games_pitched": 7,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 7,
"error_prone": false
},
"games_count": 7,
"latest_game_date": "2026-08-18T00:00:00"
},
"recent_form_boost": 1.308176734080367,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
}
},
{
"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.1,
"predicted_ER": 4,
"predicted_H": 7,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687931",
"player_name": "Carson Whisenhunt",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"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": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"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": "SF",
"games": 130,
"wins": 52,
"losses": 78,
"win_pct": 0.4,
"runs_scored": 523.0,
"runs_allowed": 603.0,
"run_differential": -80.0,
"run_differential_per_game": -0.6154,
"avg_runs_scored": 4.0231,
"avg_runs_allowed": 4.6385,
"offense_index": 0.8984,
"defense_index": 0.9654,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 4.8,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.2656
},
"opponent": {
"team": "CIN",
"games": 131,
"wins": 62,
"losses": 69,
"win_pct": 0.4733,
"runs_scored": 537.0,
"runs_allowed": 631.0,
"run_differential": -94.0,
"run_differential_per_game": -0.7176,
"avg_runs_scored": 4.0992,
"avg_runs_allowed": 4.8168,
"offense_index": 0.9154,
"defense_index": 0.9297,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.8,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.1808
},
"edges": {
"quality_edge": -0.0848,
"offense_edge": -0.1016,
"opponent_offense_edge": -0.0846,
"defense_strength": -0.0346,
"opponent_defense_weakness": 0.0703,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.999,
"run_prevention": 0.9942,
"strikeout": 1.0042
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687931",
"profile": {
"available": true,
"pitcher_id": "687931",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 130.0,
"k_percent": 15.0,
"bb_percent": 13.1,
"woba": 0.382,
"xwoba": 0.378,
"sweet_spot_percent": 38.5,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 47.7,
"avg_best_speed": 82.0546,
"avg_hyper_speed": 95.3731,
"whiff_percent": 28.0,
"swing_percent": 46.3
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": -1.3854,
"command_and_miss": -0.5164,
"regression_edge": 0.1143,
"xwoba_edge": -1.9143,
"barrel_edge": -0.2444,
"hard_hit_edge": -1.4143,
"whiff_edge": 0.3857,
"bb_edge": -0.975,
"pitch_design_score": -0.1483
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687931",
"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.19700184278912,
"release_spin_rate": 2172.2024355187386,
"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.19700184278912,
"release_spin_rate": 2172.2024355187386,
"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.197,
"release_spin_rate": 2172.2024,
"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.1483,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0595,
"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.4735,
"sample_weight": 0.52,
"run_prevention_factor": 1.0402,
"strikeout_factor": 0.9869,
"walk_factor": 1.0406,
"homer_factor": 1.0694,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687931",
"espn_id": 4626232,
"player_name": "Carson Whisenhunt",
"team": "SF",
"role": "pitcher",
"espn_rank": 788,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 788,
"gp_value": 7.0,
"gp_rank": 559,
"gs_value": 7.0,
"gs_rank": 191,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 7.0312,
"era_rank": null,
"w_value": 3.0,
"w_rank": 224,
"l_value": 4.0,
"l_rank": 159,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 32.0,
"ip_rank": 395,
"h_value": 39.0,
"h_rank": 303,
"er_value": 25.0,
"er_rank": 215,
"hr_value": 5.0,
"hr_rank": 287,
"bb_value": 20.0,
"bb_rank": 257,
"k_value": 23.0,
"k_rank": 435,
"k_per_9_value": 6.46875,
"k_per_9_rank": 29,
"whip_value": 1.8437,
"whip_rank": null,
"war_value": -0.78,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0209,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0209,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0211,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0361,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9932,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 7 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260824_CIN@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260824 | 20260824_CLE@LAA | away | Parker Messick | Parker Messick | True | 6.0 | 6.0 | 0 | 1 | 1 | 0 | 4/3 | 0/1 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5369127516778525,
"WHIP": 1.0268456375838926,
"IP": 149.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.96,
"recent_avg_IP": 6.267,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6212,
"sample_weight": 1.0,
"run_prevention_factor": 0.9472,
"strikeout_factor": 1.0251,
"walk_factor": 0.952,
"homer_factor": 0.8929,
"regression_flag": "neutral",
"k_percent": 25.7,
"bb_percent": 6.8,
"woba": 0.267,
"xwoba": 0.267,
"barrel_percent": 5.0,
"hard_hit_percent": 32.5,
"whiff_percent": 26.1
},
"espn_rank": {
"rank": 7,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "800048",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 7.0,
"R": 8.0,
"H": 25.0,
"BB": 4.0,
"SO": 36.0,
"HR": 3.0,
"BF": 124.0,
"Pitches": 482.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.6,
"H": 5.0,
"BB": 0.8,
"SO": 7.2,
"HR": 0.6,
"BF": 24.8,
"Pitches": 96.4
},
"rates": {
"ERA": 2.0106,
"WHIP": 0.9255,
"ER_per_IP": 0.2234,
"H_per_IP": 0.79787,
"BB_per_IP": 0.12766,
"SO_per_IP": 1.14894,
"HR_per_IP": 0.09574
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.1,
"ER": 16.0,
"R": 18.0,
"H": 46.0,
"BB": 12.0,
"SO": 61.0,
"HR": 6.0,
"BF": 246.0,
"Pitches": 939.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.8,
"H": 4.6,
"BB": 1.2,
"SO": 6.1,
"HR": 0.6,
"BF": 24.6,
"Pitches": 93.9
},
"rates": {
"ERA": 2.3102,
"WHIP": 0.9305,
"ER_per_IP": 0.25668,
"H_per_IP": 0.73797,
"BB_per_IP": 0.19251,
"SO_per_IP": 0.97861,
"HR_per_IP": 0.09626
}
},
"season": {
"games": 25,
"totals": {
"IP": 149.0,
"ER": 42.0,
"R": 46.0,
"H": 113.0,
"BB": 40.0,
"SO": 152.0,
"HR": 14.0,
"BF": 591.0,
"Pitches": 2305.0
},
"per_game": {
"IP": 6.0,
"ER": 1.68,
"R": 1.84,
"H": 4.52,
"BB": 1.6,
"SO": 6.08,
"HR": 0.56,
"BF": 23.64,
"Pitches": 92.2
},
"rates": {
"ERA": 2.5369,
"WHIP": 1.0268,
"ER_per_IP": 0.28188,
"H_per_IP": 0.75839,
"BB_per_IP": 0.26846,
"SO_per_IP": 1.02013,
"HR_per_IP": 0.09396
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.8,
"predicted_H": 4.998,
"predicted_BB": 1.306,
"predicted_SO": 6.497,
"predicted_HR": 0.648,
"predicted_ERA": 2.6037,
"predicted_WHIP": 1.0132
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.1,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.8,
"final": 1.4637,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.998,
"final": 4.5784,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.306,
"final": 0.7569,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.497,
"final": 5.4472,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.648,
"final": 0.796,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6037,
"final": 2.6037,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0132,
"final": 1.0132,
"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": 16,
"H": 46,
"BB": 12,
"SO": 61,
"HR": 6,
"ERA": 2.310160427807487,
"WHIP": 0.93048128342246,
"K9": 8.807486631016044,
"HR9": 0.8663101604278075,
"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-19T00:00:00"
},
"recent_form_boost": 0.7542224392942709,
"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": 4.0,
"predicted_BB": 0.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
}
},
{
"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": 4,
"predicted_BB": 0,
"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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 4.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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 131,
"wins": 65,
"losses": 66,
"win_pct": 0.4962,
"runs_scored": 527.0,
"runs_allowed": 536.0,
"run_differential": -9.0,
"run_differential_per_game": -0.0687,
"avg_runs_scored": 4.0229,
"avg_runs_allowed": 4.0916,
"offense_index": 0.8984,
"defense_index": 1.0944,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 2.6,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.0233
},
"opponent": {
"team": "LAA",
"games": 131,
"wins": 52,
"losses": 79,
"win_pct": 0.3969,
"runs_scored": 537.0,
"runs_allowed": 607.0,
"run_differential": -70.0,
"run_differential_per_game": -0.5344,
"avg_runs_scored": 4.0992,
"avg_runs_allowed": 4.6336,
"offense_index": 0.9154,
"defense_index": 0.9664,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 2.4,
"run_differential": 20.0
},
"available": true,
"quality_score": -0.1533
},
"edges": {
"quality_edge": 0.1766,
"offense_edge": -0.1016,
"opponent_offense_edge": -0.0846,
"defense_strength": 0.0944,
"opponent_defense_weakness": 0.0336,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0133,
"run_prevention": 0.9682,
"strikeout": 1.0121
},
"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": 560.0,
"k_percent": 25.7,
"bb_percent": 6.8,
"woba": 0.267,
"xwoba": 0.267,
"sweet_spot_percent": 31.5,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 32.5,
"avg_best_speed": 75.9394,
"avg_hyper_speed": 93.2731,
"whiff_percent": 26.1,
"swing_percent": 48.5
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.9277,
"command_and_miss": 0.3914,
"regression_edge": 0.0,
"xwoba_edge": 1.2571,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.7571,
"whiff_edge": 0.1143,
"bb_edge": 0.6,
"pitch_design_score": -0.0004
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800048",
"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": 89.83896253181611,
"release_spin_rate": 2094.965578953152,
"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": 89.83896253181611,
"release_spin_rate": 2094.965578953152,
"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.839,
"release_spin_rate": 2094.9656,
"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.0004,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0027,
"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.6212,
"sample_weight": 1.0,
"run_prevention_factor": 0.9472,
"strikeout_factor": 1.0251,
"walk_factor": 0.952,
"homer_factor": 0.8929,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "800048",
"espn_id": 4619898,
"player_name": "Parker Messick",
"team": "CLE",
"role": "pitcher",
"espn_rank": 7,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 7,
"gp_value": 25.0,
"gp_rank": 265,
"gs_value": 25.0,
"gs_rank": 26,
"qs_value": 10.0,
"qs_rank": 48,
"era_value": 2.5369,
"era_rank": 6.0,
"w_value": 9.0,
"w_rank": 28,
"l_value": 8.0,
"l_rank": 36,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 149.0,
"ip_rank": 14,
"h_value": 113.0,
"h_rank": 74,
"er_value": 42.0,
"er_rank": 126,
"hr_value": 14.0,
"hr_rank": 85,
"bb_value": 40.0,
"bb_rank": 67,
"k_value": 152.0,
"k_rank": 19,
"k_per_9_value": 9.181209,
"k_per_9_rank": 36,
"whip_value": 1.0268,
"whip_rank": 7.0,
"war_value": 4.8,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9472,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.9472,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.8929,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0251,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"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."
}
],
"provenance": {
"prediction": "output/games/20260824_CLE@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"
}
} |
| 20260824 | 20260824_CLE@LAA | home | George Klassen | George Klassen | True | 4.1 | 5.1 | 3 | 2 | 2 | 0 | 4/6 | 2/3 | 3/3 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 3.738461538461538,
"WHIP": 1.6153846153846152,
"IP": 21.2,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 4.333,
"recent_avg_IP": 4.333,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1957,
"sample_weight": 0.45,
"run_prevention_factor": 1.0166,
"strikeout_factor": 1.0172,
"walk_factor": 1.0774,
"homer_factor": 1.0441,
"regression_flag": "negative_pitcher_regression",
"k_percent": 20.8,
"bb_percent": 17.8,
"woba": 0.319,
"xwoba": 0.35,
"barrel_percent": 9.8,
"hard_hit_percent": 41.0,
"whiff_percent": 33.3
},
"espn_rank": {
"rank": 282,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "691946",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 9.0,
"R": 10.0,
"H": 17.0,
"BB": 18.0,
"SO": 21.0,
"HR": 2.0,
"BF": 101.0,
"Pitches": 401.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 2.0,
"H": 3.4,
"BB": 3.6,
"SO": 4.2,
"HR": 0.4,
"BF": 20.2,
"Pitches": 80.2
},
"rates": {
"ERA": 3.7385,
"WHIP": 1.6154,
"ER_per_IP": 0.41538,
"H_per_IP": 0.78462,
"BB_per_IP": 0.83077,
"SO_per_IP": 0.96923,
"HR_per_IP": 0.09231
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 9.0,
"R": 10.0,
"H": 17.0,
"BB": 18.0,
"SO": 21.0,
"HR": 2.0,
"BF": 101.0,
"Pitches": 401.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 2.0,
"H": 3.4,
"BB": 3.6,
"SO": 4.2,
"HR": 0.4,
"BF": 20.2,
"Pitches": 80.2
},
"rates": {
"ERA": 3.7385,
"WHIP": 1.6154,
"ER_per_IP": 0.41538,
"H_per_IP": 0.78462,
"BB_per_IP": 0.83077,
"SO_per_IP": 0.96923,
"HR_per_IP": 0.09231
}
},
"season": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 9.0,
"R": 10.0,
"H": 17.0,
"BB": 18.0,
"SO": 21.0,
"HR": 2.0,
"BF": 101.0,
"Pitches": 401.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 2.0,
"H": 3.4,
"BB": 3.6,
"SO": 4.2,
"HR": 0.4,
"BF": 20.2,
"Pitches": 80.2
},
"rates": {
"ERA": 3.7385,
"WHIP": 1.6154,
"ER_per_IP": 0.41538,
"H_per_IP": 0.78462,
"BB_per_IP": 0.83077,
"SO_per_IP": 0.96923,
"HR_per_IP": 0.09231
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.064,
"predicted_H": 3.959,
"predicted_BB": 2.694,
"predicted_SO": 4.311,
"predicted_HR": 0.539,
"predicted_ERA": 4.1283,
"predicted_WHIP": 1.4784
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5613,
"form_weight": 0.4388,
"form_reliability": 0.5,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.064,
"final": 2.0281,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.959,
"final": 3.4208,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.694,
"final": 2.3045,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.311,
"final": 3.5752,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.539,
"final": 1.359,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1283,
"final": 4.1283,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4784,
"final": 1.4784,
"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": 21.2,
"ER": 9,
"H": 17,
"BB": 18,
"SO": 21,
"HR": 2,
"ERA": 3.738461538461538,
"WHIP": 1.6153846153846152,
"K9": 8.723076923076922,
"HR9": 0.8307692307692307,
"games_pitched": 5,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-08-18T00:00:00"
},
"recent_form_boost": 0.9519344321015246,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"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.1,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "691946",
"player_name": "George Klassen",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"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": 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": 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.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"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": 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": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"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.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_R": 2.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": 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": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"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.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 131,
"wins": 52,
"losses": 79,
"win_pct": 0.3969,
"runs_scored": 537.0,
"runs_allowed": 607.0,
"run_differential": -70.0,
"run_differential_per_game": -0.5344,
"avg_runs_scored": 4.0992,
"avg_runs_allowed": 4.6336,
"offense_index": 0.9154,
"defense_index": 0.9664,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 2.4,
"run_differential": 20.0
},
"available": true,
"quality_score": -0.1533
},
"opponent": {
"team": "CLE",
"games": 131,
"wins": 65,
"losses": 66,
"win_pct": 0.4962,
"runs_scored": 527.0,
"runs_allowed": 536.0,
"run_differential": -9.0,
"run_differential_per_game": -0.0687,
"avg_runs_scored": 4.0229,
"avg_runs_allowed": 4.0916,
"offense_index": 0.8984,
"defense_index": 1.0944,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 2.6,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.0233
},
"edges": {
"quality_edge": -0.1766,
"offense_edge": -0.0846,
"opponent_offense_edge": -0.1016,
"defense_strength": -0.0336,
"opponent_defense_weakness": -0.0944,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.996,
"run_prevention": 0.9959,
"strikeout": 1.0028
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "691946",
"profile": {
"available": true,
"pitcher_id": "691946",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 76.0,
"k_percent": 20.8,
"bb_percent": 17.8,
"woba": 0.319,
"xwoba": 0.35,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 41.0,
"avg_best_speed": 77.3977,
"avg_hyper_speed": 94.9026,
"whiff_percent": 33.3,
"swing_percent": 46.4
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.5847,
"command_and_miss": -0.1136,
"regression_edge": -0.8857,
"xwoba_edge": -1.1143,
"barrel_edge": -0.5778,
"hard_hit_edge": -0.4571,
"whiff_edge": 1.1429,
"bb_edge": -2.15,
"pitch_design_score": 0.1342
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "691946",
"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": 92.24205647578503,
"release_spin_rate": 2131.9984500472365,
"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": 92.24205647578503,
"release_spin_rate": 2131.9984500472365,
"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.2421,
"release_spin_rate": 2131.9985,
"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.1342,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.9586,
"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.1957,
"sample_weight": 0.45,
"run_prevention_factor": 1.0166,
"strikeout_factor": 1.0172,
"walk_factor": 1.0774,
"homer_factor": 1.0441,
"woba_minus_xwoba": -0.031,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "691946",
"espn_id": 5134517,
"player_name": "George Klassen",
"team": "LAA",
"role": "pitcher",
"espn_rank": 282,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 282,
"gp_value": 5.0,
"gp_rank": 597,
"gs_value": 5.0,
"gs_rank": 207,
"qs_value": 2.0,
"qs_rank": 152,
"era_value": 3.7384,
"era_rank": null,
"w_value": 2.0,
"w_rank": 292,
"l_value": 1.0,
"l_rank": 400,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 21.2,
"ip_rank": 470,
"h_value": 17.0,
"h_rank": 511,
"er_value": 9.0,
"er_rank": 520,
"hr_value": 2.0,
"hr_rank": 482,
"bb_value": 18.0,
"bb_rank": 296,
"k_value": 21.0,
"k_rank": 456,
"k_per_9_value": 8.723077,
"k_per_9_rank": 26,
"whip_value": 1.6153,
"whip_rank": null,
"war_value": 0.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0075,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0075,
"adjusted": 4
},
"predicted_BB": {
"original": 4.0,
"factor": 1.0348,
"adjusted": 4
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0198,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0077,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 75,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 5 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "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/20260824_CLE@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"
}
} |
| 20260824 | 20260824_COL@WAS | away | Ryan Feltner | Ryan Feltner | True | 4.2 | 5.2 | 3 | 4 | 5 | 1 | 4/6 | 0/4 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.967391304347826,
"WHIP": 1.5217391304347827,
"IP": 92.0,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 4.842,
"recent_avg_IP": 5.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5895,
"sample_weight": 1.0,
"run_prevention_factor": 1.0501,
"strikeout_factor": 0.9549,
"walk_factor": 1.008,
"homer_factor": 1.1171,
"regression_flag": "neutral",
"k_percent": 15.7,
"bb_percent": 9.6,
"woba": 0.376,
"xwoba": 0.358,
"barrel_percent": 11.2,
"hard_hit_percent": 38.8,
"whiff_percent": 23.8
},
"espn_rank": {
"rank": 238,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663372",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 21.0,
"R": 21.0,
"H": 36.0,
"BB": 11.0,
"SO": 14.0,
"HR": 5.0,
"BF": 123.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.1,
"ER": 4.2,
"R": 4.2,
"H": 7.2,
"BB": 2.2,
"SO": 2.8,
"HR": 1.0,
"BF": 24.6,
"Pitches": 87.2
},
"rates": {
"ERA": 7.1772,
"WHIP": 1.7848,
"ER_per_IP": 0.79747,
"H_per_IP": 1.36709,
"BB_per_IP": 0.41772,
"SO_per_IP": 0.53165,
"HR_per_IP": 0.18987
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 38.0,
"R": 40.0,
"H": 64.0,
"BB": 23.0,
"SO": 31.0,
"HR": 12.0,
"BF": 235.0,
"Pitches": 862.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 4.0,
"H": 6.4,
"BB": 2.3,
"SO": 3.1,
"HR": 1.2,
"BF": 23.5,
"Pitches": 86.2
},
"rates": {
"ERA": 6.7059,
"WHIP": 1.7059,
"ER_per_IP": 0.7451,
"H_per_IP": 1.2549,
"BB_per_IP": 0.45098,
"SO_per_IP": 0.60784,
"HR_per_IP": 0.23529
}
},
"season": {
"games": 19,
"totals": {
"IP": 92.0,
"ER": 61.0,
"R": 64.0,
"H": 101.0,
"BB": 39.0,
"SO": 64.0,
"HR": 19.0,
"BF": 408.0,
"Pitches": 1511.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2105,
"R": 3.3684,
"H": 5.3158,
"BB": 2.0526,
"SO": 3.3684,
"HR": 1.0,
"BF": 21.4737,
"Pitches": 79.5263
},
"rates": {
"ERA": 5.9674,
"WHIP": 1.5217,
"ER_per_IP": 0.66304,
"H_per_IP": 1.09783,
"BB_per_IP": 0.42391,
"SO_per_IP": 0.69565,
"HR_per_IP": 0.20652
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.584,
"predicted_H": 6.202,
"predicted_BB": 2.136,
"predicted_SO": 3.405,
"predicted_HR": 1.005,
"predicted_ERA": 6.3012,
"predicted_WHIP": 1.6289
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.584,
"final": 2.8902,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 6.202,
"final": 4.3615,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.136,
"final": 1.2004,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.405,
"final": 3.6656,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.005,
"final": 1.0028,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.3012,
"final": 6.3012,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6289,
"final": 1.6289,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.0,
"ER": 38,
"H": 64,
"BB": 23,
"SO": 31,
"HR": 12,
"ERA": 6.705882352941177,
"WHIP": 1.7058823529411764,
"K9": 5.470588235294118,
"HR9": 2.1176470588235294,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-18T00:00:00"
},
"recent_form_boost": 1.2681261826097787,
"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": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663372",
"player_name": "Ryan Feltner",
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 130,
"wins": 50,
"losses": 80,
"win_pct": 0.3846,
"runs_scored": 617.0,
"runs_allowed": 753.0,
"run_differential": -136.0,
"run_differential_per_game": -1.0462,
"avg_runs_scored": 4.7462,
"avg_runs_allowed": 5.7923,
"offense_index": 1.0588,
"defense_index": 0.7739,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 6.4,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.2965
},
"opponent": {
"team": "WAS",
"games": 132,
"wins": 61,
"losses": 71,
"win_pct": 0.4621,
"runs_scored": 682.0,
"runs_allowed": 672.0,
"run_differential": 10.0,
"run_differential_per_game": 0.0758,
"avg_runs_scored": 5.1667,
"avg_runs_allowed": 5.0909,
"offense_index": 1.1526,
"defense_index": 0.8805,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.7,
"avg_runs_allowed": 3.3,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.1279
},
"edges": {
"quality_edge": -0.1686,
"offense_edge": 0.0588,
"opponent_offense_edge": 0.1526,
"defense_strength": -0.2261,
"opponent_defense_weakness": 0.1195,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9804,
"run_prevention": 1.0555,
"strikeout": 0.9827
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663372",
"profile": {
"available": true,
"pitcher_id": "663372",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 382.0,
"k_percent": 15.7,
"bb_percent": 9.6,
"woba": 0.376,
"xwoba": 0.358,
"sweet_spot_percent": 32.2,
"barrel_batted_rate": 11.2,
"hard_hit_percent": 38.8,
"avg_best_speed": 75.6905,
"avg_hyper_speed": 93.7169,
"whiff_percent": 23.8,
"swing_percent": 48.3
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.9063,
"command_and_miss": -0.5064,
"regression_edge": 0.5143,
"xwoba_edge": -1.3429,
"barrel_edge": -0.8889,
"hard_hit_edge": -0.1429,
"whiff_edge": -0.2143,
"bb_edge": -0.1,
"pitch_design_score": -0.0216
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663372",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 89.46014709994553,
"release_spin_rate": 2337.685073262126,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 89.46014709994553,
"release_spin_rate": 2337.685073262126,
"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.4601,
"release_spin_rate": 2337.6851,
"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.0216,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1542,
"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.5895,
"sample_weight": 1.0,
"run_prevention_factor": 1.0501,
"strikeout_factor": 0.9549,
"walk_factor": 1.008,
"homer_factor": 1.1171,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663372",
"espn_id": 4019484,
"player_name": "Ryan Feltner",
"team": "COL",
"role": "pitcher",
"espn_rank": 238,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 238,
"gp_value": 19.0,
"gp_rank": 374,
"gs_value": 19.0,
"gs_rank": 96,
"qs_value": 5.0,
"qs_rank": 100,
"era_value": 5.9673,
"era_rank": null,
"w_value": 5.0,
"w_rank": 120,
"l_value": 7.0,
"l_rank": 68,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 92.0,
"ip_rank": 122,
"h_value": 102.0,
"h_rank": 91,
"er_value": 61.0,
"er_rank": 38,
"hr_value": 19.0,
"hr_rank": 28,
"bb_value": 39.0,
"bb_rank": 70,
"k_value": 64.0,
"k_rank": 178,
"k_per_9_value": 6.2608695,
"k_per_9_rank": 39,
"whip_value": 1.5326,
"whip_rank": null,
"war_value": 0.54,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0501,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0501,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.008,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1171,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9549,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260824_COL@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"
}
} |
| 20260824 | 20260824_COL@WAS | home | Cade Cavalli | Cade Cavalli | True | 6.0 | 6.0 | 0 | 0 | 2 | 2 | 2/5 | 0/1 | 7/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2172897196261685,
"WHIP": 1.2196261682242993,
"IP": 142.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.284,
"recent_avg_IP": 6.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.178,
"sample_weight": 1.0,
"run_prevention_factor": 0.9849,
"strikeout_factor": 1.0314,
"walk_factor": 0.956,
"homer_factor": 1.0119,
"regression_flag": "neutral",
"k_percent": 27.0,
"bb_percent": 7.0,
"woba": 0.302,
"xwoba": 0.303,
"barrel_percent": 7.1,
"hard_hit_percent": 41.4,
"whiff_percent": 25.9
},
"espn_rank": {
"rank": 38,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "676917",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 7.0,
"R": 9.0,
"H": 23.0,
"BB": 8.0,
"SO": 35.0,
"HR": 6.0,
"BF": 122.0,
"Pitches": 475.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.8,
"H": 4.6,
"BB": 1.6,
"SO": 7.0,
"HR": 1.2,
"BF": 24.4,
"Pitches": 95.0
},
"rates": {
"ERA": 1.9688,
"WHIP": 0.9688,
"ER_per_IP": 0.21875,
"H_per_IP": 0.71875,
"BB_per_IP": 0.25,
"SO_per_IP": 1.09375,
"HR_per_IP": 0.1875
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.1,
"ER": 14.0,
"R": 18.0,
"H": 42.0,
"BB": 13.0,
"SO": 73.0,
"HR": 8.0,
"BF": 226.0,
"Pitches": 908.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.8,
"H": 4.2,
"BB": 1.3,
"SO": 7.3,
"HR": 0.8,
"BF": 22.6,
"Pitches": 90.8
},
"rates": {
"ERA": 2.1236,
"WHIP": 0.927,
"ER_per_IP": 0.23596,
"H_per_IP": 0.70787,
"BB_per_IP": 0.2191,
"SO_per_IP": 1.23034,
"HR_per_IP": 0.13483
}
},
"season": {
"games": 27,
"totals": {
"IP": 142.2,
"ER": 51.0,
"R": 62.0,
"H": 132.0,
"BB": 42.0,
"SO": 162.0,
"HR": 15.0,
"BF": 600.0,
"Pitches": 2342.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8889,
"R": 2.2963,
"H": 4.8889,
"BB": 1.5556,
"SO": 6.0,
"HR": 0.5556,
"BF": 22.2222,
"Pitches": 86.7407
},
"rates": {
"ERA": 3.2173,
"WHIP": 1.2196,
"ER_per_IP": 0.35748,
"H_per_IP": 0.92523,
"BB_per_IP": 0.29439,
"SO_per_IP": 1.13551,
"HR_per_IP": 0.10514
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.753,
"predicted_H": 4.753,
"predicted_BB": 1.603,
"predicted_SO": 6.725,
"predicted_HR": 0.913,
"predicted_ERA": 2.6234,
"predicted_WHIP": 1.057
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.753,
"final": 1.0238,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.753,
"final": 3.6078,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.603,
"final": 0.9362,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.725,
"final": 6.0074,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.913,
"final": 0.5332,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6234,
"final": 2.6234,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.057,
"final": 1.057,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.1,
"ER": 14,
"H": 42,
"BB": 13,
"SO": 73,
"HR": 8,
"ERA": 2.1235955056179776,
"WHIP": 0.9269662921348314,
"K9": 11.073033707865168,
"HR9": 1.2134831460674156,
"games_pitched": 10,
"quality_starts": 9,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 0.7331460107657604,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 0.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
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676917",
"player_name": "Cade Cavalli",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 132,
"wins": 61,
"losses": 71,
"win_pct": 0.4621,
"runs_scored": 682.0,
"runs_allowed": 672.0,
"run_differential": 10.0,
"run_differential_per_game": 0.0758,
"avg_runs_scored": 5.1667,
"avg_runs_allowed": 5.0909,
"offense_index": 1.1526,
"defense_index": 0.8805,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.7,
"avg_runs_allowed": 3.3,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.1279
},
"opponent": {
"team": "COL",
"games": 130,
"wins": 50,
"losses": 80,
"win_pct": 0.3846,
"runs_scored": 617.0,
"runs_allowed": 753.0,
"run_differential": -136.0,
"run_differential_per_game": -1.0462,
"avg_runs_scored": 4.7462,
"avg_runs_allowed": 5.7923,
"offense_index": 1.0588,
"defense_index": 0.7739,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 6.4,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.2965
},
"edges": {
"quality_edge": 0.1686,
"offense_edge": 0.1526,
"opponent_offense_edge": 0.0588,
"defense_strength": -0.1195,
"opponent_defense_weakness": 0.2261,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0008,
"run_prevention": 1.0129,
"strikeout": 1.0004
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676917",
"profile": {
"available": true,
"pitcher_id": "676917",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 574.0,
"k_percent": 27.0,
"bb_percent": 7.0,
"woba": 0.302,
"xwoba": 0.303,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 41.4,
"avg_best_speed": 78.189,
"avg_hyper_speed": 94.3403,
"whiff_percent": 25.9,
"swing_percent": 47.6
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0976,
"command_and_miss": 0.455,
"regression_edge": -0.0286,
"xwoba_edge": 0.2286,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.5143,
"whiff_edge": 0.0857,
"bb_edge": 0.55,
"pitch_design_score": 0.0991
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676917",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 91.6146666671157,
"release_spin_rate": 2232.2971242981594,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 91.6146666671157,
"release_spin_rate": 2232.2971242981594,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.6147,
"release_spin_rate": 2232.2971,
"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.0991,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7076,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.178,
"sample_weight": 1.0,
"run_prevention_factor": 0.9849,
"strikeout_factor": 1.0314,
"walk_factor": 0.956,
"homer_factor": 1.0119,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676917",
"espn_id": 4308037,
"player_name": "Cade Cavalli",
"team": "WSH",
"role": "pitcher",
"espn_rank": 38,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 38,
"gp_value": 27.0,
"gp_rank": 220,
"gs_value": 27.0,
"gs_rank": 1,
"qs_value": 15.0,
"qs_rank": 12,
"era_value": 3.2172,
"era_rank": 16.0,
"w_value": 11.0,
"w_rank": 17,
"l_value": 5.0,
"l_rank": 121,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 142.2,
"ip_rank": 29,
"h_value": 132.0,
"h_rank": 23,
"er_value": 51.0,
"er_rank": 81,
"hr_value": 15.0,
"hr_rank": 68,
"bb_value": 42.0,
"bb_rank": 54,
"k_value": 162.0,
"k_rank": 11,
"k_per_9_value": 10.219626,
"k_per_9_rank": 10,
"whip_value": 1.2196,
"whip_rank": 33.0,
"war_value": 2.71,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9849,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9849,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.956,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0119,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0314,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260824_COL@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"
}
} |
| 20260824 | 20260824_MIN@OAK | away | Zebby Matthews | Zebby Matthews | True | 5.0 | 7.0 | 6 | 3 | 1 | -2 | 4/6 | 3/1 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.120689655172414,
"WHIP": 1.3344827586206895,
"IP": 96.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.686,
"recent_avg_IP": 5.333,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4071,
"sample_weight": 1.0,
"run_prevention_factor": 1.0346,
"strikeout_factor": 0.964,
"walk_factor": 0.968,
"homer_factor": 1.1242,
"regression_flag": "neutral",
"k_percent": 19.8,
"bb_percent": 7.6,
"woba": 0.343,
"xwoba": 0.332,
"barrel_percent": 11.6,
"hard_hit_percent": 42.7,
"whiff_percent": 21.3
},
"espn_rank": {
"rank": 279,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "805673",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 13.0,
"R": 16.0,
"H": 25.0,
"BB": 10.0,
"SO": 23.0,
"HR": 4.0,
"BF": 113.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 3.2,
"H": 5.0,
"BB": 2.0,
"SO": 4.6,
"HR": 0.8,
"BF": 22.6,
"Pitches": 92.0
},
"rates": {
"ERA": 4.3875,
"WHIP": 1.3125,
"ER_per_IP": 0.4875,
"H_per_IP": 0.9375,
"BB_per_IP": 0.375,
"SO_per_IP": 0.8625,
"HR_per_IP": 0.15
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 32.0,
"R": 37.0,
"H": 56.0,
"BB": 22.0,
"SO": 47.0,
"HR": 11.0,
"BF": 232.0,
"Pitches": 925.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.7,
"H": 5.6,
"BB": 2.2,
"SO": 4.7,
"HR": 1.1,
"BF": 23.2,
"Pitches": 92.5
},
"rates": {
"ERA": 5.4,
"WHIP": 1.4625,
"ER_per_IP": 0.6,
"H_per_IP": 1.05,
"BB_per_IP": 0.4125,
"SO_per_IP": 0.88125,
"HR_per_IP": 0.20625
}
},
"season": {
"games": 17,
"totals": {
"IP": 96.2,
"ER": 55.0,
"R": 60.0,
"H": 98.0,
"BB": 31.0,
"SO": 81.0,
"HR": 19.0,
"BF": 410.0,
"Pitches": 1570.0
},
"per_game": {
"IP": 5.2,
"ER": 3.2353,
"R": 3.5294,
"H": 5.7647,
"BB": 1.8235,
"SO": 4.7647,
"HR": 1.1176,
"BF": 24.1176,
"Pitches": 92.3529
},
"rates": {
"ERA": 5.1207,
"WHIP": 1.3345,
"ER_per_IP": 0.56897,
"H_per_IP": 1.01379,
"BB_per_IP": 0.32069,
"SO_per_IP": 0.83793,
"HR_per_IP": 0.19655
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.875,
"predicted_H": 5.321,
"predicted_BB": 2.019,
"predicted_SO": 4.754,
"predicted_HR": 0.925,
"predicted_ERA": 4.8043,
"predicted_WHIP": 1.3631
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.875,
"final": 2.9308,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.321,
"final": 4.7318,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.019,
"final": 2.4566,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.754,
"final": 4.4177,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.925,
"final": 0.5124,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8043,
"final": 4.8043,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3631,
"final": 1.3631,
"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": 32,
"H": 56,
"BB": 22,
"SO": 47,
"HR": 11,
"ERA": 5.3999999999999995,
"WHIP": 1.4625,
"K9": 7.9312499999999995,
"HR9": 1.85625,
"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-18T00:00:00"
},
"recent_form_boost": 1.115129859080367,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"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": 3.0,
"predicted_ER": 3.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 131,
"wins": 63,
"losses": 68,
"win_pct": 0.4809,
"runs_scored": 600.0,
"runs_allowed": 654.0,
"run_differential": -54.0,
"run_differential_per_game": -0.4122,
"avg_runs_scored": 4.5802,
"avg_runs_allowed": 4.9924,
"offense_index": 1.0228,
"defense_index": 0.897,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 5.6,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.1019
},
"opponent": {
"team": "OAK",
"games": 131,
"wins": 51,
"losses": 80,
"win_pct": 0.3893,
"runs_scored": 568.0,
"runs_allowed": 755.0,
"run_differential": -187.0,
"run_differential_per_game": -1.4275,
"avg_runs_scored": 4.3359,
"avg_runs_allowed": 5.7634,
"offense_index": 0.9683,
"defense_index": 0.777,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.1,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.3044
},
"edges": {
"quality_edge": 0.2025,
"offense_edge": 0.0228,
"opponent_offense_edge": -0.0317,
"defense_strength": -0.103,
"opponent_defense_weakness": 0.223,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.9951,
"strikeout": 1.0086
},
"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": 386.0,
"k_percent": 19.8,
"bb_percent": 7.6,
"woba": 0.343,
"xwoba": 0.332,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 11.6,
"hard_hit_percent": 42.7,
"avg_best_speed": 80.6443,
"avg_hyper_speed": 94.9108,
"whiff_percent": 21.3,
"swing_percent": 46.6
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6586,
"command_and_miss": -0.2679,
"regression_edge": 0.3143,
"xwoba_edge": -0.6,
"barrel_edge": -0.9778,
"hard_hit_edge": -0.7,
"whiff_edge": -0.5714,
"bb_edge": 0.4,
"pitch_design_score": -0.0009
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "805673",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.82883122218665,
"release_spin_rate": 2240.8029745219283,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.82883122218665,
"release_spin_rate": 2240.8029745219283,
"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.8288,
"release_spin_rate": 2240.803,
"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.0009,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0067,
"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.4071,
"sample_weight": 1.0,
"run_prevention_factor": 1.0346,
"strikeout_factor": 0.964,
"walk_factor": 0.968,
"homer_factor": 1.1242,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "805673",
"espn_id": 4791597,
"player_name": "Zebby Matthews",
"team": "MIN",
"role": "pitcher",
"espn_rank": 279,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 279,
"gp_value": 17.0,
"gp_rank": 403,
"gs_value": 17.0,
"gs_rank": 108,
"qs_value": 8.0,
"qs_rank": 67,
"era_value": 5.1206,
"era_rank": null,
"w_value": 7.0,
"w_rank": 72,
"l_value": 8.0,
"l_rank": 36,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 96.2,
"ip_rank": 110,
"h_value": 98.0,
"h_rank": 99,
"er_value": 55.0,
"er_rank": 63,
"hr_value": 19.0,
"hr_rank": 28,
"bb_value": 31.0,
"bb_rank": 131,
"k_value": 81.0,
"k_rank": 130,
"k_per_9_value": 7.5413795,
"k_per_9_rank": 31,
"whip_value": 1.3344,
"whip_rank": null,
"war_value": 0.37,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0346,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0346,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1242,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.964,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"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/20260824_MIN@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"
}
} |
| 20260824 | 20260824_MIN@OAK | home | Jeffrey Springs | Jeffrey Springs | True | 4.0 | 4.2 | 2 | 4 | 4 | 0 | 6/7 | 2/2 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.0175953079178885,
"WHIP": 1.4780058651026393,
"IP": 113.2,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 4.942,
"recent_avg_IP": 4.067,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4344,
"sample_weight": 1.0,
"run_prevention_factor": 1.0369,
"strikeout_factor": 0.9634,
"walk_factor": 1.002,
"homer_factor": 1.0584,
"regression_flag": "neutral",
"k_percent": 17.7,
"bb_percent": 9.3,
"woba": 0.37,
"xwoba": 0.344,
"barrel_percent": 9.7,
"hard_hit_percent": 35.3,
"whiff_percent": 23.3
},
"espn_rank": {
"rank": 700,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605488",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.1,
"ER": 16.0,
"R": 17.0,
"H": 25.0,
"BB": 14.0,
"SO": 9.0,
"HR": 5.0,
"BF": 97.0,
"Pitches": 377.0
},
"per_game": {
"IP": 4.0,
"ER": 3.2,
"R": 3.4,
"H": 5.0,
"BB": 2.8,
"SO": 1.8,
"HR": 1.0,
"BF": 19.4,
"Pitches": 75.4
},
"rates": {
"ERA": 7.082,
"WHIP": 1.918,
"ER_per_IP": 0.78689,
"H_per_IP": 1.22951,
"BB_per_IP": 0.68852,
"SO_per_IP": 0.44262,
"HR_per_IP": 0.2459
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.2,
"ER": 42.0,
"R": 45.0,
"H": 55.0,
"BB": 26.0,
"SO": 29.0,
"HR": 15.0,
"BF": 209.0,
"Pitches": 818.0
},
"per_game": {
"IP": 4.1,
"ER": 4.2,
"R": 4.5,
"H": 5.5,
"BB": 2.6,
"SO": 2.9,
"HR": 1.5,
"BF": 20.9,
"Pitches": 81.8
},
"rates": {
"ERA": 8.6565,
"WHIP": 1.855,
"ER_per_IP": 0.96183,
"H_per_IP": 1.25954,
"BB_per_IP": 0.59542,
"SO_per_IP": 0.66412,
"HR_per_IP": 0.34351
}
},
"season": {
"games": 23,
"totals": {
"IP": 113.2,
"ER": 76.0,
"R": 83.0,
"H": 121.0,
"BB": 47.0,
"SO": 89.0,
"HR": 29.0,
"BF": 504.0,
"Pitches": 1960.0
},
"per_game": {
"IP": 5.0,
"ER": 3.3043,
"R": 3.6087,
"H": 5.2609,
"BB": 2.0435,
"SO": 3.8696,
"HR": 1.2609,
"BF": 21.913,
"Pitches": 85.2174
},
"rates": {
"ERA": 6.0176,
"WHIP": 1.478,
"ER_per_IP": 0.66862,
"H_per_IP": 1.06452,
"BB_per_IP": 0.41349,
"SO_per_IP": 0.78299,
"HR_per_IP": 0.25513
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.358,
"predicted_H": 5.104,
"predicted_BB": 2.448,
"predicted_SO": 2.856,
"predicted_HR": 1.129,
"predicted_ERA": 6.9019,
"predicted_WHIP": 1.7246
}
},
"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": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.358,
"final": 2.7802,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.104,
"final": 4.6343,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.448,
"final": 2.2574,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.856,
"final": 4.1936,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.129,
"final": 1.0741,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.9019,
"final": 6.9019,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.7246,
"final": 1.7246,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.2,
"ER": 42,
"H": 55,
"BB": 26,
"SO": 29,
"HR": 15,
"ERA": 8.656488549618322,
"WHIP": 1.8549618320610688,
"K9": 5.977099236641222,
"HR9": 3.0916030534351147,
"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-19T00:00:00"
},
"recent_form_boost": 1.4261348101455824,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 6.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
}
},
{
"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": 2,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 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.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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.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": 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": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": 131,
"wins": 51,
"losses": 80,
"win_pct": 0.3893,
"runs_scored": 568.0,
"runs_allowed": 755.0,
"run_differential": -187.0,
"run_differential_per_game": -1.4275,
"avg_runs_scored": 4.3359,
"avg_runs_allowed": 5.7634,
"offense_index": 0.9683,
"defense_index": 0.777,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.1,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.3044
},
"opponent": {
"team": "MIN",
"games": 131,
"wins": 63,
"losses": 68,
"win_pct": 0.4809,
"runs_scored": 600.0,
"runs_allowed": 654.0,
"run_differential": -54.0,
"run_differential_per_game": -0.4122,
"avg_runs_scored": 4.5802,
"avg_runs_allowed": 4.9924,
"offense_index": 1.0228,
"defense_index": 0.897,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 5.6,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.1019
},
"edges": {
"quality_edge": -0.2025,
"offense_edge": -0.0317,
"opponent_offense_edge": 0.0228,
"defense_strength": -0.223,
"opponent_defense_weakness": 0.103,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9843,
"run_prevention": 1.0361,
"strikeout": 0.9921
},
"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": 470.0,
"k_percent": 17.7,
"bb_percent": 9.3,
"woba": 0.37,
"xwoba": 0.344,
"sweet_spot_percent": 37.0,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 35.3,
"avg_best_speed": 76.521,
"avg_hyper_speed": 93.5142,
"whiff_percent": 23.3,
"swing_percent": 46.2
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6968,
"command_and_miss": -0.3879,
"regression_edge": 0.7429,
"xwoba_edge": -0.9429,
"barrel_edge": -0.5556,
"hard_hit_edge": 0.3571,
"whiff_edge": -0.2857,
"bb_edge": -0.025,
"pitch_design_score": -0.2204
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605488",
"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": 85.90929812279681,
"release_spin_rate": 2006.840505280605,
"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": 85.90929812279681,
"release_spin_rate": 2006.840505280605,
"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.9093,
"release_spin_rate": 2006.8405,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2204,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5745,
"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.4344,
"sample_weight": 1.0,
"run_prevention_factor": 1.0369,
"strikeout_factor": 0.9634,
"walk_factor": 1.002,
"homer_factor": 1.0584,
"woba_minus_xwoba": 0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605488",
"espn_id": 35397,
"player_name": "Jeffrey Springs",
"team": "ATH",
"role": "pitcher",
"espn_rank": 700,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 700,
"gp_value": 23.0,
"gp_rank": 312,
"gs_value": 23.0,
"gs_rank": 60,
"qs_value": 4.0,
"qs_rank": 117,
"era_value": 6.0175,
"era_rank": null,
"w_value": 3.0,
"w_rank": 224,
"l_value": 11.0,
"l_rank": 5,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 113.2,
"ip_rank": 91,
"h_value": 121.0,
"h_rank": 52,
"er_value": 76.0,
"er_rank": 6,
"hr_value": 29.0,
"hr_rank": 4,
"bb_value": 47.0,
"bb_rank": 32,
"k_value": 89.0,
"k_rank": 107,
"k_per_9_value": 7.046921,
"k_per_9_rank": 31,
"whip_value": 1.478,
"whip_rank": null,
"war_value": -0.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0369,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0369,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.002,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0584,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9634,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 76,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260824_MIN@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"
}
} |
| 20260824 | 20260824_PHI@SEA | away | Zack Wheeler | Zack Wheeler | True | 5.0 | 4.0 | -3 | 2 | 8 | 6 | 5/9 | 2/5 | 9/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9168975069252077,
"WHIP": 1.005540166204986,
"IP": 120.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.73,
"recent_avg_IP": 4.067,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7911,
"sample_weight": 1.0,
"run_prevention_factor": 0.9328,
"strikeout_factor": 1.0783,
"walk_factor": 0.956,
"homer_factor": 0.9154,
"regression_flag": "neutral",
"k_percent": 30.4,
"bb_percent": 7.0,
"woba": 0.271,
"xwoba": 0.26,
"barrel_percent": 5.8,
"hard_hit_percent": 35.0,
"whiff_percent": 30.7
},
"espn_rank": {
"rank": 10,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 120.1,
"season_ERA": 2.917,
"season_WHIP": 1.006,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "554430",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.1,
"ER": 15.0,
"R": 16.0,
"H": 22.0,
"BB": 11.0,
"SO": 27.0,
"HR": 4.0,
"BF": 94.0,
"Pitches": 398.0
},
"per_game": {
"IP": 4.0,
"ER": 3.0,
"R": 3.2,
"H": 4.4,
"BB": 2.2,
"SO": 5.4,
"HR": 0.8,
"BF": 18.8,
"Pitches": 79.6
},
"rates": {
"ERA": 6.6393,
"WHIP": 1.623,
"ER_per_IP": 0.7377,
"H_per_IP": 1.08197,
"BB_per_IP": 0.54098,
"SO_per_IP": 1.32787,
"HR_per_IP": 0.19672
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 23.0,
"R": 24.0,
"H": 46.0,
"BB": 15.0,
"SO": 75.0,
"HR": 7.0,
"BF": 215.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.4,
"H": 4.6,
"BB": 1.5,
"SO": 7.5,
"HR": 0.7,
"BF": 21.5,
"Pitches": 89.3
},
"rates": {
"ERA": 3.9808,
"WHIP": 1.1731,
"ER_per_IP": 0.44231,
"H_per_IP": 0.88462,
"BB_per_IP": 0.28846,
"SO_per_IP": 1.44231,
"HR_per_IP": 0.13462
}
},
"season": {
"games": 21,
"totals": {
"IP": 120.1,
"ER": 39.0,
"R": 40.0,
"H": 88.0,
"BB": 33.0,
"SO": 144.0,
"HR": 15.0,
"BF": 474.0,
"Pitches": 1944.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8571,
"R": 1.9048,
"H": 4.1905,
"BB": 1.5714,
"SO": 6.8571,
"HR": 0.7143,
"BF": 22.5714,
"Pitches": 92.5714
},
"rates": {
"ERA": 2.9169,
"WHIP": 1.0055,
"ER_per_IP": 0.3241,
"H_per_IP": 0.7313,
"BB_per_IP": 0.27424,
"SO_per_IP": 1.19668,
"HR_per_IP": 0.12465
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.692,
"predicted_H": 4.713,
"predicted_BB": 1.952,
"predicted_SO": 6.287,
"predicted_HR": 0.785,
"predicted_ERA": 4.8785,
"predicted_WHIP": 1.3419
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.692,
"final": 2.3936,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.713,
"final": 4.8368,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.952,
"final": 1.9727,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 6.287,
"final": 7.457,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.785,
"final": 0.8777,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8785,
"final": 4.8785,
"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": 52.0,
"ER": 23,
"H": 46,
"BB": 15,
"SO": 75,
"HR": 7,
"ERA": 3.9807692307692313,
"WHIP": 1.1730769230769231,
"K9": 12.980769230769232,
"HR9": 1.2115384615384617,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-18T00:00:00"
},
"recent_form_boost": 0.9482308206188286,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 9.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 1
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 1
}
}
],
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"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": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"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": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 131,
"wins": 73,
"losses": 58,
"win_pct": 0.5573,
"runs_scored": 599.0,
"runs_allowed": 572.0,
"run_differential": 27.0,
"run_differential_per_game": 0.2061,
"avg_runs_scored": 4.5725,
"avg_runs_allowed": 4.3664,
"offense_index": 1.0211,
"defense_index": 1.0256,
"current_streak": "W9",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 6.5,
"avg_runs_allowed": 3.7,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.214
},
"opponent": {
"team": "SEA",
"games": 131,
"wins": 62,
"losses": 69,
"win_pct": 0.4733,
"runs_scored": 513.0,
"runs_allowed": 574.0,
"run_differential": -61.0,
"run_differential_per_game": -0.4656,
"avg_runs_scored": 3.916,
"avg_runs_allowed": 4.3817,
"offense_index": 0.8745,
"defense_index": 1.022,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 7.9,
"run_differential": -34.0
},
"available": true,
"quality_score": -0.0449
},
"edges": {
"quality_edge": 0.2589,
"offense_edge": 0.0211,
"opponent_offense_edge": -0.1255,
"defense_strength": 0.0256,
"opponent_defense_weakness": -0.022,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0161,
"run_prevention": 0.9644,
"strikeout": 1.0178
},
"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": 453.0,
"k_percent": 30.4,
"bb_percent": 7.0,
"woba": 0.271,
"xwoba": 0.26,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 5.8,
"hard_hit_percent": 35.0,
"avg_best_speed": 74.7776,
"avg_hyper_speed": 93.3727,
"whiff_percent": 30.7,
"swing_percent": 49.7
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.9309,
"command_and_miss": 0.9136,
"regression_edge": 0.3143,
"xwoba_edge": 1.4571,
"barrel_edge": 0.3111,
"hard_hit_edge": 0.4,
"whiff_edge": 0.7714,
"bb_edge": 0.55,
"pitch_design_score": 0.0106
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "554430",
"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": 90.03412581091493,
"release_spin_rate": 2369.939938552423,
"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": 90.03412581091493,
"release_spin_rate": 2369.939938552423,
"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.0341,
"release_spin_rate": 2369.9399,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0106,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0754,
"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.7911,
"sample_weight": 1.0,
"run_prevention_factor": 0.9328,
"strikeout_factor": 1.0783,
"walk_factor": 0.956,
"homer_factor": 0.9154,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "554430",
"espn_id": 31267,
"player_name": "Zack Wheeler",
"team": "PHI",
"role": "pitcher",
"espn_rank": 10,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 10,
"gp_value": 21.0,
"gp_rank": 347,
"gs_value": 21.0,
"gs_rank": 80,
"qs_value": 12.0,
"qs_rank": 24,
"era_value": 2.9168,
"era_rank": null,
"w_value": 10.0,
"w_rank": 22,
"l_value": 4.0,
"l_rank": 159,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 120.1,
"ip_rank": 78,
"h_value": 88.0,
"h_rank": 113,
"er_value": 39.0,
"er_rank": 136,
"hr_value": 15.0,
"hr_rank": 68,
"bb_value": 33.0,
"bb_rank": 113,
"k_value": 144.0,
"k_rank": 23,
"k_per_9_value": 10.770083,
"k_per_9_rank": 7,
"whip_value": 1.0055,
"whip_rank": null,
"war_value": 4.53,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9328,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9328,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.956,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9154,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0783,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 87,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was +6; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks 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/20260824_PHI@SEA.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"
}
} |
| 20260824 | 20260824_PHI@SEA | home | Logan Gilbert | Logan Gilbert | True | 6.0 | 5.0 | -3 | 3 | 2 | -1 | 8/5 | 4/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.352549889135255,
"WHIP": 1.0110864745011086,
"IP": 150.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 6.013,
"recent_avg_IP": 6.067,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1604,
"sample_weight": 1.0,
"run_prevention_factor": 0.9864,
"strikeout_factor": 1.0503,
"walk_factor": 0.94,
"homer_factor": 1.0633,
"regression_flag": "neutral",
"k_percent": 26.4,
"bb_percent": 6.2,
"woba": 0.283,
"xwoba": 0.298,
"barrel_percent": 10.1,
"hard_hit_percent": 41.8,
"whiff_percent": 29.8
},
"espn_rank": {
"rank": 19,
"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": "669302",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 11.0,
"R": 11.0,
"H": 22.0,
"BB": 12.0,
"SO": 28.0,
"HR": 5.0,
"BF": 122.0,
"Pitches": 479.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2,
"R": 2.2,
"H": 4.4,
"BB": 2.4,
"SO": 5.6,
"HR": 1.0,
"BF": 24.4,
"Pitches": 95.8
},
"rates": {
"ERA": 3.2637,
"WHIP": 1.1209,
"ER_per_IP": 0.36264,
"H_per_IP": 0.72527,
"BB_per_IP": 0.3956,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.16484
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.2,
"ER": 23.0,
"R": 23.0,
"H": 46.0,
"BB": 17.0,
"SO": 65.0,
"HR": 7.0,
"BF": 248.0,
"Pitches": 958.0
},
"per_game": {
"IP": 6.1,
"ER": 2.3,
"R": 2.3,
"H": 4.6,
"BB": 1.7,
"SO": 6.5,
"HR": 0.7,
"BF": 24.8,
"Pitches": 95.8
},
"rates": {
"ERA": 3.2513,
"WHIP": 0.9895,
"ER_per_IP": 0.36126,
"H_per_IP": 0.72251,
"BB_per_IP": 0.26702,
"SO_per_IP": 1.02094,
"HR_per_IP": 0.10995
}
},
"season": {
"games": 25,
"totals": {
"IP": 150.1,
"ER": 56.0,
"R": 56.0,
"H": 115.0,
"BB": 37.0,
"SO": 157.0,
"HR": 20.0,
"BF": 594.0,
"Pitches": 2357.0
},
"per_game": {
"IP": 6.0,
"ER": 2.24,
"R": 2.24,
"H": 4.6,
"BB": 1.48,
"SO": 6.28,
"HR": 0.8,
"BF": 23.76,
"Pitches": 94.28
},
"rates": {
"ERA": 3.3525,
"WHIP": 1.0111,
"ER_per_IP": 0.37251,
"H_per_IP": 0.76497,
"BB_per_IP": 0.24612,
"SO_per_IP": 1.04435,
"HR_per_IP": 0.13304
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.36,
"predicted_H": 4.711,
"predicted_BB": 2.002,
"predicted_SO": 5.95,
"predicted_HR": 0.857,
"predicted_ERA": 3.484,
"predicted_WHIP": 1.101
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.36,
"final": 3.4699,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 4.711,
"final": 6.0938,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.002,
"final": 2.842,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.95,
"final": 5.1302,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.857,
"final": 0.9171,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.484,
"final": 3.484,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.101,
"final": 1.101,
"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": 63.2,
"ER": 23,
"H": 46,
"BB": 17,
"SO": 65,
"HR": 7,
"ERA": 3.25130890052356,
"WHIP": 0.9895287958115182,
"K9": 9.18848167539267,
"HR9": 0.9895287958115182,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 0.8615778302845556,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 5.0,
"predicted_H": 8.0,
"predicted_BB": 4.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
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"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": 4.0,
"predicted_ER": 5.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 131,
"wins": 62,
"losses": 69,
"win_pct": 0.4733,
"runs_scored": 513.0,
"runs_allowed": 574.0,
"run_differential": -61.0,
"run_differential_per_game": -0.4656,
"avg_runs_scored": 3.916,
"avg_runs_allowed": 4.3817,
"offense_index": 0.8745,
"defense_index": 1.022,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 7.9,
"run_differential": -34.0
},
"available": true,
"quality_score": -0.0449
},
"opponent": {
"team": "PHI",
"games": 131,
"wins": 73,
"losses": 58,
"win_pct": 0.5573,
"runs_scored": 599.0,
"runs_allowed": 572.0,
"run_differential": 27.0,
"run_differential_per_game": 0.2061,
"avg_runs_scored": 4.5725,
"avg_runs_allowed": 4.3664,
"offense_index": 1.0211,
"defense_index": 1.0256,
"current_streak": "W9",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 6.5,
"avg_runs_allowed": 3.7,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.214
},
"edges": {
"quality_edge": -0.2589,
"offense_edge": -0.1255,
"opponent_offense_edge": 0.0211,
"defense_strength": 0.022,
"opponent_defense_weakness": -0.0256,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9895,
"run_prevention": 1.0141,
"strikeout": 0.9905
},
"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": 567.0,
"k_percent": 26.4,
"bb_percent": 6.2,
"woba": 0.283,
"xwoba": 0.298,
"sweet_spot_percent": 36.7,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 41.8,
"avg_best_speed": 79.4303,
"avg_hyper_speed": 94.4636,
"whiff_percent": 29.8,
"swing_percent": 50.2
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0631,
"command_and_miss": 0.6514,
"regression_edge": -0.4286,
"xwoba_edge": 0.3714,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.5714,
"whiff_edge": 0.6429,
"bb_edge": 0.75,
"pitch_design_score": -0.0185
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669302",
"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": 89.51467279604242,
"release_spin_rate": 1931.4983267194737,
"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": 89.51467279604242,
"release_spin_rate": 1931.4983267194737,
"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.5147,
"release_spin_rate": 1931.4983,
"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.0185,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1324,
"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.1604,
"sample_weight": 1.0,
"run_prevention_factor": 0.9864,
"strikeout_factor": 1.0503,
"walk_factor": 0.94,
"homer_factor": 1.0633,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669302",
"espn_id": 41221,
"player_name": "Logan Gilbert",
"team": "SEA",
"role": "pitcher",
"espn_rank": 19,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 19,
"gp_value": 25.0,
"gp_rank": 265,
"gs_value": 25.0,
"gs_rank": 26,
"qs_value": 12.0,
"qs_rank": 24,
"era_value": 3.3525,
"era_rank": 20.0,
"w_value": 10.0,
"w_rank": 22,
"l_value": 7.0,
"l_rank": 68,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 150.1,
"ip_rank": 11,
"h_value": 115.0,
"h_rank": 67,
"er_value": 56.0,
"er_rank": 57,
"hr_value": 20.0,
"hr_rank": 25,
"bb_value": 37.0,
"bb_rank": 80,
"k_value": 157.0,
"k_rank": 17,
"k_per_9_value": 9.399114,
"k_per_9_rank": 41,
"whip_value": 1.011,
"whip_rank": 6.0,
"war_value": 3.26,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9864,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9864,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.94,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0633,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0503,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 30,
"Pitches": 116,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260824_PHI@SEA.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"
}
} |
| 20260824 | 20260824_PIT@SD | away | Braxton Ashcraft | Braxton Ashcraft | True | 6.1 | 6.0 | -1 | 3 | 1 | -2 | 5/4 | 4/1 | 8/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.736607142857143,
"WHIP": 1.0848214285714286,
"IP": 149.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.973,
"recent_avg_IP": 6.6,
"last_start_IP": 8.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3568,
"sample_weight": 1.0,
"run_prevention_factor": 0.9697,
"strikeout_factor": 1.0274,
"walk_factor": 0.926,
"homer_factor": 0.9894,
"regression_flag": "neutral",
"k_percent": 26.4,
"bb_percent": 5.5,
"woba": 0.292,
"xwoba": 0.285,
"barrel_percent": 6.7,
"hard_hit_percent": 41.4,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 26,
"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": "677952",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 11.0,
"R": 11.0,
"H": 21.0,
"BB": 5.0,
"SO": 29.0,
"HR": 5.0,
"BF": 121.0,
"Pitches": 409.0
},
"per_game": {
"IP": 6.2,
"ER": 2.2,
"R": 2.2,
"H": 4.2,
"BB": 1.0,
"SO": 5.8,
"HR": 1.0,
"BF": 24.2,
"Pitches": 81.8
},
"rates": {
"ERA": 3.0,
"WHIP": 0.7879,
"ER_per_IP": 0.33333,
"H_per_IP": 0.63636,
"BB_per_IP": 0.15152,
"SO_per_IP": 0.87879,
"HR_per_IP": 0.15152
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.2,
"ER": 30.0,
"R": 31.0,
"H": 51.0,
"BB": 11.0,
"SO": 62.0,
"HR": 13.0,
"BF": 233.0,
"Pitches": 858.0
},
"per_game": {
"IP": 6.0,
"ER": 3.0,
"R": 3.1,
"H": 5.1,
"BB": 1.1,
"SO": 6.2,
"HR": 1.3,
"BF": 23.3,
"Pitches": 85.8
},
"rates": {
"ERA": 4.6023,
"WHIP": 1.0568,
"ER_per_IP": 0.51136,
"H_per_IP": 0.86932,
"BB_per_IP": 0.1875,
"SO_per_IP": 1.05682,
"HR_per_IP": 0.22159
}
},
"season": {
"games": 25,
"totals": {
"IP": 149.1,
"ER": 62.0,
"R": 67.0,
"H": 129.0,
"BB": 33.0,
"SO": 159.0,
"HR": 21.0,
"BF": 602.0,
"Pitches": 2184.0
},
"per_game": {
"IP": 6.0,
"ER": 2.48,
"R": 2.68,
"H": 5.16,
"BB": 1.32,
"SO": 6.36,
"HR": 0.84,
"BF": 24.08,
"Pitches": 87.36
},
"rates": {
"ERA": 3.7366,
"WHIP": 1.0848,
"ER_per_IP": 0.41518,
"H_per_IP": 0.86384,
"BB_per_IP": 0.22098,
"SO_per_IP": 1.06473,
"HR_per_IP": 0.14062
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.693,
"predicted_H": 5.036,
"predicted_BB": 1.321,
"predicted_SO": 6.136,
"predicted_HR": 1.068,
"predicted_ERA": 3.8431,
"predicted_WHIP": 1.0081
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.693,
"final": 3.2425,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.036,
"final": 5.0209,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.321,
"final": 2.4473,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 6.136,
"final": 6.4993,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.068,
"final": 1.0394,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8431,
"final": 3.8431,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0081,
"final": 1.0081,
"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": 51,
"BB": 11,
"SO": 62,
"HR": 13,
"ERA": 4.602272727272727,
"WHIP": 1.0568181818181817,
"K9": 9.511363636363635,
"HR9": 1.9943181818181817,
"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-18T00:00:00"
},
"recent_form_boost": 1.0152434954440033,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 7.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
}
},
{
"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": 3,
"predicted_H": 5,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"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": 4.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"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": "PIT",
"games": 132,
"wins": 63,
"losses": 69,
"win_pct": 0.4773,
"runs_scored": 653.0,
"runs_allowed": 628.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1894,
"avg_runs_scored": 4.947,
"avg_runs_allowed": 4.7576,
"offense_index": 1.1047,
"defense_index": 0.9412,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.7,
"run_differential": 12.0
},
"available": true,
"quality_score": 0.004
},
"opponent": {
"team": "SD",
"games": 131,
"wins": 71,
"losses": 60,
"win_pct": 0.542,
"runs_scored": 564.0,
"runs_allowed": 548.0,
"run_differential": 16.0,
"run_differential_per_game": 0.1221,
"avg_runs_scored": 4.3053,
"avg_runs_allowed": 4.1832,
"offense_index": 0.9614,
"defense_index": 1.0705,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.0,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.1207
},
"edges": {
"quality_edge": -0.1167,
"offense_edge": 0.1047,
"opponent_offense_edge": -0.0386,
"defense_strength": -0.0588,
"opponent_defense_weakness": -0.0705,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9951,
"run_prevention": 1.0055,
"strikeout": 0.9996
},
"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": 571.0,
"k_percent": 26.4,
"bb_percent": 5.5,
"woba": 0.292,
"xwoba": 0.285,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 41.4,
"avg_best_speed": 79.073,
"avg_hyper_speed": 94.425,
"whiff_percent": 25.8,
"swing_percent": 52.2
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3549,
"command_and_miss": 0.4864,
"regression_edge": 0.2,
"xwoba_edge": 0.7429,
"barrel_edge": 0.1111,
"hard_hit_edge": -0.5143,
"whiff_edge": 0.0714,
"bb_edge": 0.925,
"pitch_design_score": 0.1447
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677952",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 80,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 92.4297135756092,
"release_spin_rate": 2476.156103232497,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 92.4297135756092,
"release_spin_rate": 2476.156103232497,
"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.4297,
"release_spin_rate": 2476.1561,
"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.1447,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0336,
"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.3568,
"sample_weight": 1.0,
"run_prevention_factor": 0.9697,
"strikeout_factor": 1.0274,
"walk_factor": 0.926,
"homer_factor": 0.9894,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677952",
"espn_id": 41282,
"player_name": "Braxton Ashcraft",
"team": "PIT",
"role": "pitcher",
"espn_rank": 26,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 26,
"gp_value": 25.0,
"gp_rank": 265,
"gs_value": 25.0,
"gs_rank": 26,
"qs_value": 12.0,
"qs_rank": 24,
"era_value": 3.6763,
"era_rank": 31.0,
"w_value": 13.0,
"w_rank": 5,
"l_value": 5.0,
"l_rank": 121,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 149.1,
"ip_rank": 12,
"h_value": 128.0,
"h_rank": 32,
"er_value": 61.0,
"er_rank": 38,
"hr_value": 21.0,
"hr_rank": 20,
"bb_value": 33.0,
"bb_rank": 113,
"k_value": 159.0,
"k_rank": 13,
"k_per_9_value": 9.582589,
"k_per_9_rank": 29,
"whip_value": 1.0781,
"whip_rank": 11.0,
"war_value": 3.02,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9697,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9697,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.926,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9894,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0274,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 123,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260824_PIT@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260824 | 20260824_PIT@SD | home | Robbie Ray | Robbie Ray | True | 5.2 | 5.1 | -1 | 3 | 2 | -1 | 5/5 | 2/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.203389830508475,
"WHIP": 1.3147699757869251,
"IP": 137.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.472,
"recent_avg_IP": 5.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2648,
"sample_weight": 1.0,
"run_prevention_factor": 1.0225,
"strikeout_factor": 0.9863,
"walk_factor": 1.052,
"homer_factor": 1.045,
"regression_flag": "neutral",
"k_percent": 20.2,
"bb_percent": 11.8,
"woba": 0.31,
"xwoba": 0.329,
"barrel_percent": 8.7,
"hard_hit_percent": 38.3,
"whiff_percent": 24.8
},
"espn_rank": {
"rank": 55,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 137.2,
"season_ERA": 3.203,
"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": 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": "592662",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 8.0,
"R": 8.0,
"H": 22.0,
"BB": 14.0,
"SO": 21.0,
"HR": 3.0,
"BF": 113.0,
"Pitches": 433.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.6,
"H": 4.4,
"BB": 2.8,
"SO": 4.2,
"HR": 0.6,
"BF": 22.6,
"Pitches": 86.6
},
"rates": {
"ERA": 2.6667,
"WHIP": 1.3333,
"ER_per_IP": 0.2963,
"H_per_IP": 0.81481,
"BB_per_IP": 0.51852,
"SO_per_IP": 0.77778,
"HR_per_IP": 0.11111
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 13.0,
"R": 17.0,
"H": 45.0,
"BB": 30.0,
"SO": 43.0,
"HR": 4.0,
"BF": 241.0,
"Pitches": 904.0
},
"per_game": {
"IP": 5.2,
"ER": 1.3,
"R": 1.7,
"H": 4.5,
"BB": 3.0,
"SO": 4.3,
"HR": 0.4,
"BF": 24.1,
"Pitches": 90.4
},
"rates": {
"ERA": 2.0172,
"WHIP": 1.2931,
"ER_per_IP": 0.22414,
"H_per_IP": 0.77586,
"BB_per_IP": 0.51724,
"SO_per_IP": 0.74138,
"HR_per_IP": 0.06897
}
},
"season": {
"games": 25,
"totals": {
"IP": 137.2,
"ER": 49.0,
"R": 57.0,
"H": 113.0,
"BB": 68.0,
"SO": 117.0,
"HR": 18.0,
"BF": 578.0,
"Pitches": 2328.0
},
"per_game": {
"IP": 5.2,
"ER": 1.96,
"R": 2.28,
"H": 4.52,
"BB": 2.72,
"SO": 4.68,
"HR": 0.72,
"BF": 23.12,
"Pitches": 93.12
},
"rates": {
"ERA": 3.2034,
"WHIP": 1.3148,
"ER_per_IP": 0.35593,
"H_per_IP": 0.82082,
"BB_per_IP": 0.49395,
"SO_per_IP": 0.84988,
"HR_per_IP": 0.13075
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.77,
"predicted_H": 4.606,
"predicted_BB": 2.708,
"predicted_SO": 4.474,
"predicted_HR": 0.599,
"predicted_ERA": 2.8753,
"predicted_WHIP": 1.3199
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.77,
"final": 2.2871,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.606,
"final": 4.7716,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.708,
"final": 2.4103,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.474,
"final": 5.1156,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.599,
"final": 0.3472,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8753,
"final": 2.8753,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3199,
"final": 1.3199,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.0,
"ER": 13,
"H": 45,
"BB": 30,
"SO": 43,
"HR": 4,
"ERA": 2.0172413793103448,
"WHIP": 1.293103448275862,
"K9": 6.672413793103448,
"HR9": 0.6206896551724138,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-18T00:00:00"
},
"recent_form_boost": 0.7303346004596774,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"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": 5,
"predicted_BB": 2,
"predicted_SO": 6,
"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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.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": 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.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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.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": 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.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": 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.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": "SD",
"games": 131,
"wins": 71,
"losses": 60,
"win_pct": 0.542,
"runs_scored": 564.0,
"runs_allowed": 548.0,
"run_differential": 16.0,
"run_differential_per_game": 0.1221,
"avg_runs_scored": 4.3053,
"avg_runs_allowed": 4.1832,
"offense_index": 0.9614,
"defense_index": 1.0705,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.0,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.1207
},
"opponent": {
"team": "PIT",
"games": 132,
"wins": 63,
"losses": 69,
"win_pct": 0.4773,
"runs_scored": 653.0,
"runs_allowed": 628.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1894,
"avg_runs_scored": 4.947,
"avg_runs_allowed": 4.7576,
"offense_index": 1.1047,
"defense_index": 0.9412,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.7,
"run_differential": 12.0
},
"available": true,
"quality_score": 0.004
},
"edges": {
"quality_edge": 0.1167,
"offense_edge": -0.0386,
"opponent_offense_edge": 0.1047,
"defense_strength": 0.0705,
"opponent_defense_weakness": 0.0588,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0026,
"run_prevention": 1.0039,
"strikeout": 0.9951
},
"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": 527.0,
"k_percent": 20.2,
"bb_percent": 11.8,
"woba": 0.31,
"xwoba": 0.329,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 8.7,
"hard_hit_percent": 38.3,
"avg_best_speed": 78.5489,
"avg_hyper_speed": 94.0713,
"whiff_percent": 24.8,
"swing_percent": 47.2
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.2369,
"command_and_miss": -0.2771,
"regression_edge": -0.5429,
"xwoba_edge": -0.5143,
"barrel_edge": -0.3333,
"hard_hit_edge": -0.0714,
"whiff_edge": -0.0714,
"bb_edge": -0.65,
"pitch_design_score": -0.0729
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592662",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 88.54415307196537,
"release_spin_rate": 2137.0276995025624,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 88.54415307196537,
"release_spin_rate": 2137.0276995025624,
"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.5442,
"release_spin_rate": 2137.0277,
"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.0729,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5206,
"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.2648,
"sample_weight": 1.0,
"run_prevention_factor": 1.0225,
"strikeout_factor": 0.9863,
"walk_factor": 1.052,
"homer_factor": 1.045,
"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": 55,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 55,
"gp_value": 25.0,
"gp_rank": 265,
"gs_value": 24.0,
"gs_rank": 40,
"qs_value": 10.0,
"qs_rank": 48,
"era_value": 3.2033,
"era_rank": 14.0,
"w_value": 11.0,
"w_rank": 17,
"l_value": 7.0,
"l_rank": 68,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 137.2,
"ip_rank": 38,
"h_value": 113.0,
"h_rank": 74,
"er_value": 49.0,
"er_rank": 88,
"hr_value": 18.0,
"hr_rank": 36,
"bb_value": 68.0,
"bb_rank": 1,
"k_value": 117.0,
"k_rank": 55,
"k_per_9_value": 7.6489105,
"k_per_9_rank": 39,
"whip_value": 1.3147,
"whip_rank": 45.0,
"war_value": 2.24,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0225,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0225,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.052,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.045,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9863,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260824_PIT@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260824 | 20260824_TB@DET | away | Drew Rasmussen | Drew Rasmussen | True | 6.0 | 6.0 | 0 | 3 | 1 | -2 | 4/3 | 2/0 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0148883374689825,
"WHIP": 0.945409429280397,
"IP": 134.1,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.597,
"recent_avg_IP": 6.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5287,
"sample_weight": 1.0,
"run_prevention_factor": 0.9551,
"strikeout_factor": 1.0211,
"walk_factor": 0.91,
"homer_factor": 0.9216,
"regression_flag": "neutral",
"k_percent": 26.1,
"bb_percent": 4.7,
"woba": 0.255,
"xwoba": 0.275,
"barrel_percent": 6.1,
"hard_hit_percent": 32.9,
"whiff_percent": 25.0
},
"espn_rank": {
"rank": 27,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 134.1,
"season_ERA": 3.015,
"season_WHIP": 0.945,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656876",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 7.0,
"R": 7.0,
"H": 18.0,
"BB": 7.0,
"SO": 35.0,
"HR": 1.0,
"BF": 114.0,
"Pitches": 444.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 3.6,
"BB": 1.4,
"SO": 7.0,
"HR": 0.2,
"BF": 22.8,
"Pitches": 88.8
},
"rates": {
"ERA": 2.1,
"WHIP": 0.8333,
"ER_per_IP": 0.23333,
"H_per_IP": 0.6,
"BB_per_IP": 0.23333,
"SO_per_IP": 1.16667,
"HR_per_IP": 0.03333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 22.0,
"R": 22.0,
"H": 45.0,
"BB": 12.0,
"SO": 54.0,
"HR": 4.0,
"BF": 221.0,
"Pitches": 864.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.2,
"H": 4.5,
"BB": 1.2,
"SO": 5.4,
"HR": 0.4,
"BF": 22.1,
"Pitches": 86.4
},
"rates": {
"ERA": 3.6442,
"WHIP": 1.0491,
"ER_per_IP": 0.40491,
"H_per_IP": 0.82822,
"BB_per_IP": 0.22086,
"SO_per_IP": 0.99387,
"HR_per_IP": 0.07362
}
},
"season": {
"games": 24,
"totals": {
"IP": 134.1,
"ER": 45.0,
"R": 47.0,
"H": 102.0,
"BB": 25.0,
"SO": 138.0,
"HR": 13.0,
"BF": 529.0,
"Pitches": 2081.0
},
"per_game": {
"IP": 5.2,
"ER": 1.875,
"R": 1.9583,
"H": 4.25,
"BB": 1.0417,
"SO": 5.75,
"HR": 0.5417,
"BF": 22.0417,
"Pitches": 86.7083
},
"rates": {
"ERA": 3.0149,
"WHIP": 0.9454,
"ER_per_IP": 0.33499,
"H_per_IP": 0.75931,
"BB_per_IP": 0.1861,
"SO_per_IP": 1.0273,
"HR_per_IP": 0.09677
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.991,
"predicted_H": 4.355,
"predicted_BB": 1.409,
"predicted_SO": 6.072,
"predicted_HR": 0.432,
"predicted_ERA": 3.1156,
"predicted_WHIP": 1.002
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.991,
"final": 2.8405,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.355,
"final": 4.2049,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.409,
"final": 1.6589,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.072,
"final": 5.6187,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.432,
"final": 0.2493,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1156,
"final": 3.1156,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.002,
"final": 1.002,
"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": 22,
"H": 45,
"BB": 12,
"SO": 54,
"HR": 4,
"ERA": 3.644171779141104,
"WHIP": 1.049079754601227,
"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-19T00:00:00"
},
"recent_form_boost": 0.907263678098772,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"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": 4.0,
"predicted_H": 4.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": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.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": 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": 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": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"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": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.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": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"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": "TB",
"games": 130,
"wins": 77,
"losses": 53,
"win_pct": 0.5923,
"runs_scored": 587.0,
"runs_allowed": 543.0,
"run_differential": 44.0,
"run_differential_per_game": 0.3385,
"avg_runs_scored": 4.5154,
"avg_runs_allowed": 4.1769,
"offense_index": 1.0073,
"defense_index": 1.0732,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.6,
"run_differential": -18.0
},
"available": true,
"quality_score": 0.05
},
"opponent": {
"team": "DET",
"games": 130,
"wins": 61,
"losses": 69,
"win_pct": 0.4692,
"runs_scored": 587.0,
"runs_allowed": 514.0,
"run_differential": 73.0,
"run_differential_per_game": 0.5615,
"avg_runs_scored": 4.5154,
"avg_runs_allowed": 3.9538,
"offense_index": 1.0073,
"defense_index": 1.1337,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.2,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.0623
},
"edges": {
"quality_edge": 0.1123,
"offense_edge": 0.0073,
"opponent_offense_edge": 0.0073,
"defense_strength": 0.0732,
"opponent_defense_weakness": -0.1337,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0064,
"run_prevention": 0.9882,
"strikeout": 1.0028
},
"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": 506.0,
"k_percent": 26.1,
"bb_percent": 4.7,
"woba": 0.255,
"xwoba": 0.275,
"sweet_spot_percent": 32.0,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 32.9,
"avg_best_speed": 77.3167,
"avg_hyper_speed": 93.4458,
"whiff_percent": 25.0,
"swing_percent": 50.5
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.8086,
"command_and_miss": 0.4671,
"regression_edge": -0.5714,
"xwoba_edge": 1.0286,
"barrel_edge": 0.2444,
"hard_hit_edge": 0.7,
"whiff_edge": -0.0429,
"bb_edge": 1.125,
"pitch_design_score": 0.1443
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656876",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 92.42280170554073,
"release_spin_rate": 2377.6035288978974,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 92.42280170554073,
"release_spin_rate": 2377.6035288978974,
"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.4228,
"release_spin_rate": 2377.6035,
"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.1443,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0309,
"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.5287,
"sample_weight": 1.0,
"run_prevention_factor": 0.9551,
"strikeout_factor": 1.0211,
"walk_factor": 0.91,
"homer_factor": 0.9216,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656876",
"espn_id": 42584,
"player_name": "Drew Rasmussen",
"team": "TB",
"role": "pitcher",
"espn_rank": 27,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 27,
"gp_value": 24.0,
"gp_rank": 292,
"gs_value": 24.0,
"gs_rank": 40,
"qs_value": 13.0,
"qs_rank": 18,
"era_value": 3.0148,
"era_rank": 12.0,
"w_value": 13.0,
"w_rank": 5,
"l_value": 5.0,
"l_rank": 121,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 134.1,
"ip_rank": 48,
"h_value": 102.0,
"h_rank": 91,
"er_value": 45.0,
"er_rank": 107,
"hr_value": 13.0,
"hr_rank": 102,
"bb_value": 25.0,
"bb_rank": 195,
"k_value": 138.0,
"k_rank": 29,
"k_per_9_value": 9.245657,
"k_per_9_rank": 16,
"whip_value": 0.9454,
"whip_rank": 3.0,
"war_value": 2.99,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9551,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9551,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.91,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9216,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0211,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260824_TB@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"
}
} |
| 20260824 | 20260824_TB@DET | home | Framber Valdez | Framber Valdez | True | 6.0 | 6.0 | 0 | 1 | 3 | 2 | 4/8 | 2/2 | 2/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.3485576923076925,
"WHIP": 1.3990384615384617,
"IP": 138.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.547,
"recent_avg_IP": 6.067,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2577,
"sample_weight": 1.0,
"run_prevention_factor": 1.0219,
"strikeout_factor": 0.9503,
"walk_factor": 0.992,
"homer_factor": 1.0271,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 8.8,
"woba": 0.32,
"xwoba": 0.324,
"barrel_percent": 6.2,
"hard_hit_percent": 43.7,
"whiff_percent": 20.6
},
"espn_rank": {
"rank": 151,
"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": "664285",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 12.0,
"R": 14.0,
"H": 29.0,
"BB": 16.0,
"SO": 23.0,
"HR": 2.0,
"BF": 134.0,
"Pitches": 481.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.8,
"H": 5.8,
"BB": 3.2,
"SO": 4.6,
"HR": 0.4,
"BF": 26.8,
"Pitches": 96.2
},
"rates": {
"ERA": 3.5604,
"WHIP": 1.4835,
"ER_per_IP": 0.3956,
"H_per_IP": 0.95604,
"BB_per_IP": 0.52747,
"SO_per_IP": 0.75824,
"HR_per_IP": 0.06593
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 29.0,
"R": 31.0,
"H": 59.0,
"BB": 22.0,
"SO": 44.0,
"HR": 4.0,
"BF": 246.0,
"Pitches": 879.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9,
"R": 3.1,
"H": 5.9,
"BB": 2.2,
"SO": 4.4,
"HR": 0.4,
"BF": 24.6,
"Pitches": 87.9
},
"rates": {
"ERA": 4.7455,
"WHIP": 1.4727,
"ER_per_IP": 0.52727,
"H_per_IP": 1.07273,
"BB_per_IP": 0.4,
"SO_per_IP": 0.8,
"HR_per_IP": 0.07273
}
},
"season": {
"games": 25,
"totals": {
"IP": 138.2,
"ER": 67.0,
"R": 74.0,
"H": 140.0,
"BB": 54.0,
"SO": 111.0,
"HR": 13.0,
"BF": 613.0,
"Pitches": 2218.0
},
"per_game": {
"IP": 5.2,
"ER": 2.68,
"R": 2.96,
"H": 5.6,
"BB": 2.16,
"SO": 4.44,
"HR": 0.52,
"BF": 24.52,
"Pitches": 88.72
},
"rates": {
"ERA": 4.3486,
"WHIP": 1.399,
"ER_per_IP": 0.48317,
"H_per_IP": 1.00962,
"BB_per_IP": 0.38942,
"SO_per_IP": 0.80048,
"HR_per_IP": 0.09375
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.681,
"predicted_H": 5.762,
"predicted_BB": 2.533,
"predicted_SO": 4.651,
"predicted_HR": 0.495,
"predicted_ERA": 4.197,
"predicted_WHIP": 1.4426
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.681,
"final": 1.9743,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.762,
"final": 5.0212,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.533,
"final": 2.3089,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.651,
"final": 3.5364,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.495,
"final": 0.7073,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.197,
"final": 4.197,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4426,
"final": 1.4426,
"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": 29,
"H": 59,
"BB": 22,
"SO": 44,
"HR": 4,
"ERA": 4.745454545454545,
"WHIP": 1.4727272727272727,
"K9": 7.2,
"HR9": 0.6545454545454545,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-17T00:00:00"
},
"recent_form_boost": 1.0417491772621852,
"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": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 2.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": "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": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 130,
"wins": 61,
"losses": 69,
"win_pct": 0.4692,
"runs_scored": 587.0,
"runs_allowed": 514.0,
"run_differential": 73.0,
"run_differential_per_game": 0.5615,
"avg_runs_scored": 4.5154,
"avg_runs_allowed": 3.9538,
"offense_index": 1.0073,
"defense_index": 1.1337,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.2,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.0623
},
"opponent": {
"team": "TB",
"games": 130,
"wins": 77,
"losses": 53,
"win_pct": 0.5923,
"runs_scored": 587.0,
"runs_allowed": 543.0,
"run_differential": 44.0,
"run_differential_per_game": 0.3385,
"avg_runs_scored": 4.5154,
"avg_runs_allowed": 4.1769,
"offense_index": 1.0073,
"defense_index": 1.0732,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.6,
"run_differential": -18.0
},
"available": true,
"quality_score": 0.05
},
"edges": {
"quality_edge": -0.1123,
"offense_edge": 0.0073,
"opponent_offense_edge": 0.0073,
"defense_strength": 0.1337,
"opponent_defense_weakness": -0.0732,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9992,
"run_prevention": 0.9934,
"strikeout": 0.996
},
"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": 585.0,
"k_percent": 18.1,
"bb_percent": 8.8,
"woba": 0.32,
"xwoba": 0.324,
"sweet_spot_percent": 29.7,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 43.7,
"avg_best_speed": 79.6583,
"avg_hyper_speed": 94.7684,
"whiff_percent": 20.6,
"swing_percent": 46.3
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.207,
"command_and_miss": -0.4721,
"regression_edge": -0.1143,
"xwoba_edge": -0.3714,
"barrel_edge": 0.2222,
"hard_hit_edge": -0.8429,
"whiff_edge": -0.6714,
"bb_edge": 0.1,
"pitch_design_score": -0.0956
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664285",
"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.139142159581,
"release_spin_rate": 2287.8440741527656,
"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.139142159581,
"release_spin_rate": 2287.8440741527656,
"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.1391,
"release_spin_rate": 2287.8441,
"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.0956,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6826,
"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.2577,
"sample_weight": 1.0,
"run_prevention_factor": 1.0219,
"strikeout_factor": 0.9503,
"walk_factor": 0.992,
"homer_factor": 1.0271,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "664285",
"espn_id": 36581,
"player_name": "Framber Valdez",
"team": "DET",
"role": "pitcher",
"espn_rank": 151,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 151,
"gp_value": 25.0,
"gp_rank": 265,
"gs_value": 25.0,
"gs_rank": 26,
"qs_value": 12.0,
"qs_rank": 24,
"era_value": 4.3485,
"era_rank": 49.0,
"w_value": 8.0,
"w_rank": 46,
"l_value": 8.0,
"l_rank": 36,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 138.2,
"ip_rank": 34,
"h_value": 140.0,
"h_rank": 13,
"er_value": 67.0,
"er_rank": 21,
"hr_value": 13.0,
"hr_rank": 102,
"bb_value": 54.0,
"bb_rank": 15,
"k_value": 111.0,
"k_rank": 67,
"k_per_9_value": 7.2043266,
"k_per_9_rank": 53,
"whip_value": 1.399,
"whip_rank": 50.0,
"war_value": 1.09,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0219,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0219,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 0.992,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0271,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9503,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "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/20260824_TB@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"
}
} |
| 20260824 | 20260824_TEX@CHW | away | Kumar Rocker | Kumar Rocker | True | 5.0 | 5.2 | 2 | 4 | 2 | -2 | 5/5 | 1/3 | 3/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.462809917355372,
"WHIP": 1.396694214876033,
"IP": 121.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 4.924,
"recent_avg_IP": 5.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2332,
"sample_weight": 1.0,
"run_prevention_factor": 1.0198,
"strikeout_factor": 0.9943,
"walk_factor": 0.998,
"homer_factor": 1.0473,
"regression_flag": "neutral",
"k_percent": 20.6,
"bb_percent": 9.1,
"woba": 0.331,
"xwoba": 0.333,
"barrel_percent": 7.9,
"hard_hit_percent": 40.6,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 190,
"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": "677958",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 16.0,
"R": 16.0,
"H": 31.0,
"BB": 12.0,
"SO": 23.0,
"HR": 5.0,
"BF": 117.0,
"Pitches": 431.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.2,
"H": 6.2,
"BB": 2.4,
"SO": 4.6,
"HR": 1.0,
"BF": 23.4,
"Pitches": 86.2
},
"rates": {
"ERA": 5.76,
"WHIP": 1.72,
"ER_per_IP": 0.64,
"H_per_IP": 1.24,
"BB_per_IP": 0.48,
"SO_per_IP": 0.92,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 28.0,
"R": 28.0,
"H": 54.0,
"BB": 18.0,
"SO": 53.0,
"HR": 9.0,
"BF": 226.0,
"Pitches": 850.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 2.8,
"H": 5.4,
"BB": 1.8,
"SO": 5.3,
"HR": 0.9,
"BF": 22.6,
"Pitches": 85.0
},
"rates": {
"ERA": 4.8462,
"WHIP": 1.3846,
"ER_per_IP": 0.53846,
"H_per_IP": 1.03846,
"BB_per_IP": 0.34615,
"SO_per_IP": 1.01923,
"HR_per_IP": 0.17308
}
},
"season": {
"games": 24,
"totals": {
"IP": 121.0,
"ER": 60.0,
"R": 61.0,
"H": 121.0,
"BB": 48.0,
"SO": 109.0,
"HR": 17.0,
"BF": 528.0,
"Pitches": 2029.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5,
"R": 2.5417,
"H": 5.0417,
"BB": 2.0,
"SO": 4.5417,
"HR": 0.7083,
"BF": 22.0,
"Pitches": 84.5417
},
"rates": {
"ERA": 4.4628,
"WHIP": 1.3967,
"ER_per_IP": 0.49587,
"H_per_IP": 1.0,
"BB_per_IP": 0.39669,
"SO_per_IP": 0.90083,
"HR_per_IP": 0.1405
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.869,
"predicted_H": 5.587,
"predicted_BB": 2.079,
"predicted_SO": 4.843,
"predicted_HR": 0.883,
"predicted_ERA": 5.0665,
"predicted_WHIP": 1.5041
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.869,
"final": 3.3472,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.587,
"final": 5.3388,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.079,
"final": 1.6228,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.843,
"final": 4.0637,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.883,
"final": 0.5096,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0665,
"final": 5.0665,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5041,
"final": 1.5041,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 28,
"H": 54,
"BB": 18,
"SO": 53,
"HR": 9,
"ERA": 4.846153846153846,
"WHIP": 1.3846153846153846,
"K9": 9.173076923076923,
"HR9": 1.5576923076923077,
"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-19T00:00:00"
},
"recent_form_boost": 1.0508750513880594,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 131,
"wins": 65,
"losses": 66,
"win_pct": 0.4962,
"runs_scored": 521.0,
"runs_allowed": 567.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3511,
"avg_runs_scored": 3.9771,
"avg_runs_allowed": 4.3282,
"offense_index": 0.8889,
"defense_index": 1.0338,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.4,
"avg_runs_allowed": 3.6,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.0464
},
"opponent": {
"team": "CHW",
"games": 130,
"wins": 68,
"losses": 62,
"win_pct": 0.5231,
"runs_scored": 618.0,
"runs_allowed": 575.0,
"run_differential": 43.0,
"run_differential_per_game": 0.3308,
"avg_runs_scored": 4.7538,
"avg_runs_allowed": 4.4231,
"offense_index": 1.0624,
"defense_index": 1.0116,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.1,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.0953
},
"edges": {
"quality_edge": -0.1417,
"offense_edge": -0.1111,
"opponent_offense_edge": 0.0624,
"defense_strength": 0.0338,
"opponent_defense_weakness": -0.0116,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9928,
"run_prevention": 1.0137,
"strikeout": 0.9908
},
"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": 505.0,
"k_percent": 20.6,
"bb_percent": 9.1,
"woba": 0.331,
"xwoba": 0.333,
"sweet_spot_percent": 32.7,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 40.6,
"avg_best_speed": 77.7837,
"avg_hyper_speed": 94.4481,
"whiff_percent": 25.8,
"swing_percent": 47.9
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.37,
"command_and_miss": -0.0664,
"regression_edge": -0.0571,
"xwoba_edge": -0.6286,
"barrel_edge": -0.1556,
"hard_hit_edge": -0.4,
"whiff_edge": 0.0714,
"bb_edge": 0.025,
"pitch_design_score": -0.0379
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677958",
"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": 89.16820735292713,
"release_spin_rate": 2133.529685003887,
"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": 89.16820735292713,
"release_spin_rate": 2133.529685003887,
"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.1682,
"release_spin_rate": 2133.5297,
"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.0379,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.271,
"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.2332,
"sample_weight": 1.0,
"run_prevention_factor": 1.0198,
"strikeout_factor": 0.9943,
"walk_factor": 0.998,
"homer_factor": 1.0473,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677958",
"espn_id": 4414525,
"player_name": "Kumar Rocker",
"team": "TEX",
"role": "pitcher",
"espn_rank": 190,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 190,
"gp_value": 24.0,
"gp_rank": 292,
"gs_value": 22.0,
"gs_rank": 70,
"qs_value": 6.0,
"qs_rank": 83,
"era_value": 4.4628,
"era_rank": null,
"w_value": 4.0,
"w_rank": 171,
"l_value": 10.0,
"l_rank": 13,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 121.0,
"ip_rank": 76,
"h_value": 121.0,
"h_rank": 52,
"er_value": 60.0,
"er_rank": 46,
"hr_value": 17.0,
"hr_rank": 49,
"bb_value": 48.0,
"bb_rank": 26,
"k_value": 109.0,
"k_rank": 72,
"k_per_9_value": 8.107438,
"k_per_9_rank": 25,
"whip_value": 1.3966,
"whip_rank": null,
"war_value": 0.83,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0198,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0198,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0473,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9943,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260824_TEX@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260824 | 20260824_TEX@CHW | home | José Urquidy | José Urquidy | True | 3.0 | 3.0 | 0 | 4 | 5 | 1 | 4/6 | 0/4 | 2/2 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 8.526315789473685,
"WHIP": 2.6842105263157894,
"IP": 6.1,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 1.267,
"recent_avg_IP": 1.267,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2397,
"sample_weight": 0.45,
"run_prevention_factor": 0.9796,
"strikeout_factor": 1.0098,
"walk_factor": 0.9424,
"homer_factor": 0.9757,
"regression_flag": "positive_pitcher_regression",
"k_percent": 23.9,
"bb_percent": 2.8,
"woba": 0.359,
"xwoba": 0.257,
"barrel_percent": 7.8,
"hard_hit_percent": 34.6,
"whiff_percent": 27.3
},
"espn_rank": {
"rank": 672,
"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.27,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2026,
"prior_weight": 0.7974
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "664353",
"report_date": "20260824",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.1,
"ER": 6.0,
"R": 10.0,
"H": 15.0,
"BB": 2.0,
"SO": 6.0,
"HR": 1.0,
"BF": 36.0,
"Pitches": 131.0
},
"per_game": {
"IP": 1.1,
"ER": 1.2,
"R": 2.0,
"H": 3.0,
"BB": 0.4,
"SO": 1.2,
"HR": 0.2,
"BF": 7.2,
"Pitches": 26.2
},
"rates": {
"ERA": 8.5263,
"WHIP": 2.6842,
"ER_per_IP": 0.94737,
"H_per_IP": 2.36842,
"BB_per_IP": 0.31579,
"SO_per_IP": 0.94737,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 6.1,
"ER": 6.0,
"R": 10.0,
"H": 15.0,
"BB": 2.0,
"SO": 6.0,
"HR": 1.0,
"BF": 36.0,
"Pitches": 131.0
},
"per_game": {
"IP": 1.1,
"ER": 1.2,
"R": 2.0,
"H": 3.0,
"BB": 0.4,
"SO": 1.2,
"HR": 0.2,
"BF": 7.2,
"Pitches": 26.2
},
"rates": {
"ERA": 8.5263,
"WHIP": 2.6842,
"ER_per_IP": 0.94737,
"H_per_IP": 2.36842,
"BB_per_IP": 0.31579,
"SO_per_IP": 0.94737,
"HR_per_IP": 0.15789
}
},
"season": {
"games": 5,
"totals": {
"IP": 6.1,
"ER": 6.0,
"R": 10.0,
"H": 15.0,
"BB": 2.0,
"SO": 6.0,
"HR": 1.0,
"BF": 36.0,
"Pitches": 131.0
},
"per_game": {
"IP": 1.1,
"ER": 1.2,
"R": 2.0,
"H": 3.0,
"BB": 0.4,
"SO": 1.2,
"HR": 0.2,
"BF": 7.2,
"Pitches": 26.2
},
"rates": {
"ERA": 8.5263,
"WHIP": 2.6842,
"ER_per_IP": 0.94737,
"H_per_IP": 2.36842,
"BB_per_IP": 0.31579,
"SO_per_IP": 0.94737,
"HR_per_IP": 0.15789
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 2.049,
"predicted_H": 4.349,
"predicted_BB": 1.233,
"predicted_SO": 3.276,
"predicted_HR": 0.517,
"predicted_ERA": 5.3301,
"predicted_WHIP": 1.6135
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6869,
"form_weight": 0.3131,
"form_reliability": 0.2026,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.27,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2026,
"prior_weight": 0.7974
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 3.1,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.049,
"final": 3.3891,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.349,
"final": 4.1093,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.233,
"final": 0.3861,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.276,
"final": 2.3995,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.517,
"final": 0.8488,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3301,
"final": 5.3301,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6135,
"final": 1.6135,
"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": 6.1,
"ER": 6,
"H": 15,
"BB": 2,
"SO": 6,
"HR": 1,
"ERA": 8.526315789473685,
"WHIP": 2.6842105263157894,
"K9": 8.526315789473685,
"HR9": 1.4210526315789473,
"games_pitched": 5,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-04-13T00:00:00"
},
"recent_form_boost": 1.10281135320576,
"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": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.27,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2026,
"prior_weight": 0.7974
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.0,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "664353",
"player_name": "Jos\u00e9 Urquidy",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 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": 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.0,
"delta": -1.0,
"percent_delta": -0.25,
"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.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 3.0,
"predicted_R": 4.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": 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.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.0,
"delta": -1.0,
"percent_delta": -0.25,
"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.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 130,
"wins": 68,
"losses": 62,
"win_pct": 0.5231,
"runs_scored": 618.0,
"runs_allowed": 575.0,
"run_differential": 43.0,
"run_differential_per_game": 0.3308,
"avg_runs_scored": 4.7538,
"avg_runs_allowed": 4.4231,
"offense_index": 1.0624,
"defense_index": 1.0116,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.1,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.0953
},
"opponent": {
"team": "TEX",
"games": 131,
"wins": 65,
"losses": 66,
"win_pct": 0.4962,
"runs_scored": 521.0,
"runs_allowed": 567.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3511,
"avg_runs_scored": 3.9771,
"avg_runs_allowed": 4.3282,
"offense_index": 0.8889,
"defense_index": 1.0338,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.4,
"avg_runs_allowed": 3.6,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.0464
},
"edges": {
"quality_edge": 0.1417,
"offense_edge": 0.0624,
"opponent_offense_edge": -0.1111,
"defense_strength": 0.0116,
"opponent_defense_weakness": -0.0338,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0105,
"run_prevention": 0.974,
"strikeout": 1.0131
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664353",
"profile": {
"available": true,
"pitcher_id": "664353",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 26.0,
"k_percent": 23.9,
"bb_percent": 2.8,
"woba": 0.359,
"xwoba": 0.257,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 34.6,
"avg_best_speed": 78.6385,
"avg_hyper_speed": 92.9472,
"whiff_percent": 27.3,
"swing_percent": 51.0
},
"league_medians": {
"pa": 123.5,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6311,
"avg_hyper_speed": 93.9182,
"whiff_percent": 25.3,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3661,
"command_and_miss": 0.5357,
"regression_edge": 2.0,
"xwoba_edge": 1.5429,
"barrel_edge": -0.1333,
"hard_hit_edge": 0.4571,
"whiff_edge": 0.2857,
"bb_edge": 1.6,
"pitch_design_score": -0.1449
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664353",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 25,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 25,
"pitch_usage": 0.0,
"release_speed": 87.25754521016617,
"release_spin_rate": 2309.128360215054,
"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": 25,
"pitch_usage": 0.0,
"release_speed": 87.25754521016617,
"release_spin_rate": 2309.128360215054,
"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.2575,
"release_spin_rate": 2309.1284,
"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.1449,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0352,
"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.2397,
"sample_weight": 0.45,
"run_prevention_factor": 0.9796,
"strikeout_factor": 1.0098,
"walk_factor": 0.9424,
"homer_factor": 0.9757,
"woba_minus_xwoba": 0.102,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "664353",
"espn_id": 35759,
"player_name": "Jose Urquidy",
"team": "CHW",
"role": "pitcher",
"espn_rank": 672,
"espn_total_ranked": 828,
"metrics": {
"espn_rank": 672,
"gp_value": 7.0,
"gp_rank": 559,
"gs_value": 0.0,
"gs_rank": 346,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 5.0625,
"era_rank": null,
"w_value": 2.0,
"w_rank": 292,
"l_value": 1.0,
"l_rank": 400,
"sv_value": 1.0,
"sv_rank": 127,
"hld_value": 0.0,
"hld_rank": 329,
"ip_value": 16.0,
"ip_rank": 526,
"h_value": 22.0,
"h_rank": 454,
"er_value": 9.0,
"er_rank": 520,
"hr_value": 2.0,
"hr_rank": 482,
"bb_value": 2.0,
"bb_rank": 685,
"k_value": 17.0,
"k_rank": 489,
"k_per_9_value": 9.5625,
"k_per_9_rank": 25,
"whip_value": 1.5,
"whip_rank": null,
"war_value": -0.27,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9908,
"adjusted": 3
},
"predicted_H": {
"original": 8.0,
"factor": 0.9908,
"adjusted": 8
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9741,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9891,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0044,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 13,
"Pitches": 50,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 5 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260824_TEX@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |