| 20260821 | 20260821_ATL@MIL | away | Chris Sale | Chris Sale | True | 6.0 | 6.0 | 0 | 2 | 2 | 0 | 4/8 | 3/0 | 8/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.1627906976744184,
"WHIP": 1.0155038759689923,
"IP": 129.0,
"games_started": 22,
"games_pitched": 22,
"role_avg_IP": 5.864,
"recent_avg_IP": 6.2,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6586,
"sample_weight": 1.0,
"run_prevention_factor": 0.944,
"strikeout_factor": 1.076,
"walk_factor": 0.926,
"homer_factor": 0.9213,
"regression_flag": "neutral",
"k_percent": 30.9,
"bb_percent": 5.4,
"woba": 0.26,
"xwoba": 0.272,
"barrel_percent": 5.6,
"hard_hit_percent": 34.5,
"whiff_percent": 30.0
},
"espn_rank": {
"rank": 11,
"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",
"player_id": "519242",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 7.0,
"R": 7.0,
"H": 19.0,
"BB": 3.0,
"SO": 43.0,
"HR": 0.0,
"BF": 114.0,
"Pitches": 492.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.4,
"H": 3.8,
"BB": 0.6,
"SO": 8.6,
"HR": 0.0,
"BF": 22.8,
"Pitches": 98.4
},
"rates": {
"ERA": 2.0323,
"WHIP": 0.7097,
"ER_per_IP": 0.22581,
"H_per_IP": 0.6129,
"BB_per_IP": 0.09677,
"SO_per_IP": 1.3871,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 13.0,
"R": 16.0,
"H": 47.0,
"BB": 9.0,
"SO": 74.0,
"HR": 2.0,
"BF": 223.0,
"Pitches": 931.0
},
"per_game": {
"IP": 5.2,
"ER": 1.3,
"R": 1.6,
"H": 4.7,
"BB": 0.9,
"SO": 7.4,
"HR": 0.2,
"BF": 22.3,
"Pitches": 93.1
},
"rates": {
"ERA": 2.0769,
"WHIP": 0.9941,
"ER_per_IP": 0.23077,
"H_per_IP": 0.83432,
"BB_per_IP": 0.15976,
"SO_per_IP": 1.31361,
"HR_per_IP": 0.0355
}
},
"season": {
"games": 22,
"totals": {
"IP": 129.0,
"ER": 31.0,
"R": 36.0,
"H": 103.0,
"BB": 28.0,
"SO": 160.0,
"HR": 8.0,
"BF": 517.0,
"Pitches": 2077.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4091,
"R": 1.6364,
"H": 4.6818,
"BB": 1.2727,
"SO": 7.2727,
"HR": 0.3636,
"BF": 23.5,
"Pitches": 94.4091
},
"rates": {
"ERA": 2.1628,
"WHIP": 1.0155,
"ER_per_IP": 0.24031,
"H_per_IP": 0.79845,
"BB_per_IP": 0.21705,
"SO_per_IP": 1.24031,
"HR_per_IP": 0.06202
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.691,
"predicted_H": 4.658,
"predicted_BB": 1.111,
"predicted_SO": 7.604,
"predicted_HR": 0.286,
"predicted_ERA": 2.5253,
"predicted_WHIP": 0.9571
}
},
"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,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.691,
"final": 2.2516,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.658,
"final": 4.8045,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.111,
"final": 1.92,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 7.604,
"final": 7.3453,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.286,
"final": 0.1635,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5253,
"final": 2.5253,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9571,
"final": 0.9571,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 13,
"H": 47,
"BB": 9,
"SO": 74,
"HR": 2,
"ERA": 2.076923076923077,
"WHIP": 0.9940828402366865,
"K9": 11.822485207100593,
"HR9": 0.31952662721893493,
"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-14T00:00:00"
},
"recent_form_boost": 0.7304365266481982,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 3.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": "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": 3,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "519242",
"player_name": "Chris Sale",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.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": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 2,
"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": {
"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": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"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": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 3,
"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": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 138,
"wins": 80,
"losses": 58,
"win_pct": 0.5797,
"runs_scored": 638.0,
"runs_allowed": 518.0,
"run_differential": 120.0,
"run_differential_per_game": 0.8696,
"avg_runs_scored": 4.6232,
"avg_runs_allowed": 3.7536,
"offense_index": 1.0279,
"defense_index": 1.1982,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.0,
"run_differential": -8.0
},
"available": true,
"quality_score": 0.1391
},
"opponent": {
"team": "MIL",
"games": 139,
"wins": 83,
"losses": 56,
"win_pct": 0.5971,
"runs_scored": 685.0,
"runs_allowed": 521.0,
"run_differential": 164.0,
"run_differential_per_game": 1.1799,
"avg_runs_scored": 4.9281,
"avg_runs_allowed": 3.7482,
"offense_index": 1.0957,
"defense_index": 1.2,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.9,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.2268
},
"edges": {
"quality_edge": -0.0877,
"offense_edge": 0.0279,
"opponent_offense_edge": 0.0957,
"defense_strength": 0.1982,
"opponent_defense_weakness": -0.2,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9986,
"run_prevention": 0.9999,
"strikeout": 0.9897
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "519242",
"profile": {
"available": true,
"pitcher_id": "519242",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 468.0,
"k_percent": 30.9,
"bb_percent": 5.4,
"woba": 0.26,
"xwoba": 0.272,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 34.5,
"avg_best_speed": 76.9154,
"avg_hyper_speed": 93.4665,
"whiff_percent": 30.0,
"swing_percent": 50.5
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.7948,
"command_and_miss": 0.9743,
"regression_edge": -0.3429,
"xwoba_edge": 1.1429,
"barrel_edge": 0.3333,
"hard_hit_edge": 0.4429,
"whiff_edge": 0.6571,
"bb_edge": 0.925,
"pitch_design_score": -0.0692
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "519242",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 88.6792651900777,
"release_spin_rate": 2340.8734947079124,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 88.6792651900777,
"release_spin_rate": 2340.8734947079124,
"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.6793,
"release_spin_rate": 2340.8735,
"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.0692,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4944,
"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.6586,
"sample_weight": 1.0,
"run_prevention_factor": 0.944,
"strikeout_factor": 1.076,
"walk_factor": 0.926,
"homer_factor": 0.9213,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "519242",
"espn_id": 30948,
"player_name": "Chris Sale",
"team": "ATL",
"role": "pitcher",
"espn_rank": 11,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 11,
"gp_value": 22.0,
"gp_rank": 325,
"gs_value": 22.0,
"gs_rank": 64,
"qs_value": 15.0,
"qs_rank": 7,
"era_value": 2.1627,
"era_rank": 2.0,
"w_value": 12.0,
"w_rank": 9,
"l_value": 8.0,
"l_rank": 33,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 129.0,
"ip_rank": 50,
"h_value": 103.0,
"h_rank": 84,
"er_value": 31.0,
"er_rank": 168,
"hr_value": 8.0,
"hr_rank": 182,
"bb_value": 28.0,
"bb_rank": 153,
"k_value": 160.0,
"k_rank": 11,
"k_per_9_value": 11.162791,
"k_per_9_rank": 5.0,
"whip_value": 1.0155,
"whip_rank": 7.0,
"war_value": 4.23,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.944,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.926,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9213,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.076,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 102
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260821_ATL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260821 | 20260821_ATL@MIL | home | Jacob Misiorowski | Jacob Misiorowski | True | 6.0 | 6.0 | 0 | 0 | 0 | 0 | 5/4 | 4/2 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.7482014388489209,
"WHIP": 0.7482014388489209,
"IP": 139.0,
"games_started": 23,
"games_pitched": 23,
"role_avg_IP": 6.043,
"recent_avg_IP": 5.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 1.4433,
"sample_weight": 1.0,
"run_prevention_factor": 0.8773,
"strikeout_factor": 1.16,
"walk_factor": 0.936,
"homer_factor": 0.8328,
"regression_flag": "neutral",
"k_percent": 39.8,
"bb_percent": 5.9,
"woba": 0.211,
"xwoba": 0.216,
"barrel_percent": 3.2,
"hard_hit_percent": 33.6,
"whiff_percent": 38.1
},
"espn_rank": {
"rank": 5,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 139.0,
"season_ERA": 1.748,
"season_WHIP": 0.748,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"player_id": "694819",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 7.0,
"R": 8.0,
"H": 16.0,
"BB": 4.0,
"SO": 43.0,
"HR": 4.0,
"BF": 105.0,
"Pitches": 423.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 1.6,
"H": 3.2,
"BB": 0.8,
"SO": 8.6,
"HR": 0.8,
"BF": 21.0,
"Pitches": 84.6
},
"rates": {
"ERA": 2.25,
"WHIP": 0.7143,
"ER_per_IP": 0.25,
"H_per_IP": 0.57143,
"BB_per_IP": 0.14286,
"SO_per_IP": 1.53571,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.0,
"ER": 14.0,
"R": 19.0,
"H": 32.0,
"BB": 9.0,
"SO": 94.0,
"HR": 9.0,
"BF": 225.0,
"Pitches": 901.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.9,
"H": 3.2,
"BB": 0.9,
"SO": 9.4,
"HR": 0.9,
"BF": 22.5,
"Pitches": 90.1
},
"rates": {
"ERA": 2.0656,
"WHIP": 0.6721,
"ER_per_IP": 0.22951,
"H_per_IP": 0.52459,
"BB_per_IP": 0.14754,
"SO_per_IP": 1.54098,
"HR_per_IP": 0.14754
}
},
"season": {
"games": 23,
"totals": {
"IP": 139.0,
"ER": 27.0,
"R": 35.0,
"H": 73.0,
"BB": 31.0,
"SO": 210.0,
"HR": 13.0,
"BF": 527.0,
"Pitches": 2083.0
},
"per_game": {
"IP": 6.0,
"ER": 1.1739,
"R": 1.5217,
"H": 3.1739,
"BB": 1.3478,
"SO": 9.1304,
"HR": 0.5652,
"BF": 22.913,
"Pitches": 90.5652
},
"rates": {
"ERA": 1.7482,
"WHIP": 0.7482,
"ER_per_IP": 0.19424,
"H_per_IP": 0.52518,
"BB_per_IP": 0.22302,
"SO_per_IP": 1.51079,
"HR_per_IP": 0.09353
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.644,
"predicted_H": 3.655,
"predicted_BB": 1.159,
"predicted_SO": 8.397,
"predicted_HR": 0.804,
"predicted_ERA": 2.5183,
"predicted_WHIP": 0.8193
}
},
"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,
"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": 1.644,
"final": 0.9445,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.655,
"final": 4.2272,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.159,
"final": 2.3677,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 8.397,
"final": 6.9517,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.804,
"final": 0.4619,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5183,
"final": 2.5183,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8193,
"final": 0.8193,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 61.0,
"ER": 14,
"H": 32,
"BB": 9,
"SO": 94,
"HR": 9,
"ERA": 2.0655737704918034,
"WHIP": 0.6721311475409836,
"K9": 13.868852459016393,
"HR9": 1.3278688524590163,
"games_pitched": 10,
"quality_starts": 7,
"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-15T00:00:00"
},
"recent_form_boost": 0.7211109373572873,
"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": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 5.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": 5,
"predicted_BB": 4,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694819",
"player_name": "Jacob Misiorowski",
"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": 4.0,
"predicted_ER": 0.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 0.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"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": 4.0,
"predicted_ER": 0.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 6.0,
"delta": -2.0,
"percent_delta": -0.25,
"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": 8.0,
"after": 6.0,
"delta": -2.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 139,
"wins": 83,
"losses": 56,
"win_pct": 0.5971,
"runs_scored": 685.0,
"runs_allowed": 521.0,
"run_differential": 164.0,
"run_differential_per_game": 1.1799,
"avg_runs_scored": 4.9281,
"avg_runs_allowed": 3.7482,
"offense_index": 1.0957,
"defense_index": 1.2,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.9,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.2268
},
"opponent": {
"team": "ATL",
"games": 138,
"wins": 80,
"losses": 58,
"win_pct": 0.5797,
"runs_scored": 638.0,
"runs_allowed": 518.0,
"run_differential": 120.0,
"run_differential_per_game": 0.8696,
"avg_runs_scored": 4.6232,
"avg_runs_allowed": 3.7536,
"offense_index": 1.0279,
"defense_index": 1.1982,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.0,
"run_differential": -8.0
},
"available": true,
"quality_score": 0.1391
},
"edges": {
"quality_edge": 0.0877,
"offense_edge": 0.0957,
"opponent_offense_edge": 0.0279,
"defense_strength": 0.2,
"opponent_defense_weakness": -0.1982,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0084,
"run_prevention": 0.9801,
"strikeout": 1.0004
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694819",
"profile": {
"available": true,
"pitcher_id": "694819",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 501.0,
"k_percent": 39.8,
"bb_percent": 5.9,
"woba": 0.211,
"xwoba": 0.216,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 3.2,
"hard_hit_percent": 33.6,
"avg_best_speed": 75.6927,
"avg_hyper_speed": 92.8812,
"whiff_percent": 38.1,
"swing_percent": 51.8
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 1.6713,
"command_and_miss": 1.92,
"regression_edge": -0.1429,
"xwoba_edge": 2.5,
"barrel_edge": 0.8667,
"hard_hit_edge": 0.5714,
"whiff_edge": 1.8143,
"bb_edge": 0.8,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694819",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 97.59386812642065,
"release_spin_rate": 2558.4388361121487,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 97.59386812642065,
"release_spin_rate": 2558.4388361121487,
"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": 97.5939,
"release_spin_rate": 2558.4388,
"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": 1.4433,
"sample_weight": 1.0,
"run_prevention_factor": 0.8773,
"strikeout_factor": 1.16,
"walk_factor": 0.936,
"homer_factor": 0.8328,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694819",
"espn_id": 5080761,
"player_name": "Jacob Misiorowski",
"team": "MIL",
"role": "pitcher",
"espn_rank": 5,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 5,
"gp_value": 23.0,
"gp_rank": 305,
"gs_value": 23.0,
"gs_rank": 53,
"qs_value": 15.0,
"qs_rank": 7,
"era_value": 1.7482,
"era_rank": 1.0,
"w_value": 12.0,
"w_rank": 9,
"l_value": 5.0,
"l_rank": 119,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 139.0,
"ip_rank": 29,
"h_value": 73.0,
"h_rank": 141,
"er_value": 27.0,
"er_rank": 195,
"hr_value": 13.0,
"hr_rank": 94,
"bb_value": 31.0,
"bb_rank": 126,
"k_value": 210.0,
"k_rank": 1,
"k_per_9_value": 13.597122,
"k_per_9_rank": null,
"whip_value": 0.7482,
"whip_rank": 1.0,
"war_value": 5.04,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.8773,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.8773,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.936,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.8328,
"adjusted": 1
},
"predicted_SO": {
"original": 9.0,
"factor": 1.16,
"adjusted": 10
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 107
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260821_ATL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260821 | 20260821_NYM@CHW | away | Sean Manaea | Sean Manaea | True | 6.0 | 6.0 | 0 | 2 | 4 | 2 | 4/5 | 1/2 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.216216216216216,
"WHIP": 1.3153153153153154,
"IP": 111.0,
"games_started": 12,
"games_pitched": 26,
"role_avg_IP": 5.667,
"recent_avg_IP": 6.267,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2259,
"sample_weight": 1.0,
"run_prevention_factor": 1.0192,
"strikeout_factor": 0.9943,
"walk_factor": 0.972,
"homer_factor": 1.0795,
"regression_flag": "neutral",
"k_percent": 23.5,
"bb_percent": 7.7,
"woba": 0.341,
"xwoba": 0.327,
"barrel_percent": 9.5,
"hard_hit_percent": 41.8,
"whiff_percent": 23.1
},
"espn_rank": {
"rank": 258,
"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",
"player_id": "640455",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 10.0,
"R": 10.0,
"H": 27.0,
"BB": 11.0,
"SO": 32.0,
"HR": 4.0,
"BF": 128.0,
"Pitches": 457.0
},
"per_game": {
"IP": 6.1,
"ER": 2.0,
"R": 2.0,
"H": 5.4,
"BB": 2.2,
"SO": 6.4,
"HR": 0.8,
"BF": 25.6,
"Pitches": 91.4
},
"rates": {
"ERA": 2.8723,
"WHIP": 1.2128,
"ER_per_IP": 0.31915,
"H_per_IP": 0.8617,
"BB_per_IP": 0.35106,
"SO_per_IP": 1.02128,
"HR_per_IP": 0.12766
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 24.0,
"R": 29.0,
"H": 54.0,
"BB": 19.0,
"SO": 57.0,
"HR": 10.0,
"BF": 244.0,
"Pitches": 937.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.9,
"H": 5.4,
"BB": 1.9,
"SO": 5.7,
"HR": 1.0,
"BF": 24.4,
"Pitches": 93.7
},
"rates": {
"ERA": 3.8118,
"WHIP": 1.2882,
"ER_per_IP": 0.42353,
"H_per_IP": 0.95294,
"BB_per_IP": 0.33529,
"SO_per_IP": 1.00588,
"HR_per_IP": 0.17647
}
},
"season": {
"games": 26,
"totals": {
"IP": 111.0,
"ER": 52.0,
"R": 59.0,
"H": 109.0,
"BB": 37.0,
"SO": 113.0,
"HR": 16.0,
"BF": 481.0,
"Pitches": 1892.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0,
"R": 2.2692,
"H": 4.1923,
"BB": 1.4231,
"SO": 4.3462,
"HR": 0.6154,
"BF": 18.5,
"Pitches": 72.7692
},
"rates": {
"ERA": 4.2162,
"WHIP": 1.3153,
"ER_per_IP": 0.46847,
"H_per_IP": 0.98198,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.01802,
"HR_per_IP": 0.14414
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.323,
"predicted_H": 5.326,
"predicted_BB": 1.989,
"predicted_SO": 5.777,
"predicted_HR": 0.85,
"predicted_ERA": 3.6378,
"predicted_WHIP": 1.2724
}
},
"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,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.323,
"final": 2.1879,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.326,
"final": 4.7715,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.989,
"final": 1.5755,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.777,
"final": 4.6158,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.85,
"final": 0.4946,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6378,
"final": 3.6378,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2724,
"final": 1.2724,
"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": 24,
"H": 54,
"BB": 19,
"SO": 57,
"HR": 10,
"ERA": 3.811764705882353,
"WHIP": 1.2882352941176471,
"K9": 9.052941176470588,
"HR9": 1.5882352941176472,
"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-15T00:00:00"
},
"recent_form_boost": 0.9329600212531408,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "640455",
"player_name": "Sean Manaea",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.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": 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": 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": 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": 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": 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": 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": 137,
"wins": 59,
"losses": 78,
"win_pct": 0.4307,
"runs_scored": 549.0,
"runs_allowed": 593.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3212,
"avg_runs_scored": 4.0073,
"avg_runs_allowed": 4.3285,
"offense_index": 0.8964,
"defense_index": 1.0328,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.2,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.0284
},
"opponent": {
"team": "CHW",
"games": 135,
"wins": 67,
"losses": 68,
"win_pct": 0.4963,
"runs_scored": 636.0,
"runs_allowed": 604.0,
"run_differential": 32.0,
"run_differential_per_game": 0.237,
"avg_runs_scored": 4.7111,
"avg_runs_allowed": 4.4741,
"offense_index": 1.0539,
"defense_index": 0.9991,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.0,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.026
},
"edges": {
"quality_edge": -0.0544,
"offense_edge": -0.1036,
"opponent_offense_edge": 0.0539,
"defense_strength": 0.0328,
"opponent_defense_weakness": 0.0009,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9967,
"run_prevention": 1.0081,
"strikeout": 0.9941
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "640455",
"profile": {
"available": true,
"pitcher_id": "640455",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 452.0,
"k_percent": 23.5,
"bb_percent": 7.7,
"woba": 0.341,
"xwoba": 0.327,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 41.8,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 94.5301,
"whiff_percent": 23.1,
"swing_percent": 49.9
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.4548,
"command_and_miss": 0.0386,
"regression_edge": 0.4,
"xwoba_edge": -0.4286,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.6,
"whiff_edge": -0.3286,
"bb_edge": 0.35,
"pitch_design_score": -0.2649
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "640455",
"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": 85.18500671711212,
"release_spin_rate": 2110.382077578248,
"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": 85.18500671711212,
"release_spin_rate": 2110.382077578248,
"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.185,
"release_spin_rate": 2110.3821,
"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.2649,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8921,
"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.2259,
"sample_weight": 1.0,
"run_prevention_factor": 1.0192,
"strikeout_factor": 0.9943,
"walk_factor": 0.972,
"homer_factor": 1.0795,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "640455",
"espn_id": 33244,
"player_name": "Sean Manaea",
"team": "NYM",
"role": "pitcher",
"espn_rank": 258,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 258,
"gp_value": 26.0,
"gp_rank": 225,
"gs_value": 12.0,
"gs_rank": 144,
"qs_value": 6.0,
"qs_rank": 82,
"era_value": 4.2162,
"era_rank": null,
"w_value": 4.0,
"w_rank": 162,
"l_value": 5.0,
"l_rank": 119,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 111.0,
"ip_rank": 92,
"h_value": 109.0,
"h_rank": 76,
"er_value": 52.0,
"er_rank": 73,
"hr_value": 16.0,
"hr_rank": 57,
"bb_value": 37.0,
"bb_rank": 74,
"k_value": 113.0,
"k_rank": 58,
"k_per_9_value": 9.162163,
"k_per_9_rank": 17.0,
"whip_value": 1.3153,
"whip_rank": null,
"war_value": 0.41,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0192,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0192,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.972,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0795,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9943,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 97
}
},
"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 +3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260821_NYM@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"
}
} |
| 20260821 | 20260821_NYM@CHW | home | Sean Burke | Sean Burke | True | 5.2 | 6.0 | 1 | 2 | 4 | 2 | 4/7 | 0/0 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.15,
"WHIP": 1.1071428571428572,
"IP": 140.0,
"games_started": 21,
"games_pitched": 25,
"role_avg_IP": 5.476,
"recent_avg_IP": 5.533,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2322,
"sample_weight": 1.0,
"run_prevention_factor": 0.9803,
"strikeout_factor": 1.0297,
"walk_factor": 0.966,
"homer_factor": 0.9912,
"regression_flag": "neutral",
"k_percent": 27.0,
"bb_percent": 7.4,
"woba": 0.292,
"xwoba": 0.294,
"barrel_percent": 7.7,
"hard_hit_percent": 36.9,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 13,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"player_id": "680732",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 9.0,
"R": 10.0,
"H": 20.0,
"BB": 8.0,
"SO": 34.0,
"HR": 3.0,
"BF": 113.0,
"Pitches": 450.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 2.0,
"H": 4.0,
"BB": 1.6,
"SO": 6.8,
"HR": 0.6,
"BF": 22.6,
"Pitches": 90.0
},
"rates": {
"ERA": 2.9277,
"WHIP": 1.012,
"ER_per_IP": 0.3253,
"H_per_IP": 0.72289,
"BB_per_IP": 0.28916,
"SO_per_IP": 1.22892,
"HR_per_IP": 0.10843
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 14.0,
"R": 15.0,
"H": 43.0,
"BB": 13.0,
"SO": 73.0,
"HR": 6.0,
"BF": 233.0,
"Pitches": 920.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.5,
"H": 4.3,
"BB": 1.3,
"SO": 7.3,
"HR": 0.6,
"BF": 23.3,
"Pitches": 92.0
},
"rates": {
"ERA": 2.1356,
"WHIP": 0.9492,
"ER_per_IP": 0.23729,
"H_per_IP": 0.72881,
"BB_per_IP": 0.22034,
"SO_per_IP": 1.23729,
"HR_per_IP": 0.10169
}
},
"season": {
"games": 25,
"totals": {
"IP": 140.0,
"ER": 49.0,
"R": 51.0,
"H": 113.0,
"BB": 42.0,
"SO": 154.0,
"HR": 16.0,
"BF": 571.0,
"Pitches": 2256.0
},
"per_game": {
"IP": 5.2,
"ER": 1.96,
"R": 2.04,
"H": 4.52,
"BB": 1.68,
"SO": 6.16,
"HR": 0.64,
"BF": 22.84,
"Pitches": 90.24
},
"rates": {
"ERA": 3.15,
"WHIP": 1.1071,
"ER_per_IP": 0.35,
"H_per_IP": 0.80714,
"BB_per_IP": 0.3,
"SO_per_IP": 1.1,
"HR_per_IP": 0.11429
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.92,
"predicted_H": 4.497,
"predicted_BB": 1.636,
"predicted_SO": 6.707,
"predicted_HR": 0.656,
"predicted_ERA": 2.9976,
"predicted_WHIP": 1.064
}
},
"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,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.92,
"final": 1.9536,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.497,
"final": 4.288,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.636,
"final": 0.9482,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.707,
"final": 6.4098,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.656,
"final": 0.8006,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9976,
"final": 2.9976,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.064,
"final": 1.064,
"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": 14,
"H": 43,
"BB": 13,
"SO": 73,
"HR": 6,
"ERA": 2.135593220338983,
"WHIP": 0.9491525423728814,
"K9": 11.135593220338983,
"HR9": 0.9152542372881356,
"games_pitched": 10,
"quality_starts": 7,
"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-16T00:00:00"
},
"recent_form_boost": 0.7359136603358924,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680732",
"player_name": "Sean Burke",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"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": "CHW",
"games": 135,
"wins": 67,
"losses": 68,
"win_pct": 0.4963,
"runs_scored": 636.0,
"runs_allowed": 604.0,
"run_differential": 32.0,
"run_differential_per_game": 0.237,
"avg_runs_scored": 4.7111,
"avg_runs_allowed": 4.4741,
"offense_index": 1.0539,
"defense_index": 0.9991,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.0,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.026
},
"opponent": {
"team": "NYM",
"games": 137,
"wins": 59,
"losses": 78,
"win_pct": 0.4307,
"runs_scored": 549.0,
"runs_allowed": 593.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3212,
"avg_runs_scored": 4.0073,
"avg_runs_allowed": 4.3285,
"offense_index": 0.8964,
"defense_index": 1.0328,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.2,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.0284
},
"edges": {
"quality_edge": 0.0544,
"offense_edge": 0.0539,
"opponent_offense_edge": -0.1036,
"defense_strength": -0.0009,
"opponent_defense_weakness": -0.0328,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.9808,
"strikeout": 1.0099
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680732",
"profile": {
"available": true,
"pitcher_id": "680732",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 525.0,
"k_percent": 27.0,
"bb_percent": 7.4,
"woba": 0.292,
"xwoba": 0.294,
"sweet_spot_percent": 35.5,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 36.9,
"avg_best_speed": 79.0075,
"avg_hyper_speed": 93.6912,
"whiff_percent": 25.8,
"swing_percent": 48.9
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.2344,
"command_and_miss": 0.4136,
"regression_edge": -0.0571,
"xwoba_edge": 0.5143,
"barrel_edge": -0.1333,
"hard_hit_edge": 0.1,
"whiff_edge": 0.0571,
"bb_edge": 0.425,
"pitch_design_score": -0.0115
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680732",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 89.70911600111563,
"release_spin_rate": 2508.9857271235933,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 89.70911600111563,
"release_spin_rate": 2508.9857271235933,
"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.7091,
"release_spin_rate": 2508.9857,
"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.0115,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0824,
"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.2322,
"sample_weight": 1.0,
"run_prevention_factor": 0.9803,
"strikeout_factor": 1.0297,
"walk_factor": 0.966,
"homer_factor": 0.9912,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680732",
"espn_id": 4867679,
"player_name": "Sean Burke",
"team": "CHW",
"role": "pitcher",
"espn_rank": 13,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 13,
"gp_value": 25.0,
"gp_rank": 246,
"gs_value": 21.0,
"gs_rank": 76,
"qs_value": 10.0,
"qs_rank": 47,
"era_value": 3.15,
"era_rank": 13.0,
"w_value": 7.0,
"w_rank": 66,
"l_value": 6.0,
"l_rank": 93,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 140.0,
"ip_rank": 24,
"h_value": 113.0,
"h_rank": 65,
"er_value": 49.0,
"er_rank": 85,
"hr_value": 16.0,
"hr_rank": 57,
"bb_value": 42.0,
"bb_rank": 50,
"k_value": 154.0,
"k_rank": 17,
"k_per_9_value": 9.900001,
"k_per_9_rank": 19.0,
"whip_value": 1.1071,
"whip_rank": 16.0,
"war_value": 3.7,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9803,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9803,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9912,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0297,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 92
}
},
"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/20260821_NYM@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"
}
} |
| 20260821 | 20260821_SF@BOS | away | Logan Webb | Logan Webb | True | 6.1 | 2.2 | -11 | 2 | 5 | 3 | 4/6 | 0/3 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4964028776978417,
"WHIP": 1.064748201438849,
"IP": 139.0,
"games_started": 22,
"games_pitched": 22,
"role_avg_IP": 6.318,
"recent_avg_IP": 6.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1609,
"sample_weight": 1.0,
"run_prevention_factor": 0.9863,
"strikeout_factor": 0.9589,
"walk_factor": 0.932,
"homer_factor": 0.9522,
"regression_flag": "neutral",
"k_percent": 19.6,
"bb_percent": 5.7,
"woba": 0.268,
"xwoba": 0.295,
"barrel_percent": 5.1,
"hard_hit_percent": 38.0,
"whiff_percent": 20.8
},
"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": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"role": "pitcher",
"player_id": "657277",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 8.0,
"R": 8.0,
"H": 24.0,
"BB": 5.0,
"SO": 25.0,
"HR": 0.0,
"BF": 122.0,
"Pitches": 471.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 4.8,
"BB": 1.0,
"SO": 5.0,
"HR": 0.0,
"BF": 24.4,
"Pitches": 94.2
},
"rates": {
"ERA": 2.25,
"WHIP": 0.9062,
"ER_per_IP": 0.25,
"H_per_IP": 0.75,
"BB_per_IP": 0.15625,
"SO_per_IP": 0.78125,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.2,
"ER": 25.0,
"R": 25.0,
"H": 48.0,
"BB": 13.0,
"SO": 45.0,
"HR": 5.0,
"BF": 252.0,
"Pitches": 948.0
},
"per_game": {
"IP": 6.1,
"ER": 2.5,
"R": 2.5,
"H": 4.8,
"BB": 1.3,
"SO": 4.5,
"HR": 0.5,
"BF": 25.2,
"Pitches": 94.8
},
"rates": {
"ERA": 3.534,
"WHIP": 0.9581,
"ER_per_IP": 0.39267,
"H_per_IP": 0.75393,
"BB_per_IP": 0.20419,
"SO_per_IP": 0.70681,
"HR_per_IP": 0.07853
}
},
"season": {
"games": 22,
"totals": {
"IP": 139.0,
"ER": 54.0,
"R": 57.0,
"H": 116.0,
"BB": 32.0,
"SO": 110.0,
"HR": 9.0,
"BF": 560.0,
"Pitches": 2065.0
},
"per_game": {
"IP": 6.1,
"ER": 2.4545,
"R": 2.5909,
"H": 5.2727,
"BB": 1.4545,
"SO": 5.0,
"HR": 0.4091,
"BF": 25.4545,
"Pitches": 93.8636
},
"rates": {
"ERA": 3.4964,
"WHIP": 1.0647,
"ER_per_IP": 0.38849,
"H_per_IP": 0.83453,
"BB_per_IP": 0.23022,
"SO_per_IP": 0.79137,
"HR_per_IP": 0.06475
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.279,
"predicted_H": 5.105,
"predicted_BB": 1.399,
"predicted_SO": 5.024,
"predicted_HR": 0.381,
"predicted_ERA": 3.2379,
"predicted_WHIP": 1.0269
}
},
"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,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.279,
"final": 2.1595,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.105,
"final": 4.6318,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.399,
"final": 0.7999,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.024,
"final": 5.0137,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.381,
"final": 0.2178,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2379,
"final": 3.2379,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0269,
"final": 1.0269,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 63.2,
"ER": 25,
"H": 48,
"BB": 13,
"SO": 45,
"HR": 5,
"ERA": 3.5340314136125652,
"WHIP": 0.9581151832460733,
"K9": 6.361256544502617,
"HR9": 0.706806282722513,
"games_pitched": 10,
"quality_starts": 7,
"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-15T00:00:00"
},
"recent_form_boost": 0.8934620231010003,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "657277",
"player_name": "Logan Webb",
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"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.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 138,
"wins": 58,
"losses": 80,
"win_pct": 0.4203,
"runs_scored": 574.0,
"runs_allowed": 628.0,
"run_differential": -54.0,
"run_differential_per_game": -0.3913,
"avg_runs_scored": 4.1594,
"avg_runs_allowed": 4.5507,
"offense_index": 0.9302,
"defense_index": 0.9826,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 2.9,
"avg_runs_allowed": 4.4,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1859
},
"opponent": {
"team": "BOS",
"games": 137,
"wins": 70,
"losses": 67,
"win_pct": 0.5109,
"runs_scored": 598.0,
"runs_allowed": 518.0,
"run_differential": 80.0,
"run_differential_per_game": 0.5839,
"avg_runs_scored": 4.365,
"avg_runs_allowed": 3.781,
"offense_index": 0.9761,
"defense_index": 1.1827,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.1,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0461
},
"edges": {
"quality_edge": -0.232,
"offense_edge": -0.0698,
"opponent_offense_edge": -0.0239,
"defense_strength": -0.0174,
"opponent_defense_weakness": -0.1827,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9912,
"run_prevention": 1.0095,
"strikeout": 0.995
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "657277",
"profile": {
"available": true,
"pitcher_id": "657277",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 536.0,
"k_percent": 19.6,
"bb_percent": 5.7,
"woba": 0.268,
"xwoba": 0.295,
"sweet_spot_percent": 30.2,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 76.2557,
"avg_hyper_speed": 93.7654,
"whiff_percent": 20.8,
"swing_percent": 48.2
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.5398,
"command_and_miss": -0.2271,
"regression_edge": -0.7714,
"xwoba_edge": 0.4857,
"barrel_edge": 0.4444,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.6571,
"bb_edge": 0.85,
"pitch_design_score": -0.0655
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "657277",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 98,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 88.74484527185534,
"release_spin_rate": 2027.2689765192515,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 88.74484527185534,
"release_spin_rate": 2027.2689765192515,
"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.7448,
"release_spin_rate": 2027.269,
"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.0655,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4682,
"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.1609,
"sample_weight": 1.0,
"run_prevention_factor": 0.9863,
"strikeout_factor": 0.9589,
"walk_factor": 0.932,
"homer_factor": 0.9522,
"woba_minus_xwoba": -0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "657277",
"espn_id": 41216,
"player_name": "Logan Webb",
"team": "SF",
"role": "pitcher",
"espn_rank": 48,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 48,
"gp_value": 22.0,
"gp_rank": 325,
"gs_value": 22.0,
"gs_rank": 64,
"qs_value": 15.0,
"qs_rank": 7,
"era_value": 3.4964,
"era_rank": 25.0,
"w_value": 8.0,
"w_rank": 44,
"l_value": 7.0,
"l_rank": 62,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 139.0,
"ip_rank": 29,
"h_value": 116.0,
"h_rank": 61,
"er_value": 54.0,
"er_rank": 62,
"hr_value": 9.0,
"hr_rank": 155,
"bb_value": 32.0,
"bb_rank": 116,
"k_value": 110.0,
"k_rank": 65,
"k_per_9_value": 7.122302,
"k_per_9_rank": 60.0,
"whip_value": 1.0647,
"whip_rank": 11.0,
"war_value": 2.35,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9863,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9863,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.932,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9522,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9589,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 95
}
},
"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": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260821_SF@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260821 | 20260821_SF@BOS | home | Sonny Gray | Sonny Gray | True | 6.0 | 6.0 | 0 | 1 | 4 | 3 | 3/7 | 3/2 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.6457286432160805,
"WHIP": 1.1457286432160805,
"IP": 132.2,
"games_started": 23,
"games_pitched": 23,
"role_avg_IP": 5.768,
"recent_avg_IP": 6.2,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1514,
"sample_weight": 1.0,
"run_prevention_factor": 0.9871,
"strikeout_factor": 0.9823,
"walk_factor": 0.944,
"homer_factor": 0.9657,
"regression_flag": "neutral",
"k_percent": 21.8,
"bb_percent": 6.3,
"woba": 0.295,
"xwoba": 0.294,
"barrel_percent": 6.1,
"hard_hit_percent": 37.4,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 15,
"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",
"player_id": "543243",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 11.0,
"R": 11.0,
"H": 32.0,
"BB": 6.0,
"SO": 27.0,
"HR": 2.0,
"BF": 128.0,
"Pitches": 440.0
},
"per_game": {
"IP": 6.1,
"ER": 2.2,
"R": 2.2,
"H": 6.4,
"BB": 1.2,
"SO": 5.4,
"HR": 0.4,
"BF": 25.6,
"Pitches": 88.0
},
"rates": {
"ERA": 3.1935,
"WHIP": 1.2258,
"ER_per_IP": 0.35484,
"H_per_IP": 1.03226,
"BB_per_IP": 0.19355,
"SO_per_IP": 0.87097,
"HR_per_IP": 0.06452
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.1,
"ER": 15.0,
"R": 15.0,
"H": 53.0,
"BB": 17.0,
"SO": 62.0,
"HR": 5.0,
"BF": 253.0,
"Pitches": 882.0
},
"per_game": {
"IP": 6.1,
"ER": 1.5,
"R": 1.5,
"H": 5.3,
"BB": 1.7,
"SO": 6.2,
"HR": 0.5,
"BF": 25.3,
"Pitches": 88.2
},
"rates": {
"ERA": 2.1316,
"WHIP": 1.1053,
"ER_per_IP": 0.23684,
"H_per_IP": 0.83684,
"BB_per_IP": 0.26842,
"SO_per_IP": 0.97895,
"HR_per_IP": 0.07895
}
},
"season": {
"games": 23,
"totals": {
"IP": 132.2,
"ER": 39.0,
"R": 40.0,
"H": 118.0,
"BB": 34.0,
"SO": 117.0,
"HR": 13.0,
"BF": 536.0,
"Pitches": 1923.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6957,
"R": 1.7391,
"H": 5.1304,
"BB": 1.4783,
"SO": 5.087,
"HR": 0.5652,
"BF": 23.3043,
"Pitches": 83.6087
},
"rates": {
"ERA": 2.6457,
"WHIP": 1.1457,
"ER_per_IP": 0.29397,
"H_per_IP": 0.88945,
"BB_per_IP": 0.25628,
"SO_per_IP": 0.88191,
"HR_per_IP": 0.09799
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.078,
"predicted_H": 5.806,
"predicted_BB": 1.58,
"predicted_SO": 5.66,
"predicted_HR": 0.548,
"predicted_ERA": 3.0334,
"predicted_WHIP": 1.1982
}
},
"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,
"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": 1.0,
"form": 2.078,
"final": 1.6194,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.806,
"final": 4.6122,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.58,
"final": 2.1842,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.66,
"final": 5.3792,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.548,
"final": 0.7403,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0334,
"final": 3.0334,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1982,
"final": 1.1982,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 63.1,
"ER": 15,
"H": 53,
"BB": 17,
"SO": 62,
"HR": 5,
"ERA": 2.131578947368421,
"WHIP": 1.1052631578947367,
"K9": 8.810526315789474,
"HR9": 0.7105263157894737,
"games_pitched": 10,
"quality_starts": 8,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-15T00:00:00"
},
"recent_form_boost": 0.7393648200147507,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543243",
"player_name": "Sonny Gray",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 137,
"wins": 70,
"losses": 67,
"win_pct": 0.5109,
"runs_scored": 598.0,
"runs_allowed": 518.0,
"run_differential": 80.0,
"run_differential_per_game": 0.5839,
"avg_runs_scored": 4.365,
"avg_runs_allowed": 3.781,
"offense_index": 0.9761,
"defense_index": 1.1827,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.1,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0461
},
"opponent": {
"team": "SF",
"games": 138,
"wins": 58,
"losses": 80,
"win_pct": 0.4203,
"runs_scored": 574.0,
"runs_allowed": 628.0,
"run_differential": -54.0,
"run_differential_per_game": -0.3913,
"avg_runs_scored": 4.1594,
"avg_runs_allowed": 4.5507,
"offense_index": 0.9302,
"defense_index": 0.9826,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 2.9,
"avg_runs_allowed": 4.4,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1859
},
"edges": {
"quality_edge": 0.232,
"offense_edge": -0.0239,
"opponent_offense_edge": -0.0698,
"defense_strength": 0.1827,
"opponent_defense_weakness": 0.0174,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0176,
"run_prevention": 0.959,
"strikeout": 1.0125
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543243",
"profile": {
"available": true,
"pitcher_id": "543243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 505.0,
"k_percent": 21.8,
"bb_percent": 6.3,
"woba": 0.295,
"xwoba": 0.294,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 37.4,
"avg_best_speed": 78.8462,
"avg_hyper_speed": 93.7536,
"whiff_percent": 22.7,
"swing_percent": 47.2
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.2946,
"command_and_miss": -0.0207,
"regression_edge": 0.0286,
"xwoba_edge": 0.5143,
"barrel_edge": 0.2222,
"hard_hit_edge": 0.0286,
"whiff_edge": -0.3857,
"bb_edge": 0.7,
"pitch_design_score": -0.1384
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543243",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 87.4430278003169,
"release_spin_rate": 2500.632899639272,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 87.4430278003169,
"release_spin_rate": 2500.632899639272,
"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.443,
"release_spin_rate": 2500.6329,
"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.1384,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9889,
"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.1514,
"sample_weight": 1.0,
"run_prevention_factor": 0.9871,
"strikeout_factor": 0.9823,
"walk_factor": 0.944,
"homer_factor": 0.9657,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "543243",
"espn_id": 32082,
"player_name": "Sonny Gray",
"team": "BOS",
"role": "pitcher",
"espn_rank": 15,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 15,
"gp_value": 23.0,
"gp_rank": 305,
"gs_value": 23.0,
"gs_rank": 53,
"qs_value": 16.0,
"qs_rank": 4,
"era_value": 2.6457,
"era_rank": 9.0,
"w_value": 15.0,
"w_rank": 2,
"l_value": 3.0,
"l_rank": 210,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 132.2,
"ip_rank": 47,
"h_value": 118.0,
"h_rank": 53,
"er_value": 39.0,
"er_rank": 130,
"hr_value": 13.0,
"hr_rank": 94,
"bb_value": 34.0,
"bb_rank": 97,
"k_value": 117.0,
"k_rank": 52,
"k_per_9_value": 7.937186,
"k_per_9_rank": 29.0,
"whip_value": 1.1457,
"whip_rank": 22.0,
"war_value": 3.37,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9871,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9871,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9657,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9823,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 97
}
},
"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."
},
{
"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/20260821_SF@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260821 | 20260821_STL@PHI | away | Hunter Dobbins | Hunter Dobbins | True | 5.1 | 4.0 | -4 | 1 | 3 | 2 | 3/5 | 5/3 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.42,
"WHIP": 1.3,
"IP": 50.0,
"games_started": 7,
"games_pitched": 10,
"role_avg_IP": 5.143,
"recent_avg_IP": 5.467,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0678,
"sample_weight": 0.764,
"run_prevention_factor": 0.9942,
"strikeout_factor": 0.993,
"walk_factor": 1.0122,
"homer_factor": 0.987,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 9.9,
"woba": 0.313,
"xwoba": 0.3,
"barrel_percent": 6.4,
"hard_hit_percent": 38.6,
"whiff_percent": 22.9
},
"espn_rank": {
"rank": 208,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"player_id": "690928",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 9.0,
"R": 11.0,
"H": 23.0,
"BB": 11.0,
"SO": 26.0,
"HR": 4.0,
"BF": 117.0,
"Pitches": 456.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 2.2,
"H": 4.6,
"BB": 2.2,
"SO": 5.2,
"HR": 0.8,
"BF": 23.4,
"Pitches": 91.2
},
"rates": {
"ERA": 2.9277,
"WHIP": 1.2289,
"ER_per_IP": 0.3253,
"H_per_IP": 0.83133,
"BB_per_IP": 0.39759,
"SO_per_IP": 0.93976,
"HR_per_IP": 0.14458
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.0,
"ER": 19.0,
"R": 21.0,
"H": 44.0,
"BB": 21.0,
"SO": 49.0,
"HR": 7.0,
"BF": 212.0,
"Pitches": 854.0
},
"per_game": {
"IP": 5.0,
"ER": 1.9,
"R": 2.1,
"H": 4.4,
"BB": 2.1,
"SO": 4.9,
"HR": 0.7,
"BF": 21.2,
"Pitches": 85.4
},
"rates": {
"ERA": 3.42,
"WHIP": 1.3,
"ER_per_IP": 0.38,
"H_per_IP": 0.88,
"BB_per_IP": 0.42,
"SO_per_IP": 0.98,
"HR_per_IP": 0.14
}
},
"season": {
"games": 10,
"totals": {
"IP": 50.0,
"ER": 19.0,
"R": 21.0,
"H": 44.0,
"BB": 21.0,
"SO": 49.0,
"HR": 7.0,
"BF": 212.0,
"Pitches": 854.0
},
"per_game": {
"IP": 5.0,
"ER": 1.9,
"R": 2.1,
"H": 4.4,
"BB": 2.1,
"SO": 4.9,
"HR": 0.7,
"BF": 21.2,
"Pitches": 85.4
},
"rates": {
"ERA": 3.42,
"WHIP": 1.3,
"ER_per_IP": 0.38,
"H_per_IP": 0.88,
"BB_per_IP": 0.42,
"SO_per_IP": 0.98,
"HR_per_IP": 0.14
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.144,
"predicted_H": 4.785,
"predicted_BB": 2.111,
"predicted_SO": 5.123,
"predicted_HR": 0.773,
"predicted_ERA": 3.5989,
"predicted_WHIP": 1.2862
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.144,
"final": 1.5825,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.785,
"final": 3.9089,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 2.111,
"final": 3.529,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.123,
"final": 4.5718,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.773,
"final": 0.3936,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5989,
"final": 3.5989,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2862,
"final": 1.2862,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.0,
"ER": 19,
"H": 44,
"BB": 21,
"SO": 49,
"HR": 7,
"ERA": 3.42,
"WHIP": 1.3,
"K9": 8.82,
"HR9": 1.26,
"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-16T00:00:00"
},
"recent_form_boost": 0.8891806094884349,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 5.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690928",
"player_name": "Hunter Dobbins",
"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": 5.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 6.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 139,
"wins": 72,
"losses": 67,
"win_pct": 0.518,
"runs_scored": 598.0,
"runs_allowed": 575.0,
"run_differential": 23.0,
"run_differential_per_game": 0.1655,
"avg_runs_scored": 4.3022,
"avg_runs_allowed": 4.1367,
"offense_index": 0.9621,
"defense_index": 1.081,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 3.3,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.1057
},
"opponent": {
"team": "PHI",
"games": 135,
"wins": 71,
"losses": 64,
"win_pct": 0.5259,
"runs_scored": 598.0,
"runs_allowed": 591.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0519,
"avg_runs_scored": 4.4296,
"avg_runs_allowed": 4.3778,
"offense_index": 0.9906,
"defense_index": 1.0215,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.7,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.1334
},
"edges": {
"quality_edge": -0.0277,
"offense_edge": -0.0379,
"opponent_offense_edge": -0.0094,
"defense_strength": 0.081,
"opponent_defense_weakness": -0.0215,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0017,
"run_prevention": 0.9918,
"strikeout": 0.9999
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690928",
"profile": {
"available": true,
"pitcher_id": "690928",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 191.0,
"k_percent": 23.1,
"bb_percent": 9.9,
"woba": 0.313,
"xwoba": 0.3,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 38.6,
"avg_best_speed": 77.1443,
"avg_hyper_speed": 93.7407,
"whiff_percent": 22.9,
"swing_percent": 45.1
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.1467,
"command_and_miss": -0.1071,
"regression_edge": 0.3714,
"xwoba_edge": 0.3429,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.1429,
"whiff_edge": -0.3571,
"bb_edge": -0.2,
"pitch_design_score": -0.0327
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "690928",
"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.33154152383064,
"release_spin_rate": 2453.8497637439427,
"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.33154152383064,
"release_spin_rate": 2453.8497637439427,
"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.3315,
"release_spin_rate": 2453.8498,
"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.0327,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2335,
"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.0678,
"sample_weight": 0.764,
"run_prevention_factor": 0.9942,
"strikeout_factor": 0.993,
"walk_factor": 1.0122,
"homer_factor": 0.987,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "690928",
"espn_id": 4415836,
"player_name": "Hunter Dobbins",
"team": "STL",
"role": "pitcher",
"espn_rank": 208,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 208,
"gp_value": 10.0,
"gp_rank": 494,
"gs_value": 7.0,
"gs_rank": 186,
"qs_value": 2.0,
"qs_rank": 149,
"era_value": 3.42,
"era_rank": null,
"w_value": 3.0,
"w_rank": 221,
"l_value": 3.0,
"l_rank": 210,
"sv_value": 1.0,
"sv_rank": 123,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 50.0,
"ip_rank": 261,
"h_value": 44.0,
"h_rank": 250,
"er_value": 19.0,
"er_rank": 295,
"hr_value": 7.0,
"hr_rank": 206,
"bb_value": 21.0,
"bb_rank": 234,
"k_value": 49.0,
"k_rank": 252,
"k_per_9_value": 8.820001,
"k_per_9_rank": 26.0,
"whip_value": 1.3,
"whip_rank": null,
"war_value": 0.7,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9956,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9956,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0093,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9901,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9947,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 5,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 96
}
},
"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/20260821_STL@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"
}
} |
| 20260821 | 20260821_STL@PHI | home | Jesús Luzardo | Jesús Luzardo | True | 6.1 | 5.2 | -2 | 3 | 4 | 1 | 2/6 | 4/1 | 5/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2328159645232812,
"WHIP": 1.1507760532150775,
"IP": 150.1,
"games_started": 25,
"games_pitched": 25,
"role_avg_IP": 6.013,
"recent_avg_IP": 7.0,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7552,
"sample_weight": 1.0,
"run_prevention_factor": 0.9358,
"strikeout_factor": 1.0806,
"walk_factor": 0.966,
"homer_factor": 0.9026,
"regression_flag": "neutral",
"k_percent": 29.8,
"bb_percent": 7.4,
"woba": 0.286,
"xwoba": 0.264,
"barrel_percent": 5.8,
"hard_hit_percent": 31.8,
"whiff_percent": 31.9
},
"espn_rank": {
"rank": 7,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"player_id": "666200",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 35.0,
"ER": 10.0,
"R": 10.0,
"H": 25.0,
"BB": 9.0,
"SO": 42.0,
"HR": 2.0,
"BF": 138.0,
"Pitches": 512.0
},
"per_game": {
"IP": 7.0,
"ER": 2.0,
"R": 2.0,
"H": 5.0,
"BB": 1.8,
"SO": 8.4,
"HR": 0.4,
"BF": 27.6,
"Pitches": 102.4
},
"rates": {
"ERA": 2.5714,
"WHIP": 0.9714,
"ER_per_IP": 0.28571,
"H_per_IP": 0.71429,
"BB_per_IP": 0.25714,
"SO_per_IP": 1.2,
"HR_per_IP": 0.05714
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 64.2,
"ER": 14.0,
"R": 18.0,
"H": 42.0,
"BB": 19.0,
"SO": 88.0,
"HR": 3.0,
"BF": 257.0,
"Pitches": 993.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.8,
"H": 4.2,
"BB": 1.9,
"SO": 8.8,
"HR": 0.3,
"BF": 25.7,
"Pitches": 99.3
},
"rates": {
"ERA": 1.9485,
"WHIP": 0.9433,
"ER_per_IP": 0.21649,
"H_per_IP": 0.64948,
"BB_per_IP": 0.29381,
"SO_per_IP": 1.36082,
"HR_per_IP": 0.04639
}
},
"season": {
"games": 25,
"totals": {
"IP": 150.1,
"ER": 54.0,
"R": 60.0,
"H": 127.0,
"BB": 46.0,
"SO": 185.0,
"HR": 12.0,
"BF": 621.0,
"Pitches": 2438.0
},
"per_game": {
"IP": 6.0,
"ER": 2.16,
"R": 2.4,
"H": 5.08,
"BB": 1.84,
"SO": 7.4,
"HR": 0.48,
"BF": 24.84,
"Pitches": 97.52
},
"rates": {
"ERA": 3.2328,
"WHIP": 1.1508,
"ER_per_IP": 0.3592,
"H_per_IP": 0.84479,
"BB_per_IP": 0.30599,
"SO_per_IP": 1.2306,
"HR_per_IP": 0.07982
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.2,
"predicted_ER": 2.048,
"predicted_H": 4.962,
"predicted_BB": 1.92,
"predicted_SO": 7.903,
"predicted_HR": 0.475,
"predicted_ERA": 2.8232,
"predicted_WHIP": 1.0543
}
},
"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,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.2,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.048,
"final": 2.4483,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.962,
"final": 3.7167,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.92,
"final": 2.7945,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 7.903,
"final": 6.2621,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.475,
"final": 0.6957,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8232,
"final": 2.8232,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0543,
"final": 1.0543,
"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": 64.2,
"ER": 14,
"H": 42,
"BB": 19,
"SO": 88,
"HR": 3,
"ERA": 1.9484536082474226,
"WHIP": 0.9432989690721649,
"K9": 12.24742268041237,
"HR9": 0.41752577319587625,
"games_pitched": 10,
"quality_starts": 7,
"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-15T00:00:00"
},
"recent_form_boost": 0.714714114643074,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 4,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "666200",
"player_name": "Jes\u00fas Luzardo",
"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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 5.0,
"delta": -3.0,
"percent_delta": -0.375,
"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": 8.0,
"after": 5.0,
"delta": -3.0,
"percent_delta": -0.375,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 135,
"wins": 71,
"losses": 64,
"win_pct": 0.5259,
"runs_scored": 598.0,
"runs_allowed": 591.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0519,
"avg_runs_scored": 4.4296,
"avg_runs_allowed": 4.3778,
"offense_index": 0.9906,
"defense_index": 1.0215,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.7,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.1334
},
"opponent": {
"team": "STL",
"games": 139,
"wins": 72,
"losses": 67,
"win_pct": 0.518,
"runs_scored": 598.0,
"runs_allowed": 575.0,
"run_differential": 23.0,
"run_differential_per_game": 0.1655,
"avg_runs_scored": 4.3022,
"avg_runs_allowed": 4.1367,
"offense_index": 0.9621,
"defense_index": 1.081,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 3.3,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.1057
},
"edges": {
"quality_edge": 0.0277,
"offense_edge": -0.0094,
"opponent_offense_edge": -0.0379,
"defense_strength": 0.0215,
"opponent_defense_weakness": -0.081,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0033,
"run_prevention": 0.9904,
"strikeout": 1.0039
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "666200",
"profile": {
"available": true,
"pitcher_id": "666200",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 588.0,
"k_percent": 29.8,
"bb_percent": 7.4,
"woba": 0.286,
"xwoba": 0.264,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 5.8,
"hard_hit_percent": 31.8,
"avg_best_speed": 76.5717,
"avg_hyper_speed": 92.985,
"whiff_percent": 31.9,
"swing_percent": 46.5
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.8136,
"command_and_miss": 0.8986,
"regression_edge": 0.6286,
"xwoba_edge": 1.3714,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.8286,
"whiff_edge": 0.9286,
"bb_edge": 0.425,
"pitch_design_score": 0.0393
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "666200",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 98,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 90.61616117466934,
"release_spin_rate": 2201.7543527666126,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 90.61616117466934,
"release_spin_rate": 2201.7543527666126,
"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.6162,
"release_spin_rate": 2201.7544,
"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.0393,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2804,
"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.7552,
"sample_weight": 1.0,
"run_prevention_factor": 0.9358,
"strikeout_factor": 1.0806,
"walk_factor": 0.966,
"homer_factor": 0.9026,
"woba_minus_xwoba": 0.022,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "666200",
"espn_id": 39667,
"player_name": "Jesus Luzardo",
"team": "PHI",
"role": "pitcher",
"espn_rank": 7,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 7,
"gp_value": 25.0,
"gp_rank": 246,
"gs_value": 25.0,
"gs_rank": 15,
"qs_value": 14.0,
"qs_rank": 14,
"era_value": 3.2328,
"era_rank": 18.0,
"w_value": 11.0,
"w_rank": 17,
"l_value": 5.0,
"l_rank": 119,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 150.1,
"ip_rank": 6,
"h_value": 127.0,
"h_rank": 30,
"er_value": 54.0,
"er_rank": 62,
"hr_value": 12.0,
"hr_rank": 111,
"bb_value": 46.0,
"bb_rank": 33,
"k_value": 185.0,
"k_rank": 6,
"k_per_9_value": 11.075389,
"k_per_9_rank": 27.0,
"whip_value": 1.1507,
"whip_rank": 24.0,
"war_value": 4.6,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9358,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9358,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9026,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0806,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 102
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260821_STL@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"
}
} |
| 20260821 | 20260821_TB@BAL | away | Freddy Peralta | Freddy Peralta | True | 5.0 | 7.0 | 6 | 2 | 5 | 3 | 4/7 | 0/1 | 8/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.2734375,
"WHIP": 1.4765625,
"IP": 128.0,
"games_started": 25,
"games_pitched": 25,
"role_avg_IP": 5.12,
"recent_avg_IP": 4.733,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.022,
"sample_weight": 1.0,
"run_prevention_factor": 0.9981,
"strikeout_factor": 1.0017,
"walk_factor": 1.002,
"homer_factor": 0.9925,
"regression_flag": "positive_pitcher_regression",
"k_percent": 21.5,
"bb_percent": 9.2,
"woba": 0.348,
"xwoba": 0.312,
"barrel_percent": 6.1,
"hard_hit_percent": 39.4,
"whiff_percent": 26.4
},
"espn_rank": {
"rank": 779,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"player_id": "642547",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 21.0,
"R": 22.0,
"H": 30.0,
"BB": 9.0,
"SO": 19.0,
"HR": 5.0,
"BF": 107.0,
"Pitches": 445.0
},
"per_game": {
"IP": 4.2,
"ER": 4.2,
"R": 4.4,
"H": 6.0,
"BB": 1.8,
"SO": 3.8,
"HR": 1.0,
"BF": 21.4,
"Pitches": 89.0
},
"rates": {
"ERA": 7.9859,
"WHIP": 1.6479,
"ER_per_IP": 0.88732,
"H_per_IP": 1.26761,
"BB_per_IP": 0.38028,
"SO_per_IP": 0.80282,
"HR_per_IP": 0.21127
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.0,
"ER": 39.0,
"R": 45.0,
"H": 61.0,
"BB": 20.0,
"SO": 42.0,
"HR": 10.0,
"BF": 216.0,
"Pitches": 909.0
},
"per_game": {
"IP": 4.2,
"ER": 3.9,
"R": 4.5,
"H": 6.1,
"BB": 2.0,
"SO": 4.2,
"HR": 1.0,
"BF": 21.6,
"Pitches": 90.9
},
"rates": {
"ERA": 7.8,
"WHIP": 1.8,
"ER_per_IP": 0.86667,
"H_per_IP": 1.35556,
"BB_per_IP": 0.44444,
"SO_per_IP": 0.93333,
"HR_per_IP": 0.22222
}
},
"season": {
"games": 25,
"totals": {
"IP": 128.0,
"ER": 75.0,
"R": 83.0,
"H": 136.0,
"BB": 53.0,
"SO": 123.0,
"HR": 20.0,
"BF": 573.0,
"Pitches": 2338.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.32,
"H": 5.44,
"BB": 2.12,
"SO": 4.92,
"HR": 0.8,
"BF": 22.92,
"Pitches": 93.52
},
"rates": {
"ERA": 5.2734,
"WHIP": 1.4766,
"ER_per_IP": 0.58594,
"H_per_IP": 1.0625,
"BB_per_IP": 0.41406,
"SO_per_IP": 0.96094,
"HR_per_IP": 0.15625
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 3.663,
"predicted_H": 5.78,
"predicted_BB": 1.922,
"predicted_SO": 4.262,
"predicted_HR": 0.93,
"predicted_ERA": 6.9003,
"predicted_WHIP": 1.6122
}
},
"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,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.663,
"final": 2.9638,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.78,
"final": 5.0316,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.922,
"final": 1.1139,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.262,
"final": 5.8336,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.93,
"final": 0.539,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.9003,
"final": 6.9003,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6122,
"final": 1.6122,
"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": 45.0,
"ER": 39,
"H": 61,
"BB": 20,
"SO": 42,
"HR": 10,
"ERA": 7.8,
"WHIP": 1.8,
"K9": 8.4,
"HR9": 2.0,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-16T00:00:00"
},
"recent_form_boost": 1.3944306094884347,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "642547",
"player_name": "Freddy Peralta",
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 135,
"wins": 79,
"losses": 56,
"win_pct": 0.5852,
"runs_scored": 596.0,
"runs_allowed": 561.0,
"run_differential": 35.0,
"run_differential_per_game": 0.2593,
"avg_runs_scored": 4.4148,
"avg_runs_allowed": 4.1556,
"offense_index": 0.9873,
"defense_index": 1.0761,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 6.1,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.1043
},
"opponent": {
"team": "BAL",
"games": 138,
"wins": 66,
"losses": 72,
"win_pct": 0.4783,
"runs_scored": 607.0,
"runs_allowed": 631.0,
"run_differential": -24.0,
"run_differential_per_game": -0.1739,
"avg_runs_scored": 4.3986,
"avg_runs_allowed": 4.5725,
"offense_index": 0.9836,
"defense_index": 0.978,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.0748
},
"edges": {
"quality_edge": 0.1791,
"offense_edge": -0.0127,
"opponent_offense_edge": -0.0164,
"defense_strength": 0.0761,
"opponent_defense_weakness": 0.022,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0101,
"run_prevention": 0.9808,
"strikeout": 1.0067
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "642547",
"profile": {
"available": true,
"pitcher_id": "642547",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 553.0,
"k_percent": 21.5,
"bb_percent": 9.2,
"woba": 0.348,
"xwoba": 0.312,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 39.4,
"avg_best_speed": 76.7974,
"avg_hyper_speed": 93.7022,
"whiff_percent": 26.4,
"swing_percent": 47.1
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.1385,
"command_and_miss": 0.0,
"regression_edge": 1.0286,
"xwoba_edge": 0.0,
"barrel_edge": 0.2222,
"hard_hit_edge": -0.2571,
"whiff_edge": 0.1429,
"bb_edge": -0.025,
"pitch_design_score": -0.0408
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "642547",
"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.18673619396424,
"release_spin_rate": 2301.1849670829815,
"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.18673619396424,
"release_spin_rate": 2301.1849670829815,
"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.1867,
"release_spin_rate": 2301.185,
"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.0408,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2914,
"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.022,
"sample_weight": 1.0,
"run_prevention_factor": 0.9981,
"strikeout_factor": 1.0017,
"walk_factor": 1.002,
"homer_factor": 0.9925,
"woba_minus_xwoba": 0.036,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "642547",
"espn_id": 39825,
"player_name": "Freddy Peralta",
"team": "TB",
"role": "pitcher",
"espn_rank": 779,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 779,
"gp_value": 25.0,
"gp_rank": 246,
"gs_value": 25.0,
"gs_rank": 15,
"qs_value": 5.0,
"qs_rank": 97,
"era_value": 5.2734,
"era_rank": 53.0,
"w_value": 5.0,
"w_rank": 117,
"l_value": 10.0,
"l_rank": 12,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 128.0,
"ip_rank": 52,
"h_value": 136.0,
"h_rank": 16,
"er_value": 75.0,
"er_rank": 7,
"hr_value": 20.0,
"hr_rank": 23,
"bb_value": 53.0,
"bb_rank": 16,
"k_value": 123.0,
"k_rank": 43,
"k_per_9_value": 8.6484375,
"k_per_9_rank": 22.0,
"whip_value": 1.4765,
"whip_rank": 53.0,
"war_value": -0.76,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9981,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9981,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.002,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9925,
"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": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 91
}
},
"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 +6 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260821_TB@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"
}
} |
| 20260821 | 20260821_TB@BAL | home | Trevor Rogers | Trevor Rogers | True | 5.2 | 7.0 | 4 | 6 | 3 | -3 | 9/6 | 5/1 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.153846153846153,
"WHIP": 1.249336870026525,
"IP": 125.2,
"games_started": 23,
"games_pitched": 23,
"role_avg_IP": 5.464,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0043,
"sample_weight": 1.0,
"run_prevention_factor": 0.9996,
"strikeout_factor": 0.9794,
"walk_factor": 0.95,
"homer_factor": 1.0057,
"regression_flag": "neutral",
"k_percent": 20.4,
"bb_percent": 6.6,
"woba": 0.308,
"xwoba": 0.308,
"barrel_percent": 7.1,
"hard_hit_percent": 39.2,
"whiff_percent": 23.6
},
"espn_rank": {
"rank": 104,
"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",
"player_id": "669432",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 12.0,
"R": 15.0,
"H": 28.0,
"BB": 3.0,
"SO": 31.0,
"HR": 3.0,
"BF": 120.0,
"Pitches": 452.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 3.0,
"H": 5.6,
"BB": 0.6,
"SO": 6.2,
"HR": 0.6,
"BF": 24.0,
"Pitches": 90.4
},
"rates": {
"ERA": 3.7241,
"WHIP": 1.069,
"ER_per_IP": 0.41379,
"H_per_IP": 0.96552,
"BB_per_IP": 0.10345,
"SO_per_IP": 1.06897,
"HR_per_IP": 0.10345
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 15.0,
"R": 18.0,
"H": 48.0,
"BB": 13.0,
"SO": 60.0,
"HR": 4.0,
"BF": 239.0,
"Pitches": 916.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5,
"R": 1.8,
"H": 4.8,
"BB": 1.3,
"SO": 6.0,
"HR": 0.4,
"BF": 23.9,
"Pitches": 91.6
},
"rates": {
"ERA": 2.2626,
"WHIP": 1.0223,
"ER_per_IP": 0.2514,
"H_per_IP": 0.80447,
"BB_per_IP": 0.21788,
"SO_per_IP": 1.00559,
"HR_per_IP": 0.06704
}
},
"season": {
"games": 23,
"totals": {
"IP": 125.2,
"ER": 58.0,
"R": 63.0,
"H": 122.0,
"BB": 35.0,
"SO": 108.0,
"HR": 13.0,
"BF": 529.0,
"Pitches": 2053.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5217,
"R": 2.7391,
"H": 5.3043,
"BB": 1.5217,
"SO": 4.6957,
"HR": 0.5652,
"BF": 23.0,
"Pitches": 89.2609
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.2493,
"ER_per_IP": 0.46154,
"H_per_IP": 0.97082,
"BB_per_IP": 0.27851,
"SO_per_IP": 0.85942,
"HR_per_IP": 0.10345
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.229,
"predicted_H": 5.259,
"predicted_BB": 1.21,
"predicted_SO": 5.682,
"predicted_HR": 0.575,
"predicted_ERA": 3.515,
"predicted_WHIP": 1.1334
}
},
"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,
"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": 6.0,
"form": 2.229,
"final": 3.8334,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 5.259,
"final": 6.8506,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.21,
"final": 2.8225,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.682,
"final": 5.3918,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.575,
"final": 0.3304,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.515,
"final": 3.515,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1334,
"final": 1.1334,
"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": 15,
"H": 48,
"BB": 13,
"SO": 60,
"HR": 4,
"ERA": 2.2625698324022347,
"WHIP": 1.0223463687150838,
"K9": 9.050279329608939,
"HR9": 0.6033519553072626,
"games_pitched": 10,
"quality_starts": 7,
"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-16T00:00:00"
},
"recent_form_boost": 0.7520283748515634,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_BB": 5.0,
"predicted_SO": 5.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669432",
"player_name": "Trevor Rogers",
"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": 5.0,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 6.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 6.0,
"predicted_SO": 5.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 138,
"wins": 66,
"losses": 72,
"win_pct": 0.4783,
"runs_scored": 607.0,
"runs_allowed": 631.0,
"run_differential": -24.0,
"run_differential_per_game": -0.1739,
"avg_runs_scored": 4.3986,
"avg_runs_allowed": 4.5725,
"offense_index": 0.9836,
"defense_index": 0.978,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.0748
},
"opponent": {
"team": "TB",
"games": 135,
"wins": 79,
"losses": 56,
"win_pct": 0.5852,
"runs_scored": 596.0,
"runs_allowed": 561.0,
"run_differential": 35.0,
"run_differential_per_game": 0.2593,
"avg_runs_scored": 4.4148,
"avg_runs_allowed": 4.1556,
"offense_index": 0.9873,
"defense_index": 1.0761,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 6.1,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.1043
},
"edges": {
"quality_edge": -0.1791,
"offense_edge": -0.0164,
"opponent_offense_edge": -0.0127,
"defense_strength": -0.022,
"opponent_defense_weakness": -0.0761,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9927,
"run_prevention": 1.0091,
"strikeout": 0.9956
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669432",
"profile": {
"available": true,
"pitcher_id": "669432",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 499.0,
"k_percent": 20.4,
"bb_percent": 6.6,
"woba": 0.308,
"xwoba": 0.308,
"sweet_spot_percent": 32.6,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 39.2,
"avg_best_speed": 78.2605,
"avg_hyper_speed": 94.0998,
"whiff_percent": 23.6,
"swing_percent": 52.5
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.0516,
"command_and_miss": -0.0807,
"regression_edge": 0.0,
"xwoba_edge": 0.1143,
"barrel_edge": 0.0,
"hard_hit_edge": -0.2286,
"whiff_edge": -0.2571,
"bb_edge": 0.625,
"pitch_design_score": -0.0446
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669432",
"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.11923672661942,
"release_spin_rate": 2191.06139917301,
"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.11923672661942,
"release_spin_rate": 2191.06139917301,
"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.1192,
"release_spin_rate": 2191.0614,
"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.0446,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3184,
"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.0043,
"sample_weight": 1.0,
"run_prevention_factor": 0.9996,
"strikeout_factor": 0.9794,
"walk_factor": 0.95,
"homer_factor": 1.0057,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669432",
"espn_id": 39640,
"player_name": "Trevor Rogers",
"team": "BAL",
"role": "pitcher",
"espn_rank": 104,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 104,
"gp_value": 23.0,
"gp_rank": 305,
"gs_value": 23.0,
"gs_rank": 53,
"qs_value": 11.0,
"qs_rank": 34,
"era_value": 4.1538,
"era_rank": null,
"w_value": 8.0,
"w_rank": 44,
"l_value": 8.0,
"l_rank": 33,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 125.2,
"ip_rank": 58,
"h_value": 122.0,
"h_rank": 42,
"er_value": 58.0,
"er_rank": 48,
"hr_value": 13.0,
"hr_rank": 94,
"bb_value": 35.0,
"bb_rank": 87,
"k_value": 108.0,
"k_rank": 68,
"k_per_9_value": 7.734748,
"k_per_9_rank": 31.0,
"whip_value": 1.2493,
"whip_rank": null,
"war_value": 1.5,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9996,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9996,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.95,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0057,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9794,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 9,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 5,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 31,
"Pitches": 118
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260821_TB@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"
}
} |
| 20260821 | 20260821_TOR@NYY | away | Mason Fluharty | Mason Fluharty | True | 5.0 | 0.2 | -13 | 1 | 0 | -1 | 2/0 | 1/2 | 5/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.176470588235294,
"WHIP": 1.1372549019607843,
"IP": 51.0,
"games_started": 3,
"games_pitched": 65,
"role_avg_IP": 1.222,
"recent_avg_IP": 1.222,
"last_start_IP": 1.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5093,
"sample_weight": 0.816,
"run_prevention_factor": 0.9567,
"strikeout_factor": 1.0336,
"walk_factor": 1.0049,
"homer_factor": 0.943,
"regression_flag": "positive_pitcher_regression",
"k_percent": 26.3,
"bb_percent": 9.4,
"woba": 0.291,
"xwoba": 0.259,
"barrel_percent": 7.4,
"hard_hit_percent": 32.4,
"whiff_percent": 28.5
},
"espn_rank": {
"rank": 196,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 51.0,
"season_ERA": 3.176,
"season_WHIP": 1.137,
"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": 10.224,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6716,
"prior_weight": 0.3284
},
"role": "pitcher",
"player_id": "689254",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 65,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 1.0,
"HR": 0.0,
"BF": 12.0,
"Pitches": 37.0
},
"per_game": {
"IP": 0.2,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.2,
"HR": 0.0,
"BF": 2.4,
"Pitches": 7.4
},
"rates": {
"ERA": 0.0,
"WHIP": 0.0,
"ER_per_IP": 0.0,
"H_per_IP": 0.0,
"BB_per_IP": 0.0,
"SO_per_IP": 0.25,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 7.2,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 1.0,
"SO": 5.0,
"HR": 0.0,
"BF": 24.0,
"Pitches": 81.0
},
"per_game": {
"IP": 0.2,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.1,
"SO": 0.5,
"HR": 0.0,
"BF": 2.4,
"Pitches": 8.1
},
"rates": {
"ERA": 0.0,
"WHIP": 0.1304,
"ER_per_IP": 0.0,
"H_per_IP": 0.0,
"BB_per_IP": 0.13043,
"SO_per_IP": 0.65217,
"HR_per_IP": 0.0
}
},
"season": {
"games": 65,
"totals": {
"IP": 51.0,
"ER": 18.0,
"R": 18.0,
"H": 39.0,
"BB": 19.0,
"SO": 56.0,
"HR": 6.0,
"BF": 208.0,
"Pitches": 820.0
},
"per_game": {
"IP": 0.2,
"ER": 0.2769,
"R": 0.2769,
"H": 0.6,
"BB": 0.2923,
"SO": 0.8615,
"HR": 0.0923,
"BF": 3.2,
"Pitches": 12.6154
},
"rates": {
"ERA": 3.1765,
"WHIP": 1.1373,
"ER_per_IP": 0.35294,
"H_per_IP": 0.76471,
"BB_per_IP": 0.37255,
"SO_per_IP": 1.09804,
"HR_per_IP": 0.11765
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.489,
"predicted_H": 0.974,
"predicted_BB": 0.464,
"predicted_SO": 1.591,
"predicted_HR": 0.148,
"predicted_ERA": 1.9079,
"predicted_WHIP": 0.6231
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4887,
"form_weight": 0.5113,
"form_reliability": 0.6716,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.224,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6716,
"prior_weight": 0.3284
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 0.489,
"final": 0.7388,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 0.974,
"final": 1.4755,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.464,
"final": 0.726,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 1.591,
"final": 3.2571,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.148,
"final": 0.5644,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.9079,
"final": 1.9079,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.6231,
"final": 0.6231,
"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": 7.2,
"ER": 0,
"H": 0,
"BB": 1,
"SO": 5,
"HR": 0,
"ERA": 0.0,
"WHIP": 0.13043478260869565,
"K9": 5.869565217391305,
"HR9": 0.0,
"games_pitched": 10,
"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-08-19T00:00:00"
},
"recent_form_boost": 0.8687579974293889,
"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": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.224,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6716,
"prior_weight": 0.3284
}
},
{
"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": 5,
"predicted_HR": 1
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "689254",
"player_name": "Mason Fluharty",
"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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 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": 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.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.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": 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": 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": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 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": 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": 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.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 136,
"wins": 66,
"losses": 70,
"win_pct": 0.4853,
"runs_scored": 545.0,
"runs_allowed": 575.0,
"run_differential": -30.0,
"run_differential_per_game": -0.2206,
"avg_runs_scored": 4.0074,
"avg_runs_allowed": 4.2279,
"offense_index": 0.8962,
"defense_index": 1.0577,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.4,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.0304
},
"opponent": {
"team": "NYY",
"games": 139,
"wins": 77,
"losses": 62,
"win_pct": 0.554,
"runs_scored": 595.0,
"runs_allowed": 510.0,
"run_differential": 85.0,
"run_differential_per_game": 0.6115,
"avg_runs_scored": 4.2806,
"avg_runs_allowed": 3.6691,
"offense_index": 0.9573,
"defense_index": 1.2188,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 2.4,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.1561
},
"edges": {
"quality_edge": -0.1257,
"offense_edge": -0.1038,
"opponent_offense_edge": -0.0427,
"defense_strength": 0.0577,
"opponent_defense_weakness": -0.2188,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9984,
"run_prevention": 0.9937,
"strikeout": 0.9996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "689254",
"profile": {
"available": true,
"pitcher_id": "689254",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 204.0,
"k_percent": 26.3,
"bb_percent": 9.4,
"woba": 0.291,
"xwoba": 0.259,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 32.4,
"avg_best_speed": 74.8073,
"avg_hyper_speed": 92.906,
"whiff_percent": 28.5,
"swing_percent": 49.3
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.788,
"command_and_miss": 0.4036,
"regression_edge": 0.9143,
"xwoba_edge": 1.5143,
"barrel_edge": -0.0667,
"hard_hit_edge": 0.7429,
"whiff_edge": 0.4429,
"bb_edge": -0.075,
"pitch_design_score": -0.1692
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "689254",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 8,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 8,
"pitch_usage": 0.0,
"release_speed": 86.89438728197173,
"release_spin_rate": 2589.063988636259,
"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": 8,
"pitch_usage": 0.0,
"release_speed": 86.89438728197173,
"release_spin_rate": 2589.063988636259,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.8944,
"release_spin_rate": 2589.064,
"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.1692,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2083,
"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.5093,
"sample_weight": 0.816,
"run_prevention_factor": 0.9567,
"strikeout_factor": 1.0336,
"walk_factor": 1.0049,
"homer_factor": 0.943,
"woba_minus_xwoba": 0.032,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "689254",
"espn_id": 4622501,
"player_name": "Mason Fluharty",
"team": "TOR",
"role": "pitcher",
"espn_rank": 196,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 196,
"gp_value": 67.0,
"gp_rank": 1,
"gs_value": 3.0,
"gs_rank": 236,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 3.7058,
"era_rank": null,
"w_value": 5.0,
"w_rank": 117,
"l_value": 1.0,
"l_rank": 392,
"sv_value": 1.0,
"sv_rank": 123,
"hld_value": 13.0,
"hld_rank": 37,
"ip_value": 51.0,
"ip_rank": 250,
"h_value": 43.0,
"h_rank": 257,
"er_value": 21.0,
"er_rank": 266,
"hr_value": 6.0,
"hr_rank": 244,
"bb_value": 20.0,
"bb_rank": 250,
"k_value": 56.0,
"k_rank": 213,
"k_per_9_value": 9.882353,
"k_per_9_rank": 23.0,
"whip_value": 1.2352,
"whip_rank": null,
"war_value": 0.77,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9647,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.9647,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.004,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9535,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0274,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 78
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -13 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260821_TOR@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260821 | 20260821_TOR@NYY | home | Cam Schlittler | Cam Schlittler | True | 6.0 | 6.0 | 0 | 1 | 1 | 0 | 5/6 | 2/3 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.1907894736842106,
"WHIP": 0.9407894736842105,
"IP": 152.0,
"games_started": 26,
"games_pitched": 26,
"role_avg_IP": 5.846,
"recent_avg_IP": 5.8,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6446,
"sample_weight": 1.0,
"run_prevention_factor": 0.9452,
"strikeout_factor": 1.072,
"walk_factor": 0.93,
"homer_factor": 0.9926,
"regression_flag": "neutral",
"k_percent": 31.4,
"bb_percent": 5.6,
"woba": 0.253,
"xwoba": 0.266,
"barrel_percent": 8.1,
"hard_hit_percent": 40.1,
"whiff_percent": 28.8
},
"espn_rank": {
"rank": 2,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 152.0,
"season_ERA": 2.191,
"season_WHIP": 0.941,
"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",
"player_id": "693645",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 7.0,
"R": 7.0,
"H": 16.0,
"BB": 9.0,
"SO": 44.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 468.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 1.4,
"H": 3.2,
"BB": 1.8,
"SO": 8.8,
"HR": 0.4,
"BF": 22.6,
"Pitches": 93.6
},
"rates": {
"ERA": 2.1724,
"WHIP": 0.8621,
"ER_per_IP": 0.24138,
"H_per_IP": 0.55172,
"BB_per_IP": 0.31034,
"SO_per_IP": 1.51724,
"HR_per_IP": 0.06897
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 19.0,
"R": 23.0,
"H": 42.0,
"BB": 16.0,
"SO": 80.0,
"HR": 9.0,
"BF": 233.0,
"Pitches": 943.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9,
"R": 2.3,
"H": 4.2,
"BB": 1.6,
"SO": 8.0,
"HR": 0.9,
"BF": 23.3,
"Pitches": 94.3
},
"rates": {
"ERA": 3.0,
"WHIP": 1.0175,
"ER_per_IP": 0.33333,
"H_per_IP": 0.73684,
"BB_per_IP": 0.2807,
"SO_per_IP": 1.40351,
"HR_per_IP": 0.15789
}
},
"season": {
"games": 26,
"totals": {
"IP": 152.0,
"ER": 37.0,
"R": 44.0,
"H": 109.0,
"BB": 34.0,
"SO": 189.0,
"HR": 14.0,
"BF": 602.0,
"Pitches": 2386.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4231,
"R": 1.6923,
"H": 4.1923,
"BB": 1.3077,
"SO": 7.2692,
"HR": 0.5385,
"BF": 23.1538,
"Pitches": 91.7692
},
"rates": {
"ERA": 2.1908,
"WHIP": 0.9408,
"ER_per_IP": 0.24342,
"H_per_IP": 0.71711,
"BB_per_IP": 0.22368,
"SO_per_IP": 1.24342,
"HR_per_IP": 0.09211
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.794,
"predicted_H": 4.053,
"predicted_BB": 1.711,
"predicted_SO": 7.779,
"predicted_HR": 0.644,
"predicted_ERA": 2.7956,
"predicted_WHIP": 0.9978
}
},
"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,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.794,
"final": 1.462,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.053,
"final": 4.449,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.711,
"final": 1.8318,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 7.779,
"final": 7.0351,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.644,
"final": 0.3747,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7956,
"final": 2.7956,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9978,
"final": 0.9978,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.0,
"ER": 19,
"H": 42,
"BB": 16,
"SO": 80,
"HR": 9,
"ERA": 3.0,
"WHIP": 1.0175438596491229,
"K9": 12.631578947368421,
"HR9": 1.4210526315789473,
"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-15T00:00:00"
},
"recent_form_boost": 0.834869205979663,
"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": 5.0,
"predicted_BB": 2.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": "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": 5,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693645",
"player_name": "Cam Schlittler",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 8.0,
"delta": 2.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 8.0,
"delta": 2.0,
"percent_delta": 0.3333,
"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": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"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": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 139,
"wins": 77,
"losses": 62,
"win_pct": 0.554,
"runs_scored": 595.0,
"runs_allowed": 510.0,
"run_differential": 85.0,
"run_differential_per_game": 0.6115,
"avg_runs_scored": 4.2806,
"avg_runs_allowed": 3.6691,
"offense_index": 0.9573,
"defense_index": 1.2188,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 2.4,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.1561
},
"opponent": {
"team": "TOR",
"games": 136,
"wins": 66,
"losses": 70,
"win_pct": 0.4853,
"runs_scored": 545.0,
"runs_allowed": 575.0,
"run_differential": -30.0,
"run_differential_per_game": -0.2206,
"avg_runs_scored": 4.0074,
"avg_runs_allowed": 4.2279,
"offense_index": 0.8962,
"defense_index": 1.0577,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.4,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.0304
},
"edges": {
"quality_edge": 0.1257,
"offense_edge": -0.0427,
"opponent_offense_edge": -0.1038,
"defense_strength": 0.2188,
"opponent_defense_weakness": -0.0577,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0157,
"run_prevention": 0.9552,
"strikeout": 1.0121
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693645",
"profile": {
"available": true,
"pitcher_id": "693645",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 549.0,
"k_percent": 31.4,
"bb_percent": 5.6,
"woba": 0.253,
"xwoba": 0.266,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 40.1,
"avg_best_speed": 77.3344,
"avg_hyper_speed": 93.9534,
"whiff_percent": 28.8,
"swing_percent": 52.7
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.7427,
"command_and_miss": 0.9364,
"regression_edge": -0.3714,
"xwoba_edge": 1.3143,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.3571,
"whiff_edge": 0.4857,
"bb_edge": 0.875,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693645",
"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": 95.84755837212556,
"release_spin_rate": 2495.44392322315,
"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": 95.84755837212556,
"release_spin_rate": 2495.44392322315,
"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": 95.8476,
"release_spin_rate": 2495.4439,
"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.6446,
"sample_weight": 1.0,
"run_prevention_factor": 0.9452,
"strikeout_factor": 1.072,
"walk_factor": 0.93,
"homer_factor": 0.9926,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693645",
"espn_id": 5134581,
"player_name": "Cam Schlittler",
"team": "NYY",
"role": "pitcher",
"espn_rank": 2,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 2,
"gp_value": 26.0,
"gp_rank": 225,
"gs_value": 26.0,
"gs_rank": 3,
"qs_value": 15.0,
"qs_rank": 7,
"era_value": 2.1907,
"era_rank": 3.0,
"w_value": 10.0,
"w_rank": 21,
"l_value": 6.0,
"l_rank": 93,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 323,
"ip_value": 152.0,
"ip_rank": 5,
"h_value": 109.0,
"h_rank": 76,
"er_value": 37.0,
"er_rank": 138,
"hr_value": 14.0,
"hr_rank": 82,
"bb_value": 34.0,
"bb_rank": 97,
"k_value": 189.0,
"k_rank": 4,
"k_per_9_value": 11.190789,
"k_per_9_rank": 21.0,
"whip_value": 0.9407,
"whip_rank": 3.0,
"war_value": 5.2,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9452,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9452,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.93,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9926,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.072,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 99
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260821_TOR@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260821 | 20260821_WAS@MIA | away | Brad Lord | Brad Lord | True | 4.1 | 2.2 | -5 | 5 | 0 | -5 | 7/0 | 2/1 | 2/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.042780748663102,
"WHIP": 1.2513368983957218,
"IP": 62.1,
"games_started": 3,
"games_pitched": 30,
"role_avg_IP": 1.889,
"recent_avg_IP": 1.889,
"last_start_IP": 0.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0788,
"sample_weight": 1.0,
"run_prevention_factor": 1.0067,
"strikeout_factor": 0.9663,
"walk_factor": 1.004,
"homer_factor": 1.008,
"regression_flag": "neutral",
"k_percent": 21.2,
"bb_percent": 9.3,
"woba": 0.293,
"xwoba": 0.32,
"barrel_percent": 6.2,
"hard_hit_percent": 40.6,
"whiff_percent": 20.5
},
"espn_rank": {
"rank": 209,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.496,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7142,
"prior_weight": 0.2858
},
"role": "pitcher",
"player_id": "695418",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.0,
"ER": 8.0,
"R": 8.0,
"H": 9.0,
"BB": 7.0,
"SO": 6.0,
"HR": 1.0,
"BF": 41.0,
"Pitches": 208.0
},
"per_game": {
"IP": 1.2,
"ER": 1.6,
"R": 1.6,
"H": 1.8,
"BB": 1.4,
"SO": 1.2,
"HR": 0.2,
"BF": 8.2,
"Pitches": 41.6
},
"rates": {
"ERA": 9.0,
"WHIP": 2.0,
"ER_per_IP": 1.0,
"H_per_IP": 1.125,
"BB_per_IP": 0.875,
"SO_per_IP": 0.75,
"HR_per_IP": 0.125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 19.1,
"ER": 17.0,
"R": 17.0,
"H": 20.0,
"BB": 13.0,
"SO": 22.0,
"HR": 3.0,
"BF": 90.0,
"Pitches": 404.0
},
"per_game": {
"IP": 2.0,
"ER": 1.7,
"R": 1.7,
"H": 2.0,
"BB": 1.3,
"SO": 2.2,
"HR": 0.3,
"BF": 9.0,
"Pitches": 40.4
},
"rates": {
"ERA": 7.9138,
"WHIP": 1.7069,
"ER_per_IP": 0.87931,
"H_per_IP": 1.03448,
"BB_per_IP": 0.67241,
"SO_per_IP": 1.13793,
"HR_per_IP": 0.15517
}
},
"season": {
"games": 30,
"totals": {
"IP": 62.1,
"ER": 28.0,
"R": 29.0,
"H": 53.0,
"BB": 25.0,
"SO": 57.0,
"HR": 7.0,
"BF": 269.0,
"Pitches": 1135.0
},
"per_game": {
"IP": 2.0,
"ER": 0.9333,
"R": 0.9667,
"H": 1.7667,
"BB": 0.8333,
"SO": 1.9,
"HR": 0.2333,
"BF": 8.9667,
"Pitches": 37.8333
},
"rates": {
"ERA": 4.0428,
"WHIP": 1.2513,
"ER_per_IP": 0.4492,
"H_per_IP": 0.85027,
"BB_per_IP": 0.40107,
"SO_per_IP": 0.91444,
"HR_per_IP": 0.1123
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.916,
"predicted_H": 2.61,
"predicted_BB": 1.565,
"predicted_SO": 2.376,
"predicted_HR": 0.351,
"predicted_ERA": 6.7373,
"predicted_WHIP": 1.6308
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4708,
"form_weight": 0.5292,
"form_reliability": 0.7142,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.496,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7142,
"prior_weight": 0.2858
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 2.2,
"final": 3.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 1.916,
"final": 3.3678,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 2.61,
"final": 4.6766,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.565,
"final": 1.7698,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 2.376,
"final": 2.199,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.351,
"final": 0.6565,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.7373,
"final": 6.7373,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6308,
"final": 1.6308,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 19.1,
"ER": 17,
"H": 20,
"BB": 13,
"SO": 22,
"HR": 3,
"ERA": 7.913793103448277,
"WHIP": 1.7068965517241381,
"K9": 10.241379310344827,
"HR9": 1.396551724137931,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-15T00:00:00"
},
"recent_form_boost": 1.2553436117780183,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.496,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7142,
"prior_weight": 0.2858
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695418",
"player_name": "Brad Lord",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 135,
"wins": 62,
"losses": 73,
"win_pct": 0.4593,
"runs_scored": 683.0,
"runs_allowed": 678.0,
"run_differential": 5.0,
"run_differential_per_game": 0.037,
"avg_runs_scored": 5.0593,
"avg_runs_allowed": 5.0222,
"offense_index": 1.1314,
"defense_index": 0.8904,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.1,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.1
},
"opponent": {
"team": "MIA",
"games": 133,
"wins": 67,
"losses": 66,
"win_pct": 0.5038,
"runs_scored": 578.0,
"runs_allowed": 562.0,
"run_differential": 16.0,
"run_differential_per_game": 0.1203,
"avg_runs_scored": 4.3459,
"avg_runs_allowed": 4.2256,
"offense_index": 0.9719,
"defense_index": 1.0582,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.0,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.018
},
"edges": {
"quality_edge": -0.118,
"offense_edge": 0.1314,
"opponent_offense_edge": -0.0281,
"defense_strength": -0.1096,
"opponent_defense_weakness": -0.0582,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9931,
"run_prevention": 1.0124,
"strikeout": 0.9987
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695418",
"profile": {
"available": true,
"pitcher_id": "695418",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 257.0,
"k_percent": 21.2,
"bb_percent": 9.3,
"woba": 0.293,
"xwoba": 0.32,
"sweet_spot_percent": 26.7,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 40.6,
"avg_best_speed": 75.2942,
"avg_hyper_speed": 94.299,
"whiff_percent": 20.5,
"swing_percent": 49.8
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.1409,
"command_and_miss": -0.3193,
"regression_edge": -0.7714,
"xwoba_edge": -0.2286,
"barrel_edge": 0.2,
"hard_hit_edge": -0.4286,
"whiff_edge": -0.7,
"bb_edge": -0.05,
"pitch_design_score": 0.0313
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695418",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 44,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 44,
"pitch_usage": 0.0,
"release_speed": 90.4745524362987,
"release_spin_rate": 2440.5488842082596,
"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": 44,
"pitch_usage": 0.0,
"release_speed": 90.4745524362987,
"release_spin_rate": 2440.5488842082596,
"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.4746,
"release_spin_rate": 2440.5489,
"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.0313,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2237,
"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.0788,
"sample_weight": 1.0,
"run_prevention_factor": 1.0067,
"strikeout_factor": 0.9663,
"walk_factor": 1.004,
"homer_factor": 1.008,
"woba_minus_xwoba": -0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695418",
"espn_id": 4866810,
"player_name": "Brad Lord",
"team": "WSH",
"role": "pitcher",
"espn_rank": 209,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 209,
"gp_value": 30.0,
"gp_rank": 198,
"gs_value": 3.0,
"gs_rank": 236,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 4.0427,
"era_rank": null,
"w_value": 5.0,
"w_rank": 117,
"l_value": 2.0,
"l_rank": 293,
"sv_value": 1.0,
"sv_rank": 123,
"hld_value": 6.0,
"hld_rank": 134,
"ip_value": 62.1,
"ip_rank": 186,
"h_value": 53.0,
"h_rank": 194,
"er_value": 28.0,
"er_rank": 186,
"hr_value": 7.0,
"hr_rank": 206,
"bb_value": 25.0,
"bb_rank": 186,
"k_value": 57.0,
"k_rank": 204,
"k_per_9_value": 8.229947,
"k_per_9_rank": 29.0,
"whip_value": 1.2513,
"whip_rank": null,
"war_value": 0.7,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0067,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0067,
"adjusted": 4
},
"predicted_BB": {
"original": 5.0,
"factor": 1.004,
"adjusted": 5
},
"predicted_HR": {
"original": 0.0,
"factor": 1.008,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9663,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 84
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was -5; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 7",
"detail": "Actual minus predicted hits was -7."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 5 ER."
}
],
"provenance": {
"prediction": "output/games/20260821_WAS@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"
}
} |
| 20260821 | 20260821_WAS@MIA | home | Ryan Gusto | Ryan Gusto | True | 5.2 | 4.0 | -5 | 2 | 0 | -2 | 5/5 | 2/1 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.695652173913044,
"WHIP": 1.3229813664596275,
"IP": 53.2,
"games_started": 11,
"games_pitched": 16,
"role_avg_IP": 4.03,
"recent_avg_IP": 4.6,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2007,
"sample_weight": 0.864,
"run_prevention_factor": 1.0171,
"strikeout_factor": 0.9719,
"walk_factor": 0.9447,
"homer_factor": 1.0609,
"regression_flag": "neutral",
"k_percent": 20.7,
"bb_percent": 5.9,
"woba": 0.327,
"xwoba": 0.317,
"barrel_percent": 8.7,
"hard_hit_percent": 44.2,
"whiff_percent": 21.2
},
"espn_rank": {
"rank": 469,
"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": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"player_id": "687473",
"report_date": "20260821",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 12.0,
"R": 14.0,
"H": 25.0,
"BB": 4.0,
"SO": 22.0,
"HR": 5.0,
"BF": 99.0,
"Pitches": 349.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.8,
"H": 5.0,
"BB": 0.8,
"SO": 4.4,
"HR": 1.0,
"BF": 19.8,
"Pitches": 69.8
},
"rates": {
"ERA": 4.6957,
"WHIP": 1.2609,
"ER_per_IP": 0.52174,
"H_per_IP": 1.08696,
"BB_per_IP": 0.17391,
"SO_per_IP": 0.95652,
"HR_per_IP": 0.21739
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 35.2,
"ER": 16.0,
"R": 19.0,
"H": 35.0,
"BB": 7.0,
"SO": 33.0,
"HR": 6.0,
"BF": 153.0,
"Pitches": 548.0
},
"per_game": {
"IP": 3.2,
"ER": 1.6,
"R": 1.9,
"H": 3.5,
"BB": 0.7,
"SO": 3.3,
"HR": 0.6,
"BF": 15.3,
"Pitches": 54.8
},
"rates": {
"ERA": 4.0374,
"WHIP": 1.1776,
"ER_per_IP": 0.4486,
"H_per_IP": 0.98131,
"BB_per_IP": 0.19626,
"SO_per_IP": 0.92523,
"HR_per_IP": 0.16822
}
},
"season": {
"games": 16,
"totals": {
"IP": 53.2,
"ER": 28.0,
"R": 31.0,
"H": 57.0,
"BB": 14.0,
"SO": 49.0,
"HR": 8.0,
"BF": 237.0,
"Pitches": 858.0
},
"per_game": {
"IP": 3.1,
"ER": 1.75,
"R": 1.9375,
"H": 3.5625,
"BB": 0.875,
"SO": 3.0625,
"HR": 0.5,
"BF": 14.8125,
"Pitches": 53.625
},
"rates": {
"ERA": 4.6957,
"WHIP": 1.323,
"ER_per_IP": 0.52174,
"H_per_IP": 1.06211,
"BB_per_IP": 0.26087,
"SO_per_IP": 0.91304,
"HR_per_IP": 0.14907
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.048,
"predicted_H": 4.232,
"predicted_BB": 0.984,
"predicted_SO": 3.872,
"predicted_HR": 0.729,
"predicted_ERA": 4.4761,
"predicted_WHIP": 1.2667
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.048,
"final": 2.0264,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.232,
"final": 4.5781,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 0.984,
"final": 1.4418,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.872,
"final": 4.8309,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.729,
"final": 0.8511,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4761,
"final": 4.4761,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2667,
"final": 1.2667,
"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": 35.2,
"ER": 16,
"H": 35,
"BB": 7,
"SO": 33,
"HR": 6,
"ERA": 4.037383177570093,
"WHIP": 1.1775700934579438,
"K9": 8.327102803738317,
"HR9": 1.5140186915887848,
"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-15T00:00:00"
},
"recent_form_boost": 0.9555754693015188,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687473",
"player_name": "Ryan Gusto",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.2,
"delta": 0.8667,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"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": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.2,
"delta": 0.8667,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.2,
"delta": 0.8667,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"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": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.2,
"delta": 0.8667,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 133,
"wins": 67,
"losses": 66,
"win_pct": 0.5038,
"runs_scored": 578.0,
"runs_allowed": 562.0,
"run_differential": 16.0,
"run_differential_per_game": 0.1203,
"avg_runs_scored": 4.3459,
"avg_runs_allowed": 4.2256,
"offense_index": 0.9719,
"defense_index": 1.0582,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.0,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.018
},
"opponent": {
"team": "WAS",
"games": 135,
"wins": 62,
"losses": 73,
"win_pct": 0.4593,
"runs_scored": 683.0,
"runs_allowed": 678.0,
"run_differential": 5.0,
"run_differential_per_game": 0.037,
"avg_runs_scored": 5.0593,
"avg_runs_allowed": 5.0222,
"offense_index": 1.1314,
"defense_index": 0.8904,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.1,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.1
},
"edges": {
"quality_edge": 0.118,
"offense_edge": -0.0281,
"opponent_offense_edge": 0.1314,
"defense_strength": 0.0582,
"opponent_defense_weakness": 0.1096,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0012,
"run_prevention": 1.0093,
"strikeout": 0.993
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687473",
"profile": {
"available": true,
"pitcher_id": "687473",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 216.0,
"k_percent": 20.7,
"bb_percent": 5.9,
"woba": 0.327,
"xwoba": 0.317,
"sweet_spot_percent": 38.4,
"barrel_batted_rate": 8.7,
"hard_hit_percent": 44.2,
"avg_best_speed": 80.7019,
"avg_hyper_speed": 94.2455,
"whiff_percent": 21.2,
"swing_percent": 49.4
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.5142,
"avg_hyper_speed": 93.882,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.3909,
"command_and_miss": -0.1464,
"regression_edge": 0.2857,
"xwoba_edge": -0.1429,
"barrel_edge": -0.3556,
"hard_hit_edge": -0.9429,
"whiff_edge": -0.6,
"bb_edge": 0.8,
"pitch_design_score": -0.0479
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687473",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 60,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 60,
"pitch_usage": 0.0,
"release_speed": 89.06040499854333,
"release_spin_rate": 2245.5436386650736,
"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": 60,
"pitch_usage": 0.0,
"release_speed": 89.06040499854333,
"release_spin_rate": 2245.5436386650736,
"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.0604,
"release_spin_rate": 2245.5436,
"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.0479,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3419,
"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.2007,
"sample_weight": 0.864,
"run_prevention_factor": 1.0171,
"strikeout_factor": 0.9719,
"walk_factor": 0.9447,
"homer_factor": 1.0609,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687473",
"espn_id": 5131986,
"player_name": "Ryan Gusto",
"team": "MIA",
"role": "pitcher",
"espn_rank": 469,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 469,
"gp_value": 16.0,
"gp_rank": 409,
"gs_value": 11.0,
"gs_rank": 153,
"qs_value": 1.0,
"qs_rank": 172,
"era_value": 4.6956,
"era_rank": null,
"w_value": 0.0,
"w_rank": 497,
"l_value": 3.0,
"l_rank": 210,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 1.0,
"hld_rank": 249,
"ip_value": 53.2,
"ip_rank": 228,
"h_value": 57.0,
"h_rank": 174,
"er_value": 28.0,
"er_rank": 186,
"hr_value": 8.0,
"hr_rank": 182,
"bb_value": 14.0,
"bb_rank": 360,
"k_value": 49.0,
"k_rank": 252,
"k_per_9_value": 8.217391,
"k_per_9_rank": 29.0,
"whip_value": 1.3229,
"whip_rank": null,
"war_value": 0.01,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0148,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0148,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9522,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0526,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9757,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 94
}
},
"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/20260821_WAS@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"
}
} |