| 20260906 | 20260906_ARI@HOU | away | Eduardo Rodriguez | Eduardo Rodriguez | True | 6.0 | 6.0 | 0 | 2 | 1 | -1 | 6/3 | 1/2 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.586826347305389,
"WHIP": 1.215568862275449,
"IP": 167.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.964,
"recent_avg_IP": 6.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1952,
"sample_weight": 1.0,
"run_prevention_factor": 1.0166,
"strikeout_factor": 0.9514,
"walk_factor": 0.976,
"homer_factor": 0.9955,
"regression_flag": "neutral",
"k_percent": 17.8,
"bb_percent": 8.0,
"woba": 0.295,
"xwoba": 0.324,
"barrel_percent": 7.7,
"hard_hit_percent": 33.6,
"whiff_percent": 20.8
},
"espn_rank": {
"rank": 8,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "593958",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 7.0,
"R": 7.0,
"H": 24.0,
"BB": 10.0,
"SO": 30.0,
"HR": 1.0,
"BF": 124.0,
"Pitches": 517.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 4.8,
"BB": 2.0,
"SO": 6.0,
"HR": 0.2,
"BF": 24.8,
"Pitches": 103.4
},
"rates": {
"ERA": 2.0543,
"WHIP": 1.1087,
"ER_per_IP": 0.22826,
"H_per_IP": 0.78261,
"BB_per_IP": 0.32609,
"SO_per_IP": 0.97826,
"HR_per_IP": 0.03261
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 21.0,
"R": 23.0,
"H": 61.0,
"BB": 17.0,
"SO": 48.0,
"HR": 4.0,
"BF": 249.0,
"Pitches": 977.0
},
"per_game": {
"IP": 6.0,
"ER": 2.1,
"R": 2.3,
"H": 6.1,
"BB": 1.7,
"SO": 4.8,
"HR": 0.4,
"BF": 24.9,
"Pitches": 97.7
},
"rates": {
"ERA": 3.2034,
"WHIP": 1.322,
"ER_per_IP": 0.35593,
"H_per_IP": 1.0339,
"BB_per_IP": 0.28814,
"SO_per_IP": 0.81356,
"HR_per_IP": 0.0678
}
},
"season": {
"games": 28,
"totals": {
"IP": 167.0,
"ER": 48.0,
"R": 52.0,
"H": 148.0,
"BB": 55.0,
"SO": 122.0,
"HR": 14.0,
"BF": 686.0,
"Pitches": 2677.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7143,
"R": 1.8571,
"H": 5.2857,
"BB": 1.9643,
"SO": 4.3571,
"HR": 0.5,
"BF": 24.5,
"Pitches": 95.6071
},
"rates": {
"ERA": 2.5868,
"WHIP": 1.2156,
"ER_per_IP": 0.28743,
"H_per_IP": 0.88623,
"BB_per_IP": 0.32934,
"SO_per_IP": 0.73054,
"HR_per_IP": 0.08383
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.902,
"predicted_H": 5.42,
"predicted_BB": 1.933,
"predicted_SO": 5.288,
"predicted_HR": 0.414,
"predicted_ERA": 2.8531,
"predicted_WHIP": 1.2256
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.902,
"final": 1.5286,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.42,
"final": 5.6601,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.933,
"final": 1.5467,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.288,
"final": 4.7548,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.414,
"final": 0.6566,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8531,
"final": 2.8531,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2256,
"final": 1.2256,
"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.0,
"ER": 21,
"H": 61,
"BB": 17,
"SO": 48,
"HR": 4,
"ERA": 3.2033898305084745,
"WHIP": 1.3220338983050848,
"K9": 7.322033898305085,
"HR9": 0.6101694915254238,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.8691796791275033,
"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": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "593958",
"player_name": "Eduardo Rodriguez",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 143,
"wins": 75,
"losses": 68,
"win_pct": 0.5245,
"runs_scored": 633.0,
"runs_allowed": 635.0,
"run_differential": -2.0,
"run_differential_per_game": -0.014,
"avg_runs_scored": 4.4266,
"avg_runs_allowed": 4.4406,
"offense_index": 0.9883,
"defense_index": 1.0086,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.5,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.0191
},
"opponent": {
"team": "HOU",
"games": 143,
"wins": 73,
"losses": 70,
"win_pct": 0.5105,
"runs_scored": 645.0,
"runs_allowed": 682.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2587,
"avg_runs_scored": 4.5105,
"avg_runs_allowed": 4.7692,
"offense_index": 1.0071,
"defense_index": 0.9391,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 2.6,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0472
},
"edges": {
"quality_edge": -0.0281,
"offense_edge": -0.0117,
"opponent_offense_edge": 0.0071,
"defense_strength": 0.0086,
"opponent_defense_weakness": 0.0609,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9989,
"run_prevention": 1.0017,
"strikeout": 0.9986
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "593958",
"profile": {
"available": true,
"pitcher_id": "593958",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 610.0,
"k_percent": 17.8,
"bb_percent": 8.0,
"woba": 0.295,
"xwoba": 0.324,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 33.6,
"avg_best_speed": 75.9152,
"avg_hyper_speed": 93.2781,
"whiff_percent": 20.8,
"swing_percent": 48.1
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0093,
"command_and_miss": -0.425,
"regression_edge": -0.8286,
"xwoba_edge": -0.3714,
"barrel_edge": -0.1111,
"hard_hit_edge": 0.6143,
"whiff_edge": -0.6143,
"bb_edge": 0.3,
"pitch_design_score": -0.0874
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "593958",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 104,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 104,
"pitch_usage": 0.0,
"release_speed": 88.31573743838237,
"release_spin_rate": 2174.324470429921,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 104,
"pitch_usage": 0.0,
"release_speed": 88.31573743838237,
"release_spin_rate": 2174.324470429921,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3157,
"release_spin_rate": 2174.3245,
"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.0874,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6242,
"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.1952,
"sample_weight": 1.0,
"run_prevention_factor": 1.0166,
"strikeout_factor": 0.9514,
"walk_factor": 0.976,
"homer_factor": 0.9955,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "593958",
"espn_id": 32675,
"player_name": "Eduardo Rodriguez",
"team": "ARI",
"role": "pitcher",
"espn_rank": 8,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 8,
"gp_value": 28.0,
"gp_rank": 239,
"gs_value": 28.0,
"gs_rank": 11,
"qs_value": 17.0,
"qs_rank": 7,
"era_value": 2.5868,
"era_rank": 7.0,
"w_value": 14.0,
"w_rank": 5,
"l_value": 5.0,
"l_rank": 132,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 167.0,
"ip_rank": 6,
"h_value": 148.0,
"h_rank": 16,
"er_value": 48.0,
"er_rank": 111,
"hr_value": 14.0,
"hr_rank": 103,
"bb_value": 55.0,
"bb_rank": 21,
"k_value": 122.0,
"k_rank": 57,
"k_per_9_value": 6.5748506,
"k_per_9_rank": 256.0,
"whip_value": 1.2155,
"whip_rank": 31.0,
"war_value": 5.04,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0166,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0166,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9955,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9514,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 109,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260906_ARI@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_ARI@HOU | home | Peter Lambert | Peter Lambert | True | 5.1 | 7.0 | 5 | 2 | 3 | 1 | 2/7 | 1/0 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.663316582914573,
"WHIP": 1.2437185929648242,
"IP": 132.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.528,
"recent_avg_IP": 4.8,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2078,
"sample_weight": 1.0,
"run_prevention_factor": 0.9823,
"strikeout_factor": 1.0091,
"walk_factor": 1.014,
"homer_factor": 0.9593,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 9.9,
"woba": 0.293,
"xwoba": 0.294,
"barrel_percent": 6.5,
"hard_hit_percent": 35.5,
"whiff_percent": 25.6
},
"espn_rank": {
"rank": 40,
"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": "663567",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.0,
"ER": 17.0,
"R": 19.0,
"H": 27.0,
"BB": 15.0,
"SO": 23.0,
"HR": 2.0,
"BF": 117.0,
"Pitches": 478.0
},
"per_game": {
"IP": 4.2,
"ER": 3.4,
"R": 3.8,
"H": 5.4,
"BB": 3.0,
"SO": 4.6,
"HR": 0.4,
"BF": 23.4,
"Pitches": 95.6
},
"rates": {
"ERA": 6.375,
"WHIP": 1.75,
"ER_per_IP": 0.70833,
"H_per_IP": 1.125,
"BB_per_IP": 0.625,
"SO_per_IP": 0.95833,
"HR_per_IP": 0.08333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 25.0,
"R": 27.0,
"H": 49.0,
"BB": 24.0,
"SO": 57.0,
"HR": 3.0,
"BF": 235.0,
"Pitches": 951.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.7,
"H": 4.9,
"BB": 2.4,
"SO": 5.7,
"HR": 0.3,
"BF": 23.5,
"Pitches": 95.1
},
"rates": {
"ERA": 4.2722,
"WHIP": 1.3861,
"ER_per_IP": 0.47468,
"H_per_IP": 0.93038,
"BB_per_IP": 0.4557,
"SO_per_IP": 1.08228,
"HR_per_IP": 0.05696
}
},
"season": {
"games": 24,
"totals": {
"IP": 132.2,
"ER": 54.0,
"R": 56.0,
"H": 109.0,
"BB": 56.0,
"SO": 131.0,
"HR": 13.0,
"BF": 566.0,
"Pitches": 2270.0
},
"per_game": {
"IP": 5.2,
"ER": 2.25,
"R": 2.3333,
"H": 4.5417,
"BB": 2.3333,
"SO": 5.4583,
"HR": 0.5417,
"BF": 23.5833,
"Pitches": 94.5833
},
"rates": {
"ERA": 3.6633,
"WHIP": 1.2437,
"ER_per_IP": 0.40704,
"H_per_IP": 0.82161,
"BB_per_IP": 0.42211,
"SO_per_IP": 0.98744,
"HR_per_IP": 0.09799
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.85,
"predicted_H": 5.098,
"predicted_BB": 2.563,
"predicted_SO": 5.118,
"predicted_HR": 0.457,
"predicted_ERA": 4.99,
"predicted_WHIP": 1.4905
}
},
"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.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.85,
"final": 2.4906,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.098,
"final": 3.788,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.563,
"final": 1.9021,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.118,
"final": 5.4909,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.457,
"final": 0.2638,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.99,
"final": 4.99,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4905,
"final": 1.4905,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.2,
"ER": 25,
"H": 49,
"BB": 24,
"SO": 57,
"HR": 3,
"ERA": 4.272151898734177,
"WHIP": 1.3860759493670884,
"K9": 9.740506329113924,
"HR9": 0.5126582278481012,
"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-31T00:00:00"
},
"recent_form_boost": 0.9910164630794449,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663567",
"player_name": "Peter Lambert",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 143,
"wins": 73,
"losses": 70,
"win_pct": 0.5105,
"runs_scored": 645.0,
"runs_allowed": 682.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2587,
"avg_runs_scored": 4.5105,
"avg_runs_allowed": 4.7692,
"offense_index": 1.0071,
"defense_index": 0.9391,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 2.6,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0472
},
"opponent": {
"team": "ARI",
"games": 143,
"wins": 75,
"losses": 68,
"win_pct": 0.5245,
"runs_scored": 633.0,
"runs_allowed": 635.0,
"run_differential": -2.0,
"run_differential_per_game": -0.014,
"avg_runs_scored": 4.4266,
"avg_runs_allowed": 4.4406,
"offense_index": 0.9883,
"defense_index": 1.0086,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.5,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.0191
},
"edges": {
"quality_edge": 0.0281,
"offense_edge": 0.0071,
"opponent_offense_edge": -0.0117,
"defense_strength": -0.0609,
"opponent_defense_weakness": -0.0086,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9998,
"run_prevention": 1.0028,
"strikeout": 1.0018
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663567",
"profile": {
"available": true,
"pitcher_id": "663567",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 23.1,
"bb_percent": 9.9,
"woba": 0.293,
"xwoba": 0.294,
"sweet_spot_percent": 32.8,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 35.5,
"avg_best_speed": 77.9096,
"avg_hyper_speed": 93.4905,
"whiff_percent": 25.6,
"swing_percent": 48.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.352,
"command_and_miss": 0.0607,
"regression_edge": -0.0286,
"xwoba_edge": 0.4857,
"barrel_edge": 0.1556,
"hard_hit_edge": 0.3429,
"whiff_edge": 0.0714,
"bb_edge": -0.175,
"pitch_design_score": -0.0287
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663567",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.36448787171314,
"release_spin_rate": 2218.202787194397,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.36448787171314,
"release_spin_rate": 2218.202787194397,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.3645,
"release_spin_rate": 2218.2028,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0287,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2047,
"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.2078,
"sample_weight": 1.0,
"run_prevention_factor": 0.9823,
"strikeout_factor": 1.0091,
"walk_factor": 1.014,
"homer_factor": 0.9593,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663567",
"espn_id": 39898,
"player_name": "Peter Lambert",
"team": "HOU",
"role": "pitcher",
"espn_rank": 40,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 40,
"gp_value": 24.0,
"gp_rank": 331,
"gs_value": 24.0,
"gs_rank": 68,
"qs_value": 8.0,
"qs_rank": 73,
"era_value": 3.6633,
"era_rank": null,
"w_value": 8.0,
"w_rank": 62,
"l_value": 7.0,
"l_rank": 82,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 132.2,
"ip_rank": 66,
"h_value": 109.0,
"h_rank": 95,
"er_value": 54.0,
"er_rank": 85,
"hr_value": 13.0,
"hr_rank": 114,
"bb_value": 56.0,
"bb_rank": 19,
"k_value": 131.0,
"k_rank": 51,
"k_per_9_value": 8.886934,
"k_per_9_rank": 20.0,
"whip_value": 1.2437,
"whip_rank": null,
"war_value": 2.8,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9823,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9823,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.014,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9593,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0091,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260906_ARI@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_ATL@PHI | away | Tyler Mahle | Tyler Mahle | True | 5.2 | 6.0 | 1 | 2 | 0 | -2 | 5/4 | 0/1 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.248,
"WHIP": 1.288,
"IP": 125.0,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.435,
"recent_avg_IP": 6.067,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.053,
"sample_weight": 1.0,
"run_prevention_factor": 1.0045,
"strikeout_factor": 0.9966,
"walk_factor": 0.978,
"homer_factor": 1.0057,
"regression_flag": "neutral",
"k_percent": 23.2,
"bb_percent": 8.1,
"woba": 0.319,
"xwoba": 0.315,
"barrel_percent": 7.1,
"hard_hit_percent": 38.6,
"whiff_percent": 23.3
},
"espn_rank": {
"rank": 153,
"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": "641816",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 5.0,
"R": 5.0,
"H": 24.0,
"BB": 5.0,
"SO": 32.0,
"HR": 3.0,
"BF": 117.0,
"Pitches": 444.0
},
"per_game": {
"IP": 6.0,
"ER": 1.0,
"R": 1.0,
"H": 4.8,
"BB": 1.0,
"SO": 6.4,
"HR": 0.6,
"BF": 23.4,
"Pitches": 88.8
},
"rates": {
"ERA": 1.4835,
"WHIP": 0.956,
"ER_per_IP": 0.16484,
"H_per_IP": 0.79121,
"BB_per_IP": 0.16484,
"SO_per_IP": 1.05495,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 17.0,
"R": 18.0,
"H": 50.0,
"BB": 13.0,
"SO": 57.0,
"HR": 5.0,
"BF": 234.0,
"Pitches": 901.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7,
"R": 1.8,
"H": 5.0,
"BB": 1.3,
"SO": 5.7,
"HR": 0.5,
"BF": 23.4,
"Pitches": 90.1
},
"rates": {
"ERA": 2.6229,
"WHIP": 1.08,
"ER_per_IP": 0.29143,
"H_per_IP": 0.85714,
"BB_per_IP": 0.22286,
"SO_per_IP": 0.97714,
"HR_per_IP": 0.08571
}
},
"season": {
"games": 23,
"totals": {
"IP": 125.0,
"ER": 59.0,
"R": 60.0,
"H": 119.0,
"BB": 42.0,
"SO": 121.0,
"HR": 17.0,
"BF": 521.0,
"Pitches": 2022.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5652,
"R": 2.6087,
"H": 5.1739,
"BB": 1.8261,
"SO": 5.2609,
"HR": 0.7391,
"BF": 22.6522,
"Pitches": 87.913
},
"rates": {
"ERA": 4.248,
"WHIP": 1.288,
"ER_per_IP": 0.472,
"H_per_IP": 0.952,
"BB_per_IP": 0.336,
"SO_per_IP": 0.968,
"HR_per_IP": 0.136
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.814,
"predicted_H": 5.065,
"predicted_BB": 1.438,
"predicted_SO": 5.817,
"predicted_HR": 0.639,
"predicted_ERA": 2.8,
"predicted_WHIP": 1.1152
}
},
"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.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.814,
"final": 1.4677,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.065,
"final": 5.0373,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.438,
"final": 0.8262,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.817,
"final": 4.6185,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.639,
"final": 0.7926,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8,
"final": 2.8,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1152,
"final": 1.1152,
"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.1,
"ER": 17,
"H": 50,
"BB": 13,
"SO": 57,
"HR": 5,
"ERA": 2.6228571428571428,
"WHIP": 1.0799999999999998,
"K9": 8.794285714285714,
"HR9": 0.7714285714285714,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 0.7978189043091014,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 0.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641816",
"player_name": "Tyler Mahle",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.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": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.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": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 142,
"wins": 84,
"losses": 58,
"win_pct": 0.5915,
"runs_scored": 660.0,
"runs_allowed": 541.0,
"run_differential": 119.0,
"run_differential_per_game": 0.838,
"avg_runs_scored": 4.6479,
"avg_runs_allowed": 3.8099,
"offense_index": 1.0374,
"defense_index": 1.176,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.4,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.2506
},
"opponent": {
"team": "PHI",
"games": 142,
"wins": 80,
"losses": 62,
"win_pct": 0.5634,
"runs_scored": 637.0,
"runs_allowed": 602.0,
"run_differential": 35.0,
"run_differential_per_game": 0.2465,
"avg_runs_scored": 4.4859,
"avg_runs_allowed": 4.2394,
"offense_index": 1.0013,
"defense_index": 1.0568,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 2.1,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.1542
},
"edges": {
"quality_edge": 0.0964,
"offense_edge": 0.0374,
"opponent_offense_edge": 0.0013,
"defense_strength": 0.176,
"opponent_defense_weakness": -0.0568,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0091,
"run_prevention": 0.9778,
"strikeout": 1.0028
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641816",
"profile": {
"available": true,
"pitcher_id": "641816",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 446.0,
"k_percent": 23.2,
"bb_percent": 8.1,
"woba": 0.319,
"xwoba": 0.315,
"sweet_spot_percent": 33.5,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.6,
"avg_best_speed": 80.4658,
"avg_hyper_speed": 94.0305,
"whiff_percent": 23.3,
"swing_percent": 45.6
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1319,
"command_and_miss": 0.0421,
"regression_edge": 0.1143,
"xwoba_edge": -0.1143,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.1,
"whiff_edge": -0.2571,
"bb_edge": 0.275,
"pitch_design_score": -0.0193
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641816",
"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": 89.53121594004485,
"release_spin_rate": 2152.2110299296696,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 89.53121594004485,
"release_spin_rate": 2152.2110299296696,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.5312,
"release_spin_rate": 2152.211,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0193,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1381,
"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.053,
"sample_weight": 1.0,
"run_prevention_factor": 1.0045,
"strikeout_factor": 0.9966,
"walk_factor": 0.978,
"homer_factor": 1.0057,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641816",
"espn_id": 34973,
"player_name": "Tyler Mahle",
"team": "ATL",
"role": "pitcher",
"espn_rank": 153,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 153,
"gp_value": 23.0,
"gp_rank": 342,
"gs_value": 23.0,
"gs_rank": 75,
"qs_value": 7.0,
"qs_rank": 78,
"era_value": 4.248,
"era_rank": null,
"w_value": 5.0,
"w_rank": 140,
"l_value": 10.0,
"l_rank": 16,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 125.0,
"ip_rank": 85,
"h_value": 119.0,
"h_rank": 74,
"er_value": 59.0,
"er_rank": 64,
"hr_value": 17.0,
"hr_rank": 64,
"bb_value": 42.0,
"bb_rank": 69,
"k_value": 121.0,
"k_rank": 60,
"k_per_9_value": 8.712,
"k_per_9_rank": 19.0,
"whip_value": 1.288,
"whip_rank": null,
"war_value": 1.18,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0045,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0045,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.978,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0057,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9966,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260906_ATL@PHI.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"
}
} |
| 20260906 | 20260906_ATL@PHI | home | Aaron Nola | Aaron Nola | True | 5.1 | 7.0 | 5 | 3 | 1 | -2 | 5/4 | 2/1 | 1/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.925675675675675,
"WHIP": 1.3986486486486487,
"IP": 148.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.286,
"recent_avg_IP": 5.6,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0418,
"sample_weight": 1.0,
"run_prevention_factor": 0.9965,
"strikeout_factor": 1.0314,
"walk_factor": 0.976,
"homer_factor": 1.0548,
"regression_flag": "positive_pitcher_regression",
"k_percent": 24.6,
"bb_percent": 8.0,
"woba": 0.351,
"xwoba": 0.312,
"barrel_percent": 9.3,
"hard_hit_percent": 40.8,
"whiff_percent": 28.0
},
"espn_rank": {
"rank": 76,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605400",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 7.0,
"R": 7.0,
"H": 24.0,
"BB": 10.0,
"SO": 36.0,
"HR": 4.0,
"BF": 116.0,
"Pitches": 490.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 1.4,
"H": 4.8,
"BB": 2.0,
"SO": 7.2,
"HR": 0.8,
"BF": 23.2,
"Pitches": 98.0
},
"rates": {
"ERA": 2.25,
"WHIP": 1.2143,
"ER_per_IP": 0.25,
"H_per_IP": 0.85714,
"BB_per_IP": 0.35714,
"SO_per_IP": 1.28571,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 21.0,
"R": 21.0,
"H": 51.0,
"BB": 22.0,
"SO": 63.0,
"HR": 13.0,
"BF": 233.0,
"Pitches": 946.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1,
"R": 2.1,
"H": 5.1,
"BB": 2.2,
"SO": 6.3,
"HR": 1.3,
"BF": 23.3,
"Pitches": 94.6
},
"rates": {
"ERA": 3.375,
"WHIP": 1.3036,
"ER_per_IP": 0.375,
"H_per_IP": 0.91071,
"BB_per_IP": 0.39286,
"SO_per_IP": 1.125,
"HR_per_IP": 0.23214
}
},
"season": {
"games": 28,
"totals": {
"IP": 148.0,
"ER": 81.0,
"R": 83.0,
"H": 156.0,
"BB": 51.0,
"SO": 157.0,
"HR": 32.0,
"BF": 638.0,
"Pitches": 2562.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8929,
"R": 2.9643,
"H": 5.5714,
"BB": 1.8214,
"SO": 5.6071,
"HR": 1.1429,
"BF": 22.7857,
"Pitches": 91.5
},
"rates": {
"ERA": 4.9257,
"WHIP": 1.3986,
"ER_per_IP": 0.5473,
"H_per_IP": 1.05405,
"BB_per_IP": 0.34459,
"SO_per_IP": 1.06081,
"HR_per_IP": 0.21622
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.085,
"predicted_H": 5.135,
"predicted_BB": 2.045,
"predicted_SO": 6.379,
"predicted_HR": 1.014,
"predicted_ERA": 3.3757,
"predicted_WHIP": 1.2915
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.085,
"final": 2.4638,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.135,
"final": 5.0791,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.045,
"final": 2.0264,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 6.379,
"final": 3.738,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.014,
"final": 0.5942,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3757,
"final": 3.3757,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2915,
"final": 1.2915,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 21,
"H": 51,
"BB": 22,
"SO": 63,
"HR": 13,
"ERA": 3.375,
"WHIP": 1.3035714285714286,
"K9": 10.125,
"HR9": 2.0892857142857144,
"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-31T00:00:00"
},
"recent_form_boost": 0.8880242614519586,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 0.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605400",
"player_name": "Aaron Nola",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"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": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"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": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 142,
"wins": 80,
"losses": 62,
"win_pct": 0.5634,
"runs_scored": 637.0,
"runs_allowed": 602.0,
"run_differential": 35.0,
"run_differential_per_game": 0.2465,
"avg_runs_scored": 4.4859,
"avg_runs_allowed": 4.2394,
"offense_index": 1.0013,
"defense_index": 1.0568,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 2.1,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.1542
},
"opponent": {
"team": "ATL",
"games": 142,
"wins": 84,
"losses": 58,
"win_pct": 0.5915,
"runs_scored": 660.0,
"runs_allowed": 541.0,
"run_differential": 119.0,
"run_differential_per_game": 0.838,
"avg_runs_scored": 4.6479,
"avg_runs_allowed": 3.8099,
"offense_index": 1.0374,
"defense_index": 1.176,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.4,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.2506
},
"edges": {
"quality_edge": -0.0964,
"offense_edge": 0.0013,
"opponent_offense_edge": 0.0374,
"defense_strength": 0.0568,
"opponent_defense_weakness": -0.176,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9964,
"run_prevention": 1.0051,
"strikeout": 0.9941
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605400",
"profile": {
"available": true,
"pitcher_id": "605400",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 566.0,
"k_percent": 24.6,
"bb_percent": 8.0,
"woba": 0.351,
"xwoba": 0.312,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 40.8,
"avg_best_speed": 76.8099,
"avg_hyper_speed": 94.3245,
"whiff_percent": 28.0,
"swing_percent": 45.6
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2656,
"command_and_miss": 0.3721,
"regression_edge": 1.1143,
"xwoba_edge": -0.0286,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.4143,
"whiff_edge": 0.4143,
"bb_edge": 0.3,
"pitch_design_score": -0.221
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605400",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 85.92905472584206,
"release_spin_rate": 2292.2152889944855,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 85.92905472584206,
"release_spin_rate": 2292.2152889944855,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.9291,
"release_spin_rate": 2292.2153,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.221,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5789,
"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.0418,
"sample_weight": 1.0,
"run_prevention_factor": 0.9965,
"strikeout_factor": 1.0314,
"walk_factor": 0.976,
"homer_factor": 1.0548,
"woba_minus_xwoba": 0.039,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "605400",
"espn_id": 33709,
"player_name": "Aaron Nola",
"team": "PHI",
"role": "pitcher",
"espn_rank": 76,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 76,
"gp_value": 28.0,
"gp_rank": 239,
"gs_value": 28.0,
"gs_rank": 11,
"qs_value": 9.0,
"qs_rank": 63,
"era_value": 4.9256,
"era_rank": 47.0,
"w_value": 6.0,
"w_rank": 102,
"l_value": 10.0,
"l_rank": 16,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 148.0,
"ip_rank": 41,
"h_value": 156.0,
"h_rank": 10,
"er_value": 81.0,
"er_rank": 7,
"hr_value": 32.0,
"hr_rank": 3,
"bb_value": 51.0,
"bb_rank": 30,
"k_value": 157.0,
"k_rank": 24,
"k_per_9_value": 9.5472975,
"k_per_9_rank": 15.0,
"whip_value": 1.3986,
"whip_rank": 46.0,
"war_value": 1.96,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9965,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9965,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0548,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0314,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 1,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"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": "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/20260906_ATL@PHI.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"
}
} |
| 20260906 | 20260906_BOS@BAL | away | Payton Tolle | Payton Tolle | True | 6.0 | 6.0 | 0 | 0 | 1 | 1 | 4/4 | 0/0 | 7/12 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2290076335877864,
"WHIP": 1.099236641221374,
"IP": 131.0,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.696,
"recent_avg_IP": 6.0,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7579,
"sample_weight": 1.0,
"run_prevention_factor": 0.9356,
"strikeout_factor": 1.0463,
"walk_factor": 0.956,
"homer_factor": 0.9167,
"regression_flag": "positive_pitcher_regression",
"k_percent": 27.7,
"bb_percent": 7.0,
"woba": 0.288,
"xwoba": 0.257,
"barrel_percent": 6.5,
"hard_hit_percent": 33.6,
"whiff_percent": 27.5
},
"espn_rank": {
"rank": 54,
"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": "801139",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 10.0,
"R": 10.0,
"H": 20.0,
"BB": 8.0,
"SO": 37.0,
"HR": 3.0,
"BF": 115.0,
"Pitches": 466.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 1.6,
"SO": 7.4,
"HR": 0.6,
"BF": 23.0,
"Pitches": 93.2
},
"rates": {
"ERA": 3.0,
"WHIP": 0.9333,
"ER_per_IP": 0.33333,
"H_per_IP": 0.66667,
"BB_per_IP": 0.26667,
"SO_per_IP": 1.23333,
"HR_per_IP": 0.1
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 19.0,
"R": 19.0,
"H": 47.0,
"BB": 14.0,
"SO": 73.0,
"HR": 7.0,
"BF": 225.0,
"Pitches": 889.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9,
"R": 1.9,
"H": 4.7,
"BB": 1.4,
"SO": 7.3,
"HR": 0.7,
"BF": 22.5,
"Pitches": 88.9
},
"rates": {
"ERA": 3.0176,
"WHIP": 1.0765,
"ER_per_IP": 0.33529,
"H_per_IP": 0.82941,
"BB_per_IP": 0.24706,
"SO_per_IP": 1.28824,
"HR_per_IP": 0.12353
}
},
"season": {
"games": 23,
"totals": {
"IP": 131.0,
"ER": 47.0,
"R": 51.0,
"H": 107.0,
"BB": 37.0,
"SO": 147.0,
"HR": 15.0,
"BF": 530.0,
"Pitches": 2004.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0435,
"R": 2.2174,
"H": 4.6522,
"BB": 1.6087,
"SO": 6.3913,
"HR": 0.6522,
"BF": 23.0435,
"Pitches": 87.1304
},
"rates": {
"ERA": 3.229,
"WHIP": 1.0992,
"ER_per_IP": 0.35878,
"H_per_IP": 0.81679,
"BB_per_IP": 0.28244,
"SO_per_IP": 1.12214,
"HR_per_IP": 0.1145
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.149,
"predicted_H": 4.635,
"predicted_BB": 1.652,
"predicted_SO": 6.892,
"predicted_HR": 0.687,
"predicted_ERA": 3.3067,
"predicted_WHIP": 1.0748
}
},
"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": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.149,
"final": 1.2347,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.635,
"final": 4.3648,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.652,
"final": 0.9491,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.892,
"final": 4.8107,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.687,
"final": 0.3947,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3067,
"final": 3.3067,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0748,
"final": 1.0748,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.2,
"ER": 19,
"H": 47,
"BB": 14,
"SO": 73,
"HR": 7,
"ERA": 3.0176470588235293,
"WHIP": 1.076470588235294,
"K9": 11.594117647058823,
"HR9": 1.111764705882353,
"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-31T00:00:00"
},
"recent_form_boost": 0.8421445345612022,
"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": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 0.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": "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": 4,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "801139",
"player_name": "Payton Tolle",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 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": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.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": 0.0,
"predicted_H": 4.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": 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": 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": 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": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.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": "BOS",
"games": 143,
"wins": 78,
"losses": 65,
"win_pct": 0.5455,
"runs_scored": 639.0,
"runs_allowed": 555.0,
"run_differential": 84.0,
"run_differential_per_game": 0.5874,
"avg_runs_scored": 4.4685,
"avg_runs_allowed": 3.8811,
"offense_index": 0.9974,
"defense_index": 1.1544,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.6,
"run_differential": -17.0
},
"available": true,
"quality_score": 0.1108
},
"opponent": {
"team": "BAL",
"games": 143,
"wins": 69,
"losses": 74,
"win_pct": 0.4825,
"runs_scored": 640.0,
"runs_allowed": 667.0,
"run_differential": -27.0,
"run_differential_per_game": -0.1888,
"avg_runs_scored": 4.4755,
"avg_runs_allowed": 4.6643,
"offense_index": 0.999,
"defense_index": 0.9605,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.1,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0731
},
"edges": {
"quality_edge": 0.1839,
"offense_edge": -0.0026,
"opponent_offense_edge": -0.001,
"defense_strength": 0.1544,
"opponent_defense_weakness": 0.0395,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.012,
"run_prevention": 0.9752,
"strikeout": 1.0056
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "801139",
"profile": {
"available": true,
"pitcher_id": "801139",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 478.0,
"k_percent": 27.7,
"bb_percent": 7.0,
"woba": 0.288,
"xwoba": 0.257,
"sweet_spot_percent": 30.4,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 33.6,
"avg_best_speed": 76.1624,
"avg_hyper_speed": 93.3902,
"whiff_percent": 27.5,
"swing_percent": 54.8
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8942,
"command_and_miss": 0.5964,
"regression_edge": 0.8857,
"xwoba_edge": 1.5429,
"barrel_edge": 0.1556,
"hard_hit_edge": 0.6143,
"whiff_edge": 0.3429,
"bb_edge": 0.55,
"pitch_design_score": 0.1689
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "801139",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 92.89223250197915,
"release_spin_rate": 2257.467793172286,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 92.89223250197915,
"release_spin_rate": 2257.467793172286,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.8922,
"release_spin_rate": 2257.4678,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1689,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2064,
"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.7579,
"sample_weight": 1.0,
"run_prevention_factor": 0.9356,
"strikeout_factor": 1.0463,
"walk_factor": 0.956,
"homer_factor": 0.9167,
"woba_minus_xwoba": 0.031,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "801139",
"espn_id": 4966140,
"player_name": "Payton Tolle",
"team": "BOS",
"role": "pitcher",
"espn_rank": 54,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 54,
"gp_value": 23.0,
"gp_rank": 342,
"gs_value": 23.0,
"gs_rank": 75,
"qs_value": 11.0,
"qs_rank": 43,
"era_value": 3.229,
"era_rank": null,
"w_value": 8.0,
"w_rank": 62,
"l_value": 6.0,
"l_rank": 107,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 131.0,
"ip_rank": 72,
"h_value": 107.0,
"h_rank": 101,
"er_value": 47.0,
"er_rank": 115,
"hr_value": 15.0,
"hr_rank": 84,
"bb_value": 37.0,
"bb_rank": 103,
"k_value": 147.0,
"k_rank": 30,
"k_per_9_value": 10.0992365,
"k_per_9_rank": 11.0,
"whip_value": 1.0992,
"whip_rank": null,
"war_value": 2.37,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9356,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9356,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.956,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9167,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0463,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260906_BOS@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_BOS@BAL | home | Kyle Bradish | Kyle Bradish | True | 5.1 | 4.0 | -4 | 3 | 0 | -3 | 4/2 | 2/4 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.013513513513513,
"WHIP": 1.4189189189189189,
"IP": 148.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.481,
"recent_avg_IP": 5.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0997,
"sample_weight": 1.0,
"run_prevention_factor": 1.0085,
"strikeout_factor": 0.9897,
"walk_factor": 1.018,
"homer_factor": 1.0281,
"regression_flag": "neutral",
"k_percent": 21.6,
"bb_percent": 10.1,
"woba": 0.332,
"xwoba": 0.319,
"barrel_percent": 8.3,
"hard_hit_percent": 38.2,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 147,
"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": "680694",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 15.0,
"R": 18.0,
"H": 35.0,
"BB": 10.0,
"SO": 20.0,
"HR": 4.0,
"BF": 120.0,
"Pitches": 477.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.6,
"H": 7.0,
"BB": 2.0,
"SO": 4.0,
"HR": 0.8,
"BF": 24.0,
"Pitches": 95.4
},
"rates": {
"ERA": 5.0,
"WHIP": 1.6667,
"ER_per_IP": 0.55556,
"H_per_IP": 1.2963,
"BB_per_IP": 0.37037,
"SO_per_IP": 0.74074,
"HR_per_IP": 0.14815
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 27.0,
"R": 30.0,
"H": 58.0,
"BB": 17.0,
"SO": 41.0,
"HR": 6.0,
"BF": 233.0,
"Pitches": 914.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 3.0,
"H": 5.8,
"BB": 1.7,
"SO": 4.1,
"HR": 0.6,
"BF": 23.3,
"Pitches": 91.4
},
"rates": {
"ERA": 4.4182,
"WHIP": 1.3636,
"ER_per_IP": 0.49091,
"H_per_IP": 1.05455,
"BB_per_IP": 0.30909,
"SO_per_IP": 0.74545,
"HR_per_IP": 0.10909
}
},
"season": {
"games": 27,
"totals": {
"IP": 148.0,
"ER": 66.0,
"R": 75.0,
"H": 146.0,
"BB": 64.0,
"SO": 137.0,
"HR": 17.0,
"BF": 633.0,
"Pitches": 2488.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4444,
"R": 2.7778,
"H": 5.4074,
"BB": 2.3704,
"SO": 5.0741,
"HR": 0.6296,
"BF": 23.4444,
"Pitches": 92.1481
},
"rates": {
"ERA": 4.0135,
"WHIP": 1.4189,
"ER_per_IP": 0.44595,
"H_per_IP": 0.98649,
"BB_per_IP": 0.43243,
"SO_per_IP": 0.92568,
"HR_per_IP": 0.11486
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.714,
"predicted_H": 5.983,
"predicted_BB": 1.936,
"predicted_SO": 4.29,
"predicted_HR": 0.697,
"predicted_ERA": 4.5802,
"predicted_WHIP": 1.4847
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.714,
"final": 2.833,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.983,
"final": 5.1581,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.936,
"final": 1.9626,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.29,
"final": 4.5854,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.697,
"final": 0.4071,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5802,
"final": 4.5802,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4847,
"final": 1.4847,
"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": 27,
"H": 58,
"BB": 17,
"SO": 41,
"HR": 6,
"ERA": 4.418181818181818,
"WHIP": 1.3636363636363635,
"K9": 6.709090909090909,
"HR9": 0.9818181818181818,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.0068838393740362,
"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": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680694",
"player_name": "Kyle Bradish",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 143,
"wins": 69,
"losses": 74,
"win_pct": 0.4825,
"runs_scored": 640.0,
"runs_allowed": 667.0,
"run_differential": -27.0,
"run_differential_per_game": -0.1888,
"avg_runs_scored": 4.4755,
"avg_runs_allowed": 4.6643,
"offense_index": 0.999,
"defense_index": 0.9605,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.1,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0731
},
"opponent": {
"team": "BOS",
"games": 143,
"wins": 78,
"losses": 65,
"win_pct": 0.5455,
"runs_scored": 639.0,
"runs_allowed": 555.0,
"run_differential": 84.0,
"run_differential_per_game": 0.5874,
"avg_runs_scored": 4.4685,
"avg_runs_allowed": 3.8811,
"offense_index": 0.9974,
"defense_index": 1.1544,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.6,
"run_differential": -17.0
},
"available": true,
"quality_score": 0.1108
},
"edges": {
"quality_edge": -0.1839,
"offense_edge": -0.001,
"opponent_offense_edge": -0.0026,
"defense_strength": -0.0395,
"opponent_defense_weakness": -0.1544,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9916,
"run_prevention": 1.0127,
"strikeout": 0.9947
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680694",
"profile": {
"available": true,
"pitcher_id": "680694",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 555.0,
"k_percent": 21.6,
"bb_percent": 10.1,
"woba": 0.332,
"xwoba": 0.319,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 38.2,
"avg_best_speed": 77.0348,
"avg_hyper_speed": 93.9564,
"whiff_percent": 23.7,
"swing_percent": 45.4
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1841,
"command_and_miss": -0.1407,
"regression_edge": 0.3714,
"xwoba_edge": -0.2286,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.0429,
"whiff_edge": -0.2,
"bb_edge": -0.225,
"pitch_design_score": 0.0357
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680694",
"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": 90.5144544635341,
"release_spin_rate": 2427.3950290002913,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 90.5144544635341,
"release_spin_rate": 2427.3950290002913,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5145,
"release_spin_rate": 2427.395,
"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.0357,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2552,
"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.0997,
"sample_weight": 1.0,
"run_prevention_factor": 1.0085,
"strikeout_factor": 0.9897,
"walk_factor": 1.018,
"homer_factor": 1.0281,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680694",
"espn_id": 4311625,
"player_name": "Kyle Bradish",
"team": "BAL",
"role": "pitcher",
"espn_rank": 147,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 147,
"gp_value": 27.0,
"gp_rank": 271,
"gs_value": 27.0,
"gs_rank": 32,
"qs_value": 12.0,
"qs_rank": 33,
"era_value": 4.0135,
"era_rank": 34.0,
"w_value": 7.0,
"w_rank": 82,
"l_value": 12.0,
"l_rank": 8,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 148.0,
"ip_rank": 41,
"h_value": 146.0,
"h_rank": 20,
"er_value": 66.0,
"er_rank": 44,
"hr_value": 17.0,
"hr_rank": 64,
"bb_value": 64.0,
"bb_rank": 10,
"k_value": 137.0,
"k_rank": 43,
"k_per_9_value": 8.331081,
"k_per_9_rank": 28.0,
"whip_value": 1.4189,
"whip_rank": 47.0,
"war_value": 1.24,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0085,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0085,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.018,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0281,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9897,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 90,
"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": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260906_BOS@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_CHC@MIA | away | Clay Holmes | Clay Holmes | True | 6.0 | 4.1 | -5 | 2 | 8 | 6 | 2/6 | 3/3 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.093877551020408,
"WHIP": 1.0653061224489795,
"IP": 81.2,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 5.833,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0058,
"sample_weight": 1.0,
"run_prevention_factor": 0.9995,
"strikeout_factor": 0.9651,
"walk_factor": 0.982,
"homer_factor": 0.9804,
"regression_flag": "negative_pitcher_regression",
"k_percent": 19.3,
"bb_percent": 8.3,
"woba": 0.252,
"xwoba": 0.305,
"barrel_percent": 5.1,
"hard_hit_percent": 41.9,
"whiff_percent": 21.7
},
"espn_rank": {
"rank": 27,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 81.2,
"season_ERA": 2.094,
"season_WHIP": 1.065,
"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": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605280",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 5.0,
"R": 5.0,
"H": 20.0,
"BB": 9.0,
"SO": 18.0,
"HR": 1.0,
"BF": 111.0,
"Pitches": 430.0
},
"per_game": {
"IP": 5.2,
"ER": 1.0,
"R": 1.0,
"H": 4.0,
"BB": 1.8,
"SO": 3.6,
"HR": 0.2,
"BF": 22.2,
"Pitches": 86.0
},
"rates": {
"ERA": 1.5517,
"WHIP": 1.0,
"ER_per_IP": 0.17241,
"H_per_IP": 0.68966,
"BB_per_IP": 0.31034,
"SO_per_IP": 0.62069,
"HR_per_IP": 0.03448
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.2,
"ER": 14.0,
"R": 14.0,
"H": 44.0,
"BB": 18.0,
"SO": 47.0,
"HR": 2.0,
"BF": 233.0,
"Pitches": 909.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 4.4,
"BB": 1.8,
"SO": 4.7,
"HR": 0.2,
"BF": 23.3,
"Pitches": 90.9
},
"rates": {
"ERA": 2.1477,
"WHIP": 1.0568,
"ER_per_IP": 0.23864,
"H_per_IP": 0.75,
"BB_per_IP": 0.30682,
"SO_per_IP": 0.80114,
"HR_per_IP": 0.03409
}
},
"season": {
"games": 14,
"totals": {
"IP": 81.2,
"ER": 19.0,
"R": 19.0,
"H": 60.0,
"BB": 27.0,
"SO": 63.0,
"HR": 4.0,
"BF": 326.0,
"Pitches": 1258.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3571,
"R": 1.3571,
"H": 4.2857,
"BB": 1.9286,
"SO": 4.5,
"HR": 0.2857,
"BF": 23.2857,
"Pitches": 89.8571
},
"rates": {
"ERA": 2.0939,
"WHIP": 1.0653,
"ER_per_IP": 0.23265,
"H_per_IP": 0.73469,
"BB_per_IP": 0.33061,
"SO_per_IP": 0.77143,
"HR_per_IP": 0.04898
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.672,
"predicted_H": 4.628,
"predicted_BB": 1.935,
"predicted_SO": 4.554,
"predicted_HR": 0.388,
"predicted_ERA": 2.5555,
"predicted_WHIP": 1.1144
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4612,
"form_weight": 0.5388,
"form_reliability": 0.7368,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.672,
"final": 2.2845,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.628,
"final": 3.8772,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.935,
"final": 2.4262,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.554,
"final": 5.6821,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.388,
"final": 0.6703,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5555,
"final": 2.5555,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1144,
"final": 1.1144,
"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": 14,
"H": 44,
"BB": 18,
"SO": 47,
"HR": 2,
"ERA": 2.147727272727273,
"WHIP": 1.0568181818181819,
"K9": 7.210227272727273,
"HR9": 0.3068181818181818,
"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-31T00:00:00"
},
"recent_form_boost": 0.7437872484649457,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605280",
"player_name": "Clay Holmes",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 143,
"wins": 81,
"losses": 62,
"win_pct": 0.5664,
"runs_scored": 765.0,
"runs_allowed": 626.0,
"run_differential": 139.0,
"run_differential_per_game": 0.972,
"avg_runs_scored": 5.3497,
"avg_runs_allowed": 4.3776,
"offense_index": 1.1944,
"defense_index": 1.0231,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 7.0,
"avg_runs_allowed": 5.2,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1758
},
"opponent": {
"team": "MIA",
"games": 143,
"wins": 71,
"losses": 72,
"win_pct": 0.4965,
"runs_scored": 621.0,
"runs_allowed": 613.0,
"run_differential": 8.0,
"run_differential_per_game": 0.0559,
"avg_runs_scored": 4.3427,
"avg_runs_allowed": 4.2867,
"offense_index": 0.9696,
"defense_index": 1.0448,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.0,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0311
},
"edges": {
"quality_edge": 0.2069,
"offense_edge": 0.1944,
"opponent_offense_edge": -0.0304,
"defense_strength": 0.0231,
"opponent_defense_weakness": -0.0448,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0102,
"run_prevention": 0.9825,
"strikeout": 1.0086
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605280",
"profile": {
"available": true,
"pitcher_id": "605280",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 277.0,
"k_percent": 19.3,
"bb_percent": 8.3,
"woba": 0.252,
"xwoba": 0.305,
"sweet_spot_percent": 26.9,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 41.9,
"avg_best_speed": 79.1319,
"avg_hyper_speed": 94.3882,
"whiff_percent": 21.7,
"swing_percent": 46.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4254,
"command_and_miss": -0.2986,
"regression_edge": -1.5143,
"xwoba_edge": 0.1714,
"barrel_edge": 0.4667,
"hard_hit_edge": -0.5714,
"whiff_edge": -0.4857,
"bb_edge": 0.225,
"pitch_design_score": -0.0422
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605280",
"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.12254093725541,
"release_spin_rate": 2162.3889026804495,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 89.12254093725541,
"release_spin_rate": 2162.3889026804495,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.1225,
"release_spin_rate": 2162.3889,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0422,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3015,
"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.0058,
"sample_weight": 1.0,
"run_prevention_factor": 0.9995,
"strikeout_factor": 0.9651,
"walk_factor": 0.982,
"homer_factor": 0.9804,
"woba_minus_xwoba": -0.053,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "605280",
"espn_id": 32827,
"player_name": "Clay Holmes",
"team": "CHC",
"role": "pitcher",
"espn_rank": 27,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 27,
"gp_value": 14.0,
"gp_rank": 470,
"gs_value": 14.0,
"gs_rank": 144,
"qs_value": 7.0,
"qs_rank": 78,
"era_value": 2.0938,
"era_rank": null,
"w_value": 6.0,
"w_rank": 102,
"l_value": 6.0,
"l_rank": 107,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 81.2,
"ip_rank": 153,
"h_value": 60.0,
"h_rank": 190,
"er_value": 19.0,
"er_rank": 325,
"hr_value": 4.0,
"hr_rank": 365,
"bb_value": 27.0,
"bb_rank": 189,
"k_value": 63.0,
"k_rank": 207,
"k_per_9_value": 6.9428573,
"k_per_9_rank": 36.0,
"whip_value": 1.0653,
"whip_rank": null,
"war_value": 3.21,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9995,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9995,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.982,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9804,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9651,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"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": "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/20260906_CHC@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"
}
} |
| 20260906 | 20260906_CHC@MIA | home | Tyler Phillips | Tyler Phillips | True | 5.0 | 5.0 | 0 | 4 | 3 | -1 | 3/5 | 5/1 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4259818731117826,
"WHIP": 1.3323262839879155,
"IP": 110.1,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 4.604,
"recent_avg_IP": 4.8,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2776,
"sample_weight": 1.0,
"run_prevention_factor": 1.0236,
"strikeout_factor": 0.9903,
"walk_factor": 1.016,
"homer_factor": 1.0562,
"regression_flag": "neutral",
"k_percent": 19.1,
"bb_percent": 10.0,
"woba": 0.313,
"xwoba": 0.33,
"barrel_percent": 7.9,
"hard_hit_percent": 42.7,
"whiff_percent": 26.3
},
"espn_rank": {
"rank": 108,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 110.1,
"season_ERA": 3.426,
"season_WHIP": 1.332,
"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": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663969",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 7.0,
"R": 7.0,
"H": 17.0,
"BB": 9.0,
"SO": 24.0,
"HR": 3.0,
"BF": 88.0,
"Pitches": 348.0
},
"per_game": {
"IP": 4.1,
"ER": 1.4,
"R": 1.4,
"H": 3.4,
"BB": 1.8,
"SO": 4.8,
"HR": 0.6,
"BF": 17.6,
"Pitches": 69.6
},
"rates": {
"ERA": 3.0,
"WHIP": 1.2381,
"ER_per_IP": 0.33333,
"H_per_IP": 0.80952,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.14286,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 41.1,
"ER": 15.0,
"R": 16.0,
"H": 37.0,
"BB": 15.0,
"SO": 38.0,
"HR": 6.0,
"BF": 174.0,
"Pitches": 654.0
},
"per_game": {
"IP": 4.0,
"ER": 1.5,
"R": 1.6,
"H": 3.7,
"BB": 1.5,
"SO": 3.8,
"HR": 0.6,
"BF": 17.4,
"Pitches": 65.4
},
"rates": {
"ERA": 3.2661,
"WHIP": 1.2581,
"ER_per_IP": 0.3629,
"H_per_IP": 0.89516,
"BB_per_IP": 0.3629,
"SO_per_IP": 0.91935,
"HR_per_IP": 0.14516
}
},
"season": {
"games": 33,
"totals": {
"IP": 110.1,
"ER": 42.0,
"R": 45.0,
"H": 100.0,
"BB": 47.0,
"SO": 90.0,
"HR": 14.0,
"BF": 471.0,
"Pitches": 1770.0
},
"per_game": {
"IP": 3.1,
"ER": 1.2727,
"R": 1.3636,
"H": 3.0303,
"BB": 1.4242,
"SO": 2.7273,
"HR": 0.4242,
"BF": 14.2727,
"Pitches": 53.6364
},
"rates": {
"ERA": 3.426,
"WHIP": 1.3323,
"ER_per_IP": 0.38066,
"H_per_IP": 0.90634,
"BB_per_IP": 0.42598,
"SO_per_IP": 0.81571,
"HR_per_IP": 0.12689
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.543,
"predicted_H": 3.622,
"predicted_BB": 1.661,
"predicted_SO": 4.11,
"predicted_HR": 0.585,
"predicted_ERA": 3.3494,
"predicted_WHIP": 1.2743
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4056,
"form_weight": 0.5944,
"form_reliability": 0.8684,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.543,
"final": 2.5396,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.622,
"final": 3.3697,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.661,
"final": 3.0153,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.11,
"final": 3.6598,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.585,
"final": 1.1589,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3494,
"final": 3.3494,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2743,
"final": 1.2743,
"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": 41.1,
"ER": 15,
"H": 37,
"BB": 15,
"SO": 38,
"HR": 6,
"ERA": 3.266129032258065,
"WHIP": 1.2580645161290325,
"K9": 8.274193548387098,
"HR9": 1.306451612903226,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.8746386047699309,
"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": 3.0,
"predicted_BB": 5.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663969",
"player_name": "Tyler Phillips",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 3.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": 4.0,
"after": 4.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": 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": 5.0,
"after": 5.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": 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": 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": "MIA",
"games": 143,
"wins": 71,
"losses": 72,
"win_pct": 0.4965,
"runs_scored": 621.0,
"runs_allowed": 613.0,
"run_differential": 8.0,
"run_differential_per_game": 0.0559,
"avg_runs_scored": 4.3427,
"avg_runs_allowed": 4.2867,
"offense_index": 0.9696,
"defense_index": 1.0448,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.0,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0311
},
"opponent": {
"team": "CHC",
"games": 143,
"wins": 81,
"losses": 62,
"win_pct": 0.5664,
"runs_scored": 765.0,
"runs_allowed": 626.0,
"run_differential": 139.0,
"run_differential_per_game": 0.972,
"avg_runs_scored": 5.3497,
"avg_runs_allowed": 4.3776,
"offense_index": 1.1944,
"defense_index": 1.0231,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 7.0,
"avg_runs_allowed": 5.2,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1758
},
"edges": {
"quality_edge": -0.2069,
"offense_edge": -0.0304,
"opponent_offense_edge": 0.1944,
"defense_strength": 0.0448,
"opponent_defense_weakness": -0.0231,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9853,
"run_prevention": 1.037,
"strikeout": 0.9782
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663969",
"profile": {
"available": true,
"pitcher_id": "663969",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 421.0,
"k_percent": 19.1,
"bb_percent": 10.0,
"woba": 0.313,
"xwoba": 0.33,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 42.7,
"avg_best_speed": 79.2389,
"avg_hyper_speed": 94.3724,
"whiff_percent": 26.3,
"swing_percent": 45.9
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3235,
"command_and_miss": -0.1664,
"regression_edge": -0.4857,
"xwoba_edge": -0.5429,
"barrel_edge": -0.1556,
"hard_hit_edge": -0.6857,
"whiff_edge": 0.1714,
"bb_edge": -0.2,
"pitch_design_score": -0.058
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663969",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 65,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 65,
"pitch_usage": 0.0,
"release_speed": 88.84117592259537,
"release_spin_rate": 2059.5043972880403,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 65,
"pitch_usage": 0.0,
"release_speed": 88.84117592259537,
"release_spin_rate": 2059.5043972880403,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8412,
"release_spin_rate": 2059.5044,
"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.058,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4141,
"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.2776,
"sample_weight": 1.0,
"run_prevention_factor": 1.0236,
"strikeout_factor": 0.9903,
"walk_factor": 1.016,
"homer_factor": 1.0562,
"woba_minus_xwoba": -0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663969",
"espn_id": 41247,
"player_name": "Tyler Phillips",
"team": "MIA",
"role": "pitcher",
"espn_rank": 108,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 108,
"gp_value": 33.0,
"gp_rank": 198,
"gs_value": 16.0,
"gs_rank": 127,
"qs_value": 2.0,
"qs_rank": 156,
"era_value": 3.4259,
"era_rank": null,
"w_value": 4.0,
"w_rank": 182,
"l_value": 6.0,
"l_rank": 107,
"sv_value": 2.0,
"sv_rank": 88,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 110.1,
"ip_rank": 105,
"h_value": 100.0,
"h_rank": 112,
"er_value": 42.0,
"er_rank": 139,
"hr_value": 14.0,
"hr_rank": 103,
"bb_value": 47.0,
"bb_rank": 47,
"k_value": 90.0,
"k_rank": 122,
"k_per_9_value": 7.3413897,
"k_per_9_rank": 31.0,
"whip_value": 1.3323,
"whip_rank": null,
"war_value": 1.61,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0236,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0236,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 1.016,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0562,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9903,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 5,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
}
],
"provenance": {
"prediction": "output/games/20260906_CHC@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"
}
} |
| 20260906 | 20260906_DET@CLE | away | Jackson Jobe | Jackson Jobe | True | 5.0 | 5.0 | 0 | 1 | 2 | 1 | 2/4 | 1/2 | 3/7 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 4.628571428571429,
"WHIP": 1.4571428571428573,
"IP": 23.1,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 4.667,
"recent_avg_IP": 4.667,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2762,
"sample_weight": 0.45,
"run_prevention_factor": 1.0235,
"strikeout_factor": 0.9743,
"walk_factor": 1.0036,
"homer_factor": 1.0579,
"regression_flag": "neutral",
"k_percent": 18.3,
"bb_percent": 9.6,
"woba": 0.359,
"xwoba": 0.36,
"barrel_percent": 11.3,
"hard_hit_percent": 40.3,
"whiff_percent": 18.8
},
"espn_rank": {
"rank": 395,
"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": "695549",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 12.0,
"R": 13.0,
"H": 24.0,
"BB": 10.0,
"SO": 19.0,
"HR": 4.0,
"BF": 104.0,
"Pitches": 409.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.6,
"H": 4.8,
"BB": 2.0,
"SO": 3.8,
"HR": 0.8,
"BF": 20.8,
"Pitches": 81.8
},
"rates": {
"ERA": 4.6286,
"WHIP": 1.4571,
"ER_per_IP": 0.51429,
"H_per_IP": 1.02857,
"BB_per_IP": 0.42857,
"SO_per_IP": 0.81429,
"HR_per_IP": 0.17143
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 12.0,
"R": 13.0,
"H": 24.0,
"BB": 10.0,
"SO": 19.0,
"HR": 4.0,
"BF": 104.0,
"Pitches": 409.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.6,
"H": 4.8,
"BB": 2.0,
"SO": 3.8,
"HR": 0.8,
"BF": 20.8,
"Pitches": 81.8
},
"rates": {
"ERA": 4.6286,
"WHIP": 1.4571,
"ER_per_IP": 0.51429,
"H_per_IP": 1.02857,
"BB_per_IP": 0.42857,
"SO_per_IP": 0.81429,
"HR_per_IP": 0.17143
}
},
"season": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 12.0,
"R": 13.0,
"H": 24.0,
"BB": 10.0,
"SO": 19.0,
"HR": 4.0,
"BF": 104.0,
"Pitches": 409.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.6,
"H": 4.8,
"BB": 2.0,
"SO": 3.8,
"HR": 0.8,
"BF": 20.8,
"Pitches": 81.8
},
"rates": {
"ERA": 4.6286,
"WHIP": 1.4571,
"ER_per_IP": 0.51429,
"H_per_IP": 1.02857,
"BB_per_IP": 0.42857,
"SO_per_IP": 0.81429,
"HR_per_IP": 0.17143
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.361,
"predicted_H": 4.665,
"predicted_BB": 1.867,
"predicted_SO": 4.091,
"predicted_HR": 0.741,
"predicted_ERA": 4.5533,
"predicted_WHIP": 1.3997
}
},
"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": 1.0,
"form": 2.361,
"final": 1.5971,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.665,
"final": 3.1693,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.867,
"final": 1.3804,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.091,
"final": 3.4787,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.741,
"final": 0.8864,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5533,
"final": 4.5533,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3997,
"final": 1.3997,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 23.1,
"ER": 12,
"H": 24,
"BB": 10,
"SO": 19,
"HR": 4,
"ERA": 4.628571428571429,
"WHIP": 1.4571428571428573,
"K9": 7.328571428571429,
"HR9": 1.542857142857143,
"games_pitched": 5,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-08-31T00:00:00"
},
"recent_form_boost": 1.0251023932832155,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695549",
"player_name": "Jackson Jobe",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 142,
"wins": 65,
"losses": 77,
"win_pct": 0.4577,
"runs_scored": 625.0,
"runs_allowed": 574.0,
"run_differential": 51.0,
"run_differential_per_game": 0.3592,
"avg_runs_scored": 4.4014,
"avg_runs_allowed": 4.0423,
"offense_index": 0.9827,
"defense_index": 1.108,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 5.5,
"run_differential": -22.0
},
"available": true,
"quality_score": -0.0618
},
"opponent": {
"team": "CLE",
"games": 143,
"wins": 72,
"losses": 71,
"win_pct": 0.5035,
"runs_scored": 577.0,
"runs_allowed": 592.0,
"run_differential": -15.0,
"run_differential_per_game": -0.1049,
"avg_runs_scored": 4.035,
"avg_runs_allowed": 4.1399,
"offense_index": 0.9009,
"defense_index": 1.0819,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.8,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.0099
},
"edges": {
"quality_edge": -0.0519,
"offense_edge": -0.0173,
"opponent_offense_edge": -0.0991,
"defense_strength": 0.108,
"opponent_defense_weakness": -0.0819,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0051,
"run_prevention": 0.9759,
"strikeout": 1.0064
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695549",
"profile": {
"available": true,
"pitcher_id": "695549",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 60.0,
"k_percent": 18.3,
"bb_percent": 9.6,
"woba": 0.359,
"xwoba": 0.36,
"sweet_spot_percent": 26.4,
"barrel_batted_rate": 11.3,
"hard_hit_percent": 40.3,
"avg_best_speed": 77.7362,
"avg_hyper_speed": 94.0998,
"whiff_percent": 18.8,
"swing_percent": 48.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8473,
"command_and_miss": -0.5729,
"regression_edge": -0.0286,
"xwoba_edge": -1.4,
"barrel_edge": -0.9111,
"hard_hit_edge": -0.3429,
"whiff_edge": -0.9,
"bb_edge": -0.1,
"pitch_design_score": 0.1577
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695549",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 77,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 77,
"pitch_usage": 0.0,
"release_speed": 92.69191136764016,
"release_spin_rate": 2460.5256165107135,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 77,
"pitch_usage": 0.0,
"release_speed": 92.69191136764016,
"release_spin_rate": 2460.5256165107135,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.6919,
"release_spin_rate": 2460.5256,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1577,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1262,
"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.2762,
"sample_weight": 0.45,
"run_prevention_factor": 1.0235,
"strikeout_factor": 0.9743,
"walk_factor": 1.0036,
"homer_factor": 1.0579,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695549",
"espn_id": 4872647,
"player_name": "Jackson Jobe",
"team": "DET",
"role": "pitcher",
"espn_rank": 395,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 395,
"gp_value": 5.0,
"gp_rank": 621,
"gs_value": 5.0,
"gs_rank": 218,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 4.6285,
"era_rank": null,
"w_value": 1.0,
"w_rank": 405,
"l_value": 2.0,
"l_rank": 325,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 23.1,
"ip_rank": 478,
"h_value": 24.0,
"h_rank": 462,
"er_value": 12.0,
"er_rank": 469,
"hr_value": 4.0,
"hr_rank": 365,
"bb_value": 10.0,
"bb_rank": 477,
"k_value": 19.0,
"k_rank": 488,
"k_per_9_value": 7.328572,
"k_per_9_rank": 27.0,
"whip_value": 1.4571,
"whip_rank": null,
"war_value": 0.1,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0106,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0106,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0016,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0261,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9884,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 83,
"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."
}
],
"provenance": {
"prediction": "output/games/20260906_DET@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_DET@CLE | home | Gavin Williams | Gavin Williams | True | 5.1 | 6.0 | 2 | 2 | 2 | 0 | 2/4 | 1/3 | 9/11 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8098159509202456,
"WHIP": 1.0920245398773005,
"IP": 163.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.821,
"recent_avg_IP": 4.8,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1922,
"sample_weight": 1.0,
"run_prevention_factor": 0.9837,
"strikeout_factor": 1.104,
"walk_factor": 0.968,
"homer_factor": 1.1274,
"regression_flag": "neutral",
"k_percent": 33.0,
"bb_percent": 7.6,
"woba": 0.294,
"xwoba": 0.303,
"barrel_percent": 11.7,
"hard_hit_percent": 47.4,
"whiff_percent": 32.3
},
"espn_rank": {
"rank": 49,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "668909",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.0,
"ER": 14.0,
"R": 15.0,
"H": 22.0,
"BB": 11.0,
"SO": 39.0,
"HR": 6.0,
"BF": 106.0,
"Pitches": 448.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 3.0,
"H": 4.4,
"BB": 2.2,
"SO": 7.8,
"HR": 1.2,
"BF": 21.2,
"Pitches": 89.6
},
"rates": {
"ERA": 5.25,
"WHIP": 1.375,
"ER_per_IP": 0.58333,
"H_per_IP": 0.91667,
"BB_per_IP": 0.45833,
"SO_per_IP": 1.625,
"HR_per_IP": 0.25
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 23.0,
"R": 24.0,
"H": 38.0,
"BB": 14.0,
"SO": 94.0,
"HR": 11.0,
"BF": 223.0,
"Pitches": 922.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3,
"R": 2.4,
"H": 3.8,
"BB": 1.4,
"SO": 9.4,
"HR": 1.1,
"BF": 22.3,
"Pitches": 92.2
},
"rates": {
"ERA": 3.6529,
"WHIP": 0.9176,
"ER_per_IP": 0.40588,
"H_per_IP": 0.67059,
"BB_per_IP": 0.24706,
"SO_per_IP": 1.65882,
"HR_per_IP": 0.19412
}
},
"season": {
"games": 28,
"totals": {
"IP": 163.0,
"ER": 69.0,
"R": 73.0,
"H": 128.0,
"BB": 50.0,
"SO": 217.0,
"HR": 27.0,
"BF": 657.0,
"Pitches": 2616.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4643,
"R": 2.6071,
"H": 4.5714,
"BB": 1.7857,
"SO": 7.75,
"HR": 0.9643,
"BF": 23.4643,
"Pitches": 93.4286
},
"rates": {
"ERA": 3.8098,
"WHIP": 1.092,
"ER_per_IP": 0.42331,
"H_per_IP": 0.78528,
"BB_per_IP": 0.30675,
"SO_per_IP": 1.33129,
"HR_per_IP": 0.16564
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.567,
"predicted_H": 4.342,
"predicted_BB": 1.867,
"predicted_SO": 7.754,
"predicted_HR": 1.064,
"predicted_ERA": 4.4144,
"predicted_WHIP": 1.1862
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.567,
"final": 2.3323,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.342,
"final": 3.3724,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.867,
"final": 1.5081,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 7.754,
"final": 8.2699,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.064,
"final": 0.6235,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4144,
"final": 4.4144,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1862,
"final": 1.1862,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.2,
"ER": 23,
"H": 38,
"BB": 14,
"SO": 94,
"HR": 11,
"ERA": 3.652941176470588,
"WHIP": 0.9176470588235294,
"K9": 14.92941176470588,
"HR9": 1.7470588235294116,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.9096445345612022,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 9.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 9,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "668909",
"player_name": "Gavin Williams",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 143,
"wins": 72,
"losses": 71,
"win_pct": 0.5035,
"runs_scored": 577.0,
"runs_allowed": 592.0,
"run_differential": -15.0,
"run_differential_per_game": -0.1049,
"avg_runs_scored": 4.035,
"avg_runs_allowed": 4.1399,
"offense_index": 0.9009,
"defense_index": 1.0819,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.8,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.0099
},
"opponent": {
"team": "DET",
"games": 142,
"wins": 65,
"losses": 77,
"win_pct": 0.4577,
"runs_scored": 625.0,
"runs_allowed": 574.0,
"run_differential": 51.0,
"run_differential_per_game": 0.3592,
"avg_runs_scored": 4.4014,
"avg_runs_allowed": 4.0423,
"offense_index": 0.9827,
"defense_index": 1.108,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 5.5,
"run_differential": -22.0
},
"available": true,
"quality_score": -0.0618
},
"edges": {
"quality_edge": 0.0519,
"offense_edge": -0.0991,
"opponent_offense_edge": -0.0173,
"defense_strength": 0.0819,
"opponent_defense_weakness": -0.108,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0052,
"run_prevention": 0.9864,
"strikeout": 1.0029
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "668909",
"profile": {
"available": true,
"pitcher_id": "668909",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 593.0,
"k_percent": 33.0,
"bb_percent": 7.6,
"woba": 0.294,
"xwoba": 0.303,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 11.7,
"hard_hit_percent": 47.4,
"avg_best_speed": 79.4365,
"avg_hyper_speed": 95.0622,
"whiff_percent": 32.3,
"swing_percent": 49.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.152,
"command_and_miss": 1.1471,
"regression_edge": -0.2571,
"xwoba_edge": 0.2286,
"barrel_edge": -1.0,
"hard_hit_edge": -1.3571,
"whiff_edge": 1.0286,
"bb_edge": 0.4,
"pitch_design_score": 0.0599
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "668909",
"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": 90.94628314658443,
"release_spin_rate": 2281.2769819363643,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 90.94628314658443,
"release_spin_rate": 2281.2769819363643,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.9463,
"release_spin_rate": 2281.277,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0599,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.428,
"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.1922,
"sample_weight": 1.0,
"run_prevention_factor": 0.9837,
"strikeout_factor": 1.104,
"walk_factor": 0.968,
"homer_factor": 1.1274,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "668909",
"espn_id": 4345076,
"player_name": "Gavin Williams",
"team": "CLE",
"role": "pitcher",
"espn_rank": 49,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 49,
"gp_value": 28.0,
"gp_rank": 239,
"gs_value": 28.0,
"gs_rank": 11,
"qs_value": 10.0,
"qs_rank": 55,
"era_value": 3.8098,
"era_rank": 27.0,
"w_value": 13.0,
"w_rank": 11,
"l_value": 7.0,
"l_rank": 82,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 163.0,
"ip_rank": 13,
"h_value": 128.0,
"h_rank": 59,
"er_value": 69.0,
"er_rank": 31,
"hr_value": 27.0,
"hr_rank": 5,
"bb_value": 50.0,
"bb_rank": 36,
"k_value": 217.0,
"k_rank": 3,
"k_per_9_value": 11.981595,
"k_per_9_rank": 6.0,
"whip_value": 1.092,
"whip_rank": 12.0,
"war_value": 2.49,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9837,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9837,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1274,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.104,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 9,
"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 +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260906_DET@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_LAA@PIT | away | Walbert Ureña | Walbert Ureña | True | 5.2 | 8.0 | 7 | 4 | 1 | -3 | 2/3 | 1/1 | 8/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.845945945945946,
"WHIP": 1.2567567567567568,
"IP": 123.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.29,
"recent_avg_IP": 4.8,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3891,
"sample_weight": 1.0,
"run_prevention_factor": 0.9669,
"strikeout_factor": 1.0177,
"walk_factor": 1.06,
"homer_factor": 0.9252,
"regression_flag": "neutral",
"k_percent": 22.9,
"bb_percent": 12.2,
"woba": 0.28,
"xwoba": 0.286,
"barrel_percent": 5.1,
"hard_hit_percent": 35.1,
"whiff_percent": 27.3
},
"espn_rank": {
"rank": 33,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 123.1,
"season_ERA": 2.846,
"season_WHIP": 1.257,
"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": "700712",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.0,
"ER": 11.0,
"R": 11.0,
"H": 19.0,
"BB": 12.0,
"SO": 25.0,
"HR": 2.0,
"BF": 102.0,
"Pitches": 428.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.2,
"H": 3.8,
"BB": 2.4,
"SO": 5.0,
"HR": 0.4,
"BF": 20.4,
"Pitches": 85.6
},
"rates": {
"ERA": 4.125,
"WHIP": 1.2917,
"ER_per_IP": 0.45833,
"H_per_IP": 0.79167,
"BB_per_IP": 0.5,
"SO_per_IP": 1.04167,
"HR_per_IP": 0.08333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 14.0,
"R": 14.0,
"H": 32.0,
"BB": 27.0,
"SO": 51.0,
"HR": 3.0,
"BF": 212.0,
"Pitches": 904.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 3.2,
"BB": 2.7,
"SO": 5.1,
"HR": 0.3,
"BF": 21.2,
"Pitches": 90.4
},
"rates": {
"ERA": 2.4387,
"WHIP": 1.1419,
"ER_per_IP": 0.27097,
"H_per_IP": 0.61935,
"BB_per_IP": 0.52258,
"SO_per_IP": 0.9871,
"HR_per_IP": 0.05806
}
},
"season": {
"games": 25,
"totals": {
"IP": 123.1,
"ER": 39.0,
"R": 46.0,
"H": 91.0,
"BB": 64.0,
"SO": 120.0,
"HR": 8.0,
"BF": 525.0,
"Pitches": 2120.0
},
"per_game": {
"IP": 5.0,
"ER": 1.56,
"R": 1.84,
"H": 3.64,
"BB": 2.56,
"SO": 4.8,
"HR": 0.32,
"BF": 21.0,
"Pitches": 84.8
},
"rates": {
"ERA": 2.8459,
"WHIP": 1.2568,
"ER_per_IP": 0.31622,
"H_per_IP": 0.73784,
"BB_per_IP": 0.51892,
"SO_per_IP": 0.97297,
"HR_per_IP": 0.06486
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.965,
"predicted_H": 3.875,
"predicted_BB": 2.482,
"predicted_SO": 5.069,
"predicted_HR": 0.424,
"predicted_ERA": 3.4789,
"predicted_WHIP": 1.2506
}
},
"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.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.965,
"final": 1.9797,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.875,
"final": 3.0867,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.482,
"final": 1.8589,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.069,
"final": 5.8809,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.424,
"final": 0.2457,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4789,
"final": 3.4789,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2506,
"final": 1.2506,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 14,
"H": 32,
"BB": 27,
"SO": 51,
"HR": 3,
"ERA": 2.438709677419355,
"WHIP": 1.1419354838709679,
"K9": 8.883870967741936,
"HR9": 0.5225806451612903,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-31T00:00:00"
},
"recent_form_boost": 0.7786507015441244,
"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": 1.0,
"predicted_SO": 7.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": 2,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700712",
"player_name": "Walbert Ure\u00f1a",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"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": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 142,
"wins": 54,
"losses": 88,
"win_pct": 0.3803,
"runs_scored": 577.0,
"runs_allowed": 653.0,
"run_differential": -76.0,
"run_differential_per_game": -0.5352,
"avg_runs_scored": 4.0634,
"avg_runs_allowed": 4.5986,
"offense_index": 0.907,
"defense_index": 0.9743,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.2,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.2724
},
"opponent": {
"team": "PIT",
"games": 143,
"wins": 70,
"losses": 73,
"win_pct": 0.4895,
"runs_scored": 693.0,
"runs_allowed": 668.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1748,
"avg_runs_scored": 4.8462,
"avg_runs_allowed": 4.6713,
"offense_index": 1.0817,
"defense_index": 0.9591,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.8,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0475
},
"edges": {
"quality_edge": -0.3199,
"offense_edge": -0.093,
"opponent_offense_edge": 0.0817,
"defense_strength": -0.0257,
"opponent_defense_weakness": 0.0409,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9832,
"run_prevention": 1.0316,
"strikeout": 0.9839
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700712",
"profile": {
"available": true,
"pitcher_id": "700712",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 477.0,
"k_percent": 22.9,
"bb_percent": 12.2,
"woba": 0.28,
"xwoba": 0.286,
"sweet_spot_percent": 26.7,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 35.1,
"avg_best_speed": 75.7507,
"avg_hyper_speed": 93.6194,
"whiff_percent": 27.3,
"swing_percent": 45.8
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.6852,
"command_and_miss": 0.0179,
"regression_edge": -0.1714,
"xwoba_edge": 0.7143,
"barrel_edge": 0.4667,
"hard_hit_edge": 0.4,
"whiff_edge": 0.3143,
"bb_edge": -0.75,
"pitch_design_score": 0.2241
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700712",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 93.87892413530693,
"release_spin_rate": 2097.4669612279217,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 93.87892413530693,
"release_spin_rate": 2097.4669612279217,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.8789,
"release_spin_rate": 2097.467,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.2241,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.601,
"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.3891,
"sample_weight": 1.0,
"run_prevention_factor": 0.9669,
"strikeout_factor": 1.0177,
"walk_factor": 1.06,
"homer_factor": 0.9252,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "700712",
"espn_id": 5197476,
"player_name": "Walbert Urena",
"team": "LAA",
"role": "pitcher",
"espn_rank": 33,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 33,
"gp_value": 25.0,
"gp_rank": 311,
"gs_value": 23.0,
"gs_rank": 75,
"qs_value": 11.0,
"qs_rank": 43,
"era_value": 2.8459,
"era_rank": null,
"w_value": 9.0,
"w_rank": 37,
"l_value": 9.0,
"l_rank": 26,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 1.0,
"hld_rank": 267,
"ip_value": 123.1,
"ip_rank": 89,
"h_value": 91.0,
"h_rank": 124,
"er_value": 39.0,
"er_rank": 148,
"hr_value": 8.0,
"hr_rank": 201,
"bb_value": 64.0,
"bb_rank": 10,
"k_value": 120.0,
"k_rank": 65,
"k_per_9_value": 8.756757,
"k_per_9_rank": 19.0,
"whip_value": 1.2567,
"whip_rank": null,
"war_value": 3.0,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9669,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9669,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.06,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9252,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0177,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 93,
"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": "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/20260906_LAA@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_LAA@PIT | home | Paul Skenes | Paul Skenes | True | 5.2 | 5.1 | -1 | 0 | 0 | 0 | 2/4 | 3/1 | 2/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9688195991091315,
"WHIP": 1.155902004454343,
"IP": 149.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.345,
"recent_avg_IP": 5.0,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4841,
"sample_weight": 1.0,
"run_prevention_factor": 0.9588,
"strikeout_factor": 1.0566,
"walk_factor": 0.958,
"homer_factor": 0.9812,
"regression_flag": "neutral",
"k_percent": 28.9,
"bb_percent": 7.1,
"woba": 0.297,
"xwoba": 0.279,
"barrel_percent": 7.3,
"hard_hit_percent": 39.1,
"whiff_percent": 28.1
},
"espn_rank": {
"rank": 53,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694973",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 12.0,
"R": 13.0,
"H": 22.0,
"BB": 12.0,
"SO": 23.0,
"HR": 2.0,
"BF": 107.0,
"Pitches": 421.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.6,
"H": 4.4,
"BB": 2.4,
"SO": 4.6,
"HR": 0.4,
"BF": 21.4,
"Pitches": 84.2
},
"rates": {
"ERA": 4.32,
"WHIP": 1.36,
"ER_per_IP": 0.48,
"H_per_IP": 0.88,
"BB_per_IP": 0.48,
"SO_per_IP": 0.92,
"HR_per_IP": 0.08
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 27.0,
"R": 28.0,
"H": 53.0,
"BB": 22.0,
"SO": 60.0,
"HR": 4.0,
"BF": 224.0,
"Pitches": 903.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.8,
"H": 5.3,
"BB": 2.2,
"SO": 6.0,
"HR": 0.4,
"BF": 22.4,
"Pitches": 90.3
},
"rates": {
"ERA": 4.6139,
"WHIP": 1.4241,
"ER_per_IP": 0.51266,
"H_per_IP": 1.00633,
"BB_per_IP": 0.41772,
"SO_per_IP": 1.13924,
"HR_per_IP": 0.07595
}
},
"season": {
"games": 28,
"totals": {
"IP": 149.2,
"ER": 66.0,
"R": 74.0,
"H": 129.0,
"BB": 44.0,
"SO": 179.0,
"HR": 15.0,
"BF": 619.0,
"Pitches": 2536.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3571,
"R": 2.6429,
"H": 4.6071,
"BB": 1.5714,
"SO": 6.3929,
"HR": 0.5357,
"BF": 22.1071,
"Pitches": 90.5714
},
"rates": {
"ERA": 3.9688,
"WHIP": 1.1559,
"ER_per_IP": 0.44098,
"H_per_IP": 0.86192,
"BB_per_IP": 0.29399,
"SO_per_IP": 1.19599,
"HR_per_IP": 0.10022
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.504,
"predicted_H": 4.786,
"predicted_BB": 2.132,
"predicted_SO": 5.335,
"predicted_HR": 0.476,
"predicted_ERA": 4.3716,
"predicted_WHIP": 1.3417
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.504,
"final": 1.4673,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.786,
"final": 3.6326,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.132,
"final": 2.4914,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.335,
"final": 3.9543,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.476,
"final": 0.2789,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3716,
"final": 4.3716,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3417,
"final": 1.3417,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.2,
"ER": 27,
"H": 53,
"BB": 22,
"SO": 60,
"HR": 4,
"ERA": 4.613924050632912,
"WHIP": 1.4240506329113924,
"K9": 10.253164556962027,
"HR9": 0.6835443037974683,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.0304151972566602,
"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": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694973",
"player_name": "Paul Skenes",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.2,
"delta": 0.2,
"percent_delta": 0.04,
"direction": "boost",
"projection_effect": "better",
"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": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 5.2,
"delta": 0.2,
"percent_delta": 0.04,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.2,
"delta": 0.2,
"percent_delta": 0.04,
"direction": "boost",
"projection_effect": "better",
"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": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 5.2,
"delta": 0.2,
"percent_delta": 0.04,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 143,
"wins": 70,
"losses": 73,
"win_pct": 0.4895,
"runs_scored": 693.0,
"runs_allowed": 668.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1748,
"avg_runs_scored": 4.8462,
"avg_runs_allowed": 4.6713,
"offense_index": 1.0817,
"defense_index": 0.9591,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.8,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0475
},
"opponent": {
"team": "LAA",
"games": 142,
"wins": 54,
"losses": 88,
"win_pct": 0.3803,
"runs_scored": 577.0,
"runs_allowed": 653.0,
"run_differential": -76.0,
"run_differential_per_game": -0.5352,
"avg_runs_scored": 4.0634,
"avg_runs_allowed": 4.5986,
"offense_index": 0.907,
"defense_index": 0.9743,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.2,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.2724
},
"edges": {
"quality_edge": 0.3199,
"offense_edge": 0.0817,
"opponent_offense_edge": -0.093,
"defense_strength": -0.0409,
"opponent_defense_weakness": 0.0257,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0153,
"run_prevention": 0.9732,
"strikeout": 1.017
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694973",
"profile": {
"available": true,
"pitcher_id": "694973",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 572.0,
"k_percent": 28.9,
"bb_percent": 7.1,
"woba": 0.297,
"xwoba": 0.279,
"sweet_spot_percent": 35.2,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 39.1,
"avg_best_speed": 77.1317,
"avg_hyper_speed": 93.9665,
"whiff_percent": 28.1,
"swing_percent": 50.7
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4265,
"command_and_miss": 0.6986,
"regression_edge": 0.5143,
"xwoba_edge": 0.9143,
"barrel_edge": -0.0222,
"hard_hit_edge": -0.1714,
"whiff_edge": 0.4286,
"bb_edge": 0.525,
"pitch_design_score": 0.1526
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694973",
"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": 92.6007202524121,
"release_spin_rate": 2107.096720068865,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 92.6007202524121,
"release_spin_rate": 2107.096720068865,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6007,
"release_spin_rate": 2107.0967,
"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.1526,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0897,
"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.4841,
"sample_weight": 1.0,
"run_prevention_factor": 0.9588,
"strikeout_factor": 1.0566,
"walk_factor": 0.958,
"homer_factor": 0.9812,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694973",
"espn_id": 4719507,
"player_name": "Paul Skenes",
"team": "PIT",
"role": "pitcher",
"espn_rank": 53,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 53,
"gp_value": 28.0,
"gp_rank": 239,
"gs_value": 28.0,
"gs_rank": 11,
"qs_value": 11.0,
"qs_rank": 43,
"era_value": 3.9688,
"era_rank": 32.0,
"w_value": 9.0,
"w_rank": 37,
"l_value": 11.0,
"l_rank": 9,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 149.2,
"ip_rank": 37,
"h_value": 129.0,
"h_rank": 56,
"er_value": 66.0,
"er_rank": 44,
"hr_value": 15.0,
"hr_rank": 84,
"bb_value": 44.0,
"bb_rank": 62,
"k_value": 179.0,
"k_rank": 11,
"k_per_9_value": 10.76392,
"k_per_9_rank": 8.0,
"whip_value": 1.1559,
"whip_rank": 22.0,
"war_value": 2.4,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9588,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9588,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.958,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9812,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0566,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260906_LAA@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_MIL@CIN | away | Kyle Harrison | Kyle Harrison | True | 5.0 | 3.2 | -4 | 2 | 4 | 2 | 3/9 | 3/4 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4485981308411215,
"WHIP": 1.1962616822429906,
"IP": 107.0,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 4.864,
"recent_avg_IP": 4.667,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3466,
"sample_weight": 1.0,
"run_prevention_factor": 0.9705,
"strikeout_factor": 1.0589,
"walk_factor": 0.946,
"homer_factor": 0.9866,
"regression_flag": "neutral",
"k_percent": 29.1,
"bb_percent": 6.5,
"woba": 0.314,
"xwoba": 0.291,
"barrel_percent": 7.7,
"hard_hit_percent": 37.0,
"whiff_percent": 28.3
},
"espn_rank": {
"rank": 92,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 107.0,
"season_ERA": 3.449,
"season_WHIP": 1.196,
"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": "690986",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 13.0,
"R": 18.0,
"H": 29.0,
"BB": 9.0,
"SO": 29.0,
"HR": 9.0,
"BF": 106.0,
"Pitches": 426.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 3.6,
"H": 5.8,
"BB": 1.8,
"SO": 5.8,
"HR": 1.8,
"BF": 21.2,
"Pitches": 85.2
},
"rates": {
"ERA": 5.0143,
"WHIP": 1.6286,
"ER_per_IP": 0.55714,
"H_per_IP": 1.24286,
"BB_per_IP": 0.38571,
"SO_per_IP": 1.24286,
"HR_per_IP": 0.38571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.1,
"ER": 23.0,
"R": 28.0,
"H": 48.0,
"BB": 11.0,
"SO": 53.0,
"HR": 12.0,
"BF": 201.0,
"Pitches": 825.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3,
"R": 2.8,
"H": 4.8,
"BB": 1.1,
"SO": 5.3,
"HR": 1.2,
"BF": 20.1,
"Pitches": 82.5
},
"rates": {
"ERA": 4.3732,
"WHIP": 1.2465,
"ER_per_IP": 0.48592,
"H_per_IP": 1.01408,
"BB_per_IP": 0.23239,
"SO_per_IP": 1.11972,
"HR_per_IP": 0.25352
}
},
"season": {
"games": 22,
"totals": {
"IP": 107.0,
"ER": 41.0,
"R": 46.0,
"H": 99.0,
"BB": 29.0,
"SO": 130.0,
"HR": 19.0,
"BF": 447.0,
"Pitches": 1883.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8636,
"R": 2.0909,
"H": 4.5,
"BB": 1.3182,
"SO": 5.9091,
"HR": 0.8636,
"BF": 20.3182,
"Pitches": 85.5909
},
"rates": {
"ERA": 3.4486,
"WHIP": 1.1963,
"ER_per_IP": 0.38318,
"H_per_IP": 0.92523,
"BB_per_IP": 0.27103,
"SO_per_IP": 1.21495,
"HR_per_IP": 0.17757
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.379,
"predicted_H": 5.144,
"predicted_BB": 1.534,
"predicted_SO": 5.485,
"predicted_HR": 1.29,
"predicted_ERA": 4.477,
"predicted_WHIP": 1.3962
}
},
"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": 2.0,
"form": 2.379,
"final": 2.2167,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.144,
"final": 4.2258,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.534,
"final": 2.1618,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.485,
"final": 5.2773,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.29,
"final": 1.1658,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.477,
"final": 4.477,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3962,
"final": 1.3962,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.1,
"ER": 23,
"H": 48,
"BB": 11,
"SO": 53,
"HR": 12,
"ERA": 4.373239436619718,
"WHIP": 1.2464788732394365,
"K9": 10.077464788732394,
"HR9": 2.2816901408450705,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-31T00:00:00"
},
"recent_form_boost": 0.9988988841883769,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690986",
"player_name": "Kyle Harrison",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 143,
"wins": 88,
"losses": 55,
"win_pct": 0.6154,
"runs_scored": 718.0,
"runs_allowed": 546.0,
"run_differential": 172.0,
"run_differential_per_game": 1.2028,
"avg_runs_scored": 5.021,
"avg_runs_allowed": 3.8182,
"offense_index": 1.1177,
"defense_index": 1.1765,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 5.3,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.2804
},
"opponent": {
"team": "CIN",
"games": 142,
"wins": 68,
"losses": 74,
"win_pct": 0.4789,
"runs_scored": 593.0,
"runs_allowed": 702.0,
"run_differential": -109.0,
"run_differential_per_game": -0.7676,
"avg_runs_scored": 4.1761,
"avg_runs_allowed": 4.9437,
"offense_index": 0.9296,
"defense_index": 0.9087,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 6.6,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.0769
},
"edges": {
"quality_edge": 0.3573,
"offense_edge": 0.1177,
"opponent_offense_edge": -0.0704,
"defense_strength": 0.1765,
"opponent_defense_weakness": 0.0913,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0224,
"run_prevention": 0.9532,
"strikeout": 1.0164
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690986",
"profile": {
"available": true,
"pitcher_id": "690986",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 379.0,
"k_percent": 29.1,
"bb_percent": 6.5,
"woba": 0.314,
"xwoba": 0.291,
"sweet_spot_percent": 38.0,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 37.0,
"avg_best_speed": 78.7526,
"avg_hyper_speed": 93.791,
"whiff_percent": 28.3,
"swing_percent": 48.8
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.152,
"command_and_miss": 0.7514,
"regression_edge": 0.6571,
"xwoba_edge": 0.5714,
"barrel_edge": -0.1111,
"hard_hit_edge": 0.1286,
"whiff_edge": 0.4571,
"bb_edge": 0.675,
"pitch_design_score": 0.0049
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "690986",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 77,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 77,
"pitch_usage": 0.0,
"release_speed": 89.96447377881593,
"release_spin_rate": 2200.373890759081,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 77,
"pitch_usage": 0.0,
"release_speed": 89.96447377881593,
"release_spin_rate": 2200.373890759081,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.9645,
"release_spin_rate": 2200.3739,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0049,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.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.3466,
"sample_weight": 1.0,
"run_prevention_factor": 0.9705,
"strikeout_factor": 1.0589,
"walk_factor": 0.946,
"homer_factor": 0.9866,
"woba_minus_xwoba": 0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "690986",
"espn_id": 4683375,
"player_name": "Kyle Harrison",
"team": "MIL",
"role": "pitcher",
"espn_rank": 92,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 92,
"gp_value": 22.0,
"gp_rank": 355,
"gs_value": 22.0,
"gs_rank": 84,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 3.4485,
"era_rank": null,
"w_value": 10.0,
"w_rank": 28,
"l_value": 4.0,
"l_rank": 175,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 107.0,
"ip_rank": 109,
"h_value": 99.0,
"h_rank": 113,
"er_value": 41.0,
"er_rank": 143,
"hr_value": 19.0,
"hr_rank": 44,
"bb_value": 29.0,
"bb_rank": 167,
"k_value": 130.0,
"k_rank": 52,
"k_per_9_value": 10.934579,
"k_per_9_rank": 12.0,
"whip_value": 1.1962,
"whip_rank": null,
"war_value": 1.79,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9705,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9705,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.946,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9866,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0589,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"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 6",
"detail": "Actual minus predicted hits was +6."
}
],
"provenance": {
"prediction": "output/games/20260906_MIL@CIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_MIL@CIN | home | Brady Singer | Brady Singer | True | 5.0 | 5.0 | 0 | 5 | 6 | 1 | 6/4 | 2/6 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.828235294117647,
"WHIP": 1.447058823529412,
"IP": 141.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.247,
"recent_avg_IP": 5.6,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4412,
"sample_weight": 1.0,
"run_prevention_factor": 1.0375,
"strikeout_factor": 0.9771,
"walk_factor": 0.958,
"homer_factor": 1.089,
"regression_flag": "neutral",
"k_percent": 18.5,
"bb_percent": 7.1,
"woba": 0.354,
"xwoba": 0.342,
"barrel_percent": 9.2,
"hard_hit_percent": 42.6,
"whiff_percent": 24.6
},
"espn_rank": {
"rank": 160,
"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": "663903",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 17.0,
"R": 17.0,
"H": 37.0,
"BB": 6.0,
"SO": 20.0,
"HR": 5.0,
"BF": 130.0,
"Pitches": 477.0
},
"per_game": {
"IP": 5.2,
"ER": 3.4,
"R": 3.4,
"H": 7.4,
"BB": 1.2,
"SO": 4.0,
"HR": 1.0,
"BF": 26.0,
"Pitches": 95.4
},
"rates": {
"ERA": 5.4643,
"WHIP": 1.5357,
"ER_per_IP": 0.60714,
"H_per_IP": 1.32143,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.71429,
"HR_per_IP": 0.17857
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.1,
"ER": 30.0,
"R": 30.0,
"H": 63.0,
"BB": 15.0,
"SO": 46.0,
"HR": 6.0,
"BF": 259.0,
"Pitches": 964.0
},
"per_game": {
"IP": 6.0,
"ER": 3.0,
"R": 3.0,
"H": 6.3,
"BB": 1.5,
"SO": 4.6,
"HR": 0.6,
"BF": 25.9,
"Pitches": 96.4
},
"rates": {
"ERA": 4.5506,
"WHIP": 1.3146,
"ER_per_IP": 0.50562,
"H_per_IP": 1.0618,
"BB_per_IP": 0.25281,
"SO_per_IP": 0.77528,
"HR_per_IP": 0.10112
}
},
"season": {
"games": 27,
"totals": {
"IP": 141.2,
"ER": 76.0,
"R": 81.0,
"H": 160.0,
"BB": 45.0,
"SO": 117.0,
"HR": 26.0,
"BF": 633.0,
"Pitches": 2450.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8148,
"R": 3.0,
"H": 5.9259,
"BB": 1.6667,
"SO": 4.3333,
"HR": 0.963,
"BF": 23.4444,
"Pitches": 90.7407
},
"rates": {
"ERA": 4.8282,
"WHIP": 1.4471,
"ER_per_IP": 0.53647,
"H_per_IP": 1.12941,
"BB_per_IP": 0.31765,
"SO_per_IP": 0.82588,
"HR_per_IP": 0.18353
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.101,
"predicted_H": 6.548,
"predicted_BB": 1.514,
"predicted_SO": 4.448,
"predicted_HR": 0.857,
"predicted_ERA": 4.9331,
"predicted_WHIP": 1.4253
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.101,
"final": 3.891,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 6.548,
"final": 6.32,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.514,
"final": 1.7162,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.448,
"final": 4.6776,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.857,
"final": 0.5005,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9331,
"final": 4.9331,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4253,
"final": 1.4253,
"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": 30,
"H": 63,
"BB": 15,
"SO": 46,
"HR": 6,
"ERA": 4.550561797752809,
"WHIP": 1.3146067415730336,
"K9": 6.97752808988764,
"HR9": 0.9101123595505618,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-31T00:00:00"
},
"recent_form_boost": 1.0205508465241897,
"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": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"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": 5,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663903",
"player_name": "Brady Singer",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.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": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.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": "CIN",
"games": 142,
"wins": 68,
"losses": 74,
"win_pct": 0.4789,
"runs_scored": 593.0,
"runs_allowed": 702.0,
"run_differential": -109.0,
"run_differential_per_game": -0.7676,
"avg_runs_scored": 4.1761,
"avg_runs_allowed": 4.9437,
"offense_index": 0.9296,
"defense_index": 0.9087,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 6.6,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.0769
},
"opponent": {
"team": "MIL",
"games": 143,
"wins": 88,
"losses": 55,
"win_pct": 0.6154,
"runs_scored": 718.0,
"runs_allowed": 546.0,
"run_differential": 172.0,
"run_differential_per_game": 1.2028,
"avg_runs_scored": 5.021,
"avg_runs_allowed": 3.8182,
"offense_index": 1.1177,
"defense_index": 1.1765,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 5.3,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.2804
},
"edges": {
"quality_edge": -0.3573,
"offense_edge": -0.0704,
"opponent_offense_edge": 0.1177,
"defense_strength": -0.0913,
"opponent_defense_weakness": -0.1765,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9783,
"run_prevention": 1.0458,
"strikeout": 0.9799
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663903",
"profile": {
"available": true,
"pitcher_id": "663903",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 545.0,
"k_percent": 18.5,
"bb_percent": 7.1,
"woba": 0.354,
"xwoba": 0.342,
"sweet_spot_percent": 36.0,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 42.6,
"avg_best_speed": 81.1946,
"avg_hyper_speed": 94.8258,
"whiff_percent": 24.6,
"swing_percent": 44.9
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7612,
"command_and_miss": -0.145,
"regression_edge": 0.3429,
"xwoba_edge": -0.8857,
"barrel_edge": -0.4444,
"hard_hit_edge": -0.6714,
"whiff_edge": -0.0714,
"bb_edge": 0.525,
"pitch_design_score": -0.1439
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663903",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 99,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 87.30662066127576,
"release_spin_rate": 2382.9859605092684,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 87.30662066127576,
"release_spin_rate": 2382.9859605092684,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.3066,
"release_spin_rate": 2382.986,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1439,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0279,
"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.4412,
"sample_weight": 1.0,
"run_prevention_factor": 1.0375,
"strikeout_factor": 0.9771,
"walk_factor": 0.958,
"homer_factor": 1.089,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663903",
"espn_id": 41172,
"player_name": "Brady Singer",
"team": "CIN",
"role": "pitcher",
"espn_rank": 160,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 160,
"gp_value": 27.0,
"gp_rank": 271,
"gs_value": 27.0,
"gs_rank": 32,
"qs_value": 10.0,
"qs_rank": 55,
"era_value": 4.8282,
"era_rank": null,
"w_value": 5.0,
"w_rank": 140,
"l_value": 13.0,
"l_rank": 4,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 141.2,
"ip_rank": 51,
"h_value": 160.0,
"h_rank": 7,
"er_value": 76.0,
"er_rank": 12,
"hr_value": 26.0,
"hr_rank": 10,
"bb_value": 45.0,
"bb_rank": 56,
"k_value": 117.0,
"k_rank": 71,
"k_per_9_value": 7.432941,
"k_per_9_rank": 37.0,
"whip_value": 1.447,
"whip_rank": null,
"war_value": 1.15,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0375,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0375,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.958,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.089,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9771,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260906_MIL@CIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_MIN@CHW | away | Bailey Ober | Bailey Ober | True | 5.1 | 4.1 | -3 | 5 | 1 | -4 | 4/4 | 3/3 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.36764705882353,
"WHIP": 1.2352941176470589,
"IP": 113.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.397,
"recent_avg_IP": 5.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3311,
"sample_weight": 1.0,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9383,
"walk_factor": 0.946,
"homer_factor": 1.0588,
"regression_flag": "neutral",
"k_percent": 16.6,
"bb_percent": 6.5,
"woba": 0.317,
"xwoba": 0.33,
"barrel_percent": 10.2,
"hard_hit_percent": 36.0,
"whiff_percent": 19.7
},
"espn_rank": {
"rank": 105,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "641927",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 12.0,
"R": 13.0,
"H": 26.0,
"BB": 7.0,
"SO": 16.0,
"HR": 4.0,
"BF": 111.0,
"Pitches": 435.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.6,
"H": 5.2,
"BB": 1.4,
"SO": 3.2,
"HR": 0.8,
"BF": 22.2,
"Pitches": 87.0
},
"rates": {
"ERA": 4.1013,
"WHIP": 1.2532,
"ER_per_IP": 0.4557,
"H_per_IP": 0.98734,
"BB_per_IP": 0.26582,
"SO_per_IP": 0.60759,
"HR_per_IP": 0.1519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 28.0,
"R": 31.0,
"H": 58.0,
"BB": 14.0,
"SO": 36.0,
"HR": 9.0,
"BF": 223.0,
"Pitches": 862.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 3.1,
"H": 5.8,
"BB": 1.4,
"SO": 3.6,
"HR": 0.9,
"BF": 22.3,
"Pitches": 86.2
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.4026,
"ER_per_IP": 0.54545,
"H_per_IP": 1.12987,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.7013,
"HR_per_IP": 0.17532
}
},
"season": {
"games": 21,
"totals": {
"IP": 113.1,
"ER": 55.0,
"R": 59.0,
"H": 109.0,
"BB": 31.0,
"SO": 79.0,
"HR": 18.0,
"BF": 477.0,
"Pitches": 1797.0
},
"per_game": {
"IP": 5.1,
"ER": 2.619,
"R": 2.8095,
"H": 5.1905,
"BB": 1.4762,
"SO": 3.7619,
"HR": 0.8571,
"BF": 22.7143,
"Pitches": 85.5714
},
"rates": {
"ERA": 4.3676,
"WHIP": 1.2353,
"ER_per_IP": 0.48529,
"H_per_IP": 0.96176,
"BB_per_IP": 0.27353,
"SO_per_IP": 0.69706,
"HR_per_IP": 0.15882
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.588,
"predicted_H": 5.346,
"predicted_BB": 1.516,
"predicted_SO": 3.732,
"predicted_HR": 0.831,
"predicted_ERA": 4.4451,
"predicted_WHIP": 1.3097
}
},
"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.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.588,
"final": 3.1969,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.346,
"final": 4.7655,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.516,
"final": 2.156,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.732,
"final": 3.4163,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.831,
"final": 1.3351,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4451,
"final": 4.4451,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3097,
"final": 1.3097,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.1,
"ER": 28,
"H": 58,
"BB": 14,
"SO": 36,
"HR": 9,
"ERA": 4.909090909090909,
"WHIP": 1.4025974025974026,
"K9": 6.311688311688313,
"HR9": 1.5779220779220782,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 1.0630851380753352,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 2.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641927",
"player_name": "Bailey Ober",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.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": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.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": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 142,
"wins": 68,
"losses": 74,
"win_pct": 0.4789,
"runs_scored": 665.0,
"runs_allowed": 704.0,
"run_differential": -39.0,
"run_differential_per_game": -0.2746,
"avg_runs_scored": 4.6831,
"avg_runs_allowed": 4.9577,
"offense_index": 1.0421,
"defense_index": 0.9064,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.4,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.0865
},
"opponent": {
"team": "CHW",
"games": 142,
"wins": 74,
"losses": 68,
"win_pct": 0.5211,
"runs_scored": 670.0,
"runs_allowed": 630.0,
"run_differential": 40.0,
"run_differential_per_game": 0.2817,
"avg_runs_scored": 4.7183,
"avg_runs_allowed": 4.4366,
"offense_index": 1.05,
"defense_index": 1.0129,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.7,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.0524
},
"edges": {
"quality_edge": -0.1389,
"offense_edge": 0.0421,
"opponent_offense_edge": 0.05,
"defense_strength": -0.0936,
"opponent_defense_weakness": -0.0129,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9896,
"run_prevention": 1.0243,
"strikeout": 0.9918
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641927",
"profile": {
"available": true,
"pitcher_id": "641927",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 434.0,
"k_percent": 16.6,
"bb_percent": 6.5,
"woba": 0.317,
"xwoba": 0.33,
"sweet_spot_percent": 30.8,
"barrel_batted_rate": 10.2,
"hard_hit_percent": 36.0,
"avg_best_speed": 77.3318,
"avg_hyper_speed": 93.8564,
"whiff_percent": 19.7,
"swing_percent": 49.0
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.261,
"command_and_miss": -0.4821,
"regression_edge": -0.3714,
"xwoba_edge": -0.5429,
"barrel_edge": -0.6667,
"hard_hit_edge": 0.2714,
"whiff_edge": -0.7714,
"bb_edge": 0.675,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641927",
"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": 83.58329722592109,
"release_spin_rate": 2149.382968074179,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 83.58329722592109,
"release_spin_rate": 2149.382968074179,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 83.5833,
"release_spin_rate": 2149.383,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3311,
"sample_weight": 1.0,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9383,
"walk_factor": 0.946,
"homer_factor": 1.0588,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641927",
"espn_id": 3107919,
"player_name": "Bailey Ober",
"team": "MIN",
"role": "pitcher",
"espn_rank": 105,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 105,
"gp_value": 21.0,
"gp_rank": 369,
"gs_value": 21.0,
"gs_rank": 91,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 4.3676,
"era_rank": null,
"w_value": 7.0,
"w_rank": 82,
"l_value": 4.0,
"l_rank": 175,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 113.1,
"ip_rank": 100,
"h_value": 109.0,
"h_rank": 95,
"er_value": 55.0,
"er_rank": 76,
"hr_value": 18.0,
"hr_rank": 51,
"bb_value": 31.0,
"bb_rank": 149,
"k_value": 79.0,
"k_rank": 152,
"k_per_9_value": 6.2735295,
"k_per_9_rank": 41.0,
"whip_value": 1.2352,
"whip_rank": null,
"war_value": 1.64,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0281,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0281,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.946,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0588,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9383,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260906_MIN@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"
}
} |
| 20260906 | 20260906_MIN@CHW | home | Bryan Hudson | Bryan Hudson | True | 5.0 | 1.2 | -10 | 0 | 0 | 0 | 3/1 | 1/0 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5786516853932584,
"WHIP": 1.1629213483146066,
"IP": 59.1,
"games_started": null,
"games_pitched": 60,
"role_avg_IP": 1.143,
"recent_avg_IP": 1.2,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4758,
"sample_weight": 0.872,
"run_prevention_factor": 0.9596,
"strikeout_factor": 0.994,
"walk_factor": 0.9599,
"homer_factor": 0.9043,
"regression_flag": "neutral",
"k_percent": 22.2,
"bb_percent": 6.9,
"woba": 0.287,
"xwoba": 0.267,
"barrel_percent": 3.5,
"hard_hit_percent": 36.8,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 103,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 59.1,
"season_ERA": 2.579,
"season_WHIP": 1.163,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.935,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7048,
"prior_weight": 0.2952
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663542",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 60,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.2,
"ER": 0.0,
"R": 0.0,
"H": 4.0,
"BB": 0.0,
"SO": 3.0,
"HR": 0.0,
"BF": 21.0,
"Pitches": 67.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.8,
"BB": 0.0,
"SO": 0.6,
"HR": 0.0,
"BF": 4.2,
"Pitches": 13.4
},
"rates": {
"ERA": 0.0,
"WHIP": 0.7059,
"ER_per_IP": 0.0,
"H_per_IP": 0.70588,
"BB_per_IP": 0.0,
"SO_per_IP": 0.52941,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.2,
"ER": 2.0,
"R": 2.0,
"H": 8.0,
"BB": 0.0,
"SO": 9.0,
"HR": 2.0,
"BF": 40.0,
"Pitches": 135.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 0.8,
"BB": 0.0,
"SO": 0.9,
"HR": 0.2,
"BF": 4.0,
"Pitches": 13.5
},
"rates": {
"ERA": 1.6875,
"WHIP": 0.75,
"ER_per_IP": 0.1875,
"H_per_IP": 0.75,
"BB_per_IP": 0.0,
"SO_per_IP": 0.84375,
"HR_per_IP": 0.1875
}
},
"season": {
"games": 60,
"totals": {
"IP": 59.1,
"ER": 17.0,
"R": 19.0,
"H": 52.0,
"BB": 17.0,
"SO": 55.0,
"HR": 4.0,
"BF": 245.0,
"Pitches": 927.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2833,
"R": 0.3167,
"H": 0.8667,
"BB": 0.2833,
"SO": 0.9167,
"HR": 0.0667,
"BF": 4.0833,
"Pitches": 15.45
},
"rates": {
"ERA": 2.5787,
"WHIP": 1.1629,
"ER_per_IP": 0.28652,
"H_per_IP": 0.8764,
"BB_per_IP": 0.28652,
"SO_per_IP": 0.92697,
"HR_per_IP": 0.06742
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.578,
"predicted_H": 2.028,
"predicted_BB": 0.372,
"predicted_SO": 1.941,
"predicted_HR": 0.245,
"predicted_ERA": 2.1017,
"predicted_WHIP": 0.9691
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4747,
"form_weight": 0.5253,
"form_reliability": 0.7048,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.935,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7048,
"prior_weight": 0.2952
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 2.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.578,
"final": 0.3036,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 2.028,
"final": 2.4894,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.372,
"final": 0.6701,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 1.941,
"final": 3.3932,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.245,
"final": 0.1287,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.1017,
"final": 2.1017,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9691,
"final": 0.9691,
"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": 9.2,
"ER": 2,
"H": 7,
"BB": 0,
"SO": 8,
"HR": 2,
"ERA": 1.8620689655172415,
"WHIP": 0.7241379310344828,
"K9": 7.448275862068966,
"HR9": 1.8620689655172415,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 0.9061973605331601,
"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": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.935,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7048,
"prior_weight": 0.2952
}
},
{
"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": 0,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663542",
"player_name": "Bryan Hudson",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 142,
"wins": 74,
"losses": 68,
"win_pct": 0.5211,
"runs_scored": 670.0,
"runs_allowed": 630.0,
"run_differential": 40.0,
"run_differential_per_game": 0.2817,
"avg_runs_scored": 4.7183,
"avg_runs_allowed": 4.4366,
"offense_index": 1.05,
"defense_index": 1.0129,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.7,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.0524
},
"opponent": {
"team": "MIN",
"games": 142,
"wins": 68,
"losses": 74,
"win_pct": 0.4789,
"runs_scored": 665.0,
"runs_allowed": 704.0,
"run_differential": -39.0,
"run_differential_per_game": -0.2746,
"avg_runs_scored": 4.6831,
"avg_runs_allowed": 4.9577,
"offense_index": 1.0421,
"defense_index": 0.9064,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 4.4,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.0865
},
"edges": {
"quality_edge": 0.1389,
"offense_edge": 0.05,
"opponent_offense_edge": 0.0421,
"defense_strength": 0.0129,
"opponent_defense_weakness": 0.0936,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0043,
"run_prevention": 0.9985,
"strikeout": 1.0008
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663542",
"profile": {
"available": true,
"pitcher_id": "663542",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 218.0,
"k_percent": 22.2,
"bb_percent": 6.9,
"woba": 0.287,
"xwoba": 0.267,
"sweet_spot_percent": 28.7,
"barrel_batted_rate": 3.5,
"hard_hit_percent": 36.8,
"avg_best_speed": 76.7955,
"avg_hyper_speed": 93.1987,
"whiff_percent": 23.7,
"swing_percent": 47.7
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8455,
"command_and_miss": 0.0579,
"regression_edge": 0.5714,
"xwoba_edge": 1.2571,
"barrel_edge": 0.8222,
"hard_hit_edge": 0.1571,
"whiff_edge": -0.2,
"bb_edge": 0.575,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "663542",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.4758,
"sample_weight": 0.872,
"run_prevention_factor": 0.9596,
"strikeout_factor": 0.994,
"walk_factor": 0.9599,
"homer_factor": 0.9043,
"woba_minus_xwoba": 0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663542",
"espn_id": 4991171,
"player_name": "Bryan Hudson",
"team": "CHW",
"role": "pitcher",
"espn_rank": 103,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 103,
"gp_value": 61.0,
"gp_rank": 30,
"gs_value": 7.0,
"gs_rank": 198,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.0337,
"era_rank": null,
"w_value": 4.0,
"w_rank": 182,
"l_value": 4.0,
"l_rank": 175,
"sv_value": 7.0,
"sv_rank": 35,
"hld_value": 9.0,
"hld_rank": 98,
"ip_value": 59.1,
"ip_rank": 229,
"h_value": 55.0,
"h_rank": 203,
"er_value": 20.0,
"er_rank": 317,
"hr_value": 4.0,
"hr_rank": 365,
"bb_value": 17.0,
"bb_rank": 339,
"k_value": 55.0,
"k_rank": 251,
"k_per_9_value": 8.342696,
"k_per_9_rank": 29.0,
"whip_value": 1.2134,
"whip_rank": null,
"war_value": 1.68,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9648,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9648,
"adjusted": 3
},
"predicted_BB": {
"original": 0.0,
"factor": 0.965,
"adjusted": 0
},
"predicted_HR": {
"original": 2.0,
"factor": 0.9165,
"adjusted": 2
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9948,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260906_MIN@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"
}
} |
| 20260906 | 20260906_NYY@SD | away | Gerrit Cole | Gerrit Cole | True | 6.1 | 7.0 | 2 | 3 | 4 | 1 | 4/6 | 1/0 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2884615384615383,
"WHIP": 1.1057692307692308,
"IP": 104.0,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.778,
"recent_avg_IP": 6.067,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2263,
"sample_weight": 1.0,
"run_prevention_factor": 0.9808,
"strikeout_factor": 1.0046,
"walk_factor": 0.92,
"homer_factor": 1.0158,
"regression_flag": "neutral",
"k_percent": 25.8,
"bb_percent": 5.2,
"woba": 0.291,
"xwoba": 0.286,
"barrel_percent": 7.4,
"hard_hit_percent": 43.8,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 48,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "543037",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 10.0,
"R": 11.0,
"H": 29.0,
"BB": 5.0,
"SO": 32.0,
"HR": 2.0,
"BF": 124.0,
"Pitches": 431.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.2,
"H": 5.8,
"BB": 1.0,
"SO": 6.4,
"HR": 0.4,
"BF": 24.8,
"Pitches": 86.2
},
"rates": {
"ERA": 2.967,
"WHIP": 1.1209,
"ER_per_IP": 0.32967,
"H_per_IP": 0.95604,
"BB_per_IP": 0.16484,
"SO_per_IP": 1.05495,
"HR_per_IP": 0.06593
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.1,
"ER": 19.0,
"R": 20.0,
"H": 52.0,
"BB": 12.0,
"SO": 69.0,
"HR": 5.0,
"BF": 246.0,
"Pitches": 922.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9,
"R": 2.0,
"H": 5.2,
"BB": 1.2,
"SO": 6.9,
"HR": 0.5,
"BF": 24.6,
"Pitches": 92.2
},
"rates": {
"ERA": 2.788,
"WHIP": 1.0435,
"ER_per_IP": 0.30978,
"H_per_IP": 0.84783,
"BB_per_IP": 0.19565,
"SO_per_IP": 1.125,
"HR_per_IP": 0.08152
}
},
"season": {
"games": 18,
"totals": {
"IP": 104.0,
"ER": 38.0,
"R": 39.0,
"H": 93.0,
"BB": 22.0,
"SO": 110.0,
"HR": 13.0,
"BF": 426.0,
"Pitches": 1595.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1111,
"R": 2.1667,
"H": 5.1667,
"BB": 1.2222,
"SO": 6.1111,
"HR": 0.7222,
"BF": 23.6667,
"Pitches": 88.6111
},
"rates": {
"ERA": 3.2885,
"WHIP": 1.1058,
"ER_per_IP": 0.36538,
"H_per_IP": 0.89423,
"BB_per_IP": 0.21154,
"SO_per_IP": 1.05769,
"HR_per_IP": 0.125
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.179,
"predicted_H": 5.472,
"predicted_BB": 1.341,
"predicted_SO": 6.241,
"predicted_HR": 0.576,
"predicted_ERA": 3.2968,
"predicted_WHIP": 1.1455
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.179,
"final": 2.5418,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.472,
"final": 4.8216,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.341,
"final": 1.1903,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.241,
"final": 4.3671,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.576,
"final": 0.3215,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2968,
"final": 3.2968,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1455,
"final": 1.1455,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 61.1,
"ER": 19,
"H": 52,
"BB": 12,
"SO": 69,
"HR": 5,
"ERA": 2.7880434782608696,
"WHIP": 1.0434782608695652,
"K9": 10.125,
"HR9": 0.733695652173913,
"games_pitched": 10,
"quality_starts": 8,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.8154893235637597,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
},
{
"step": "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": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543037",
"player_name": "Gerrit Cole",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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.1,
"delta": 0.1,
"percent_delta": 0.0167,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"delta": 0.1,
"percent_delta": 0.0167,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 142,
"wins": 81,
"losses": 61,
"win_pct": 0.5704,
"runs_scored": 643.0,
"runs_allowed": 525.0,
"run_differential": 118.0,
"run_differential_per_game": 0.831,
"avg_runs_scored": 4.5282,
"avg_runs_allowed": 3.6972,
"offense_index": 1.0099,
"defense_index": 1.2128,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 3.4,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.1968
},
"opponent": {
"team": "SD",
"games": 142,
"wins": 74,
"losses": 68,
"win_pct": 0.5211,
"runs_scored": 598.0,
"runs_allowed": 591.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0493,
"avg_runs_scored": 4.2113,
"avg_runs_allowed": 4.162,
"offense_index": 0.9392,
"defense_index": 1.0773,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.0,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.046
},
"edges": {
"quality_edge": 0.2428,
"offense_edge": 0.0099,
"opponent_offense_edge": -0.0608,
"defense_strength": 0.2128,
"opponent_defense_weakness": -0.0773,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0185,
"run_prevention": 0.9569,
"strikeout": 1.0121
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543037",
"profile": {
"available": true,
"pitcher_id": "543037",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 348.0,
"k_percent": 25.8,
"bb_percent": 5.2,
"woba": 0.291,
"xwoba": 0.286,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 43.8,
"avg_best_speed": 80.7804,
"avg_hyper_speed": 94.1906,
"whiff_percent": 22.1,
"swing_percent": 49.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2243,
"command_and_miss": 0.2943,
"regression_edge": 0.1429,
"xwoba_edge": 0.7143,
"barrel_edge": -0.0444,
"hard_hit_edge": -0.8429,
"whiff_edge": -0.4286,
"bb_edge": 1.0,
"pitch_design_score": 0.1235
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543037",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 92.0825980662545,
"release_spin_rate": 2363.5792056180953,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 92.0825980662545,
"release_spin_rate": 2363.5792056180953,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0826,
"release_spin_rate": 2363.5792,
"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.1235,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8825,
"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.2263,
"sample_weight": 1.0,
"run_prevention_factor": 0.9808,
"strikeout_factor": 1.0046,
"walk_factor": 0.92,
"homer_factor": 1.0158,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "543037",
"espn_id": 32081,
"player_name": "Gerrit Cole",
"team": "NYY",
"role": "pitcher",
"espn_rank": 48,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 48,
"gp_value": 18.0,
"gp_rank": 407,
"gs_value": 18.0,
"gs_rank": 109,
"qs_value": 11.0,
"qs_rank": 43,
"era_value": 3.2884,
"era_rank": null,
"w_value": 8.0,
"w_rank": 62,
"l_value": 7.0,
"l_rank": 82,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 104.0,
"ip_rank": 113,
"h_value": 93.0,
"h_rank": 120,
"er_value": 38.0,
"er_rank": 154,
"hr_value": 13.0,
"hr_rank": 114,
"bb_value": 22.0,
"bb_rank": 252,
"k_value": 110.0,
"k_rank": 81,
"k_per_9_value": 9.519231,
"k_per_9_rank": 19.0,
"whip_value": 1.1057,
"whip_rank": null,
"war_value": 2.55,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9808,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9808,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.92,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0158,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0046,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260906_NYY@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"
}
} |
| 20260906 | 20260906_NYY@SD | home | Michael King | Michael King | True | 6.0 | 6.0 | 0 | 2 | 0 | -2 | 5/4 | 2/3 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.111111111111111,
"WHIP": 1.1666666666666667,
"IP": 162.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.786,
"recent_avg_IP": 6.333,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.069,
"sample_weight": 1.0,
"run_prevention_factor": 1.0059,
"strikeout_factor": 0.996,
"walk_factor": 1.006,
"homer_factor": 1.002,
"regression_flag": "neutral",
"k_percent": 21.3,
"bb_percent": 9.5,
"woba": 0.293,
"xwoba": 0.321,
"barrel_percent": 8.6,
"hard_hit_percent": 32.4,
"whiff_percent": 25.1
},
"espn_rank": {
"rank": 14,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "650633",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 6.0,
"R": 7.0,
"H": 24.0,
"BB": 9.0,
"SO": 27.0,
"HR": 4.0,
"BF": 124.0,
"Pitches": 470.0
},
"per_game": {
"IP": 6.1,
"ER": 1.2,
"R": 1.4,
"H": 4.8,
"BB": 1.8,
"SO": 5.4,
"HR": 0.8,
"BF": 24.8,
"Pitches": 94.0
},
"rates": {
"ERA": 1.7053,
"WHIP": 1.0421,
"ER_per_IP": 0.18947,
"H_per_IP": 0.75789,
"BB_per_IP": 0.28421,
"SO_per_IP": 0.85263,
"HR_per_IP": 0.12632
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 16.0,
"R": 17.0,
"H": 48.0,
"BB": 22.0,
"SO": 53.0,
"HR": 8.0,
"BF": 242.0,
"Pitches": 965.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.7,
"H": 4.8,
"BB": 2.2,
"SO": 5.3,
"HR": 0.8,
"BF": 24.2,
"Pitches": 96.5
},
"rates": {
"ERA": 2.4134,
"WHIP": 1.1732,
"ER_per_IP": 0.26816,
"H_per_IP": 0.80447,
"BB_per_IP": 0.36872,
"SO_per_IP": 0.88827,
"HR_per_IP": 0.13408
}
},
"season": {
"games": 28,
"totals": {
"IP": 162.0,
"ER": 56.0,
"R": 58.0,
"H": 126.0,
"BB": 63.0,
"SO": 141.0,
"HR": 18.0,
"BF": 662.0,
"Pitches": 2604.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0714,
"H": 4.5,
"BB": 2.25,
"SO": 5.0357,
"HR": 0.6429,
"BF": 23.6429,
"Pitches": 93.0
},
"rates": {
"ERA": 3.1111,
"WHIP": 1.1667,
"ER_per_IP": 0.34568,
"H_per_IP": 0.77778,
"BB_per_IP": 0.38889,
"SO_per_IP": 0.87037,
"HR_per_IP": 0.11111
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.736,
"predicted_H": 4.901,
"predicted_BB": 2.066,
"predicted_SO": 5.338,
"predicted_HR": 0.783,
"predicted_ERA": 2.5742,
"predicted_WHIP": 1.1477
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.736,
"final": 1.8453,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.901,
"final": 4.942,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.066,
"final": 2.0387,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.338,
"final": 4.37,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.783,
"final": 0.8728,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5742,
"final": 2.5742,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1477,
"final": 1.1477,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.2,
"ER": 16,
"H": 48,
"BB": 22,
"SO": 53,
"HR": 8,
"ERA": 2.41340782122905,
"WHIP": 1.1731843575418994,
"K9": 7.994413407821228,
"HR9": 1.206703910614525,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-31T00:00:00"
},
"recent_form_boost": 0.7765854645644884,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650633",
"player_name": "Michael King",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"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": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"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": "SD",
"games": 142,
"wins": 74,
"losses": 68,
"win_pct": 0.5211,
"runs_scored": 598.0,
"runs_allowed": 591.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0493,
"avg_runs_scored": 4.2113,
"avg_runs_allowed": 4.162,
"offense_index": 0.9392,
"defense_index": 1.0773,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.0,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.046
},
"opponent": {
"team": "NYY",
"games": 142,
"wins": 81,
"losses": 61,
"win_pct": 0.5704,
"runs_scored": 643.0,
"runs_allowed": 525.0,
"run_differential": 118.0,
"run_differential_per_game": 0.831,
"avg_runs_scored": 4.5282,
"avg_runs_allowed": 3.6972,
"offense_index": 1.0099,
"defense_index": 1.2128,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 3.4,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.1968
},
"edges": {
"quality_edge": -0.2428,
"offense_edge": -0.0608,
"opponent_offense_edge": 0.0099,
"defense_strength": 0.0773,
"opponent_defense_weakness": -0.2128,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9922,
"run_prevention": 1.006,
"strikeout": 0.9919
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650633",
"profile": {
"available": true,
"pitcher_id": "650633",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 605.0,
"k_percent": 21.3,
"bb_percent": 9.5,
"woba": 0.293,
"xwoba": 0.321,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 8.6,
"hard_hit_percent": 32.4,
"avg_best_speed": 75.6483,
"avg_hyper_speed": 93.1065,
"whiff_percent": 25.1,
"swing_percent": 46.7
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0561,
"command_and_miss": -0.06,
"regression_edge": -0.8,
"xwoba_edge": -0.2857,
"barrel_edge": -0.3111,
"hard_hit_edge": 0.7857,
"whiff_edge": 0.0,
"bb_edge": -0.075,
"pitch_design_score": -0.0606
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650633",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 88.7946063306037,
"release_spin_rate": 2284.5983919845057,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 88.7946063306037,
"release_spin_rate": 2284.5983919845057,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.7946,
"release_spin_rate": 2284.5984,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0606,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4327,
"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.069,
"sample_weight": 1.0,
"run_prevention_factor": 1.0059,
"strikeout_factor": 0.996,
"walk_factor": 1.006,
"homer_factor": 1.002,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "650633",
"espn_id": 40429,
"player_name": "Michael King",
"team": "SD",
"role": "pitcher",
"espn_rank": 14,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 14,
"gp_value": 28.0,
"gp_rank": 239,
"gs_value": 28.0,
"gs_rank": 11,
"qs_value": 15.0,
"qs_rank": 16,
"era_value": 3.1111,
"era_rank": 15.0,
"w_value": 9.0,
"w_rank": 37,
"l_value": 9.0,
"l_rank": 26,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 162.0,
"ip_rank": 15,
"h_value": 126.0,
"h_rank": 64,
"er_value": 56.0,
"er_rank": 71,
"hr_value": 18.0,
"hr_rank": 51,
"bb_value": 63.0,
"bb_rank": 13,
"k_value": 141.0,
"k_rank": 38,
"k_per_9_value": 7.8333335,
"k_per_9_rank": 68.0,
"whip_value": 1.1666,
"whip_rank": 26.0,
"war_value": 3.73,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0059,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0059,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.006,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.002,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.996,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 99,
"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/20260906_NYY@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"
}
} |
| 20260906 | 20260906_OAK@SEA | away | Gage Jump | Gage Jump | True | 4.2 | 4.0 | -2 | 4 | 2 | -2 | 5/6 | 2/0 | 2/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.147482014388489,
"WHIP": 1.489208633093525,
"IP": 92.2,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.148,
"recent_avg_IP": 5.2,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.169,
"sample_weight": 1.0,
"run_prevention_factor": 1.0144,
"strikeout_factor": 1.0143,
"walk_factor": 1.038,
"homer_factor": 1.0181,
"regression_flag": "neutral",
"k_percent": 24.3,
"bb_percent": 11.1,
"woba": 0.335,
"xwoba": 0.327,
"barrel_percent": 6.9,
"hard_hit_percent": 39.6,
"whiff_percent": 25.3
},
"espn_rank": {
"rank": 196,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695611",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 19.0,
"R": 19.0,
"H": 26.0,
"BB": 14.0,
"SO": 26.0,
"HR": 3.0,
"BF": 119.0,
"Pitches": 472.0
},
"per_game": {
"IP": 5.1,
"ER": 3.8,
"R": 3.8,
"H": 5.2,
"BB": 2.8,
"SO": 5.2,
"HR": 0.6,
"BF": 23.8,
"Pitches": 94.4
},
"rates": {
"ERA": 6.5769,
"WHIP": 1.5385,
"ER_per_IP": 0.73077,
"H_per_IP": 1.0,
"BB_per_IP": 0.53846,
"SO_per_IP": 1.0,
"HR_per_IP": 0.11538
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 35.0,
"R": 36.0,
"H": 50.0,
"BB": 32.0,
"SO": 58.0,
"HR": 6.0,
"BF": 226.0,
"Pitches": 906.0
},
"per_game": {
"IP": 5.0,
"ER": 3.5,
"R": 3.6,
"H": 5.0,
"BB": 3.2,
"SO": 5.8,
"HR": 0.6,
"BF": 22.6,
"Pitches": 90.6
},
"rates": {
"ERA": 6.3423,
"WHIP": 1.651,
"ER_per_IP": 0.7047,
"H_per_IP": 1.00671,
"BB_per_IP": 0.6443,
"SO_per_IP": 1.16779,
"HR_per_IP": 0.12081
}
},
"season": {
"games": 18,
"totals": {
"IP": 92.2,
"ER": 53.0,
"R": 55.0,
"H": 93.0,
"BB": 45.0,
"SO": 99.0,
"HR": 10.0,
"BF": 407.0,
"Pitches": 1630.0
},
"per_game": {
"IP": 5.0,
"ER": 2.9444,
"R": 3.0556,
"H": 5.1667,
"BB": 2.5,
"SO": 5.5,
"HR": 0.5556,
"BF": 22.6111,
"Pitches": 90.5556
},
"rates": {
"ERA": 5.1475,
"WHIP": 1.4892,
"ER_per_IP": 0.57194,
"H_per_IP": 1.0036,
"BB_per_IP": 0.48561,
"SO_per_IP": 1.06835,
"HR_per_IP": 0.10791
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.363,
"predicted_H": 5.17,
"predicted_BB": 2.714,
"predicted_SO": 5.415,
"predicted_HR": 0.635,
"predicted_ERA": 5.8326,
"predicted_WHIP": 1.519
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.363,
"final": 3.6445,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.17,
"final": 4.653,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.714,
"final": 2.3985,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.415,
"final": 3.9061,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.635,
"final": 1.2381,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.8326,
"final": 5.8326,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.519,
"final": 1.519,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.2,
"ER": 35,
"H": 50,
"BB": 32,
"SO": 58,
"HR": 6,
"ERA": 6.342281879194632,
"WHIP": 1.651006711409396,
"K9": 10.51006711409396,
"HR9": 1.087248322147651,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-31T00:00:00"
},
"recent_form_boost": 1.2305293549323038,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
},
{
"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": 4,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 2,
"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.2,
"predicted_ER": 4,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695611",
"player_name": "Gage Jump",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"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": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"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": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"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": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": "OAK",
"games": 143,
"wins": 57,
"losses": 86,
"win_pct": 0.3986,
"runs_scored": 631.0,
"runs_allowed": 817.0,
"run_differential": -186.0,
"run_differential_per_game": -1.3007,
"avg_runs_scored": 4.4126,
"avg_runs_allowed": 5.7133,
"offense_index": 0.9841,
"defense_index": 0.7848,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 5.1,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.2457
},
"opponent": {
"team": "SEA",
"games": 143,
"wins": 66,
"losses": 77,
"win_pct": 0.4615,
"runs_scored": 567.0,
"runs_allowed": 640.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5105,
"avg_runs_scored": 3.965,
"avg_runs_allowed": 4.4755,
"offense_index": 0.8843,
"defense_index": 1.0018,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 6.3,
"run_differential": -22.0
},
"available": true,
"quality_score": -0.2003
},
"edges": {
"quality_edge": -0.0454,
"offense_edge": -0.0159,
"opponent_offense_edge": -0.1157,
"defense_strength": -0.2152,
"opponent_defense_weakness": -0.0018,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 0.9964,
"run_prevention": 1.0053,
"strikeout": 1.0079
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695611",
"profile": {
"available": true,
"pitcher_id": "695611",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 337.0,
"k_percent": 24.3,
"bb_percent": 11.1,
"woba": 0.335,
"xwoba": 0.327,
"sweet_spot_percent": 40.0,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 39.6,
"avg_best_speed": 79.1047,
"avg_hyper_speed": 94.455,
"whiff_percent": 25.3,
"swing_percent": 47.9
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3815,
"command_and_miss": 0.0629,
"regression_edge": 0.2286,
"xwoba_edge": -0.4571,
"barrel_edge": 0.0667,
"hard_hit_edge": -0.2429,
"whiff_edge": 0.0286,
"bb_edge": -0.475,
"pitch_design_score": 0.068
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695611",
"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.08991637091822,
"release_spin_rate": 2304.151617914787,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 91.08991637091822,
"release_spin_rate": 2304.151617914787,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.0899,
"release_spin_rate": 2304.1516,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.068,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4854,
"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.169,
"sample_weight": 1.0,
"run_prevention_factor": 1.0144,
"strikeout_factor": 1.0143,
"walk_factor": 1.038,
"homer_factor": 1.0181,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695611",
"espn_id": 5023852,
"player_name": "Gage Jump",
"team": "ATH",
"role": "pitcher",
"espn_rank": 196,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 196,
"gp_value": 18.0,
"gp_rank": 407,
"gs_value": 18.0,
"gs_rank": 109,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 5.1474,
"era_rank": null,
"w_value": 6.0,
"w_rank": 102,
"l_value": 9.0,
"l_rank": 26,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 92.2,
"ip_rank": 134,
"h_value": 93.0,
"h_rank": 120,
"er_value": 53.0,
"er_rank": 88,
"hr_value": 10.0,
"hr_rank": 156,
"bb_value": 45.0,
"bb_rank": 56,
"k_value": 99.0,
"k_rank": 100,
"k_per_9_value": 9.6151085,
"k_per_9_rank": 20.0,
"whip_value": 1.4892,
"whip_rank": null,
"war_value": 0.89,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0144,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 1.0144,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.038,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0181,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0143,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 21,
"Pitches": 94,
"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/20260906_OAK@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"
}
} |
| 20260906 | 20260906_OAK@SEA | home | Bryan Woo | Bryan Woo | True | 5.2 | 8.0 | 7 | 3 | 0 | -3 | 4/1 | 0/2 | 7/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.247191011235955,
"WHIP": 1.092134831460674,
"IP": 148.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.705,
"recent_avg_IP": 5.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1587,
"sample_weight": 1.0,
"run_prevention_factor": 0.9865,
"strikeout_factor": 1.0114,
"walk_factor": 0.918,
"homer_factor": 1.0292,
"regression_flag": "neutral",
"k_percent": 24.6,
"bb_percent": 5.1,
"woba": 0.289,
"xwoba": 0.296,
"barrel_percent": 7.7,
"hard_hit_percent": 43.7,
"whiff_percent": 24.5
},
"espn_rank": {
"rank": 152,
"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": "693433",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 9.0,
"R": 10.0,
"H": 19.0,
"BB": 5.0,
"SO": 27.0,
"HR": 5.0,
"BF": 109.0,
"Pitches": 433.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 2.0,
"H": 3.8,
"BB": 1.0,
"SO": 5.4,
"HR": 1.0,
"BF": 21.8,
"Pitches": 86.6
},
"rates": {
"ERA": 2.8929,
"WHIP": 0.8571,
"ER_per_IP": 0.32143,
"H_per_IP": 0.67857,
"BB_per_IP": 0.17857,
"SO_per_IP": 0.96429,
"HR_per_IP": 0.17857
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 26.0,
"R": 29.0,
"H": 52.0,
"BB": 13.0,
"SO": 57.0,
"HR": 9.0,
"BF": 232.0,
"Pitches": 910.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 2.9,
"H": 5.2,
"BB": 1.3,
"SO": 5.7,
"HR": 0.9,
"BF": 23.2,
"Pitches": 91.0
},
"rates": {
"ERA": 4.2289,
"WHIP": 1.1747,
"ER_per_IP": 0.46988,
"H_per_IP": 0.93976,
"BB_per_IP": 0.23494,
"SO_per_IP": 1.03012,
"HR_per_IP": 0.16265
}
},
"season": {
"games": 26,
"totals": {
"IP": 148.1,
"ER": 70.0,
"R": 75.0,
"H": 131.0,
"BB": 31.0,
"SO": 149.0,
"HR": 18.0,
"BF": 606.0,
"Pitches": 2293.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6923,
"R": 2.8846,
"H": 5.0385,
"BB": 1.1923,
"SO": 5.7308,
"HR": 0.6923,
"BF": 23.3077,
"Pitches": 88.1923
},
"rates": {
"ERA": 4.2472,
"WHIP": 1.0921,
"ER_per_IP": 0.47191,
"H_per_IP": 0.88315,
"BB_per_IP": 0.20899,
"SO_per_IP": 1.00449,
"HR_per_IP": 0.12135
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.372,
"predicted_H": 4.741,
"predicted_BB": 1.311,
"predicted_SO": 5.589,
"predicted_HR": 0.901,
"predicted_ERA": 3.7679,
"predicted_WHIP": 1.068
}
},
"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": 4.0,
"form": 2.372,
"final": 3.0527,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.741,
"final": 4.4312,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.311,
"final": 0.7628,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.589,
"final": 6.179,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.901,
"final": 1.3605,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7679,
"final": 3.7679,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.068,
"final": 1.068,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.1,
"ER": 26,
"H": 52,
"BB": 13,
"SO": 57,
"HR": 9,
"ERA": 4.228915662650603,
"WHIP": 1.1746987951807228,
"K9": 9.271084337349397,
"HR9": 1.463855421686747,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.9808679576653837,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693433",
"player_name": "Bryan Woo",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"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": 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": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 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": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 143,
"wins": 66,
"losses": 77,
"win_pct": 0.4615,
"runs_scored": 567.0,
"runs_allowed": 640.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5105,
"avg_runs_scored": 3.965,
"avg_runs_allowed": 4.4755,
"offense_index": 0.8843,
"defense_index": 1.0018,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 6.3,
"run_differential": -22.0
},
"available": true,
"quality_score": -0.2003
},
"opponent": {
"team": "OAK",
"games": 143,
"wins": 57,
"losses": 86,
"win_pct": 0.3986,
"runs_scored": 631.0,
"runs_allowed": 817.0,
"run_differential": -186.0,
"run_differential_per_game": -1.3007,
"avg_runs_scored": 4.4126,
"avg_runs_allowed": 5.7133,
"offense_index": 0.9841,
"defense_index": 0.7848,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 5.1,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.2457
},
"edges": {
"quality_edge": 0.0454,
"offense_edge": -0.1157,
"opponent_offense_edge": -0.0159,
"defense_strength": 0.0018,
"opponent_defense_weakness": 0.2152,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 1.0025,
"run_prevention": 0.995,
"strikeout": 1.0026
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693433",
"profile": {
"available": true,
"pitcher_id": "693433",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 561.0,
"k_percent": 24.6,
"bb_percent": 5.1,
"woba": 0.289,
"xwoba": 0.296,
"sweet_spot_percent": 36.0,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 43.7,
"avg_best_speed": 79.2011,
"avg_hyper_speed": 94.4719,
"whiff_percent": 24.5,
"swing_percent": 53.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1374,
"command_and_miss": 0.3421,
"regression_edge": -0.2,
"xwoba_edge": 0.4286,
"barrel_edge": -0.1111,
"hard_hit_edge": -0.8286,
"whiff_edge": -0.0857,
"bb_edge": 1.025,
"pitch_design_score": 0.1601
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693433",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 92.73481894159748,
"release_spin_rate": 2270.1822599774046,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 92.73481894159748,
"release_spin_rate": 2270.1822599774046,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.7348,
"release_spin_rate": 2270.1823,
"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.1601,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1434,
"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.1587,
"sample_weight": 1.0,
"run_prevention_factor": 0.9865,
"strikeout_factor": 1.0114,
"walk_factor": 0.918,
"homer_factor": 1.0292,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693433",
"espn_id": 4629089,
"player_name": "Bryan Woo",
"team": "SEA",
"role": "pitcher",
"espn_rank": 152,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 152,
"gp_value": 26.0,
"gp_rank": 293,
"gs_value": 26.0,
"gs_rank": 43,
"qs_value": 14.0,
"qs_rank": 21,
"era_value": 4.2471,
"era_rank": 42.0,
"w_value": 10.0,
"w_rank": 28,
"l_value": 9.0,
"l_rank": 26,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 148.1,
"ip_rank": 40,
"h_value": 131.0,
"h_rank": 50,
"er_value": 70.0,
"er_rank": 24,
"hr_value": 18.0,
"hr_rank": 51,
"bb_value": 31.0,
"bb_rank": 149,
"k_value": 149.0,
"k_rank": 29,
"k_per_9_value": 9.040449,
"k_per_9_rank": 19.0,
"whip_value": 1.0921,
"whip_rank": 12.0,
"war_value": 1.19,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9865,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9865,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.918,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0292,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0114,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"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": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260906_OAK@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"
}
} |
| 20260906 | 20260906_SF@NYM | away | Cesar Perdomo | Cesar Perdomo | True | 4.0 | 6.0 | 6 | 6 | 0 | -6 | 5/3 | 1/1 | 4/4 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 2.25,
"WHIP": 1.0,
"IP": 4.0,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 4.0,
"recent_avg_IP": 4.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0319,
"sample_weight": 0.45,
"run_prevention_factor": 0.9973,
"strikeout_factor": 1.0036,
"walk_factor": 0.9982,
"homer_factor": 0.9974,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.309,
"xwoba": 0.308,
"barrel_percent": 7.1,
"hard_hit_percent": 37.65,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 413,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702885",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 1.0,
"SO": 4.0,
"HR": 1.0,
"BF": 15.0,
"Pitches": 58.0
},
"per_game": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 1.0,
"SO": 4.0,
"HR": 1.0,
"BF": 15.0,
"Pitches": 58.0
},
"rates": {
"ERA": 2.25,
"WHIP": 1.0,
"ER_per_IP": 0.25,
"H_per_IP": 0.75,
"BB_per_IP": 0.25,
"SO_per_IP": 1.0,
"HR_per_IP": 0.25
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 1.0,
"SO": 4.0,
"HR": 1.0,
"BF": 15.0,
"Pitches": 58.0
},
"per_game": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 1.0,
"SO": 4.0,
"HR": 1.0,
"BF": 15.0,
"Pitches": 58.0
},
"rates": {
"ERA": 2.25,
"WHIP": 1.0,
"ER_per_IP": 0.25,
"H_per_IP": 0.75,
"BB_per_IP": 0.25,
"SO_per_IP": 1.0,
"HR_per_IP": 0.25
}
},
"season": {
"games": 1,
"totals": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 1.0,
"SO": 4.0,
"HR": 1.0,
"BF": 15.0,
"Pitches": 58.0
},
"per_game": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 1.0,
"SO": 4.0,
"HR": 1.0,
"BF": 15.0,
"Pitches": 58.0
},
"rates": {
"ERA": 2.25,
"WHIP": 1.0,
"ER_per_IP": 0.25,
"H_per_IP": 0.75,
"BB_per_IP": 0.25,
"SO_per_IP": 1.0,
"HR_per_IP": 0.25
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.825,
"predicted_H": 3.736,
"predicted_BB": 1.405,
"predicted_SO": 3.797,
"predicted_HR": 0.654,
"predicted_ERA": 4.1067,
"predicted_WHIP": 1.2853
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7021,
"form_weight": 0.2979,
"form_reliability": 0.1667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 4.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 1.825,
"final": 4.0541,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.736,
"final": 4.6234,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.405,
"final": 1.1207,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.797,
"final": 3.9395,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.654,
"final": 1.599,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1067,
"final": 4.1067,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2853,
"final": 1.2853,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 4.0,
"ER": 1,
"H": 3,
"BB": 1,
"SO": 4,
"HR": 1,
"ERA": 2.25,
"WHIP": 1.0,
"K9": 9.0,
"HR9": 2.25,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 1,
"error_prone": false
},
"games_count": 1,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.9677974509967533,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702885",
"player_name": "Cesar Perdomo",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_R": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 143,
"wins": 59,
"losses": 84,
"win_pct": 0.4126,
"runs_scored": 601.0,
"runs_allowed": 674.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5105,
"avg_runs_scored": 4.2028,
"avg_runs_allowed": 4.7133,
"offense_index": 0.9381,
"defense_index": 0.9505,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 6.0,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.137
},
"opponent": {
"team": "NYM",
"games": 142,
"wins": 64,
"losses": 78,
"win_pct": 0.4507,
"runs_scored": 592.0,
"runs_allowed": 642.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3521,
"avg_runs_scored": 4.169,
"avg_runs_allowed": 4.5211,
"offense_index": 0.9305,
"defense_index": 0.9909,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.4,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1201
},
"edges": {
"quality_edge": -0.0169,
"offense_edge": -0.0619,
"opponent_offense_edge": -0.0695,
"defense_strength": -0.0495,
"opponent_defense_weakness": 0.0091,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0006,
"run_prevention": 0.9947,
"strikeout": 1.0051
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702885",
"profile": {
"available": true,
"pitcher_id": "702885",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.309,
"xwoba": 0.308,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.65,
"avg_best_speed": 77.537,
"avg_hyper_speed": 93.8942,
"whiff_percent": 25.8,
"swing_percent": 47.6
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0795,
"command_and_miss": 0.09,
"regression_edge": 0.0286,
"xwoba_edge": 0.0857,
"barrel_edge": 0.0222,
"hard_hit_edge": 0.0357,
"whiff_edge": 0.1,
"bb_edge": 0.05,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "702885",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0319,
"sample_weight": 0.45,
"run_prevention_factor": 0.9973,
"strikeout_factor": 1.0036,
"walk_factor": 0.9982,
"homer_factor": 0.9974,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "702885",
"espn_id": 5271881,
"player_name": "Cesar Perdomo",
"team": "SF",
"role": "pitcher",
"espn_rank": 413,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 413,
"gp_value": 1.0,
"gp_rank": 781,
"gs_value": 0.0,
"gs_rank": 359,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 2.25,
"era_rank": null,
"w_value": 0.0,
"w_rank": 527,
"l_value": 0.0,
"l_rank": 570,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 4.0,
"ip_rank": 728,
"h_value": 3.0,
"h_rank": 768,
"er_value": 1.0,
"er_rank": 774,
"hr_value": 1.0,
"hr_rank": 608,
"bb_value": 1.0,
"bb_rank": 753,
"k_value": 4.0,
"k_rank": 694,
"k_per_9_value": 9.0,
"k_per_9_rank": 25.0,
"whip_value": 1.0,
"whip_rank": null,
"war_value": 0.08,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9988,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9988,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9992,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9988,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0016,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 18,
"Pitches": 69,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 1 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was -6; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 6 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260906_SF@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_SF@NYM | home | Christian Scott | Christian Scott | True | 5.0 | 4.2 | -1 | 3 | 2 | -1 | 3/4 | 3/0 | 3/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8028169014084505,
"WHIP": 1.3098591549295775,
"IP": 94.2,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 4.733,
"recent_avg_IP": 5.067,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.132,
"sample_weight": 1.0,
"run_prevention_factor": 0.9888,
"strikeout_factor": 1.0383,
"walk_factor": 1.03,
"homer_factor": 0.975,
"regression_flag": "neutral",
"k_percent": 27.4,
"bb_percent": 10.7,
"woba": 0.307,
"xwoba": 0.31,
"barrel_percent": 6.9,
"hard_hit_percent": 34.6,
"whiff_percent": 26.4
},
"espn_rank": {
"rank": 99,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681035",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 17.0,
"R": 17.0,
"H": 24.0,
"BB": 14.0,
"SO": 28.0,
"HR": 3.0,
"BF": 117.0,
"Pitches": 458.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4,
"R": 3.4,
"H": 4.8,
"BB": 2.8,
"SO": 5.6,
"HR": 0.6,
"BF": 23.4,
"Pitches": 91.6
},
"rates": {
"ERA": 6.0395,
"WHIP": 1.5,
"ER_per_IP": 0.67105,
"H_per_IP": 0.94737,
"BB_per_IP": 0.55263,
"SO_per_IP": 1.10526,
"HR_per_IP": 0.11842
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 24.0,
"R": 24.0,
"H": 41.0,
"BB": 23.0,
"SO": 60.0,
"HR": 5.0,
"BF": 216.0,
"Pitches": 896.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 4.1,
"BB": 2.3,
"SO": 6.0,
"HR": 0.5,
"BF": 21.6,
"Pitches": 89.6
},
"rates": {
"ERA": 4.349,
"WHIP": 1.2886,
"ER_per_IP": 0.48322,
"H_per_IP": 0.8255,
"BB_per_IP": 0.46309,
"SO_per_IP": 1.20805,
"HR_per_IP": 0.10067
}
},
"season": {
"games": 20,
"totals": {
"IP": 94.2,
"ER": 40.0,
"R": 41.0,
"H": 80.0,
"BB": 44.0,
"SO": 113.0,
"HR": 10.0,
"BF": 412.0,
"Pitches": 1723.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.05,
"H": 4.0,
"BB": 2.2,
"SO": 5.65,
"HR": 0.5,
"BF": 20.6,
"Pitches": 86.15
},
"rates": {
"ERA": 3.8028,
"WHIP": 1.3099,
"ER_per_IP": 0.42254,
"H_per_IP": 0.84507,
"BB_per_IP": 0.46479,
"SO_per_IP": 1.19366,
"HR_per_IP": 0.10563
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.691,
"predicted_H": 4.46,
"predicted_BB": 2.361,
"predicted_SO": 5.515,
"predicted_HR": 0.578,
"predicted_ERA": 4.896,
"predicted_WHIP": 1.3789
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.691,
"final": 2.8253,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.46,
"final": 3.8256,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.361,
"final": 2.6386,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.515,
"final": 4.4222,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.578,
"final": 0.7614,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.896,
"final": 4.896,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3789,
"final": 1.3789,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.2,
"ER": 24,
"H": 41,
"BB": 23,
"SO": 60,
"HR": 5,
"ERA": 4.348993288590604,
"WHIP": 1.2885906040268456,
"K9": 10.872483221476509,
"HR9": 0.9060402684563758,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-28T00:00:00"
},
"recent_form_boost": 0.9972239858047869,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681035",
"player_name": "Christian Scott",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "NYM",
"games": 142,
"wins": 64,
"losses": 78,
"win_pct": 0.4507,
"runs_scored": 592.0,
"runs_allowed": 642.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3521,
"avg_runs_scored": 4.169,
"avg_runs_allowed": 4.5211,
"offense_index": 0.9305,
"defense_index": 0.9909,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.4,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1201
},
"opponent": {
"team": "SF",
"games": 143,
"wins": 59,
"losses": 84,
"win_pct": 0.4126,
"runs_scored": 601.0,
"runs_allowed": 674.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5105,
"avg_runs_scored": 4.2028,
"avg_runs_allowed": 4.7133,
"offense_index": 0.9381,
"defense_index": 0.9505,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 6.0,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.137
},
"edges": {
"quality_edge": 0.0169,
"offense_edge": -0.0695,
"opponent_offense_edge": -0.0619,
"defense_strength": -0.0091,
"opponent_defense_weakness": 0.0495,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0029,
"run_prevention": 0.9902,
"strikeout": 1.0055
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681035",
"profile": {
"available": true,
"pitcher_id": "681035",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 367.0,
"k_percent": 27.4,
"bb_percent": 10.7,
"woba": 0.307,
"xwoba": 0.31,
"sweet_spot_percent": 39.0,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 34.6,
"avg_best_speed": 75.2277,
"avg_hyper_speed": 93.1628,
"whiff_percent": 26.4,
"swing_percent": 49.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.093,
"command_and_miss": 0.3371,
"regression_edge": -0.0857,
"xwoba_edge": 0.0286,
"barrel_edge": 0.0667,
"hard_hit_edge": 0.4714,
"whiff_edge": 0.1857,
"bb_edge": -0.375,
"pitch_design_score": 0.011
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681035",
"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": 90.07194600258177,
"release_spin_rate": 2347.3186219792724,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 90.07194600258177,
"release_spin_rate": 2347.3186219792724,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0719,
"release_spin_rate": 2347.3186,
"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.011,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0782,
"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.132,
"sample_weight": 1.0,
"run_prevention_factor": 0.9888,
"strikeout_factor": 1.0383,
"walk_factor": 1.03,
"homer_factor": 0.975,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "681035",
"espn_id": 4414215,
"player_name": "Christian Scott",
"team": "NYM",
"role": "pitcher",
"espn_rank": 99,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 99,
"gp_value": 20.0,
"gp_rank": 384,
"gs_value": 20.0,
"gs_rank": 95,
"qs_value": 2.0,
"qs_rank": 156,
"era_value": 3.8028,
"era_rank": null,
"w_value": 4.0,
"w_rank": 182,
"l_value": 4.0,
"l_rank": 175,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 94.2,
"ip_rank": 130,
"h_value": 80.0,
"h_rank": 143,
"er_value": 40.0,
"er_rank": 144,
"hr_value": 10.0,
"hr_rank": 156,
"bb_value": 44.0,
"bb_rank": 62,
"k_value": 113.0,
"k_rank": 78,
"k_per_9_value": 10.742958,
"k_per_9_rank": 16.0,
"whip_value": 1.3098,
"whip_rank": null,
"war_value": 1.73,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9888,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9888,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.03,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.975,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0383,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260906_SF@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_STL@COL | away | Kyle Leahy | Kyle Leahy | True | 5.1 | 2.2 | -8 | 3 | 5 | 2 | 2/6 | 0/0 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.131443298969072,
"WHIP": 1.3067010309278349,
"IP": 129.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 4.974,
"recent_avg_IP": 4.4,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3976,
"sample_weight": 1.0,
"run_prevention_factor": 1.0338,
"strikeout_factor": 0.9846,
"walk_factor": 0.956,
"homer_factor": 1.1251,
"regression_flag": "neutral",
"k_percent": 21.7,
"bb_percent": 7.0,
"woba": 0.321,
"xwoba": 0.335,
"barrel_percent": 9.9,
"hard_hit_percent": 47.8,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 38,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 129.1,
"season_ERA": 3.131,
"season_WHIP": 1.307,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681517",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.0,
"ER": 4.0,
"R": 4.0,
"H": 23.0,
"BB": 3.0,
"SO": 27.0,
"HR": 1.0,
"BF": 89.0,
"Pitches": 367.0
},
"per_game": {
"IP": 4.1,
"ER": 0.8,
"R": 0.8,
"H": 4.6,
"BB": 0.6,
"SO": 5.4,
"HR": 0.2,
"BF": 17.8,
"Pitches": 73.4
},
"rates": {
"ERA": 1.6364,
"WHIP": 1.1818,
"ER_per_IP": 0.18182,
"H_per_IP": 1.04545,
"BB_per_IP": 0.13636,
"SO_per_IP": 1.22727,
"HR_per_IP": 0.04545
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 8.0,
"R": 8.0,
"H": 42.0,
"BB": 7.0,
"SO": 51.0,
"HR": 4.0,
"BF": 187.0,
"Pitches": 783.0
},
"per_game": {
"IP": 4.2,
"ER": 0.8,
"R": 0.8,
"H": 4.2,
"BB": 0.7,
"SO": 5.1,
"HR": 0.4,
"BF": 18.7,
"Pitches": 78.3
},
"rates": {
"ERA": 1.5,
"WHIP": 1.0208,
"ER_per_IP": 0.16667,
"H_per_IP": 0.875,
"BB_per_IP": 0.14583,
"SO_per_IP": 1.0625,
"HR_per_IP": 0.08333
}
},
"season": {
"games": 26,
"totals": {
"IP": 129.1,
"ER": 45.0,
"R": 45.0,
"H": 131.0,
"BB": 38.0,
"SO": 118.0,
"HR": 13.0,
"BF": 545.0,
"Pitches": 2137.0
},
"per_game": {
"IP": 5.0,
"ER": 1.7308,
"R": 1.7308,
"H": 5.0385,
"BB": 1.4615,
"SO": 4.5385,
"HR": 0.5,
"BF": 20.9615,
"Pitches": 82.1923
},
"rates": {
"ERA": 3.1314,
"WHIP": 1.3067,
"ER_per_IP": 0.34794,
"H_per_IP": 1.01289,
"BB_per_IP": 0.29381,
"SO_per_IP": 0.91237,
"HR_per_IP": 0.10052
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.219,
"predicted_H": 4.653,
"predicted_BB": 0.968,
"predicted_SO": 5.137,
"predicted_HR": 0.39,
"predicted_ERA": 2.3055,
"predicted_WHIP": 1.1814
}
},
"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": 4.2,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.219,
"final": 1.9637,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.653,
"final": 3.5437,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.968,
"final": 0.5632,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.137,
"final": 5.4979,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.39,
"final": 0.2269,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3055,
"final": 2.3055,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1814,
"final": 1.1814,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 8,
"H": 42,
"BB": 7,
"SO": 51,
"HR": 4,
"ERA": 1.5,
"WHIP": 1.0208333333333333,
"K9": 9.5625,
"HR9": 0.75,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 0.6927789452831421,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681517",
"player_name": "Kyle Leahy",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 143,
"wins": 71,
"losses": 72,
"win_pct": 0.4965,
"runs_scored": 647.0,
"runs_allowed": 658.0,
"run_differential": -11.0,
"run_differential_per_game": -0.0769,
"avg_runs_scored": 4.5245,
"avg_runs_allowed": 4.6014,
"offense_index": 1.0098,
"defense_index": 0.9738,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 5.8,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0124
},
"opponent": {
"team": "COL",
"games": 142,
"wins": 55,
"losses": 87,
"win_pct": 0.3873,
"runs_scored": 671.0,
"runs_allowed": 809.0,
"run_differential": -138.0,
"run_differential_per_game": -0.9718,
"avg_runs_scored": 4.7254,
"avg_runs_allowed": 5.6972,
"offense_index": 1.0546,
"defense_index": 0.7865,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.2,
"run_differential": 6.0
},
"available": true,
"quality_score": -0.2501
},
"edges": {
"quality_edge": 0.2377,
"offense_edge": 0.0098,
"opponent_offense_edge": 0.0546,
"defense_strength": -0.0262,
"opponent_defense_weakness": 0.2135,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0065,
"run_prevention": 0.9995,
"strikeout": 1.0028
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681517",
"profile": {
"available": true,
"pitcher_id": "681517",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 514.0,
"k_percent": 21.7,
"bb_percent": 7.0,
"woba": 0.321,
"xwoba": 0.335,
"sweet_spot_percent": 36.3,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 47.8,
"avg_best_speed": 81.1251,
"avg_hyper_speed": 95.4128,
"whiff_percent": 22.7,
"swing_percent": 46.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6219,
"command_and_miss": -0.0293,
"regression_edge": -0.4,
"xwoba_edge": -0.6857,
"barrel_edge": -0.6,
"hard_hit_edge": -1.4143,
"whiff_edge": -0.3429,
"bb_edge": 0.55,
"pitch_design_score": -0.021
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681517",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.50135049643278,
"release_spin_rate": 2181.5467068991857,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.50135049643278,
"release_spin_rate": 2181.5467068991857,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5014,
"release_spin_rate": 2181.5467,
"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.021,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.15,
"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.3976,
"sample_weight": 1.0,
"run_prevention_factor": 1.0338,
"strikeout_factor": 0.9846,
"walk_factor": 0.956,
"homer_factor": 1.1251,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "681517",
"espn_id": 5006093,
"player_name": "Kyle Leahy",
"team": "STL",
"role": "pitcher",
"espn_rank": 38,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 38,
"gp_value": 26.0,
"gp_rank": 293,
"gs_value": 26.0,
"gs_rank": 43,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 3.1314,
"era_rank": null,
"w_value": 10.0,
"w_rank": 28,
"l_value": 4.0,
"l_rank": 175,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 129.1,
"ip_rank": 76,
"h_value": 131.0,
"h_rank": 50,
"er_value": 45.0,
"er_rank": 123,
"hr_value": 13.0,
"hr_rank": 114,
"bb_value": 38.0,
"bb_rank": 94,
"k_value": 118.0,
"k_rank": 70,
"k_per_9_value": 8.211341,
"k_per_9_rank": 24.0,
"whip_value": 1.3067,
"whip_rank": null,
"war_value": 2.82,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0338,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 1.0338,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.956,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1251,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9846,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 73,
"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 -8 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260906_STL@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_STL@COL | home | Tanner Gordon | Tanner Gordon | True | 5.0 | 4.2 | -1 | 2 | 5 | 3 | 4/8 | 3/1 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.176691729323308,
"WHIP": 1.3984962406015038,
"IP": 88.2,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.042,
"recent_avg_IP": 5.467,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2399,
"sample_weight": 1.0,
"run_prevention_factor": 1.0204,
"strikeout_factor": 0.9646,
"walk_factor": 0.9,
"homer_factor": 1.0834,
"regression_flag": "positive_pitcher_regression",
"k_percent": 18.8,
"bb_percent": 4.2,
"woba": 0.368,
"xwoba": 0.323,
"barrel_percent": 9.9,
"hard_hit_percent": 42.3,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 192,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "685299",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 9.0,
"R": 9.0,
"H": 25.0,
"BB": 3.0,
"SO": 16.0,
"HR": 2.0,
"BF": 99.0,
"Pitches": 343.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 1.8,
"H": 5.0,
"BB": 0.6,
"SO": 3.2,
"HR": 0.4,
"BF": 19.8,
"Pitches": 68.6
},
"rates": {
"ERA": 3.2838,
"WHIP": 1.1351,
"ER_per_IP": 0.36486,
"H_per_IP": 1.01351,
"BB_per_IP": 0.12162,
"SO_per_IP": 0.64865,
"HR_per_IP": 0.08108
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 21.0,
"R": 23.0,
"H": 52.0,
"BB": 8.0,
"SO": 33.0,
"HR": 10.0,
"BF": 201.0,
"Pitches": 677.0
},
"per_game": {
"IP": 4.2,
"ER": 2.1,
"R": 2.3,
"H": 5.2,
"BB": 0.8,
"SO": 3.3,
"HR": 1.0,
"BF": 20.1,
"Pitches": 67.7
},
"rates": {
"ERA": 3.9103,
"WHIP": 1.2414,
"ER_per_IP": 0.43448,
"H_per_IP": 1.07586,
"BB_per_IP": 0.16552,
"SO_per_IP": 0.68276,
"HR_per_IP": 0.2069
}
},
"season": {
"games": 20,
"totals": {
"IP": 88.2,
"ER": 51.0,
"R": 53.0,
"H": 108.0,
"BB": 16.0,
"SO": 72.0,
"HR": 17.0,
"BF": 383.0,
"Pitches": 1343.0
},
"per_game": {
"IP": 4.1,
"ER": 2.55,
"R": 2.65,
"H": 5.4,
"BB": 0.8,
"SO": 3.6,
"HR": 0.85,
"BF": 19.15,
"Pitches": 67.15
},
"rates": {
"ERA": 5.1767,
"WHIP": 1.3985,
"ER_per_IP": 0.57519,
"H_per_IP": 1.21805,
"BB_per_IP": 0.18045,
"SO_per_IP": 0.81203,
"HR_per_IP": 0.19173
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.163,
"predicted_H": 5.135,
"predicted_BB": 0.941,
"predicted_SO": 3.613,
"predicted_HR": 0.715,
"predicted_ERA": 4.0009,
"predicted_WHIP": 1.2485
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.163,
"final": 2.0922,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.135,
"final": 4.6418,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.941,
"final": 1.8356,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.613,
"final": 4.2157,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.715,
"final": 0.4043,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0009,
"final": 4.0009,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2485,
"final": 1.2485,
"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": 21,
"H": 52,
"BB": 8,
"SO": 33,
"HR": 10,
"ERA": 3.9103448275862074,
"WHIP": 1.2413793103448276,
"K9": 6.1448275862068975,
"HR9": 1.8620689655172415,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-31T00:00:00"
},
"recent_form_boost": 0.9466957515997418,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"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": 4,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "685299",
"player_name": "Tanner Gordon",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.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": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 142,
"wins": 55,
"losses": 87,
"win_pct": 0.3873,
"runs_scored": 671.0,
"runs_allowed": 809.0,
"run_differential": -138.0,
"run_differential_per_game": -0.9718,
"avg_runs_scored": 4.7254,
"avg_runs_allowed": 5.6972,
"offense_index": 1.0546,
"defense_index": 0.7865,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.2,
"run_differential": 6.0
},
"available": true,
"quality_score": -0.2501
},
"opponent": {
"team": "STL",
"games": 143,
"wins": 71,
"losses": 72,
"win_pct": 0.4965,
"runs_scored": 647.0,
"runs_allowed": 658.0,
"run_differential": -11.0,
"run_differential_per_game": -0.0769,
"avg_runs_scored": 4.5245,
"avg_runs_allowed": 4.6014,
"offense_index": 1.0098,
"defense_index": 0.9738,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 5.8,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0124
},
"edges": {
"quality_edge": -0.2377,
"offense_edge": 0.0546,
"opponent_offense_edge": 0.0098,
"defense_strength": -0.2135,
"opponent_defense_weakness": 0.0262,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9837,
"run_prevention": 1.0348,
"strikeout": 0.9921
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "685299",
"profile": {
"available": true,
"pitcher_id": "685299",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 306.0,
"k_percent": 18.8,
"bb_percent": 4.2,
"woba": 0.368,
"xwoba": 0.323,
"sweet_spot_percent": 32.8,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 42.3,
"avg_best_speed": 81.3322,
"avg_hyper_speed": 94.5434,
"whiff_percent": 22.1,
"swing_percent": 53.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5994,
"command_and_miss": -0.1057,
"regression_edge": 1.2857,
"xwoba_edge": -0.3429,
"barrel_edge": -0.6,
"hard_hit_edge": -0.6286,
"whiff_edge": -0.4286,
"bb_edge": 1.25,
"pitch_design_score": -0.0667
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "685299",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 56,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 56,
"pitch_usage": 0.0,
"release_speed": 88.68522008751086,
"release_spin_rate": 2169.693328889431,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 56,
"pitch_usage": 0.0,
"release_speed": 88.68522008751086,
"release_spin_rate": 2169.693328889431,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.6852,
"release_spin_rate": 2169.6933,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0667,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4765,
"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.2399,
"sample_weight": 1.0,
"run_prevention_factor": 1.0204,
"strikeout_factor": 0.9646,
"walk_factor": 0.9,
"homer_factor": 1.0834,
"woba_minus_xwoba": 0.045,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "685299",
"espn_id": 4415658,
"player_name": "Tanner Gordon",
"team": "COL",
"role": "pitcher",
"espn_rank": 192,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 192,
"gp_value": 20.0,
"gp_rank": 384,
"gs_value": 8.0,
"gs_rank": 184,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 5.1766,
"era_rank": null,
"w_value": 1.0,
"w_rank": 405,
"l_value": 4.0,
"l_rank": 175,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 88.2,
"ip_rank": 139,
"h_value": 108.0,
"h_rank": 99,
"er_value": 51.0,
"er_rank": 99,
"hr_value": 17.0,
"hr_rank": 64,
"bb_value": 16.0,
"bb_rank": 356,
"k_value": 72.0,
"k_rank": 167,
"k_per_9_value": 7.308271,
"k_per_9_rank": 32.0,
"whip_value": 1.3984,
"whip_rank": null,
"war_value": 0.91,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0204,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0204,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0834,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9646,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260906_STL@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_TB@TEX | away | Ian Seymour | Ian Seymour | True | 5.1 | 3.0 | -7 | 3 | 3 | 0 | 0/5 | 2/1 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.811764705882353,
"WHIP": 1.0941176470588236,
"IP": 113.1,
"games_started": null,
"games_pitched": 41,
"role_avg_IP": 4.833,
"recent_avg_IP": 5.867,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3879,
"sample_weight": 1.0,
"run_prevention_factor": 0.967,
"strikeout_factor": 1.0669,
"walk_factor": 0.952,
"homer_factor": 1.0075,
"regression_flag": "neutral",
"k_percent": 29.4,
"bb_percent": 6.8,
"woba": 0.308,
"xwoba": 0.288,
"barrel_percent": 9.5,
"hard_hit_percent": 35.5,
"whiff_percent": 29.4
},
"espn_rank": {
"rank": 239,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.798,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8201,
"prior_weight": 0.1799
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693855",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 41,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 13.0,
"R": 14.0,
"H": 30.0,
"BB": 4.0,
"SO": 39.0,
"HR": 7.0,
"BF": 122.0,
"Pitches": 457.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 2.8,
"H": 6.0,
"BB": 0.8,
"SO": 7.8,
"HR": 1.4,
"BF": 24.4,
"Pitches": 91.4
},
"rates": {
"ERA": 4.0345,
"WHIP": 1.1724,
"ER_per_IP": 0.44828,
"H_per_IP": 1.03448,
"BB_per_IP": 0.13793,
"SO_per_IP": 1.34483,
"HR_per_IP": 0.24138
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 25.0,
"R": 27.0,
"H": 52.0,
"BB": 11.0,
"SO": 66.0,
"HR": 11.0,
"BF": 219.0,
"Pitches": 844.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.7,
"H": 5.2,
"BB": 1.1,
"SO": 6.6,
"HR": 1.1,
"BF": 21.9,
"Pitches": 84.4
},
"rates": {
"ERA": 4.3269,
"WHIP": 1.2115,
"ER_per_IP": 0.48077,
"H_per_IP": 1.0,
"BB_per_IP": 0.21154,
"SO_per_IP": 1.26923,
"HR_per_IP": 0.21154
}
},
"season": {
"games": 41,
"totals": {
"IP": 113.1,
"ER": 48.0,
"R": 52.0,
"H": 92.0,
"BB": 32.0,
"SO": 138.0,
"HR": 20.0,
"BF": 465.0,
"Pitches": 1801.0
},
"per_game": {
"IP": 2.2,
"ER": 1.1707,
"R": 1.2683,
"H": 2.2439,
"BB": 0.7805,
"SO": 3.3659,
"HR": 0.4878,
"BF": 11.3415,
"Pitches": 43.9268
},
"rates": {
"ERA": 3.8118,
"WHIP": 1.0941,
"ER_per_IP": 0.42353,
"H_per_IP": 0.81176,
"BB_per_IP": 0.28235,
"SO_per_IP": 1.21765,
"HR_per_IP": 0.17647
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.321,
"predicted_H": 4.902,
"predicted_BB": 1.128,
"predicted_SO": 6.17,
"predicted_HR": 1.029,
"predicted_ERA": 4.1617,
"predicted_WHIP": 1.2014
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.426,
"form_weight": 0.574,
"form_reliability": 0.8201,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.798,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8201,
"prior_weight": 0.1799
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.321,
"final": 3.0363,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 4.902,
"final": 2.8137,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.128,
"final": 1.4995,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 6.17,
"final": 3.9675,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.029,
"final": 0.5906,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1617,
"final": 4.1617,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2014,
"final": 1.2014,
"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": 25,
"H": 52,
"BB": 11,
"SO": 66,
"HR": 11,
"ERA": 4.326923076923077,
"WHIP": 1.2115384615384615,
"K9": 11.423076923076922,
"HR9": 1.9038461538461535,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-31T00:00:00"
},
"recent_form_boost": 0.9928147834299804,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 0.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.798,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8201,
"prior_weight": 0.1799
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 3,
"predicted_H": 0,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693855",
"player_name": "Ian Seymour",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"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": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"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": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"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": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 142,
"wins": 85,
"losses": 57,
"win_pct": 0.5986,
"runs_scored": 641.0,
"runs_allowed": 592.0,
"run_differential": 49.0,
"run_differential_per_game": 0.3451,
"avg_runs_scored": 4.5141,
"avg_runs_allowed": 4.169,
"offense_index": 1.0079,
"defense_index": 1.0743,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 4.4,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.1962
},
"opponent": {
"team": "TEX",
"games": 143,
"wins": 70,
"losses": 73,
"win_pct": 0.4895,
"runs_scored": 587.0,
"runs_allowed": 633.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3217,
"avg_runs_scored": 4.1049,
"avg_runs_allowed": 4.4266,
"offense_index": 0.9165,
"defense_index": 1.0118,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 5.3,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0834
},
"edges": {
"quality_edge": 0.2796,
"offense_edge": 0.0079,
"opponent_offense_edge": -0.0835,
"defense_strength": 0.0743,
"opponent_defense_weakness": -0.0118,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0168,
"run_prevention": 0.9652,
"strikeout": 1.0151
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693855",
"profile": {
"available": true,
"pitcher_id": "693855",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 390.0,
"k_percent": 29.4,
"bb_percent": 6.8,
"woba": 0.308,
"xwoba": 0.288,
"sweet_spot_percent": 35.5,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 35.5,
"avg_best_speed": 76.7907,
"avg_hyper_speed": 93.6181,
"whiff_percent": 29.4,
"swing_percent": 51.0
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2455,
"command_and_miss": 0.8107,
"regression_edge": 0.5714,
"xwoba_edge": 0.6571,
"barrel_edge": -0.5111,
"hard_hit_edge": 0.3429,
"whiff_edge": 0.6143,
"bb_edge": 0.6,
"pitch_design_score": -0.2186
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693855",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 85.97248769813585,
"release_spin_rate": 1969.909917192974,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 85.97248769813585,
"release_spin_rate": 1969.909917192974,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.9725,
"release_spin_rate": 1969.9099,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2186,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5615,
"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.3879,
"sample_weight": 1.0,
"run_prevention_factor": 0.967,
"strikeout_factor": 1.0669,
"walk_factor": 0.952,
"homer_factor": 1.0075,
"woba_minus_xwoba": 0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693855",
"espn_id": 4669425,
"player_name": "Ian Seymour",
"team": "TB",
"role": "pitcher",
"espn_rank": 239,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 239,
"gp_value": 42.0,
"gp_rank": 149,
"gs_value": 12.0,
"gs_rank": 156,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 4.2088,
"era_rank": null,
"w_value": 9.0,
"w_rank": 37,
"l_value": 6.0,
"l_rank": 107,
"sv_value": 2.0,
"sv_rank": 88,
"hld_value": 10.0,
"hld_rank": 81,
"ip_value": 113.1,
"ip_rank": 100,
"h_value": 97.0,
"h_rank": 116,
"er_value": 53.0,
"er_rank": 88,
"hr_value": 20.0,
"hr_rank": 32,
"bb_value": 32.0,
"bb_rank": 139,
"k_value": 138.0,
"k_rank": 40,
"k_per_9_value": 10.958824,
"k_per_9_rank": 10.0,
"whip_value": 1.1382,
"whip_rank": null,
"war_value": 0.59,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.967,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.967,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0075,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0669,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 0,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 75,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260906_TB@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_TB@TEX | home | MacKenzie Gore | MacKenzie Gore | True | 5.1 | 3.0 | -7 | 2 | 5 | 3 | 2/7 | 2/3 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.306034482758621,
"WHIP": 1.293103448275862,
"IP": 154.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.333,
"recent_avg_IP": 5.2,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1235,
"sample_weight": 1.0,
"run_prevention_factor": 0.9895,
"strikeout_factor": 1.0286,
"walk_factor": 0.996,
"homer_factor": 1.0345,
"regression_flag": "neutral",
"k_percent": 25.5,
"bb_percent": 9.0,
"woba": 0.312,
"xwoba": 0.303,
"barrel_percent": 8.4,
"hard_hit_percent": 41.4,
"whiff_percent": 26.6
},
"espn_rank": {
"rank": 107,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669022",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 9.0,
"R": 9.0,
"H": 27.0,
"BB": 13.0,
"SO": 29.0,
"HR": 2.0,
"BF": 117.0,
"Pitches": 480.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 1.8,
"H": 5.4,
"BB": 2.6,
"SO": 5.8,
"HR": 0.4,
"BF": 23.4,
"Pitches": 96.0
},
"rates": {
"ERA": 3.1154,
"WHIP": 1.5385,
"ER_per_IP": 0.34615,
"H_per_IP": 1.03846,
"BB_per_IP": 0.5,
"SO_per_IP": 1.11538,
"HR_per_IP": 0.07692
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 21.0,
"R": 21.0,
"H": 48.0,
"BB": 20.0,
"SO": 58.0,
"HR": 7.0,
"BF": 231.0,
"Pitches": 922.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1,
"R": 2.1,
"H": 4.8,
"BB": 2.0,
"SO": 5.8,
"HR": 0.7,
"BF": 23.1,
"Pitches": 92.2
},
"rates": {
"ERA": 3.5217,
"WHIP": 1.2671,
"ER_per_IP": 0.3913,
"H_per_IP": 0.89441,
"BB_per_IP": 0.37267,
"SO_per_IP": 1.08075,
"HR_per_IP": 0.13043
}
},
"season": {
"games": 29,
"totals": {
"IP": 154.2,
"ER": 74.0,
"R": 74.0,
"H": 140.0,
"BB": 60.0,
"SO": 169.0,
"HR": 18.0,
"BF": 664.0,
"Pitches": 2647.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5517,
"R": 2.5517,
"H": 4.8276,
"BB": 2.069,
"SO": 5.8276,
"HR": 0.6207,
"BF": 22.8966,
"Pitches": 91.2759
},
"rates": {
"ERA": 4.306,
"WHIP": 1.2931,
"ER_per_IP": 0.47845,
"H_per_IP": 0.90517,
"BB_per_IP": 0.38793,
"SO_per_IP": 1.09267,
"HR_per_IP": 0.11638
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.157,
"predicted_H": 5.135,
"predicted_BB": 2.261,
"predicted_SO": 5.735,
"predicted_HR": 0.586,
"predicted_ERA": 3.6402,
"predicted_WHIP": 1.3868
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.157,
"final": 2.0923,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.135,
"final": 3.8429,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.261,
"final": 2.1534,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.735,
"final": 5.8442,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.586,
"final": 0.7566,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6402,
"final": 3.6402,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3868,
"final": 1.3868,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 21,
"H": 48,
"BB": 20,
"SO": 58,
"HR": 7,
"ERA": 3.5217391304347827,
"WHIP": 1.2670807453416149,
"K9": 9.726708074534162,
"HR9": 1.173913043478261,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.9036201465451263,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669022",
"player_name": "MacKenzie Gore",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 143,
"wins": 70,
"losses": 73,
"win_pct": 0.4895,
"runs_scored": 587.0,
"runs_allowed": 633.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3217,
"avg_runs_scored": 4.1049,
"avg_runs_allowed": 4.4266,
"offense_index": 0.9165,
"defense_index": 1.0118,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 5.3,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0834
},
"opponent": {
"team": "TB",
"games": 142,
"wins": 85,
"losses": 57,
"win_pct": 0.5986,
"runs_scored": 641.0,
"runs_allowed": 592.0,
"run_differential": 49.0,
"run_differential_per_game": 0.3451,
"avg_runs_scored": 4.5141,
"avg_runs_allowed": 4.169,
"offense_index": 1.0079,
"defense_index": 1.0743,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 4.4,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.1962
},
"edges": {
"quality_edge": -0.2796,
"offense_edge": -0.0835,
"opponent_offense_edge": 0.0079,
"defense_strength": 0.0118,
"opponent_defense_weakness": -0.0743,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9889,
"run_prevention": 1.0141,
"strikeout": 0.991
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669022",
"profile": {
"available": true,
"pitcher_id": "669022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 595.0,
"k_percent": 25.5,
"bb_percent": 9.0,
"woba": 0.312,
"xwoba": 0.303,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 41.4,
"avg_best_speed": 77.5178,
"avg_hyper_speed": 94.5292,
"whiff_percent": 26.6,
"swing_percent": 49.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0272,
"command_and_miss": 0.31,
"regression_edge": 0.2571,
"xwoba_edge": 0.2286,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.5,
"whiff_edge": 0.2143,
"bb_edge": 0.05,
"pitch_design_score": 0.0241
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 100,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 100,
"pitch_usage": 0.0,
"release_speed": 90.30705137786757,
"release_spin_rate": 2168.388338902536,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 100,
"pitch_usage": 0.0,
"release_speed": 90.30705137786757,
"release_spin_rate": 2168.388338902536,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.3071,
"release_spin_rate": 2168.3883,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0241,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1723,
"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.1235,
"sample_weight": 1.0,
"run_prevention_factor": 0.9895,
"strikeout_factor": 1.0286,
"walk_factor": 0.996,
"homer_factor": 1.0345,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669022",
"espn_id": 39636,
"player_name": "MacKenzie Gore",
"team": "TEX",
"role": "pitcher",
"espn_rank": 107,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 107,
"gp_value": 29.0,
"gp_rank": 220,
"gs_value": 29.0,
"gs_rank": 3,
"qs_value": 9.0,
"qs_rank": 63,
"era_value": 4.306,
"era_rank": 44.0,
"w_value": 8.0,
"w_rank": 62,
"l_value": 10.0,
"l_rank": 16,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 154.2,
"ip_rank": 29,
"h_value": 140.0,
"h_rank": 31,
"er_value": 74.0,
"er_rank": 18,
"hr_value": 18.0,
"hr_rank": 51,
"bb_value": 60.0,
"bb_rank": 14,
"k_value": 169.0,
"k_rank": 18,
"k_per_9_value": 9.834052,
"k_per_9_rank": 16.0,
"whip_value": 1.2931,
"whip_rank": 38.0,
"war_value": 1.61,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9895,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9895,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.996,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0345,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0286,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 93,
"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 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260906_TB@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_TOR@KC | away | Spencer Arrighetti | Spencer Arrighetti | True | 5.0 | 4.2 | -1 | 4 | 6 | 2 | 4/6 | 2/3 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.818181818181818,
"WHIP": 1.3434343434343434,
"IP": 99.0,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.111,
"recent_avg_IP": 4.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.352,
"sample_weight": 1.0,
"run_prevention_factor": 1.0299,
"strikeout_factor": 1.0017,
"walk_factor": 1.068,
"homer_factor": 1.0078,
"regression_flag": "neutral",
"k_percent": 22.3,
"bb_percent": 12.6,
"woba": 0.322,
"xwoba": 0.346,
"barrel_percent": 8.2,
"hard_hit_percent": 30.9,
"whiff_percent": 25.1
},
"espn_rank": {
"rank": 289,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681293",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 17.0,
"ER": 12.0,
"R": 13.0,
"H": 13.0,
"BB": 11.0,
"SO": 16.0,
"HR": 3.0,
"BF": 79.0,
"Pitches": 320.0
},
"per_game": {
"IP": 3.1,
"ER": 2.4,
"R": 2.6,
"H": 2.6,
"BB": 2.2,
"SO": 3.2,
"HR": 0.6,
"BF": 15.8,
"Pitches": 64.0
},
"rates": {
"ERA": 6.3529,
"WHIP": 1.4118,
"ER_per_IP": 0.70588,
"H_per_IP": 0.76471,
"BB_per_IP": 0.64706,
"SO_per_IP": 0.94118,
"HR_per_IP": 0.17647
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 42.0,
"ER": 39.0,
"R": 40.0,
"H": 41.0,
"BB": 24.0,
"SO": 44.0,
"HR": 12.0,
"BF": 192.0,
"Pitches": 771.0
},
"per_game": {
"IP": 4.1,
"ER": 3.9,
"R": 4.0,
"H": 4.1,
"BB": 2.4,
"SO": 4.4,
"HR": 1.2,
"BF": 19.2,
"Pitches": 77.1
},
"rates": {
"ERA": 8.3571,
"WHIP": 1.5476,
"ER_per_IP": 0.92857,
"H_per_IP": 0.97619,
"BB_per_IP": 0.57143,
"SO_per_IP": 1.04762,
"HR_per_IP": 0.28571
}
},
"season": {
"games": 20,
"totals": {
"IP": 99.0,
"ER": 53.0,
"R": 56.0,
"H": 78.0,
"BB": 55.0,
"SO": 97.0,
"HR": 15.0,
"BF": 435.0,
"Pitches": 1706.0
},
"per_game": {
"IP": 5.0,
"ER": 2.65,
"R": 2.8,
"H": 3.9,
"BB": 2.75,
"SO": 4.85,
"HR": 0.75,
"BF": 21.75,
"Pitches": 85.3
},
"rates": {
"ERA": 4.8182,
"WHIP": 1.3434,
"ER_per_IP": 0.53535,
"H_per_IP": 0.78788,
"BB_per_IP": 0.55556,
"SO_per_IP": 0.9798,
"HR_per_IP": 0.15152
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.9,
"predicted_H": 3.603,
"predicted_BB": 2.306,
"predicted_SO": 4.05,
"predicted_HR": 0.817,
"predicted_ERA": 6.2936,
"predicted_WHIP": 1.425
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.9,
"final": 3.378,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.603,
"final": 3.7755,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.306,
"final": 2.173,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.05,
"final": 4.0283,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.817,
"final": 0.8965,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.2936,
"final": 6.2936,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.425,
"final": 1.425,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 42.0,
"ER": 39,
"H": 41,
"BB": 24,
"SO": 44,
"HR": 12,
"ERA": 8.357142857142858,
"WHIP": 1.5476190476190477,
"K9": 9.428571428571429,
"HR9": 2.5714285714285716,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.418448588140285,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681293",
"player_name": "Spencer Arrighetti",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"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": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"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": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 143,
"wins": 72,
"losses": 71,
"win_pct": 0.5035,
"runs_scored": 579.0,
"runs_allowed": 612.0,
"run_differential": -33.0,
"run_differential_per_game": -0.2308,
"avg_runs_scored": 4.049,
"avg_runs_allowed": 4.2797,
"offense_index": 0.904,
"defense_index": 1.0465,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.1,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.0796
},
"opponent": {
"team": "KC",
"games": 143,
"wins": 63,
"losses": 80,
"win_pct": 0.4406,
"runs_scored": 611.0,
"runs_allowed": 704.0,
"run_differential": -93.0,
"run_differential_per_game": -0.6503,
"avg_runs_scored": 4.2727,
"avg_runs_allowed": 4.9231,
"offense_index": 0.954,
"defense_index": 0.9098,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 5.0,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1653
},
"edges": {
"quality_edge": 0.2449,
"offense_edge": -0.096,
"opponent_offense_edge": -0.046,
"defense_strength": 0.0465,
"opponent_defense_weakness": 0.0902,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.013,
"run_prevention": 0.9757,
"strikeout": 1.011
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681293",
"profile": {
"available": true,
"pitcher_id": "681293",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 383.0,
"k_percent": 22.3,
"bb_percent": 12.6,
"woba": 0.322,
"xwoba": 0.346,
"sweet_spot_percent": 37.5,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 30.9,
"avg_best_speed": 76.3015,
"avg_hyper_speed": 92.7918,
"whiff_percent": 25.1,
"swing_percent": 42.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3961,
"command_and_miss": -0.1507,
"regression_edge": -0.6857,
"xwoba_edge": -1.0,
"barrel_edge": -0.2222,
"hard_hit_edge": 1.0,
"whiff_edge": 0.0,
"bb_edge": -0.85,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681293",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 70,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 84.44963252833853,
"release_spin_rate": 2497.7609751645673,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 84.44963252833853,
"release_spin_rate": 2497.7609751645673,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 84.4496,
"release_spin_rate": 2497.761,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.352,
"sample_weight": 1.0,
"run_prevention_factor": 1.0299,
"strikeout_factor": 1.0017,
"walk_factor": 1.068,
"homer_factor": 1.0078,
"woba_minus_xwoba": -0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "681293",
"espn_id": 4726080,
"player_name": "Spencer Arrighetti",
"team": "TOR",
"role": "pitcher",
"espn_rank": 289,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 289,
"gp_value": 20.0,
"gp_rank": 384,
"gs_value": 18.0,
"gs_rank": 109,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 4.8181,
"era_rank": null,
"w_value": 7.0,
"w_rank": 82,
"l_value": 8.0,
"l_rank": 52,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 99.0,
"ip_rank": 119,
"h_value": 78.0,
"h_rank": 150,
"er_value": 53.0,
"er_rank": 88,
"hr_value": 15.0,
"hr_rank": 84,
"bb_value": 55.0,
"bb_rank": 21,
"k_value": 97.0,
"k_rank": 103,
"k_per_9_value": 8.818182,
"k_per_9_rank": 23.0,
"whip_value": 1.3434,
"whip_rank": null,
"war_value": 0.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0299,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0299,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.068,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0078,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0017,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 83,
"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/20260906_TOR@KC.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"
}
} |
| 20260906 | 20260906_TOR@KC | home | Randy Dobnak | Randy Dobnak | True | 6.0 | 6.0 | 0 | 4 | 1 | -3 | 6/4 | 2/0 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.653179190751445,
"WHIP": 1.3872832369942196,
"IP": 57.2,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 5.333,
"recent_avg_IP": 5.333,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2669,
"sample_weight": 0.696,
"run_prevention_factor": 1.0227,
"strikeout_factor": 0.9566,
"walk_factor": 1.0014,
"homer_factor": 0.995,
"regression_flag": "neutral",
"k_percent": 16.2,
"bb_percent": 9.3,
"woba": 0.312,
"xwoba": 0.335,
"barrel_percent": 4.9,
"hard_hit_percent": 40.2,
"whiff_percent": 20.0
},
"espn_rank": {
"rank": 89,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 57.2,
"season_ERA": 2.653,
"season_WHIP": 1.387,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "677976",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 13.0,
"R": 13.0,
"H": 33.0,
"BB": 10.0,
"SO": 25.0,
"HR": 3.0,
"BF": 120.0,
"Pitches": 462.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.6,
"H": 6.6,
"BB": 2.0,
"SO": 5.0,
"HR": 0.6,
"BF": 24.0,
"Pitches": 92.4
},
"rates": {
"ERA": 4.3875,
"WHIP": 1.6125,
"ER_per_IP": 0.4875,
"H_per_IP": 1.2375,
"BB_per_IP": 0.375,
"SO_per_IP": 0.9375,
"HR_per_IP": 0.1125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 15.0,
"R": 15.0,
"H": 51.0,
"BB": 22.0,
"SO": 38.0,
"HR": 4.0,
"BF": 229.0,
"Pitches": 920.0
},
"per_game": {
"IP": 5.1,
"ER": 1.5,
"R": 1.5,
"H": 5.1,
"BB": 2.2,
"SO": 3.8,
"HR": 0.4,
"BF": 22.9,
"Pitches": 92.0
},
"rates": {
"ERA": 2.5155,
"WHIP": 1.3602,
"ER_per_IP": 0.2795,
"H_per_IP": 0.95031,
"BB_per_IP": 0.40994,
"SO_per_IP": 0.70807,
"HR_per_IP": 0.07453
}
},
"season": {
"games": 11,
"totals": {
"IP": 57.2,
"ER": 17.0,
"R": 17.0,
"H": 57.0,
"BB": 23.0,
"SO": 40.0,
"HR": 5.0,
"BF": 247.0,
"Pitches": 984.0
},
"per_game": {
"IP": 5.1,
"ER": 1.5455,
"R": 1.5455,
"H": 5.1818,
"BB": 2.0909,
"SO": 3.6364,
"HR": 0.4545,
"BF": 22.4545,
"Pitches": 89.4545
},
"rates": {
"ERA": 2.6532,
"WHIP": 1.3873,
"ER_per_IP": 0.2948,
"H_per_IP": 0.98844,
"BB_per_IP": 0.39884,
"SO_per_IP": 0.69364,
"HR_per_IP": 0.08671
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.295,
"predicted_H": 5.823,
"predicted_BB": 2.137,
"predicted_SO": 4.706,
"predicted_HR": 0.611,
"predicted_ERA": 3.7269,
"predicted_WHIP": 1.4364
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.482,
"form_weight": 0.518,
"form_reliability": 0.6875,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.295,
"final": 2.6348,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.823,
"final": 5.9083,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.137,
"final": 2.071,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.706,
"final": 4.3657,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.611,
"final": 0.7985,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7269,
"final": 3.7269,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4364,
"final": 1.4364,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 15,
"H": 51,
"BB": 22,
"SO": 38,
"HR": 4,
"ERA": 2.5155279503105588,
"WHIP": 1.3602484472049687,
"K9": 6.3726708074534155,
"HR9": 0.670807453416149,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.7927505813277349,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677976",
"player_name": "Randy Dobnak",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 143,
"wins": 63,
"losses": 80,
"win_pct": 0.4406,
"runs_scored": 611.0,
"runs_allowed": 704.0,
"run_differential": -93.0,
"run_differential_per_game": -0.6503,
"avg_runs_scored": 4.2727,
"avg_runs_allowed": 4.9231,
"offense_index": 0.954,
"defense_index": 0.9098,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 5.0,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1653
},
"opponent": {
"team": "TOR",
"games": 143,
"wins": 72,
"losses": 71,
"win_pct": 0.5035,
"runs_scored": 579.0,
"runs_allowed": 612.0,
"run_differential": -33.0,
"run_differential_per_game": -0.2308,
"avg_runs_scored": 4.049,
"avg_runs_allowed": 4.2797,
"offense_index": 0.904,
"defense_index": 1.0465,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.1,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.0796
},
"edges": {
"quality_edge": -0.2449,
"offense_edge": -0.046,
"opponent_offense_edge": -0.096,
"defense_strength": -0.0902,
"opponent_defense_weakness": -0.0465,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9913,
"run_prevention": 1.0059,
"strikeout": 1.0003
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677976",
"profile": {
"available": true,
"pitcher_id": "677976",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 174.0,
"k_percent": 16.2,
"bb_percent": 9.3,
"woba": 0.312,
"xwoba": 0.335,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 4.9,
"hard_hit_percent": 40.2,
"avg_best_speed": 79.2372,
"avg_hyper_speed": 94.5588,
"whiff_percent": 20.0,
"swing_percent": 45.7
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2533,
"command_and_miss": -0.6329,
"regression_edge": -0.6571,
"xwoba_edge": -0.6857,
"barrel_edge": 0.5111,
"hard_hit_edge": -0.3286,
"whiff_edge": -0.7286,
"bb_edge": -0.025,
"pitch_design_score": -0.1416
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677976",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 87.34840198382811,
"release_spin_rate": 2038.5773448044797,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 87.34840198382811,
"release_spin_rate": 2038.5773448044797,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3484,
"release_spin_rate": 2038.5773,
"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.1416,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0112,
"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.2669,
"sample_weight": 0.696,
"run_prevention_factor": 1.0227,
"strikeout_factor": 0.9566,
"walk_factor": 1.0014,
"homer_factor": 0.995,
"woba_minus_xwoba": -0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677976",
"espn_id": 42214,
"player_name": "Randy Dobnak",
"team": "KC",
"role": "pitcher",
"espn_rank": 89,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 89,
"gp_value": 11.0,
"gp_rank": 503,
"gs_value": 9.0,
"gs_rank": 178,
"qs_value": 2.0,
"qs_rank": 156,
"era_value": 2.6531,
"era_rank": null,
"w_value": 2.0,
"w_rank": 308,
"l_value": 3.0,
"l_rank": 232,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 57.2,
"ip_rank": 241,
"h_value": 57.0,
"h_rank": 198,
"er_value": 17.0,
"er_rank": 363,
"hr_value": 5.0,
"hr_rank": 310,
"bb_value": 23.0,
"bb_rank": 234,
"k_value": 40.0,
"k_rank": 346,
"k_per_9_value": 6.2427745,
"k_per_9_rank": 38.0,
"whip_value": 1.3872,
"whip_rank": null,
"war_value": 1.82,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0158,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0158,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.001,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9965,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9698,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 114,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"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/20260906_TOR@KC.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"
}
} |
| 20260906 | 20260906_WAS@LAD | away | Andrew Alvarez | Andrew Alvarez | True | 5.0 | 4.1 | -2 | 2 | 3 | 1 | 3/4 | 1/2 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.474264705882353,
"WHIP": 1.3125,
"IP": 90.2,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 4.923,
"recent_avg_IP": 5.333,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0775,
"sample_weight": 1.0,
"run_prevention_factor": 1.0066,
"strikeout_factor": 1.0063,
"walk_factor": 1.03,
"homer_factor": 0.9973,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 10.7,
"woba": 0.3,
"xwoba": 0.321,
"barrel_percent": 5.6,
"hard_hit_percent": 40.9,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 82,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.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": "674841",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 7.0,
"R": 7.0,
"H": 16.0,
"BB": 10.0,
"SO": 23.0,
"HR": 3.0,
"BF": 106.0,
"Pitches": 399.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 3.2,
"BB": 2.0,
"SO": 4.6,
"HR": 0.6,
"BF": 21.2,
"Pitches": 79.8
},
"rates": {
"ERA": 2.3625,
"WHIP": 0.975,
"ER_per_IP": 0.2625,
"H_per_IP": 0.6,
"BB_per_IP": 0.375,
"SO_per_IP": 0.8625,
"HR_per_IP": 0.1125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 21.0,
"R": 21.0,
"H": 37.0,
"BB": 25.0,
"SO": 38.0,
"HR": 3.0,
"BF": 208.0,
"Pitches": 771.0
},
"per_game": {
"IP": 5.0,
"ER": 2.1,
"R": 2.1,
"H": 3.7,
"BB": 2.5,
"SO": 3.8,
"HR": 0.3,
"BF": 20.8,
"Pitches": 77.1
},
"rates": {
"ERA": 3.8311,
"WHIP": 1.2568,
"ER_per_IP": 0.42568,
"H_per_IP": 0.75,
"BB_per_IP": 0.50676,
"SO_per_IP": 0.77027,
"HR_per_IP": 0.06081
}
},
"season": {
"games": 21,
"totals": {
"IP": 90.2,
"ER": 35.0,
"R": 35.0,
"H": 78.0,
"BB": 41.0,
"SO": 86.0,
"HR": 5.0,
"BF": 382.0,
"Pitches": 1489.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6667,
"R": 1.6667,
"H": 3.7143,
"BB": 1.9524,
"SO": 4.0952,
"HR": 0.2381,
"BF": 18.1905,
"Pitches": 70.9048
},
"rates": {
"ERA": 3.4743,
"WHIP": 1.3125,
"ER_per_IP": 0.38603,
"H_per_IP": 0.86029,
"BB_per_IP": 0.45221,
"SO_per_IP": 0.94853,
"HR_per_IP": 0.05515
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.874,
"predicted_H": 3.789,
"predicted_BB": 2.126,
"predicted_SO": 4.337,
"predicted_HR": 0.477,
"predicted_ERA": 3.3641,
"predicted_WHIP": 1.1798
}
},
"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.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.874,
"final": 1.9283,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.789,
"final": 3.4487,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.126,
"final": 1.6404,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.337,
"final": 4.6229,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.477,
"final": 0.2713,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3641,
"final": 3.3641,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1798,
"final": 1.1798,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.1,
"ER": 21,
"H": 37,
"BB": 25,
"SO": 38,
"HR": 3,
"ERA": 3.8310810810810807,
"WHIP": 1.2567567567567568,
"K9": 6.9324324324324325,
"HR9": 0.5472972972972973,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 0.9381630162782133,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "674841",
"player_name": "Andrew Alvarez",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 144,
"wins": 67,
"losses": 77,
"win_pct": 0.4653,
"runs_scored": 743.0,
"runs_allowed": 732.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0764,
"avg_runs_scored": 5.1597,
"avg_runs_allowed": 5.0833,
"offense_index": 1.1475,
"defense_index": 0.8846,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.4,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0202
},
"opponent": {
"team": "LAD",
"games": 142,
"wins": 85,
"losses": 57,
"win_pct": 0.5986,
"runs_scored": 698.0,
"runs_allowed": 548.0,
"run_differential": 150.0,
"run_differential_per_game": 1.0563,
"avg_runs_scored": 4.9155,
"avg_runs_allowed": 3.8592,
"offense_index": 1.0931,
"defense_index": 1.1652,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.2,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.213
},
"edges": {
"quality_edge": -0.2332,
"offense_edge": 0.1475,
"opponent_offense_edge": 0.0931,
"defense_strength": -0.1154,
"opponent_defense_weakness": -0.1652,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9835,
"run_prevention": 1.0381,
"strikeout": 0.9856
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "674841",
"profile": {
"available": true,
"pitcher_id": "674841",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 302.0,
"k_percent": 22.5,
"bb_percent": 10.7,
"woba": 0.3,
"xwoba": 0.321,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 40.9,
"avg_best_speed": 77.6913,
"avg_hyper_speed": 94.5332,
"whiff_percent": 25.7,
"swing_percent": 44.1
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0034,
"command_and_miss": -0.0129,
"regression_edge": -0.6,
"xwoba_edge": -0.2857,
"barrel_edge": 0.3556,
"hard_hit_edge": -0.4286,
"whiff_edge": 0.0857,
"bb_edge": -0.375,
"pitch_design_score": -0.1534
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "674841",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 75,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 87.13661568408875,
"release_spin_rate": 2504.9833130374473,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 87.13661568408875,
"release_spin_rate": 2504.9833130374473,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.1366,
"release_spin_rate": 2504.9833,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1534,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0959,
"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.0775,
"sample_weight": 1.0,
"run_prevention_factor": 1.0066,
"strikeout_factor": 1.0063,
"walk_factor": 1.03,
"homer_factor": 0.9973,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "674841",
"espn_id": 4300668,
"player_name": "Andrew Alvarez",
"team": "WSH",
"role": "pitcher",
"espn_rank": 82,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 82,
"gp_value": 21.0,
"gp_rank": 369,
"gs_value": 13.0,
"gs_rank": 151,
"qs_value": 2.0,
"qs_rank": 156,
"era_value": 3.4742,
"era_rank": null,
"w_value": 2.0,
"w_rank": 308,
"l_value": 6.0,
"l_rank": 107,
"sv_value": 1.0,
"sv_rank": 136,
"hld_value": 2.0,
"hld_rank": 226,
"ip_value": 90.2,
"ip_rank": 138,
"h_value": 78.0,
"h_rank": 150,
"er_value": 35.0,
"er_rank": 164,
"hr_value": 5.0,
"hr_rank": 310,
"bb_value": 41.0,
"bb_rank": 76,
"k_value": 86.0,
"k_rank": 137,
"k_per_9_value": 8.536765,
"k_per_9_rank": 26.0,
"whip_value": 1.3125,
"whip_rank": null,
"war_value": 1.87,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0066,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 1.0066,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.03,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9973,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0063,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 84,
"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/20260906_WAS@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260906 | 20260906_WAS@LAD | home | Justin Wrobleski | Justin Wrobleski | True | 5.1 | 3.0 | -7 | 1 | 4 | 3 | 2/8 | 4/1 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6467532467532466,
"WHIP": 1.1064935064935064,
"IP": 128.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 6.117,
"recent_avg_IP": 5.2,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3582,
"sample_weight": 1.0,
"run_prevention_factor": 1.0304,
"strikeout_factor": 0.96,
"walk_factor": 0.926,
"homer_factor": 1.0906,
"regression_flag": "negative_pitcher_regression",
"k_percent": 19.8,
"bb_percent": 5.5,
"woba": 0.296,
"xwoba": 0.331,
"barrel_percent": 9.5,
"hard_hit_percent": 43.6,
"whiff_percent": 20.3
},
"espn_rank": {
"rank": 83,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "680736",
"report_date": "20260906",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 21.0,
"R": 23.0,
"H": 26.0,
"BB": 8.0,
"SO": 24.0,
"HR": 12.0,
"BF": 102.0,
"Pitches": 412.0
},
"per_game": {
"IP": 4.1,
"ER": 4.2,
"R": 4.6,
"H": 5.2,
"BB": 1.6,
"SO": 4.8,
"HR": 2.4,
"BF": 20.4,
"Pitches": 82.4
},
"rates": {
"ERA": 8.7231,
"WHIP": 1.5692,
"ER_per_IP": 0.96923,
"H_per_IP": 1.2,
"BB_per_IP": 0.36923,
"SO_per_IP": 1.10769,
"HR_per_IP": 0.55385
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 28.0,
"R": 30.0,
"H": 52.0,
"BB": 13.0,
"SO": 59.0,
"HR": 14.0,
"BF": 231.0,
"Pitches": 864.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 3.0,
"H": 5.2,
"BB": 1.3,
"SO": 5.9,
"HR": 1.4,
"BF": 23.1,
"Pitches": 86.4
},
"rates": {
"ERA": 4.5818,
"WHIP": 1.1818,
"ER_per_IP": 0.50909,
"H_per_IP": 0.94545,
"BB_per_IP": 0.23636,
"SO_per_IP": 1.07273,
"HR_per_IP": 0.25455
}
},
"season": {
"games": 22,
"totals": {
"IP": 128.1,
"ER": 52.0,
"R": 54.0,
"H": 113.0,
"BB": 29.0,
"SO": 104.0,
"HR": 20.0,
"BF": 526.0,
"Pitches": 1936.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3636,
"R": 2.4545,
"H": 5.1364,
"BB": 1.3182,
"SO": 4.7273,
"HR": 0.9091,
"BF": 23.9091,
"Pitches": 88.0
},
"rates": {
"ERA": 3.6468,
"WHIP": 1.1065,
"ER_per_IP": 0.40519,
"H_per_IP": 0.88052,
"BB_per_IP": 0.22597,
"SO_per_IP": 0.81039,
"HR_per_IP": 0.15584
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.384,
"predicted_H": 5.306,
"predicted_BB": 1.584,
"predicted_SO": 5.23,
"predicted_HR": 1.686,
"predicted_ERA": 5.9287,
"predicted_WHIP": 1.3413
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.384,
"final": 2.3631,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.306,
"final": 3.8902,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.584,
"final": 2.6186,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.23,
"final": 5.988,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.686,
"final": 0.964,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.9287,
"final": 5.9287,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3413,
"final": 1.3413,
"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": 28,
"H": 52,
"BB": 13,
"SO": 59,
"HR": 14,
"ERA": 4.581818181818182,
"WHIP": 1.1818181818181819,
"K9": 9.654545454545454,
"HR9": 2.290909090909091,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.0207474757376729,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 4.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680736",
"player_name": "Justin Wrobleski",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"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": 4.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 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.1,
"after": 5.1,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 142,
"wins": 85,
"losses": 57,
"win_pct": 0.5986,
"runs_scored": 698.0,
"runs_allowed": 548.0,
"run_differential": 150.0,
"run_differential_per_game": 1.0563,
"avg_runs_scored": 4.9155,
"avg_runs_allowed": 3.8592,
"offense_index": 1.0931,
"defense_index": 1.1652,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.2,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.213
},
"opponent": {
"team": "WAS",
"games": 144,
"wins": 67,
"losses": 77,
"win_pct": 0.4653,
"runs_scored": 743.0,
"runs_allowed": 732.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0764,
"avg_runs_scored": 5.1597,
"avg_runs_allowed": 5.0833,
"offense_index": 1.1475,
"defense_index": 0.8846,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.4,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0202
},
"edges": {
"quality_edge": 0.2332,
"offense_edge": 0.0931,
"opponent_offense_edge": 0.1475,
"defense_strength": 0.1652,
"opponent_defense_weakness": 0.1154,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0084,
"run_prevention": 0.9954,
"strikeout": 0.9952
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680736",
"profile": {
"available": true,
"pitcher_id": "680736",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 515.0,
"k_percent": 19.8,
"bb_percent": 5.5,
"woba": 0.296,
"xwoba": 0.331,
"sweet_spot_percent": 37.4,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 43.6,
"avg_best_speed": 79.3535,
"avg_hyper_speed": 94.6166,
"whiff_percent": 20.3,
"swing_percent": 49.8
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9167,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.374,
"command_and_miss": -0.1964,
"regression_edge": -1.0,
"xwoba_edge": -0.5714,
"barrel_edge": -0.5111,
"hard_hit_edge": -0.8143,
"whiff_edge": -0.6857,
"bb_edge": 0.925,
"pitch_design_score": 0.029
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680736",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 90.39432421927599,
"release_spin_rate": 2377.3706374138,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 90.39432421927599,
"release_spin_rate": 2377.3706374138,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3943,
"release_spin_rate": 2377.3706,
"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.029,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2072,
"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.3582,
"sample_weight": 1.0,
"run_prevention_factor": 1.0304,
"strikeout_factor": 0.96,
"walk_factor": 0.926,
"homer_factor": 1.0906,
"woba_minus_xwoba": -0.035,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "680736",
"espn_id": 4417203,
"player_name": "Justin Wrobleski",
"team": "LAD",
"role": "pitcher",
"espn_rank": 83,
"espn_total_ranked": 855,
"metrics": {
"espn_rank": 83,
"gp_value": 22.0,
"gp_rank": 355,
"gs_value": 20.0,
"gs_rank": 95,
"qs_value": 12.0,
"qs_rank": 33,
"era_value": 3.6467,
"era_rank": null,
"w_value": 11.0,
"w_rank": 21,
"l_value": 5.0,
"l_rank": 132,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 128.1,
"ip_rank": 78,
"h_value": 113.0,
"h_rank": 87,
"er_value": 52.0,
"er_rank": 93,
"hr_value": 20.0,
"hr_rank": 32,
"bb_value": 29.0,
"bb_rank": 167,
"k_value": 104.0,
"k_rank": 88,
"k_per_9_value": 7.2935066,
"k_per_9_rank": 30.0,
"whip_value": 1.1064,
"whip_rank": null,
"war_value": 1.86,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0304,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0304,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.926,
"adjusted": 2
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0906,
"adjusted": 2
},
"predicted_SO": {
"original": 5.0,
"factor": 0.96,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 101,
"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 6",
"detail": "Actual minus predicted hits was +6."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260906_WAS@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |