| 20260829 | 20260829_ARI@SF | away | Merrill Kelly | Mitch Bratt | False | 5.0 | 4.1 | -2 | 4 | 3 | -1 | 5/3 | 0/2 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.346534653465347,
"WHIP": 1.5148514851485149,
"IP": 134.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.611,
"recent_avg_IP": 5.067,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -1.1651,
"sample_weight": 1.0,
"run_prevention_factor": 1.099,
"strikeout_factor": 0.9374,
"walk_factor": 1.02,
"homer_factor": 1.2046,
"regression_flag": "negative_pitcher_regression",
"k_percent": 14.9,
"bb_percent": 10.2,
"woba": 0.364,
"xwoba": 0.398,
"barrel_percent": 12.6,
"hard_hit_percent": 43.6,
"whiff_percent": 21.4
},
"espn_rank": {
"rank": 711,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "518876",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 21.0,
"R": 21.0,
"H": 28.0,
"BB": 18.0,
"SO": 17.0,
"HR": 4.0,
"BF": 117.0,
"Pitches": 432.0
},
"per_game": {
"IP": 5.0,
"ER": 4.2,
"R": 4.2,
"H": 5.6,
"BB": 3.6,
"SO": 3.4,
"HR": 0.8,
"BF": 23.4,
"Pitches": 86.4
},
"rates": {
"ERA": 7.4605,
"WHIP": 1.8158,
"ER_per_IP": 0.82895,
"H_per_IP": 1.10526,
"BB_per_IP": 0.71053,
"SO_per_IP": 0.67105,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 27.0,
"R": 30.0,
"H": 52.0,
"BB": 27.0,
"SO": 41.0,
"HR": 8.0,
"BF": 228.0,
"Pitches": 885.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 3.0,
"H": 5.2,
"BB": 2.7,
"SO": 4.1,
"HR": 0.8,
"BF": 22.8,
"Pitches": 88.5
},
"rates": {
"ERA": 4.5849,
"WHIP": 1.4906,
"ER_per_IP": 0.50943,
"H_per_IP": 0.98113,
"BB_per_IP": 0.50943,
"SO_per_IP": 0.77358,
"HR_per_IP": 0.15094
}
},
"season": {
"games": 24,
"totals": {
"IP": 134.2,
"ER": 80.0,
"R": 83.0,
"H": 144.0,
"BB": 60.0,
"SO": 88.0,
"HR": 26.0,
"BF": 590.0,
"Pitches": 2178.0
},
"per_game": {
"IP": 5.2,
"ER": 3.3333,
"R": 3.4583,
"H": 6.0,
"BB": 2.5,
"SO": 3.6667,
"HR": 1.0833,
"BF": 24.5833,
"Pitches": 90.75
},
"rates": {
"ERA": 5.3465,
"WHIP": 1.5149,
"ER_per_IP": 0.59406,
"H_per_IP": 1.06931,
"BB_per_IP": 0.44554,
"SO_per_IP": 0.65347,
"HR_per_IP": 0.19307
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.373,
"predicted_H": 5.479,
"predicted_BB": 2.894,
"predicted_SO": 3.918,
"predicted_HR": 0.841,
"predicted_ERA": 5.7665,
"predicted_WHIP": 1.5905
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.373,
"final": 3.6381,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.479,
"final": 5.2765,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.894,
"final": 1.6703,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.918,
"final": 5.2212,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.841,
"final": 1.3311,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7665,
"final": 5.7665,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5905,
"final": 1.5905,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.0,
"ER": 27,
"H": 52,
"BB": 27,
"SO": 41,
"HR": 8,
"ERA": 4.584905660377358,
"WHIP": 1.490566037735849,
"K9": 6.962264150943396,
"HR9": 1.3584905660377358,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-24T00:00:00"
},
"recent_form_boost": 1.0265444180034744,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "518876",
"player_name": "Merrill Kelly",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 136,
"wins": 72,
"losses": 64,
"win_pct": 0.5294,
"runs_scored": 616.0,
"runs_allowed": 612.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0294,
"avg_runs_scored": 4.5294,
"avg_runs_allowed": 4.5,
"offense_index": 1.0141,
"defense_index": 0.9926,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 5.2,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0636
},
"opponent": {
"team": "SF",
"games": 135,
"wins": 55,
"losses": 80,
"win_pct": 0.4074,
"runs_scored": 552.0,
"runs_allowed": 625.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5407,
"avg_runs_scored": 4.0889,
"avg_runs_allowed": 4.6296,
"offense_index": 0.9154,
"defense_index": 0.9648,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.1,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.1803
},
"edges": {
"quality_edge": 0.2439,
"offense_edge": 0.0141,
"opponent_offense_edge": -0.0846,
"defense_strength": -0.0074,
"opponent_defense_weakness": 0.0352,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0129,
"run_prevention": 0.975,
"strikeout": 1.0141
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "518876",
"profile": {
"available": true,
"pitcher_id": "518876",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 535.0,
"k_percent": 14.9,
"bb_percent": 10.2,
"woba": 0.364,
"xwoba": 0.398,
"sweet_spot_percent": 38.8,
"barrel_batted_rate": 12.6,
"hard_hit_percent": 43.6,
"avg_best_speed": 79.3913,
"avg_hyper_speed": 94.934,
"whiff_percent": 21.4,
"swing_percent": 48.8
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -1.5774,
"command_and_miss": -0.6996,
"regression_edge": -0.9714,
"xwoba_edge": -2.4857,
"barrel_edge": -1.2111,
"hard_hit_edge": -0.8286,
"whiff_edge": -0.5429,
"bb_edge": -0.25,
"pitch_design_score": -0.0338
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "518876",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 89.25223922501904,
"release_spin_rate": 2316.2310668157406,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 89.25223922501904,
"release_spin_rate": 2316.2310668157406,
"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.2522,
"release_spin_rate": 2316.2311,
"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.0338,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2414,
"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.1651,
"sample_weight": 1.0,
"run_prevention_factor": 1.099,
"strikeout_factor": 0.9374,
"walk_factor": 1.02,
"homer_factor": 1.2046,
"woba_minus_xwoba": -0.034,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "518876",
"espn_id": 32968,
"player_name": "Merrill Kelly",
"team": "ARI",
"role": "pitcher",
"espn_rank": 711,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 711,
"gp_value": 24.0,
"gp_rank": 307,
"gs_value": 24.0,
"gs_rank": 58,
"qs_value": 7.0,
"qs_rank": 73,
"era_value": 5.3465,
"era_rank": null,
"w_value": 8.0,
"w_rank": 52,
"l_value": 12.0,
"l_rank": 4,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 134.2,
"ip_rank": 54,
"h_value": 144.0,
"h_rank": 14,
"er_value": 80.0,
"er_rank": 3,
"hr_value": 26.0,
"hr_rank": 8,
"bb_value": 60.0,
"bb_rank": 11,
"k_value": 88.0,
"k_rank": 112,
"k_per_9_value": 5.881188,
"k_per_9_rank": 56,
"whip_value": 1.5148,
"whip_rank": null,
"war_value": -0.37,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.099,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.099,
"adjusted": 7
},
"predicted_BB": {
"original": 3.0,
"factor": 1.02,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.2,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9374,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 78,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260829_ARI@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_ARI@SF | home | Matt Wilkinson | Yunior Marte | False | 3.0 | 4.2 | 5 | 6 | 1 | -5 | 7/3 | 1/2 | 3/3 | Last 10 before this game (2 available){
"model_context": {
"embedded_season": {
"ERA": 6.352941176470588,
"WHIP": 1.4117647058823528,
"IP": 5.2,
"games_started": null,
"games_pitched": 2,
"role_avg_IP": 2.833,
"recent_avg_IP": 2.833,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2304,
"sample_weight": 0.45,
"run_prevention_factor": 1.0196,
"strikeout_factor": 0.9299,
"walk_factor": 0.9172,
"homer_factor": 1.0556,
"regression_flag": "positive_pitcher_regression",
"k_percent": 8.0,
"bb_percent": 0.0,
"woba": 0.389,
"xwoba": 0.327,
"barrel_percent": 8.7,
"hard_hit_percent": 52.2,
"whiff_percent": 12.0
},
"espn_rank": {
"rank": 567,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.137,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1852,
"prior_weight": 0.8148
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683363",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 2,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 2,
"totals": {
"IP": 5.2,
"ER": 4.0,
"R": 4.0,
"H": 8.0,
"BB": 0.0,
"SO": 2.0,
"HR": 1.0,
"BF": 25.0,
"Pitches": 91.0
},
"per_game": {
"IP": 2.2,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 0.0,
"SO": 1.0,
"HR": 0.5,
"BF": 12.5,
"Pitches": 45.5
},
"rates": {
"ERA": 6.3529,
"WHIP": 1.4118,
"ER_per_IP": 0.70588,
"H_per_IP": 1.41176,
"BB_per_IP": 0.0,
"SO_per_IP": 0.35294,
"HR_per_IP": 0.17647
}
},
"last_10": {
"games": 2,
"totals": {
"IP": 5.2,
"ER": 4.0,
"R": 4.0,
"H": 8.0,
"BB": 0.0,
"SO": 2.0,
"HR": 1.0,
"BF": 25.0,
"Pitches": 91.0
},
"per_game": {
"IP": 2.2,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 0.0,
"SO": 1.0,
"HR": 0.5,
"BF": 12.5,
"Pitches": 45.5
},
"rates": {
"ERA": 6.3529,
"WHIP": 1.4118,
"ER_per_IP": 0.70588,
"H_per_IP": 1.41176,
"BB_per_IP": 0.0,
"SO_per_IP": 0.35294,
"HR_per_IP": 0.17647
}
},
"season": {
"games": 2,
"totals": {
"IP": 5.2,
"ER": 4.0,
"R": 4.0,
"H": 8.0,
"BB": 0.0,
"SO": 2.0,
"HR": 1.0,
"BF": 25.0,
"Pitches": 91.0
},
"per_game": {
"IP": 2.2,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 0.0,
"SO": 1.0,
"HR": 0.5,
"BF": 12.5,
"Pitches": 45.5
},
"rates": {
"ERA": 6.3529,
"WHIP": 1.4118,
"ER_per_IP": 0.70588,
"H_per_IP": 1.41176,
"BB_per_IP": 0.0,
"SO_per_IP": 0.35294,
"HR_per_IP": 0.17647
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 2.018,
"predicted_H": 3.962,
"predicted_BB": 1.13,
"predicted_SO": 3.121,
"predicted_HR": 0.569,
"predicted_ERA": 4.8394,
"predicted_WHIP": 1.3568
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6943,
"form_weight": 0.3057,
"form_reliability": 0.1852,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.137,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1852,
"prior_weight": 0.8148
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 3.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.018,
"final": 4.7825,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 3.962,
"final": 6.0711,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.13,
"final": 1.0397,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.121,
"final": 3.037,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.569,
"final": 0.8682,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8394,
"final": 4.8394,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3568,
"final": 1.3568,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 5.2,
"ER": 4,
"H": 8,
"BB": 0,
"SO": 2,
"HR": 1,
"ERA": 6.352941176470589,
"WHIP": 1.411764705882353,
"K9": 3.1764705882352944,
"HR9": 1.5882352941176472,
"games_pitched": 2,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 2,
"error_prone": false
},
"games_count": 2,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 1.0413315733694042,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.137,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1852,
"prior_weight": 0.8148
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.0,
"predicted_ER": 6,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683363",
"player_name": "Matt Wilkinson",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 3.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": 6.0,
"after": 6.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.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 3.0,
"predicted_R": 6.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": 6.0,
"after": 6.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": 3.0,
"after": 3.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": 6.0,
"after": 6.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.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 135,
"wins": 55,
"losses": 80,
"win_pct": 0.4074,
"runs_scored": 552.0,
"runs_allowed": 625.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5407,
"avg_runs_scored": 4.0889,
"avg_runs_allowed": 4.6296,
"offense_index": 0.9154,
"defense_index": 0.9648,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.1,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.1803
},
"opponent": {
"team": "ARI",
"games": 136,
"wins": 72,
"losses": 64,
"win_pct": 0.5294,
"runs_scored": 616.0,
"runs_allowed": 612.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0294,
"avg_runs_scored": 4.5294,
"avg_runs_allowed": 4.5,
"offense_index": 1.0141,
"defense_index": 0.9926,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 5.2,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0636
},
"edges": {
"quality_edge": -0.2439,
"offense_edge": -0.0846,
"opponent_offense_edge": 0.0141,
"defense_strength": -0.0352,
"opponent_defense_weakness": 0.0074,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9886,
"run_prevention": 1.018,
"strikeout": 0.9916
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683363",
"profile": {
"available": true,
"pitcher_id": "683363",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 7.0,
"k_percent": 8.0,
"bb_percent": 0.0,
"woba": 0.389,
"xwoba": 0.327,
"sweet_spot_percent": 26.1,
"barrel_batted_rate": 8.7,
"hard_hit_percent": 52.2,
"avg_best_speed": 78.9417,
"avg_hyper_speed": 95.0096,
"whiff_percent": 12.0,
"swing_percent": 54.9
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.7017,
"command_and_miss": -1.1032,
"regression_edge": 1.7714,
"xwoba_edge": -0.4571,
"barrel_edge": -0.3444,
"hard_hit_edge": -2.0571,
"whiff_edge": -1.8857,
"bb_edge": 2.3,
"pitch_design_score": -0.116
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683363",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 25,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 25,
"pitch_usage": 0.0,
"release_speed": 87.78399999999999,
"release_spin_rate": 2033.08,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 25,
"pitch_usage": 0.0,
"release_speed": 87.78399999999999,
"release_spin_rate": 2033.08,
"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.784,
"release_spin_rate": 2033.08,
"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.116,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.8287,
"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.2304,
"sample_weight": 0.45,
"run_prevention_factor": 1.0196,
"strikeout_factor": 0.9299,
"walk_factor": 0.9172,
"homer_factor": 1.0556,
"woba_minus_xwoba": 0.062,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "683363",
"espn_id": 5339226,
"player_name": "Matt Wilkinson",
"team": "SF",
"role": "pitcher",
"espn_rank": 567,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 567,
"gp_value": 2.0,
"gp_rank": 731,
"gs_value": 2.0,
"gs_rank": 266,
"qs_value": 0.0,
"qs_rank": 206,
"era_value": 6.3529,
"era_rank": null,
"w_value": 0.0,
"w_rank": 512,
"l_value": 1.0,
"l_rank": 406,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 5.2,
"ip_rank": 679,
"h_value": 8.0,
"h_rank": 637,
"er_value": 4.0,
"er_rank": 656,
"hr_value": 1.0,
"hr_rank": 587,
"bb_value": 0.0,
"bb_rank": 792,
"k_value": 2.0,
"k_rank": 719,
"k_per_9_value": 3.1764708,
"k_per_9_rank": 28,
"whip_value": 1.4117,
"whip_rank": null,
"war_value": -0.08,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0088,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0088,
"adjusted": 5
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9627,
"adjusted": 0
},
"predicted_HR": {
"original": 1.0,
"factor": 1.025,
"adjusted": 1
},
"predicted_SO": {
"original": 1.0,
"factor": 0.9685,
"adjusted": 1
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 7,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 17,
"Pitches": 75,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 2 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "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 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260829_ARI@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_BAL@OAK | away | Shane Baz | Shane Baz | True | 6.0 | 5.2 | -1 | 4 | 2 | -2 | 4/5 | 4/3 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.044052863436123,
"WHIP": 1.3480176211453743,
"IP": 151.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.821,
"recent_avg_IP": 5.867,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1032,
"sample_weight": 1.0,
"run_prevention_factor": 1.0088,
"strikeout_factor": 0.9786,
"walk_factor": 0.978,
"homer_factor": 1.0165,
"regression_flag": "neutral",
"k_percent": 20.9,
"bb_percent": 8.1,
"woba": 0.315,
"xwoba": 0.311,
"barrel_percent": 6.6,
"hard_hit_percent": 42.4,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 124,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669358",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 14.0,
"R": 14.0,
"H": 27.0,
"BB": 8.0,
"SO": 28.0,
"HR": 2.0,
"BF": 119.0,
"Pitches": 457.0
},
"per_game": {
"IP": 6.0,
"ER": 2.8,
"R": 2.8,
"H": 5.4,
"BB": 1.6,
"SO": 5.6,
"HR": 0.4,
"BF": 23.8,
"Pitches": 91.4
},
"rates": {
"ERA": 4.2955,
"WHIP": 1.1932,
"ER_per_IP": 0.47727,
"H_per_IP": 0.92045,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.95455,
"HR_per_IP": 0.06818
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.1,
"ER": 23.0,
"R": 27.0,
"H": 57.0,
"BB": 17.0,
"SO": 54.0,
"HR": 2.0,
"BF": 238.0,
"Pitches": 937.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3,
"R": 2.7,
"H": 5.7,
"BB": 1.7,
"SO": 5.4,
"HR": 0.2,
"BF": 23.8,
"Pitches": 93.7
},
"rates": {
"ERA": 3.6105,
"WHIP": 1.2907,
"ER_per_IP": 0.40116,
"H_per_IP": 0.99419,
"BB_per_IP": 0.29651,
"SO_per_IP": 0.94186,
"HR_per_IP": 0.03488
}
},
"season": {
"games": 26,
"totals": {
"IP": 151.1,
"ER": 68.0,
"R": 78.0,
"H": 152.0,
"BB": 52.0,
"SO": 135.0,
"HR": 11.0,
"BF": 645.0,
"Pitches": 2472.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6154,
"R": 3.0,
"H": 5.8462,
"BB": 2.0,
"SO": 5.1923,
"HR": 0.4231,
"BF": 24.8077,
"Pitches": 95.0769
},
"rates": {
"ERA": 4.0441,
"WHIP": 1.348,
"ER_per_IP": 0.44934,
"H_per_IP": 1.00441,
"BB_per_IP": 0.34361,
"SO_per_IP": 0.89207,
"HR_per_IP": 0.07269
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.653,
"predicted_H": 5.641,
"predicted_BB": 1.796,
"predicted_SO": 5.484,
"predicted_HR": 0.419,
"predicted_ERA": 4.0845,
"predicted_WHIP": 1.2722
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.653,
"final": 3.2162,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.641,
"final": 4.9548,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.796,
"final": 2.7176,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.484,
"final": 6.1179,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.419,
"final": 1.0801,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0845,
"final": 4.0845,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2722,
"final": 1.2722,
"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.1,
"ER": 23,
"H": 57,
"BB": 17,
"SO": 54,
"HR": 2,
"ERA": 3.6104651162790695,
"WHIP": 1.2906976744186045,
"K9": 8.476744186046512,
"HR9": 0.313953488372093,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.9119231477094858,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 4.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669358",
"player_name": "Shane Baz",
"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": 4.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 135,
"wins": 66,
"losses": 69,
"win_pct": 0.4889,
"runs_scored": 613.0,
"runs_allowed": 636.0,
"run_differential": -23.0,
"run_differential_per_game": -0.1704,
"avg_runs_scored": 4.5407,
"avg_runs_allowed": 4.7111,
"offense_index": 1.0137,
"defense_index": 0.9508,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.0,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0304
},
"opponent": {
"team": "OAK",
"games": 135,
"wins": 53,
"losses": 82,
"win_pct": 0.3926,
"runs_scored": 588.0,
"runs_allowed": 774.0,
"run_differential": -186.0,
"run_differential_per_game": -1.3778,
"avg_runs_scored": 4.3556,
"avg_runs_allowed": 5.7333,
"offense_index": 0.9724,
"defense_index": 0.7813,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.1,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.2955
},
"edges": {
"quality_edge": 0.2651,
"offense_edge": 0.0137,
"opponent_offense_edge": -0.0276,
"defense_strength": -0.0492,
"opponent_defense_weakness": 0.2187,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0102,
"run_prevention": 0.9872,
"strikeout": 1.0102
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669358",
"profile": {
"available": true,
"pitcher_id": "669358",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 596.0,
"k_percent": 20.9,
"bb_percent": 8.1,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 36.0,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 42.4,
"avg_best_speed": 80.8384,
"avg_hyper_speed": 94.579,
"whiff_percent": 22.6,
"swing_percent": 48.7
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1427,
"command_and_miss": -0.1489,
"regression_edge": 0.1143,
"xwoba_edge": 0.0,
"barrel_edge": 0.1222,
"hard_hit_edge": -0.6571,
"whiff_edge": -0.3714,
"bb_edge": 0.275,
"pitch_design_score": 0.0507
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669358",
"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": 90.76192251441194,
"release_spin_rate": 2407.5287280515663,
"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": 90.76192251441194,
"release_spin_rate": 2407.5287280515663,
"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.7619,
"release_spin_rate": 2407.5287,
"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.0507,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3625,
"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.1032,
"sample_weight": 1.0,
"run_prevention_factor": 1.0088,
"strikeout_factor": 0.9786,
"walk_factor": 0.978,
"homer_factor": 1.0165,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669358",
"espn_id": 39639,
"player_name": "Shane Baz",
"team": "BAL",
"role": "pitcher",
"espn_rank": 124,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 124,
"gp_value": 26.0,
"gp_rank": 252,
"gs_value": 26.0,
"gs_rank": 20,
"qs_value": 11.0,
"qs_rank": 38,
"era_value": 4.044,
"era_rank": 42.0,
"w_value": 4.0,
"w_rank": 176,
"l_value": 14.0,
"l_rank": 1,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 151.1,
"ip_rank": 15,
"h_value": 152.0,
"h_rank": 7,
"er_value": 68.0,
"er_rank": 23,
"hr_value": 11.0,
"hr_rank": 136,
"bb_value": 52.0,
"bb_rank": 21,
"k_value": 135.0,
"k_rank": 37,
"k_per_9_value": 8.028634,
"k_per_9_rank": 66,
"whip_value": 1.348,
"whip_rank": 45.0,
"war_value": 1.35,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0088,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0088,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0165,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9786,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 27,
"Pitches": 110,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260829_BAL@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_BAL@OAK | home | Jack Perkins | Jack Perkins | True | 4.0 | 5.0 | 3 | 6 | 1 | -5 | 5/4 | 3/4 | 4/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.675276752767528,
"WHIP": 1.4833948339483396,
"IP": 90.1,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 4.606,
"recent_avg_IP": 4.8,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0429,
"sample_weight": 1.0,
"run_prevention_factor": 0.9964,
"strikeout_factor": 1.0289,
"walk_factor": 1.0,
"homer_factor": 1.0263,
"regression_flag": "positive_pitcher_regression",
"k_percent": 25.3,
"bb_percent": 9.2,
"woba": 0.355,
"xwoba": 0.312,
"barrel_percent": 8.9,
"hard_hit_percent": 36.8,
"whiff_percent": 27.0
},
"espn_rank": {
"rank": 826,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.12,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7837,
"prior_weight": 0.2163
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "678022",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.0,
"ER": 18.0,
"R": 21.0,
"H": 30.0,
"BB": 11.0,
"SO": 24.0,
"HR": 6.0,
"BF": 105.0,
"Pitches": 402.0
},
"per_game": {
"IP": 4.1,
"ER": 3.6,
"R": 4.2,
"H": 6.0,
"BB": 2.2,
"SO": 4.8,
"HR": 1.2,
"BF": 21.0,
"Pitches": 80.4
},
"rates": {
"ERA": 7.3636,
"WHIP": 1.8636,
"ER_per_IP": 0.81818,
"H_per_IP": 1.36364,
"BB_per_IP": 0.5,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.27273
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 44.1,
"ER": 35.0,
"R": 38.0,
"H": 49.0,
"BB": 22.0,
"SO": 47.0,
"HR": 11.0,
"BF": 204.0,
"Pitches": 797.0
},
"per_game": {
"IP": 4.1,
"ER": 3.5,
"R": 3.8,
"H": 4.9,
"BB": 2.2,
"SO": 4.7,
"HR": 1.1,
"BF": 20.4,
"Pitches": 79.7
},
"rates": {
"ERA": 7.1053,
"WHIP": 1.6015,
"ER_per_IP": 0.78947,
"H_per_IP": 1.10526,
"BB_per_IP": 0.49624,
"SO_per_IP": 1.06015,
"HR_per_IP": 0.24812
}
},
"season": {
"games": 31,
"totals": {
"IP": 90.1,
"ER": 67.0,
"R": 72.0,
"H": 96.0,
"BB": 38.0,
"SO": 104.0,
"HR": 17.0,
"BF": 411.0,
"Pitches": 1593.0
},
"per_game": {
"IP": 3.0,
"ER": 2.1613,
"R": 2.3226,
"H": 3.0968,
"BB": 1.2258,
"SO": 3.3548,
"HR": 0.5484,
"BF": 13.2581,
"Pitches": 51.3871
},
"rates": {
"ERA": 6.6753,
"WHIP": 1.4834,
"ER_per_IP": 0.7417,
"H_per_IP": 1.06273,
"BB_per_IP": 0.42066,
"SO_per_IP": 1.15129,
"HR_per_IP": 0.18819
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.061,
"predicted_H": 4.874,
"predicted_BB": 1.923,
"predicted_SO": 4.446,
"predicted_HR": 0.946,
"predicted_ERA": 6.5645,
"predicted_WHIP": 1.6198
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4414,
"form_weight": 0.5586,
"form_reliability": 0.7837,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.12,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7837,
"prior_weight": 0.2163
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.061,
"final": 3.9168,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.874,
"final": 4.9296,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.923,
"final": 2.3984,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.446,
"final": 4.2491,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.946,
"final": 1.8526,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.5645,
"final": 6.5645,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6198,
"final": 1.6198,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.1,
"ER": 35,
"H": 49,
"BB": 22,
"SO": 47,
"HR": 11,
"ERA": 7.105263157894737,
"WHIP": 1.6015037593984964,
"K9": 9.541353383458647,
"HR9": 2.2330827067669174,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 1.3128580795157458,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 3.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.12,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7837,
"prior_weight": 0.2163
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 3
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "678022",
"player_name": "Jack Perkins",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 3.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 3.0,
"predicted_IP": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 3.0,
"predicted_IP": 4.0,
"predicted_R": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 135,
"wins": 53,
"losses": 82,
"win_pct": 0.3926,
"runs_scored": 588.0,
"runs_allowed": 774.0,
"run_differential": -186.0,
"run_differential_per_game": -1.3778,
"avg_runs_scored": 4.3556,
"avg_runs_allowed": 5.7333,
"offense_index": 0.9724,
"defense_index": 0.7813,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.1,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.2955
},
"opponent": {
"team": "BAL",
"games": 135,
"wins": 66,
"losses": 69,
"win_pct": 0.4889,
"runs_scored": 613.0,
"runs_allowed": 636.0,
"run_differential": -23.0,
"run_differential_per_game": -0.1704,
"avg_runs_scored": 4.5407,
"avg_runs_allowed": 4.7111,
"offense_index": 1.0137,
"defense_index": 0.9508,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.0,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0304
},
"edges": {
"quality_edge": -0.2651,
"offense_edge": -0.0276,
"opponent_offense_edge": 0.0137,
"defense_strength": -0.2187,
"opponent_defense_weakness": 0.0492,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9823,
"run_prevention": 1.0373,
"strikeout": 0.991
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "678022",
"profile": {
"available": true,
"pitcher_id": "678022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 379.0,
"k_percent": 25.3,
"bb_percent": 9.2,
"woba": 0.355,
"xwoba": 0.312,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 36.8,
"avg_best_speed": 78.5915,
"avg_hyper_speed": 93.5504,
"whiff_percent": 27.0,
"swing_percent": 47.9
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.2933,
"command_and_miss": 0.2989,
"regression_edge": 1.2286,
"xwoba_edge": -0.0286,
"barrel_edge": -0.3889,
"hard_hit_edge": 0.1429,
"whiff_edge": 0.2571,
"bb_edge": 0.0,
"pitch_design_score": 0.0819
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "678022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 76,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 76,
"pitch_usage": 0.0,
"release_speed": 91.31862708436176,
"release_spin_rate": 2227.278752223051,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 76,
"pitch_usage": 0.0,
"release_speed": 91.31862708436176,
"release_spin_rate": 2227.278752223051,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.3186,
"release_spin_rate": 2227.2788,
"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.0819,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5852,
"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.0429,
"sample_weight": 1.0,
"run_prevention_factor": 0.9964,
"strikeout_factor": 1.0289,
"walk_factor": 1.0,
"homer_factor": 1.0263,
"woba_minus_xwoba": 0.043,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "678022",
"espn_id": 4418686,
"player_name": "Jack Perkins",
"team": "ATH",
"role": "pitcher",
"espn_rank": 826,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 826,
"gp_value": 31.0,
"gp_rank": 201,
"gs_value": 11.0,
"gs_rank": 157,
"qs_value": 0.0,
"qs_rank": 206,
"era_value": 6.6752,
"era_rank": null,
"w_value": 3.0,
"w_rank": 231,
"l_value": 9.0,
"l_rank": 21,
"sv_value": 3.0,
"sv_rank": 65,
"hld_value": 2.0,
"hld_rank": 222,
"ip_value": 90.1,
"ip_rank": 130,
"h_value": 96.0,
"h_rank": 108,
"er_value": 67.0,
"er_rank": 25,
"hr_value": 17.0,
"hr_rank": 53,
"bb_value": 38.0,
"bb_rank": 79,
"k_value": 104.0,
"k_rank": 82,
"k_per_9_value": 10.361624,
"k_per_9_rank": 17,
"whip_value": 1.4833,
"whip_rank": null,
"war_value": -1.2,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9964,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9964,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0263,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0289,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 20,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was -5; this is the primary run-prevention error."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260829_BAL@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_BOS@NYY | away | Jake Bennett | Alec Gamboa | False | 5.2 | 1.1 | -13 | 3 | 0 | -3 | 4/1 | 4/0 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4904942965779466,
"WHIP": 1.0722433460076044,
"IP": 87.2,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 5.844,
"recent_avg_IP": 5.667,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2988,
"sample_weight": 1.0,
"run_prevention_factor": 0.9746,
"strikeout_factor": 0.9769,
"walk_factor": 0.918,
"homer_factor": 0.9538,
"regression_flag": "neutral",
"k_percent": 19.0,
"bb_percent": 5.1,
"woba": 0.269,
"xwoba": 0.282,
"barrel_percent": 6.4,
"hard_hit_percent": 36.4,
"whiff_percent": 24.2
},
"espn_rank": {
"rank": 129,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687562",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 17.0,
"R": 18.0,
"H": 29.0,
"BB": 9.0,
"SO": 25.0,
"HR": 3.0,
"BF": 123.0,
"Pitches": 430.0
},
"per_game": {
"IP": 5.2,
"ER": 3.4,
"R": 3.6,
"H": 5.8,
"BB": 1.8,
"SO": 5.0,
"HR": 0.6,
"BF": 24.6,
"Pitches": 86.0
},
"rates": {
"ERA": 5.4,
"WHIP": 1.3412,
"ER_per_IP": 0.6,
"H_per_IP": 1.02353,
"BB_per_IP": 0.31765,
"SO_per_IP": 0.88235,
"HR_per_IP": 0.10588
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.0,
"ER": 23.0,
"R": 24.0,
"H": 51.0,
"BB": 13.0,
"SO": 45.0,
"HR": 6.0,
"BF": 246.0,
"Pitches": 838.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.4,
"H": 5.1,
"BB": 1.3,
"SO": 4.5,
"HR": 0.6,
"BF": 24.6,
"Pitches": 83.8
},
"rates": {
"ERA": 3.3934,
"WHIP": 1.0492,
"ER_per_IP": 0.37705,
"H_per_IP": 0.83607,
"BB_per_IP": 0.21311,
"SO_per_IP": 0.7377,
"HR_per_IP": 0.09836
}
},
"season": {
"games": 15,
"totals": {
"IP": 87.2,
"ER": 34.0,
"R": 35.0,
"H": 76.0,
"BB": 18.0,
"SO": 67.0,
"HR": 7.0,
"BF": 352.0,
"Pitches": 1233.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2667,
"R": 2.3333,
"H": 5.0667,
"BB": 1.2,
"SO": 4.4667,
"HR": 0.4667,
"BF": 23.4667,
"Pitches": 82.2
},
"rates": {
"ERA": 3.4905,
"WHIP": 1.0722,
"ER_per_IP": 0.38783,
"H_per_IP": 0.86692,
"BB_per_IP": 0.20532,
"SO_per_IP": 0.76426,
"HR_per_IP": 0.07985
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.812,
"predicted_H": 5.448,
"predicted_BB": 1.662,
"predicted_SO": 4.882,
"predicted_HR": 0.639,
"predicted_ERA": 4.3607,
"predicted_WHIP": 1.225
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4556,
"form_weight": 0.5444,
"form_reliability": 0.75,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.812,
"final": 2.8977,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.448,
"final": 4.7883,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.662,
"final": 2.7273,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.882,
"final": 4.4801,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.639,
"final": 0.8035,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3607,
"final": 4.3607,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.225,
"final": 1.225,
"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": 23,
"H": 51,
"BB": 13,
"SO": 45,
"HR": 6,
"ERA": 3.3934426229508197,
"WHIP": 1.0491803278688525,
"K9": 6.639344262295082,
"HR9": 0.8852459016393442,
"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-23T00:00:00"
},
"recent_form_boost": 0.8814701835463139,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687562",
"player_name": "Jake Bennett",
"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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"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": 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": 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": 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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"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": 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": 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": 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": 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": 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": 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": "BOS",
"games": 134,
"wins": 73,
"losses": 61,
"win_pct": 0.5448,
"runs_scored": 600.0,
"runs_allowed": 500.0,
"run_differential": 100.0,
"run_differential_per_game": 0.7463,
"avg_runs_scored": 4.4776,
"avg_runs_allowed": 3.7313,
"offense_index": 1.0001,
"defense_index": 1.1999,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 3.2,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.1998
},
"opponent": {
"team": "NYY",
"games": 134,
"wins": 76,
"losses": 58,
"win_pct": 0.5672,
"runs_scored": 597.0,
"runs_allowed": 496.0,
"run_differential": 101.0,
"run_differential_per_game": 0.7537,
"avg_runs_scored": 4.4552,
"avg_runs_allowed": 3.7015,
"offense_index": 0.9951,
"defense_index": 1.2096,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.0,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.2197
},
"edges": {
"quality_edge": -0.0199,
"offense_edge": 0.0001,
"opponent_offense_edge": -0.0049,
"defense_strength": 0.1999,
"opponent_defense_weakness": -0.2096,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0054,
"run_prevention": 0.9802,
"strikeout": 0.9998
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687562",
"profile": {
"available": true,
"pitcher_id": "687562",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 318.0,
"k_percent": 19.0,
"bb_percent": 5.1,
"woba": 0.269,
"xwoba": 0.282,
"sweet_spot_percent": 31.8,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 36.4,
"avg_best_speed": 76.6778,
"avg_hyper_speed": 93.9508,
"whiff_percent": 24.2,
"swing_percent": 53.0
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.629,
"command_and_miss": -0.0411,
"regression_edge": -0.3714,
"xwoba_edge": 0.8286,
"barrel_edge": 0.1667,
"hard_hit_edge": 0.2,
"whiff_edge": -0.1429,
"bb_edge": 1.025,
"pitch_design_score": -0.0701
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687562",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.60453343047513,
"release_spin_rate": 2085.5376155344834,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.60453343047513,
"release_spin_rate": 2085.5376155344834,
"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.6045,
"release_spin_rate": 2085.5376,
"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.0701,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5005,
"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.2988,
"sample_weight": 1.0,
"run_prevention_factor": 0.9746,
"strikeout_factor": 0.9769,
"walk_factor": 0.918,
"homer_factor": 0.9538,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687562",
"espn_id": 4654024,
"player_name": "Jake Bennett",
"team": "BOS",
"role": "pitcher",
"espn_rank": 129,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 129,
"gp_value": 15.0,
"gp_rank": 439,
"gs_value": 15.0,
"gs_rank": 125,
"qs_value": 7.0,
"qs_rank": 73,
"era_value": 3.4904,
"era_rank": null,
"w_value": 8.0,
"w_rank": 52,
"l_value": 6.0,
"l_rank": 99,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 87.2,
"ip_rank": 133,
"h_value": 76.0,
"h_rank": 146,
"er_value": 34.0,
"er_rank": 161,
"hr_value": 7.0,
"hr_rank": 213,
"bb_value": 18.0,
"bb_rank": 307,
"k_value": 67.0,
"k_rank": 169,
"k_per_9_value": 6.878327,
"k_per_9_rank": 34,
"whip_value": 1.0722,
"whip_rank": null,
"war_value": 1.29,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9746,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9746,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.918,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9538,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9769,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"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 -13 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260829_BOS@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_BOS@NYY | home | Carlos Rodón | Max Fried | False | 5.2 | 3.2 | -6 | 3 | 1 | -2 | 4/3 | 2/1 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.147239263803681,
"WHIP": 1.214723926380368,
"IP": 54.1,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 4.939,
"recent_avg_IP": 4.667,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0298,
"sample_weight": 0.84,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0286,
"walk_factor": 1.0672,
"homer_factor": 0.9836,
"regression_flag": "negative_pitcher_regression",
"k_percent": 25.4,
"bb_percent": 13.2,
"woba": 0.275,
"xwoba": 0.309,
"barrel_percent": 6.5,
"hard_hit_percent": 36.7,
"whiff_percent": 27.8
},
"espn_rank": {
"rank": 180,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 54.1,
"season_ERA": 3.147,
"season_WHIP": 1.215,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607074",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 8.0,
"R": 11.0,
"H": 18.0,
"BB": 11.0,
"SO": 24.0,
"HR": 2.0,
"BF": 99.0,
"Pitches": 424.0
},
"per_game": {
"IP": 4.2,
"ER": 1.6,
"R": 2.2,
"H": 3.6,
"BB": 2.2,
"SO": 4.8,
"HR": 0.4,
"BF": 19.8,
"Pitches": 84.8
},
"rates": {
"ERA": 3.0857,
"WHIP": 1.2429,
"ER_per_IP": 0.34286,
"H_per_IP": 0.77143,
"BB_per_IP": 0.47143,
"SO_per_IP": 1.02857,
"HR_per_IP": 0.08571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.0,
"ER": 16.0,
"R": 20.0,
"H": 34.0,
"BB": 25.0,
"SO": 54.0,
"HR": 4.0,
"BF": 207.0,
"Pitches": 892.0
},
"per_game": {
"IP": 5.0,
"ER": 1.6,
"R": 2.0,
"H": 3.4,
"BB": 2.5,
"SO": 5.4,
"HR": 0.4,
"BF": 20.7,
"Pitches": 89.2
},
"rates": {
"ERA": 2.88,
"WHIP": 1.18,
"ER_per_IP": 0.32,
"H_per_IP": 0.68,
"BB_per_IP": 0.5,
"SO_per_IP": 1.08,
"HR_per_IP": 0.08
}
},
"season": {
"games": 11,
"totals": {
"IP": 54.1,
"ER": 19.0,
"R": 23.0,
"H": 36.0,
"BB": 30.0,
"SO": 58.0,
"HR": 4.0,
"BF": 228.0,
"Pitches": 970.0
},
"per_game": {
"IP": 5.0,
"ER": 1.7273,
"R": 2.0909,
"H": 3.2727,
"BB": 2.7273,
"SO": 5.2727,
"HR": 0.3636,
"BF": 20.7273,
"Pitches": 88.1818
},
"rates": {
"ERA": 3.1472,
"WHIP": 1.2147,
"ER_per_IP": 0.34969,
"H_per_IP": 0.66258,
"BB_per_IP": 0.55215,
"SO_per_IP": 1.06748,
"HR_per_IP": 0.07362
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.977,
"predicted_H": 4.074,
"predicted_BB": 2.336,
"predicted_SO": 5.201,
"predicted_HR": 0.518,
"predicted_ERA": 3.4852,
"predicted_WHIP": 1.2556
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.482,
"form_weight": 0.518,
"form_reliability": 0.6875,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.977,
"final": 2.9521,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.074,
"final": 4.5204,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.336,
"final": 2.174,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.201,
"final": 3.658,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.518,
"final": 1.2324,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4852,
"final": 3.4852,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2556,
"final": 1.2556,
"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": 16,
"H": 34,
"BB": 25,
"SO": 54,
"HR": 4,
"ERA": 2.8800000000000003,
"WHIP": 1.1800000000000002,
"K9": 9.72,
"HR9": 0.7200000000000001,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.8269783802676254,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607074",
"player_name": "Carlos Rod\u00f3n",
"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": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 134,
"wins": 76,
"losses": 58,
"win_pct": 0.5672,
"runs_scored": 597.0,
"runs_allowed": 496.0,
"run_differential": 101.0,
"run_differential_per_game": 0.7537,
"avg_runs_scored": 4.4552,
"avg_runs_allowed": 3.7015,
"offense_index": 0.9951,
"defense_index": 1.2096,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.0,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.2197
},
"opponent": {
"team": "BOS",
"games": 134,
"wins": 73,
"losses": 61,
"win_pct": 0.5448,
"runs_scored": 600.0,
"runs_allowed": 500.0,
"run_differential": 100.0,
"run_differential_per_game": 0.7463,
"avg_runs_scored": 4.4776,
"avg_runs_allowed": 3.7313,
"offense_index": 1.0001,
"defense_index": 1.1999,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 3.2,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.1998
},
"edges": {
"quality_edge": 0.0199,
"offense_edge": -0.0049,
"opponent_offense_edge": 0.0001,
"defense_strength": 0.2096,
"opponent_defense_weakness": -0.1999,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0071,
"run_prevention": 0.9781,
"strikeout": 1.0006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607074",
"profile": {
"available": true,
"pitcher_id": "607074",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 210.0,
"k_percent": 25.4,
"bb_percent": 13.2,
"woba": 0.275,
"xwoba": 0.309,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 36.7,
"avg_best_speed": 80.67,
"avg_hyper_speed": 93.9784,
"whiff_percent": 27.8,
"swing_percent": 47.5
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.163,
"command_and_miss": 0.1454,
"regression_edge": -0.9714,
"xwoba_edge": 0.0571,
"barrel_edge": 0.1444,
"hard_hit_edge": 0.1571,
"whiff_edge": 0.3714,
"bb_edge": -1.0,
"pitch_design_score": 0.0436
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607074",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 90.63452766848432,
"release_spin_rate": 2322.88227271101,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 90.63452766848432,
"release_spin_rate": 2322.88227271101,
"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.6345,
"release_spin_rate": 2322.8823,
"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.0436,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3115,
"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.0298,
"sample_weight": 0.84,
"run_prevention_factor": 0.9975,
"strikeout_factor": 1.0286,
"walk_factor": 1.0672,
"homer_factor": 0.9836,
"woba_minus_xwoba": -0.034,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "607074",
"espn_id": 33696,
"player_name": "Carlos Rodon",
"team": "NYY",
"role": "pitcher",
"espn_rank": 180,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 180,
"gp_value": 11.0,
"gp_rank": 493,
"gs_value": 11.0,
"gs_rank": 157,
"qs_value": 3.0,
"qs_rank": 133,
"era_value": 3.1472,
"era_rank": null,
"w_value": 4.0,
"w_rank": 176,
"l_value": 2.0,
"l_rank": 308,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 54.1,
"ip_rank": 245,
"h_value": 36.0,
"h_rank": 334,
"er_value": 19.0,
"er_rank": 308,
"hr_value": 4.0,
"hr_rank": 355,
"bb_value": 30.0,
"bb_rank": 144,
"k_value": 58.0,
"k_rank": 216,
"k_per_9_value": 9.607362,
"k_per_9_rank": 23,
"whip_value": 1.2147,
"whip_rank": null,
"war_value": 0.9,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9979,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9979,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0564,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9862,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.024,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "FALSE_CONFIRMATION",
"severity": "critical",
"title": "Confirmed flag was false assurance",
"detail": "The server marked this starter confirmed even though a different player started."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260829_BOS@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_CHW@MIN | away | Erick Fedde | Erick Fedde | True | 5.0 | 5.0 | 0 | 4 | 2 | -2 | 3/3 | 1/2 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.183098591549296,
"WHIP": 1.3859154929577466,
"IP": 118.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.806,
"recent_avg_IP": 4.667,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.401,
"sample_weight": 1.0,
"run_prevention_factor": 1.0341,
"strikeout_factor": 0.9271,
"walk_factor": 0.984,
"homer_factor": 1.0475,
"regression_flag": "neutral",
"k_percent": 16.4,
"bb_percent": 8.4,
"woba": 0.337,
"xwoba": 0.332,
"barrel_percent": 8.2,
"hard_hit_percent": 39.7,
"whiff_percent": 18.1
},
"espn_rank": {
"rank": 142,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607200",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 13.0,
"ER": 4.0,
"R": 5.0,
"H": 12.0,
"BB": 6.0,
"SO": 9.0,
"HR": 1.0,
"BF": 55.0,
"Pitches": 205.0
},
"per_game": {
"IP": 2.2,
"ER": 0.8,
"R": 1.0,
"H": 2.4,
"BB": 1.2,
"SO": 1.8,
"HR": 0.2,
"BF": 11.0,
"Pitches": 41.0
},
"rates": {
"ERA": 2.7692,
"WHIP": 1.3846,
"ER_per_IP": 0.30769,
"H_per_IP": 0.92308,
"BB_per_IP": 0.46154,
"SO_per_IP": 0.69231,
"HR_per_IP": 0.07692
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 33.1,
"ER": 14.0,
"R": 16.0,
"H": 32.0,
"BB": 9.0,
"SO": 27.0,
"HR": 7.0,
"BF": 137.0,
"Pitches": 533.0
},
"per_game": {
"IP": 3.1,
"ER": 1.4,
"R": 1.6,
"H": 3.2,
"BB": 0.9,
"SO": 2.7,
"HR": 0.7,
"BF": 13.7,
"Pitches": 53.3
},
"rates": {
"ERA": 3.78,
"WHIP": 1.23,
"ER_per_IP": 0.42,
"H_per_IP": 0.96,
"BB_per_IP": 0.27,
"SO_per_IP": 0.81,
"HR_per_IP": 0.21
}
},
"season": {
"games": 28,
"totals": {
"IP": 118.1,
"ER": 55.0,
"R": 63.0,
"H": 121.0,
"BB": 43.0,
"SO": 84.0,
"HR": 22.0,
"BF": 512.0,
"Pitches": 2008.0
},
"per_game": {
"IP": 4.1,
"ER": 1.9643,
"R": 2.25,
"H": 4.3214,
"BB": 1.5357,
"SO": 3.0,
"HR": 0.7857,
"BF": 18.2857,
"Pitches": 71.7143
},
"rates": {
"ERA": 4.1831,
"WHIP": 1.3859,
"ER_per_IP": 0.46479,
"H_per_IP": 1.02254,
"BB_per_IP": 0.36338,
"SO_per_IP": 0.70986,
"HR_per_IP": 0.18592
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.369,
"predicted_H": 3.308,
"predicted_BB": 1.291,
"predicted_SO": 2.649,
"predicted_HR": 0.502,
"predicted_ERA": 3.5708,
"predicted_WHIP": 1.3328
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.369,
"final": 2.4583,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.308,
"final": 3.1805,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.291,
"final": 1.1705,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 2.649,
"final": 4.4504,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.502,
"final": 1.1222,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5708,
"final": 3.5708,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3328,
"final": 1.3328,
"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": 33.1,
"ER": 14,
"H": 32,
"BB": 9,
"SO": 27,
"HR": 7,
"ERA": 3.78,
"WHIP": 1.23,
"K9": 7.289999999999999,
"HR9": 1.89,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.9294783802676254,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607200",
"player_name": "Erick Fedde",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 134,
"wins": 71,
"losses": 63,
"win_pct": 0.5299,
"runs_scored": 648.0,
"runs_allowed": 601.0,
"run_differential": 47.0,
"run_differential_per_game": 0.3507,
"avg_runs_scored": 4.8358,
"avg_runs_allowed": 4.4851,
"offense_index": 1.0816,
"defense_index": 0.9968,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 4.7,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.1036
},
"opponent": {
"team": "MIN",
"games": 135,
"wins": 64,
"losses": 71,
"win_pct": 0.4741,
"runs_scored": 619.0,
"runs_allowed": 678.0,
"run_differential": -59.0,
"run_differential_per_game": -0.437,
"avg_runs_scored": 4.5852,
"avg_runs_allowed": 5.0222,
"offense_index": 1.0256,
"defense_index": 0.8902,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.2,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1108
},
"edges": {
"quality_edge": 0.2144,
"offense_edge": 0.0816,
"opponent_offense_edge": 0.0256,
"defense_strength": -0.0032,
"opponent_defense_weakness": 0.1098,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0075,
"run_prevention": 0.9937,
"strikeout": 1.0044
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607200",
"profile": {
"available": true,
"pitcher_id": "607200",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 495.0,
"k_percent": 16.4,
"bb_percent": 8.4,
"woba": 0.337,
"xwoba": 0.332,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 39.7,
"avg_best_speed": 77.3874,
"avg_hyper_speed": 93.9984,
"whiff_percent": 18.1,
"swing_percent": 42.4
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4137,
"command_and_miss": -0.6782,
"regression_edge": 0.1429,
"xwoba_edge": -0.6,
"barrel_edge": -0.2333,
"hard_hit_edge": -0.2714,
"whiff_edge": -1.0143,
"bb_edge": 0.2,
"pitch_design_score": -0.0913
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607200",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 40,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 40,
"pitch_usage": 0.0,
"release_speed": 88.22606485710746,
"release_spin_rate": 2234.4724631960416,
"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": 40,
"pitch_usage": 0.0,
"release_speed": 88.22606485710746,
"release_spin_rate": 2234.4724631960416,
"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.2261,
"release_spin_rate": 2234.4725,
"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.0913,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6519,
"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.401,
"sample_weight": 1.0,
"run_prevention_factor": 1.0341,
"strikeout_factor": 0.9271,
"walk_factor": 0.984,
"homer_factor": 1.0475,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607200",
"espn_id": 33793,
"player_name": "Erick Fedde",
"team": "CHW",
"role": "pitcher",
"espn_rank": 142,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 142,
"gp_value": 28.0,
"gp_rank": 219,
"gs_value": 12.0,
"gs_rank": 150,
"qs_value": 1.0,
"qs_rank": 174,
"era_value": 4.183,
"era_rank": null,
"w_value": 6.0,
"w_rank": 94,
"l_value": 8.0,
"l_rank": 41,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 118.1,
"ip_rank": 85,
"h_value": 121.0,
"h_rank": 62,
"er_value": 55.0,
"er_rank": 69,
"hr_value": 22.0,
"hr_rank": 18,
"bb_value": 43.0,
"bb_rank": 55,
"k_value": 84.0,
"k_rank": 128,
"k_per_9_value": 6.3887324,
"k_per_9_rank": 40,
"whip_value": 1.3859,
"whip_rank": null,
"war_value": 1.18,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0341,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0341,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.984,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0475,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9271,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260829_CHW@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_CHW@MIN | home | Bailey Ober | Bailey Ober | True | 5.1 | 5.0 | -1 | 5 | 1 | -4 | 6/2 | 1/2 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.486153846153846,
"WHIP": 1.2553846153846155,
"IP": 108.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.417,
"recent_avg_IP": 5.467,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3832,
"sample_weight": 1.0,
"run_prevention_factor": 1.0326,
"strikeout_factor": 0.9369,
"walk_factor": 0.942,
"homer_factor": 1.0683,
"regression_flag": "neutral",
"k_percent": 16.2,
"bb_percent": 6.3,
"woba": 0.323,
"xwoba": 0.334,
"barrel_percent": 10.3,
"hard_hit_percent": 36.5,
"whiff_percent": 20.0
},
"espn_rank": {
"rank": 110,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641927",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 13.0,
"R": 14.0,
"H": 28.0,
"BB": 7.0,
"SO": 14.0,
"HR": 5.0,
"BF": 115.0,
"Pitches": 434.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.8,
"H": 5.6,
"BB": 1.4,
"SO": 2.8,
"HR": 1.0,
"BF": 23.0,
"Pitches": 86.8
},
"rates": {
"ERA": 4.2805,
"WHIP": 1.2805,
"ER_per_IP": 0.47561,
"H_per_IP": 1.02439,
"BB_per_IP": 0.2561,
"SO_per_IP": 0.5122,
"HR_per_IP": 0.18293
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 31.0,
"R": 33.0,
"H": 63.0,
"BB": 12.0,
"SO": 34.0,
"HR": 11.0,
"BF": 225.0,
"Pitches": 864.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1,
"R": 3.3,
"H": 6.3,
"BB": 1.2,
"SO": 3.4,
"HR": 1.1,
"BF": 22.5,
"Pitches": 86.4
},
"rates": {
"ERA": 5.4351,
"WHIP": 1.461,
"ER_per_IP": 0.6039,
"H_per_IP": 1.22727,
"BB_per_IP": 0.23377,
"SO_per_IP": 0.66234,
"HR_per_IP": 0.21429
}
},
"season": {
"games": 20,
"totals": {
"IP": 108.1,
"ER": 54.0,
"R": 57.0,
"H": 107.0,
"BB": 29.0,
"SO": 74.0,
"HR": 18.0,
"BF": 457.0,
"Pitches": 1717.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.85,
"H": 5.35,
"BB": 1.45,
"SO": 3.7,
"HR": 0.9,
"BF": 22.85,
"Pitches": 85.85
},
"rates": {
"ERA": 4.4862,
"WHIP": 1.2554,
"ER_per_IP": 0.49846,
"H_per_IP": 0.98769,
"BB_per_IP": 0.26769,
"SO_per_IP": 0.68308,
"HR_per_IP": 0.16615
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.725,
"predicted_H": 5.583,
"predicted_BB": 1.438,
"predicted_SO": 3.496,
"predicted_HR": 0.952,
"predicted_ERA": 4.6797,
"predicted_WHIP": 1.3398
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.725,
"final": 3.7135,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.583,
"final": 5.7642,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.438,
"final": 1.2477,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.496,
"final": 3.2805,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.952,
"final": 0.5384,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6797,
"final": 4.6797,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3398,
"final": 1.3398,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.1,
"ER": 31,
"H": 63,
"BB": 12,
"SO": 34,
"HR": 11,
"ERA": 5.435064935064935,
"WHIP": 1.4610389610389611,
"K9": 5.961038961038962,
"HR9": 1.9285714285714288,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 1.1214491594884046,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641927",
"player_name": "Bailey Ober",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 135,
"wins": 64,
"losses": 71,
"win_pct": 0.4741,
"runs_scored": 619.0,
"runs_allowed": 678.0,
"run_differential": -59.0,
"run_differential_per_game": -0.437,
"avg_runs_scored": 4.5852,
"avg_runs_allowed": 5.0222,
"offense_index": 1.0256,
"defense_index": 0.8902,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.2,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1108
},
"opponent": {
"team": "CHW",
"games": 134,
"wins": 71,
"losses": 63,
"win_pct": 0.5299,
"runs_scored": 648.0,
"runs_allowed": 601.0,
"run_differential": 47.0,
"run_differential_per_game": 0.3507,
"avg_runs_scored": 4.8358,
"avg_runs_allowed": 4.4851,
"offense_index": 1.0816,
"defense_index": 0.9968,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 4.7,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.1036
},
"edges": {
"quality_edge": -0.2144,
"offense_edge": 0.0256,
"opponent_offense_edge": 0.0816,
"defense_strength": -0.1098,
"opponent_defense_weakness": 0.0032,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9849,
"run_prevention": 1.0348,
"strikeout": 0.987
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641927",
"profile": {
"available": true,
"pitcher_id": "641927",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 434.0,
"k_percent": 16.2,
"bb_percent": 6.3,
"woba": 0.323,
"xwoba": 0.334,
"sweet_spot_percent": 30.8,
"barrel_batted_rate": 10.3,
"hard_hit_percent": 36.5,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9829,
"whiff_percent": 20.0,
"swing_percent": 48.9
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.3602,
"command_and_miss": -0.4911,
"regression_edge": -0.3143,
"xwoba_edge": -0.6571,
"barrel_edge": -0.7,
"hard_hit_edge": 0.1857,
"whiff_edge": -0.7429,
"bb_edge": 0.725,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641927",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 83.58329722592109,
"release_spin_rate": 2149.382968074179,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 83.58329722592109,
"release_spin_rate": 2149.382968074179,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 83.5833,
"release_spin_rate": 2149.383,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3832,
"sample_weight": 1.0,
"run_prevention_factor": 1.0326,
"strikeout_factor": 0.9369,
"walk_factor": 0.942,
"homer_factor": 1.0683,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641927",
"espn_id": 3107919,
"player_name": "Bailey Ober",
"team": "MIN",
"role": "pitcher",
"espn_rank": 110,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 110,
"gp_value": 20.0,
"gp_rank": 370,
"gs_value": 20.0,
"gs_rank": 92,
"qs_value": 6.0,
"qs_rank": 84,
"era_value": 4.4861,
"era_rank": null,
"w_value": 7.0,
"w_rank": 75,
"l_value": 4.0,
"l_rank": 166,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 108.1,
"ip_rank": 100,
"h_value": 107.0,
"h_rank": 89,
"er_value": 54.0,
"er_rank": 75,
"hr_value": 18.0,
"hr_rank": 41,
"bb_value": 29.0,
"bb_rank": 156,
"k_value": 74.0,
"k_rank": 155,
"k_per_9_value": 6.147692,
"k_per_9_rank": 41,
"whip_value": 1.2553,
"whip_rank": null,
"war_value": 1.48,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0326,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0326,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.942,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0683,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9369,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260829_CHW@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_CIN@CHC | away | Andrew Abbott | Andrew Abbott | True | 5.0 | 3.0 | -6 | 3 | 7 | 4 | 8/8 | 1/2 | 2/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.149082568807339,
"WHIP": 1.403669724770642,
"IP": 145.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.383,
"recent_avg_IP": 5.667,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.345,
"sample_weight": 1.0,
"run_prevention_factor": 1.0293,
"strikeout_factor": 0.9631,
"walk_factor": 1.032,
"homer_factor": 1.0307,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 10.8,
"woba": 0.319,
"xwoba": 0.332,
"barrel_percent": 7.8,
"hard_hit_percent": 38.0,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 55,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "671096",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 17.0,
"R": 17.0,
"H": 28.0,
"BB": 14.0,
"SO": 20.0,
"HR": 1.0,
"BF": 125.0,
"Pitches": 465.0
},
"per_game": {
"IP": 5.2,
"ER": 3.4,
"R": 3.4,
"H": 5.6,
"BB": 2.8,
"SO": 4.0,
"HR": 0.2,
"BF": 25.0,
"Pitches": 93.0
},
"rates": {
"ERA": 5.4,
"WHIP": 1.4824,
"ER_per_IP": 0.6,
"H_per_IP": 0.98824,
"BB_per_IP": 0.49412,
"SO_per_IP": 0.70588,
"HR_per_IP": 0.03529
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 28.0,
"R": 29.0,
"H": 49.0,
"BB": 28.0,
"SO": 44.0,
"HR": 3.0,
"BF": 240.0,
"Pitches": 935.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.9,
"H": 4.9,
"BB": 2.8,
"SO": 4.4,
"HR": 0.3,
"BF": 24.0,
"Pitches": 93.5
},
"rates": {
"ERA": 4.5542,
"WHIP": 1.3916,
"ER_per_IP": 0.50602,
"H_per_IP": 0.88554,
"BB_per_IP": 0.50602,
"SO_per_IP": 0.79518,
"HR_per_IP": 0.05422
}
},
"season": {
"games": 27,
"totals": {
"IP": 145.1,
"ER": 67.0,
"R": 71.0,
"H": 136.0,
"BB": 68.0,
"SO": 114.0,
"HR": 18.0,
"BF": 630.0,
"Pitches": 2502.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4815,
"R": 2.6296,
"H": 5.037,
"BB": 2.5185,
"SO": 4.2222,
"HR": 0.6667,
"BF": 23.3333,
"Pitches": 92.6667
},
"rates": {
"ERA": 4.1491,
"WHIP": 1.4037,
"ER_per_IP": 0.46101,
"H_per_IP": 0.93578,
"BB_per_IP": 0.46789,
"SO_per_IP": 0.7844,
"HR_per_IP": 0.12385
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.991,
"predicted_H": 5.313,
"predicted_BB": 2.658,
"predicted_SO": 4.388,
"predicted_HR": 0.41,
"predicted_ERA": 4.7978,
"predicted_WHIP": 1.4207
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.991,
"final": 2.9947,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.313,
"final": 6.4308,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.658,
"final": 1.9683,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.388,
"final": 3.3946,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.41,
"final": 0.2394,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7978,
"final": 4.7978,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4207,
"final": 1.4207,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.1,
"ER": 28,
"H": 49,
"BB": 28,
"SO": 44,
"HR": 3,
"ERA": 4.55421686746988,
"WHIP": 1.3915662650602412,
"K9": 7.156626506024097,
"HR9": 0.4879518072289157,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 1.0206169344844929,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "671096",
"player_name": "Andrew Abbott",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 135,
"wins": 64,
"losses": 71,
"win_pct": 0.4741,
"runs_scored": 558.0,
"runs_allowed": 656.0,
"run_differential": -98.0,
"run_differential_per_game": -0.7259,
"avg_runs_scored": 4.1333,
"avg_runs_allowed": 4.8593,
"offense_index": 0.9245,
"defense_index": 0.9201,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 6.1,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1463
},
"opponent": {
"team": "CHC",
"games": 135,
"wins": 76,
"losses": 59,
"win_pct": 0.563,
"runs_scored": 703.0,
"runs_allowed": 586.0,
"run_differential": 117.0,
"run_differential_per_game": 0.8667,
"avg_runs_scored": 5.2074,
"avg_runs_allowed": 4.3407,
"offense_index": 1.1647,
"defense_index": 1.03,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 4.1,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.1252
},
"edges": {
"quality_edge": -0.2715,
"offense_edge": -0.0755,
"opponent_offense_edge": 0.1647,
"defense_strength": -0.0799,
"opponent_defense_weakness": -0.03,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9802,
"run_prevention": 1.0479,
"strikeout": 0.9787
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "671096",
"profile": {
"available": true,
"pitcher_id": "671096",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 571.0,
"k_percent": 18.1,
"bb_percent": 10.8,
"woba": 0.319,
"xwoba": 0.332,
"sweet_spot_percent": 32.7,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 38.0,
"avg_best_speed": 79.373,
"avg_hyper_speed": 94.0334,
"whiff_percent": 22.7,
"swing_percent": 46.4
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.3163,
"command_and_miss": -0.4589,
"regression_edge": -0.3714,
"xwoba_edge": -0.6,
"barrel_edge": -0.1444,
"hard_hit_edge": -0.0286,
"whiff_edge": -0.3571,
"bb_edge": -0.4,
"pitch_design_score": -0.1425
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671096",
"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": 87.31119791616489,
"release_spin_rate": 2448.5271060794216,
"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": 87.31119791616489,
"release_spin_rate": 2448.5271060794216,
"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.3112,
"release_spin_rate": 2448.5271,
"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.1425,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0178,
"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.345,
"sample_weight": 1.0,
"run_prevention_factor": 1.0293,
"strikeout_factor": 0.9631,
"walk_factor": 1.032,
"homer_factor": 1.0307,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "671096",
"espn_id": 4414528,
"player_name": "Andrew Abbott",
"team": "CIN",
"role": "pitcher",
"espn_rank": 55,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 55,
"gp_value": 27.0,
"gp_rank": 228,
"gs_value": 27.0,
"gs_rank": 7,
"qs_value": 11.0,
"qs_rank": 38,
"era_value": 4.149,
"era_rank": 43.0,
"w_value": 6.0,
"w_rank": 94,
"l_value": 9.0,
"l_rank": 21,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 145.1,
"ip_rank": 30,
"h_value": 136.0,
"h_rank": 25,
"er_value": 67.0,
"er_rank": 25,
"hr_value": 18.0,
"hr_rank": 41,
"bb_value": 68.0,
"bb_rank": 3,
"k_value": 114.0,
"k_rank": 68,
"k_per_9_value": 7.0596333,
"k_per_9_rank": 61,
"whip_value": 1.4036,
"whip_rank": 48.0,
"war_value": 2.27,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0293,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0293,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.032,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0307,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9631,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was +4; this is the primary run-prevention error."
},
{
"code": "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 +3."
}
],
"provenance": {
"prediction": "output/games/20260829_CIN@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_CIN@CHC | home | Kevin Gausman | Kevin Gausman | True | 5.2 | 5.0 | -2 | 2 | 5 | 3 | 3/6 | 3/2 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.370288248337029,
"WHIP": 1.2638580931263856,
"IP": 150.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.568,
"recent_avg_IP": 5.733,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1671,
"sample_weight": 1.0,
"run_prevention_factor": 0.9858,
"strikeout_factor": 1.0191,
"walk_factor": 0.946,
"homer_factor": 0.9976,
"regression_flag": "neutral",
"k_percent": 23.5,
"bb_percent": 6.5,
"woba": 0.309,
"xwoba": 0.304,
"barrel_percent": 7.0,
"hard_hit_percent": 38.9,
"whiff_percent": 27.1
},
"espn_rank": {
"rank": 123,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592332",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 12.0,
"R": 12.0,
"H": 30.0,
"BB": 6.0,
"SO": 26.0,
"HR": 3.0,
"BF": 118.0,
"Pitches": 463.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.4,
"H": 6.0,
"BB": 1.2,
"SO": 5.2,
"HR": 0.6,
"BF": 23.6,
"Pitches": 92.6
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.2558,
"ER_per_IP": 0.4186,
"H_per_IP": 1.04651,
"BB_per_IP": 0.2093,
"SO_per_IP": 0.90698,
"HR_per_IP": 0.10465
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 27.0,
"R": 31.0,
"H": 58.0,
"BB": 19.0,
"SO": 56.0,
"HR": 4.0,
"BF": 239.0,
"Pitches": 942.0
},
"per_game": {
"IP": 5.2,
"ER": 2.7,
"R": 3.1,
"H": 5.8,
"BB": 1.9,
"SO": 5.6,
"HR": 0.4,
"BF": 23.9,
"Pitches": 94.2
},
"rates": {
"ERA": 4.3916,
"WHIP": 1.3916,
"ER_per_IP": 0.48795,
"H_per_IP": 1.04819,
"BB_per_IP": 0.34337,
"SO_per_IP": 1.01205,
"HR_per_IP": 0.07229
}
},
"season": {
"games": 27,
"totals": {
"IP": 150.1,
"ER": 73.0,
"R": 79.0,
"H": 149.0,
"BB": 41.0,
"SO": 149.0,
"HR": 18.0,
"BF": 633.0,
"Pitches": 2509.0
},
"per_game": {
"IP": 5.2,
"ER": 2.7037,
"R": 2.9259,
"H": 5.5185,
"BB": 1.5185,
"SO": 5.5185,
"HR": 0.6667,
"BF": 23.4444,
"Pitches": 92.9259
},
"rates": {
"ERA": 4.3703,
"WHIP": 1.2639,
"ER_per_IP": 0.48559,
"H_per_IP": 0.99113,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.99113,
"HR_per_IP": 0.11973
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.624,
"predicted_H": 5.816,
"predicted_BB": 1.613,
"predicted_SO": 5.425,
"predicted_HR": 0.59,
"predicted_ERA": 4.1672,
"predicted_WHIP": 1.3111
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.624,
"final": 2.3644,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.816,
"final": 4.6446,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.613,
"final": 2.19,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.425,
"final": 4.8322,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.59,
"final": 1.1766,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1672,
"final": 4.1672,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3111,
"final": 1.3111,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.1,
"ER": 27,
"H": 58,
"BB": 19,
"SO": 56,
"HR": 4,
"ERA": 4.3915662650602405,
"WHIP": 1.391566265060241,
"K9": 9.108433734939759,
"HR9": 0.6506024096385542,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-24T00:00:00"
},
"recent_form_boost": 1.0023187417134083,
"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": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592332",
"player_name": "Kevin Gausman",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 135,
"wins": 76,
"losses": 59,
"win_pct": 0.563,
"runs_scored": 703.0,
"runs_allowed": 586.0,
"run_differential": 117.0,
"run_differential_per_game": 0.8667,
"avg_runs_scored": 5.2074,
"avg_runs_allowed": 4.3407,
"offense_index": 1.1647,
"defense_index": 1.03,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 4.1,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.1252
},
"opponent": {
"team": "CIN",
"games": 135,
"wins": 64,
"losses": 71,
"win_pct": 0.4741,
"runs_scored": 558.0,
"runs_allowed": 656.0,
"run_differential": -98.0,
"run_differential_per_game": -0.7259,
"avg_runs_scored": 4.1333,
"avg_runs_allowed": 4.8593,
"offense_index": 0.9245,
"defense_index": 0.9201,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 6.1,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1463
},
"edges": {
"quality_edge": 0.2715,
"offense_edge": 0.1647,
"opponent_offense_edge": -0.0755,
"defense_strength": 0.03,
"opponent_defense_weakness": 0.0799,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0148,
"run_prevention": 0.9713,
"strikeout": 1.0142
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592332",
"profile": {
"available": true,
"pitcher_id": "592332",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 601.0,
"k_percent": 23.5,
"bb_percent": 6.5,
"woba": 0.309,
"xwoba": 0.304,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 38.9,
"avg_best_speed": 76.3473,
"avg_hyper_speed": 94.3527,
"whiff_percent": 27.1,
"swing_percent": 49.9
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.1288,
"command_and_miss": 0.3232,
"regression_edge": 0.1429,
"xwoba_edge": 0.2,
"barrel_edge": 0.0333,
"hard_hit_edge": -0.1571,
"whiff_edge": 0.2714,
"bb_edge": 0.675,
"pitch_design_score": -0.0416
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592332",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.11256087645637,
"release_spin_rate": 1999.5502813601959,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.11256087645637,
"release_spin_rate": 1999.5502813601959,
"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.1126,
"release_spin_rate": 1999.5503,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0416,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2973,
"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.1671,
"sample_weight": 1.0,
"run_prevention_factor": 0.9858,
"strikeout_factor": 1.0191,
"walk_factor": 0.946,
"homer_factor": 0.9976,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "592332",
"espn_id": 32667,
"player_name": "Kevin Gausman",
"team": "CHC",
"role": "pitcher",
"espn_rank": 123,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 123,
"gp_value": 27.0,
"gp_rank": 228,
"gs_value": 27.0,
"gs_rank": 7,
"qs_value": 13.0,
"qs_rank": 22,
"era_value": 4.3702,
"era_rank": 47.0,
"w_value": 7.0,
"w_rank": 75,
"l_value": 11.0,
"l_rank": 9,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 150.1,
"ip_rank": 17,
"h_value": 149.0,
"h_rank": 10,
"er_value": 73.0,
"er_rank": 10,
"hr_value": 18.0,
"hr_rank": 41,
"bb_value": 41.0,
"bb_rank": 68,
"k_value": 149.0,
"k_rank": 23,
"k_per_9_value": 8.920177,
"k_per_9_rank": 36,
"whip_value": 1.2638,
"whip_rank": 38.0,
"war_value": 1.36,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9858,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9858,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.946,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9976,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0191,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260829_CIN@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_COL@ATL | away | Zach Agnos | Zach Agnos | True | 4.1 | 2.2 | -5 | 4 | 0 | -4 | 6/2 | 0/1 | 3/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.684210526315789,
"WHIP": 1.4342105263157894,
"IP": 76.0,
"games_started": null,
"games_pitched": 34,
"role_avg_IP": 4.0,
"recent_avg_IP": 4.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5576,
"sample_weight": 1.0,
"run_prevention_factor": 1.0474,
"strikeout_factor": 0.9386,
"walk_factor": 0.972,
"homer_factor": 1.0693,
"regression_flag": "neutral",
"k_percent": 15.2,
"bb_percent": 7.8,
"woba": 0.344,
"xwoba": 0.349,
"barrel_percent": 7.9,
"hard_hit_percent": 41.9,
"whiff_percent": 21.3
},
"espn_rank": {
"rank": 470,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.245,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.753,
"prior_weight": 0.247
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "688642",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 34,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 10.1,
"ER": 4.0,
"R": 4.0,
"H": 9.0,
"BB": 2.0,
"SO": 9.0,
"HR": 1.0,
"BF": 42.0,
"Pitches": 168.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8,
"R": 0.8,
"H": 1.8,
"BB": 0.4,
"SO": 1.8,
"HR": 0.2,
"BF": 8.4,
"Pitches": 33.6
},
"rates": {
"ERA": 3.4839,
"WHIP": 1.0645,
"ER_per_IP": 0.3871,
"H_per_IP": 0.87097,
"BB_per_IP": 0.19355,
"SO_per_IP": 0.87097,
"HR_per_IP": 0.09677
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 19.2,
"ER": 6.0,
"R": 7.0,
"H": 18.0,
"BB": 3.0,
"SO": 13.0,
"HR": 1.0,
"BF": 80.0,
"Pitches": 294.0
},
"per_game": {
"IP": 2.0,
"ER": 0.6,
"R": 0.7,
"H": 1.8,
"BB": 0.3,
"SO": 1.3,
"HR": 0.1,
"BF": 8.0,
"Pitches": 29.4
},
"rates": {
"ERA": 2.7458,
"WHIP": 1.0678,
"ER_per_IP": 0.30508,
"H_per_IP": 0.91525,
"BB_per_IP": 0.15254,
"SO_per_IP": 0.66102,
"HR_per_IP": 0.05085
}
},
"season": {
"games": 34,
"totals": {
"IP": 76.0,
"ER": 48.0,
"R": 52.0,
"H": 83.0,
"BB": 26.0,
"SO": 51.0,
"HR": 9.0,
"BF": 335.0,
"Pitches": 1240.0
},
"per_game": {
"IP": 2.1,
"ER": 1.4118,
"R": 1.5294,
"H": 2.4412,
"BB": 0.7647,
"SO": 1.5,
"HR": 0.2647,
"BF": 9.8529,
"Pitches": 36.4706
},
"rates": {
"ERA": 5.6842,
"WHIP": 1.4342,
"ER_per_IP": 0.63158,
"H_per_IP": 1.09211,
"BB_per_IP": 0.34211,
"SO_per_IP": 0.67105,
"HR_per_IP": 0.11842
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.165,
"predicted_H": 2.551,
"predicted_BB": 0.673,
"predicted_SO": 2.174,
"predicted_HR": 0.271,
"predicted_ERA": 3.8706,
"predicted_WHIP": 1.1902
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4544,
"form_weight": 0.5456,
"form_reliability": 0.753,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.245,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.753,
"prior_weight": 0.247
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 2.2,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.165,
"final": 2.4531,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 2.551,
"final": 4.1181,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.673,
"final": 0.3672,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 2.174,
"final": 2.5493,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.271,
"final": 1.0566,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8706,
"final": 3.8706,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1902,
"final": 1.1902,
"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.2,
"ER": 6,
"H": 18,
"BB": 3,
"SO": 13,
"HR": 1,
"ERA": 2.7457627118644066,
"WHIP": 1.0677966101694916,
"K9": 5.949152542372881,
"HR9": 0.45762711864406774,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 0.8774481010950447,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.245,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.753,
"prior_weight": 0.247
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "688642",
"player_name": "Zach Agnos",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_R": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 135,
"wins": 52,
"losses": 83,
"win_pct": 0.3852,
"runs_scored": 641.0,
"runs_allowed": 781.0,
"run_differential": -140.0,
"run_differential_per_game": -1.037,
"avg_runs_scored": 4.7481,
"avg_runs_allowed": 5.7852,
"offense_index": 1.063,
"defense_index": 0.7721,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 6.1,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.3303
},
"opponent": {
"team": "ATL",
"games": 135,
"wins": 80,
"losses": 55,
"win_pct": 0.5926,
"runs_scored": 631.0,
"runs_allowed": 516.0,
"run_differential": 115.0,
"run_differential_per_game": 0.8519,
"avg_runs_scored": 4.6741,
"avg_runs_allowed": 3.8222,
"offense_index": 1.0465,
"defense_index": 1.1686,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.0,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.2186
},
"edges": {
"quality_edge": -0.5489,
"offense_edge": 0.063,
"opponent_offense_edge": 0.0465,
"defense_strength": -0.2279,
"opponent_defense_weakness": -0.1686,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9693,
"run_prevention": 1.0577,
"strikeout": 0.9798
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "688642",
"profile": {
"available": true,
"pitcher_id": "688642",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 311.0,
"k_percent": 15.2,
"bb_percent": 7.8,
"woba": 0.344,
"xwoba": 0.349,
"sweet_spot_percent": 39.1,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 41.9,
"avg_best_speed": 77.6963,
"avg_hyper_speed": 94.2416,
"whiff_percent": 21.3,
"swing_percent": 51.0
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.7109,
"command_and_miss": -0.5654,
"regression_edge": -0.1429,
"xwoba_edge": -1.0857,
"barrel_edge": -0.1667,
"hard_hit_edge": -0.5857,
"whiff_edge": -0.5571,
"bb_edge": 0.35,
"pitch_design_score": 0.0231
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "688642",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 30,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 30,
"pitch_usage": 0.0,
"release_speed": 90.26854448691294,
"release_spin_rate": 2266.8061856503546,
"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": 30,
"pitch_usage": 0.0,
"release_speed": 90.26854448691294,
"release_spin_rate": 2266.8061856503546,
"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.2685,
"release_spin_rate": 2266.8062,
"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.0231,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1651,
"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.5576,
"sample_weight": 1.0,
"run_prevention_factor": 1.0474,
"strikeout_factor": 0.9386,
"walk_factor": 0.972,
"homer_factor": 1.0693,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "688642",
"espn_id": 5207459,
"player_name": "Zach Agnos",
"team": "COL",
"role": "pitcher",
"espn_rank": 470,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 470,
"gp_value": 34.0,
"gp_rank": 186,
"gs_value": 2.0,
"gs_rank": 266,
"qs_value": 0.0,
"qs_rank": 206,
"era_value": 5.6842,
"era_rank": null,
"w_value": 0.0,
"w_rank": 512,
"l_value": 2.0,
"l_rank": 308,
"sv_value": 2.0,
"sv_rank": 84,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 76.0,
"ip_rank": 155,
"h_value": 83.0,
"h_rank": 128,
"er_value": 48.0,
"er_rank": 101,
"hr_value": 9.0,
"hr_rank": 164,
"bb_value": 26.0,
"bb_rank": 189,
"k_value": 51.0,
"k_rank": 263,
"k_per_9_value": 6.0394735,
"k_per_9_rank": 45,
"whip_value": 1.4342,
"whip_rank": null,
"war_value": 0.01,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0474,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 1.0474,
"adjusted": 2
},
"predicted_BB": {
"original": 2.0,
"factor": 0.972,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0693,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9386,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 81,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260829_COL@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_COL@ATL | home | Martín Pérez | Martín Pérez | True | 5.2 | 5.2 | 0 | 0 | 1 | 1 | 1/5 | 2/2 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.121387283236994,
"WHIP": 1.2138728323699421,
"IP": 115.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.048,
"recent_avg_IP": 5.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2042,
"sample_weight": 1.0,
"run_prevention_factor": 1.0174,
"strikeout_factor": 0.9551,
"walk_factor": 1.018,
"homer_factor": 0.9743,
"regression_flag": "negative_pitcher_regression",
"k_percent": 17.9,
"bb_percent": 10.1,
"woba": 0.294,
"xwoba": 0.324,
"barrel_percent": 5.3,
"hard_hit_percent": 37.1,
"whiff_percent": 21.5
},
"espn_rank": {
"rank": 51,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 115.1,
"season_ERA": 3.121,
"season_WHIP": 1.214,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "527048",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 5.0,
"R": 8.0,
"H": 18.0,
"BB": 11.0,
"SO": 16.0,
"HR": 1.0,
"BF": 102.0,
"Pitches": 374.0
},
"per_game": {
"IP": 5.0,
"ER": 1.0,
"R": 1.6,
"H": 3.6,
"BB": 2.2,
"SO": 3.2,
"HR": 0.2,
"BF": 20.4,
"Pitches": 74.8
},
"rates": {
"ERA": 1.8,
"WHIP": 1.16,
"ER_per_IP": 0.2,
"H_per_IP": 0.72,
"BB_per_IP": 0.44,
"SO_per_IP": 0.64,
"HR_per_IP": 0.04
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.1,
"ER": 19.0,
"R": 23.0,
"H": 42.0,
"BB": 25.0,
"SO": 29.0,
"HR": 6.0,
"BF": 205.0,
"Pitches": 780.0
},
"per_game": {
"IP": 4.2,
"ER": 1.9,
"R": 2.3,
"H": 4.2,
"BB": 2.5,
"SO": 2.9,
"HR": 0.6,
"BF": 20.5,
"Pitches": 78.0
},
"rates": {
"ERA": 3.6127,
"WHIP": 1.4155,
"ER_per_IP": 0.40141,
"H_per_IP": 0.88732,
"BB_per_IP": 0.52817,
"SO_per_IP": 0.61268,
"HR_per_IP": 0.12676
}
},
"season": {
"games": 25,
"totals": {
"IP": 115.1,
"ER": 40.0,
"R": 44.0,
"H": 92.0,
"BB": 48.0,
"SO": 85.0,
"HR": 12.0,
"BF": 475.0,
"Pitches": 1818.0
},
"per_game": {
"IP": 4.2,
"ER": 1.6,
"R": 1.76,
"H": 3.68,
"BB": 1.92,
"SO": 3.4,
"HR": 0.48,
"BF": 19.0,
"Pitches": 72.72
},
"rates": {
"ERA": 3.1214,
"WHIP": 1.2139,
"ER_per_IP": 0.34682,
"H_per_IP": 0.79769,
"BB_per_IP": 0.41618,
"SO_per_IP": 0.73699,
"HR_per_IP": 0.10405
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.652,
"predicted_H": 4.087,
"predicted_BB": 2.231,
"predicted_SO": 3.462,
"predicted_HR": 0.464,
"predicted_ERA": 2.9982,
"predicted_WHIP": 1.2742
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.652,
"final": 0.9574,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.087,
"final": 2.7891,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.231,
"final": 2.1339,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.462,
"final": 4.1086,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.464,
"final": 0.2689,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9982,
"final": 2.9982,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2742,
"final": 1.2742,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.1,
"ER": 19,
"H": 42,
"BB": 25,
"SO": 29,
"HR": 6,
"ERA": 3.6126760563380285,
"WHIP": 1.415492957746479,
"K9": 5.514084507042254,
"HR9": 1.1408450704225352,
"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-22T00:00:00"
},
"recent_form_boost": 0.9152917605493156,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 0,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "527048",
"player_name": "Mart\u00edn P\u00e9rez",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 1.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": "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": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": "ATL",
"games": 135,
"wins": 80,
"losses": 55,
"win_pct": 0.5926,
"runs_scored": 631.0,
"runs_allowed": 516.0,
"run_differential": 115.0,
"run_differential_per_game": 0.8519,
"avg_runs_scored": 4.6741,
"avg_runs_allowed": 3.8222,
"offense_index": 1.0465,
"defense_index": 1.1686,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.0,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.2186
},
"opponent": {
"team": "COL",
"games": 135,
"wins": 52,
"losses": 83,
"win_pct": 0.3852,
"runs_scored": 641.0,
"runs_allowed": 781.0,
"run_differential": -140.0,
"run_differential_per_game": -1.037,
"avg_runs_scored": 4.7481,
"avg_runs_allowed": 5.7852,
"offense_index": 1.063,
"defense_index": 0.7721,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 6.1,
"run_differential": -21.0
},
"available": true,
"quality_score": -0.3303
},
"edges": {
"quality_edge": 0.5489,
"offense_edge": 0.0465,
"opponent_offense_edge": 0.063,
"defense_strength": 0.1686,
"opponent_defense_weakness": 0.2279,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0245,
"run_prevention": 0.9658,
"strikeout": 1.0114
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "527048",
"profile": {
"available": true,
"pitcher_id": "527048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 452.0,
"k_percent": 17.9,
"bb_percent": 10.1,
"woba": 0.294,
"xwoba": 0.324,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 37.1,
"avg_best_speed": 75.9186,
"avg_hyper_speed": 93.8835,
"whiff_percent": 21.5,
"swing_percent": 42.7
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0564,
"command_and_miss": -0.4968,
"regression_edge": -0.8571,
"xwoba_edge": -0.3714,
"barrel_edge": 0.4111,
"hard_hit_edge": 0.1,
"whiff_edge": -0.5286,
"bb_edge": -0.225,
"pitch_design_score": -0.2611
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "527048",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 72,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 85.19235523869571,
"release_spin_rate": 1970.9370569367027,
"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": 72,
"pitch_usage": 0.0,
"release_speed": 85.19235523869571,
"release_spin_rate": 1970.9370569367027,
"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.1924,
"release_spin_rate": 1970.9371,
"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.2611,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8653,
"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.2042,
"sample_weight": 1.0,
"run_prevention_factor": 1.0174,
"strikeout_factor": 0.9551,
"walk_factor": 1.018,
"homer_factor": 0.9743,
"woba_minus_xwoba": -0.03,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "527048",
"espn_id": 31098,
"player_name": "Martin Perez",
"team": "ATL",
"role": "pitcher",
"espn_rank": 51,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 51,
"gp_value": 25.0,
"gp_rank": 285,
"gs_value": 21.0,
"gs_rank": 84,
"qs_value": 4.0,
"qs_rank": 118,
"era_value": 3.1213,
"era_rank": null,
"w_value": 8.0,
"w_rank": 52,
"l_value": 8.0,
"l_rank": 41,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 115.1,
"ip_rank": 93,
"h_value": 92.0,
"h_rank": 114,
"er_value": 40.0,
"er_rank": 136,
"hr_value": 12.0,
"hr_rank": 122,
"bb_value": 48.0,
"bb_rank": 36,
"k_value": 85.0,
"k_rank": 124,
"k_per_9_value": 6.632948,
"k_per_9_rank": 36,
"whip_value": 1.2138,
"whip_rank": null,
"war_value": 2.37,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0174,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 1.0174,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.018,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9743,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9551,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260829_COL@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_HOU@NYM | away | Bennett Sousa | Bennett Sousa | True | 4.0 | 0.2 | -10 | 5 | 1 | -4 | 6/1 | 5/2 | 4/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.785714285714286,
"WHIP": 1.6607142857142856,
"IP": 18.2,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 0.889,
"recent_avg_IP": 0.933,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0879,
"sample_weight": 0.45,
"run_prevention_factor": 0.9925,
"strikeout_factor": 1.0207,
"walk_factor": 1.0198,
"homer_factor": 1.0031,
"regression_flag": "positive_pitcher_regression",
"k_percent": 23.9,
"bb_percent": 11.4,
"woba": 0.37,
"xwoba": 0.291,
"barrel_percent": 10.5,
"hard_hit_percent": 31.6,
"whiff_percent": 31.4
},
"espn_rank": {
"rank": 724,
"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": 3.744,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4282,
"prior_weight": 0.5718
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656986",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.2,
"ER": 7.0,
"R": 7.0,
"H": 10.0,
"BB": 2.0,
"SO": 5.0,
"HR": 0.0,
"BF": 26.0,
"Pitches": 83.0
},
"per_game": {
"IP": 1.0,
"ER": 1.4,
"R": 1.4,
"H": 2.0,
"BB": 0.4,
"SO": 1.0,
"HR": 0.0,
"BF": 5.2,
"Pitches": 16.6
},
"rates": {
"ERA": 13.5,
"WHIP": 2.5714,
"ER_per_IP": 1.5,
"H_per_IP": 2.14286,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.07143,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 10.0,
"R": 11.0,
"H": 18.0,
"BB": 3.0,
"SO": 12.0,
"HR": 2.0,
"BF": 48.0,
"Pitches": 161.0
},
"per_game": {
"IP": 1.0,
"ER": 1.0,
"R": 1.1,
"H": 1.8,
"BB": 0.3,
"SO": 1.2,
"HR": 0.2,
"BF": 4.8,
"Pitches": 16.1
},
"rates": {
"ERA": 9.6429,
"WHIP": 2.25,
"ER_per_IP": 1.07143,
"H_per_IP": 1.92857,
"BB_per_IP": 0.32143,
"SO_per_IP": 1.28571,
"HR_per_IP": 0.21429
}
},
"season": {
"games": 21,
"totals": {
"IP": 18.2,
"ER": 12.0,
"R": 14.0,
"H": 22.0,
"BB": 9.0,
"SO": 21.0,
"HR": 2.0,
"BF": 85.0,
"Pitches": 308.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5714,
"R": 0.6667,
"H": 1.0476,
"BB": 0.4286,
"SO": 1.0,
"HR": 0.0952,
"BF": 4.0476,
"Pitches": 14.6667
},
"rates": {
"ERA": 5.7857,
"WHIP": 1.6607,
"ER_per_IP": 0.64286,
"H_per_IP": 1.17857,
"BB_per_IP": 0.48214,
"SO_per_IP": 1.125,
"HR_per_IP": 0.10714
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 2.146,
"predicted_H": 3.693,
"predicted_BB": 1.041,
"predicted_SO": 2.805,
"predicted_HR": 0.339,
"predicted_ERA": 7.1125,
"predicted_WHIP": 1.7436
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5916,
"form_weight": 0.4084,
"form_reliability": 0.4282,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.744,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4282,
"prior_weight": 0.5718
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 2.2,
"final": 3.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.146,
"final": 3.8344,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.693,
"final": 5.0578,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.041,
"final": 3.3831,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.805,
"final": 3.5119,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.339,
"final": 1.3216,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 7.1125,
"final": 7.1125,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.7436,
"final": 1.7436,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.1,
"ER": 10,
"H": 18,
"BB": 3,
"SO": 12,
"HR": 2,
"ERA": 9.642857142857144,
"WHIP": 2.2500000000000004,
"K9": 11.571428571428573,
"HR9": 1.9285714285714288,
"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-26T00:00:00"
},
"recent_form_boost": 1.1872029209314447,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 5.0,
"predicted_SO": 4.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.744,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4282,
"prior_weight": 0.5718
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5,
"predicted_H": 6,
"predicted_BB": 5,
"predicted_SO": 4,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656986",
"player_name": "Bennett Sousa",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 4.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_R": 5.0,
"predicted_SO": 4.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 135,
"wins": 68,
"losses": 67,
"win_pct": 0.5037,
"runs_scored": 616.0,
"runs_allowed": 658.0,
"run_differential": -42.0,
"run_differential_per_game": -0.3111,
"avg_runs_scored": 4.563,
"avg_runs_allowed": 4.8741,
"offense_index": 1.0216,
"defense_index": 0.9164,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.2,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.0352
},
"opponent": {
"team": "NYM",
"games": 135,
"wins": 60,
"losses": 75,
"win_pct": 0.4444,
"runs_scored": 553.0,
"runs_allowed": 607.0,
"run_differential": -54.0,
"run_differential_per_game": -0.4,
"avg_runs_scored": 4.0963,
"avg_runs_allowed": 4.4963,
"offense_index": 0.9171,
"defense_index": 0.9934,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.2,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1315
},
"edges": {
"quality_edge": 0.0963,
"offense_edge": 0.0216,
"opponent_offense_edge": -0.0829,
"defense_strength": -0.0836,
"opponent_defense_weakness": 0.0066,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0047,
"run_prevention": 0.9903,
"strikeout": 1.0095
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656986",
"profile": {
"available": true,
"pitcher_id": "656986",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 67.0,
"k_percent": 23.9,
"bb_percent": 11.4,
"woba": 0.37,
"xwoba": 0.291,
"sweet_spot_percent": 38.6,
"barrel_batted_rate": 10.5,
"hard_hit_percent": 31.6,
"avg_best_speed": 78.0107,
"avg_hyper_speed": 92.7884,
"whiff_percent": 31.4,
"swing_percent": 49.5
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1415,
"command_and_miss": 0.3189,
"regression_edge": 2.0,
"xwoba_edge": 0.5714,
"barrel_edge": -0.7444,
"hard_hit_edge": 0.8857,
"whiff_edge": 0.8857,
"bb_edge": -0.55,
"pitch_design_score": -0.1045
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656986",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 21,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 21,
"pitch_usage": 0.0,
"release_speed": 87.98992847295114,
"release_spin_rate": 2288.8008927381366,
"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": 21,
"pitch_usage": 0.0,
"release_speed": 87.98992847295114,
"release_spin_rate": 2288.8008927381366,
"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.9899,
"release_spin_rate": 2288.8009,
"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.1045,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7463,
"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.0879,
"sample_weight": 0.45,
"run_prevention_factor": 0.9925,
"strikeout_factor": 1.0207,
"walk_factor": 1.0198,
"homer_factor": 1.0031,
"woba_minus_xwoba": 0.079,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "656986",
"espn_id": 41776,
"player_name": "Bennett Sousa",
"team": "HOU",
"role": "pitcher",
"espn_rank": 724,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 724,
"gp_value": 22.0,
"gp_rank": 341,
"gs_value": 0.0,
"gs_rank": 349,
"qs_value": 0.0,
"qs_rank": 206,
"era_value": 6.2678,
"era_rank": null,
"w_value": 1.0,
"w_rank": 392,
"l_value": 3.0,
"l_rank": 221,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 6.0,
"hld_rank": 141,
"ip_value": 18.2,
"ip_rank": 509,
"h_value": 24.0,
"h_rank": 450,
"er_value": 13.0,
"er_rank": 431,
"hr_value": 2.0,
"hr_rank": 494,
"bb_value": 10.0,
"bb_rank": 460,
"k_value": 21.0,
"k_rank": 461,
"k_per_9_value": 10.125,
"k_per_9_rank": 24,
"whip_value": 1.8214,
"whip_rank": null,
"war_value": -0.4,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9966,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9966,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0089,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0014,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0093,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 5,
"predicted_SO": 4,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260829_HOU@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_HOU@NYM | home | Nolan McLean | Nolan McLean | True | 5.2 | 7.0 | 4 | 1 | 0 | -1 | 3/2 | 2/3 | 8/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2085201793721976,
"WHIP": 1.1434977578475336,
"IP": 148.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.718,
"recent_avg_IP": 5.867,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.265,
"sample_weight": 1.0,
"run_prevention_factor": 0.9775,
"strikeout_factor": 1.0266,
"walk_factor": 1.004,
"homer_factor": 0.966,
"regression_flag": "neutral",
"k_percent": 27.2,
"bb_percent": 9.4,
"woba": 0.287,
"xwoba": 0.296,
"barrel_percent": 6.7,
"hard_hit_percent": 35.5,
"whiff_percent": 24.7
},
"espn_rank": {
"rank": 49,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "690997",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 9.0,
"R": 9.0,
"H": 22.0,
"BB": 15.0,
"SO": 26.0,
"HR": 4.0,
"BF": 122.0,
"Pitches": 473.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.8,
"H": 4.4,
"BB": 3.0,
"SO": 5.2,
"HR": 0.8,
"BF": 24.4,
"Pitches": 94.6
},
"rates": {
"ERA": 2.7614,
"WHIP": 1.2614,
"ER_per_IP": 0.30682,
"H_per_IP": 0.75,
"BB_per_IP": 0.51136,
"SO_per_IP": 0.88636,
"HR_per_IP": 0.13636
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.1,
"ER": 13.0,
"R": 18.0,
"H": 46.0,
"BB": 24.0,
"SO": 62.0,
"HR": 5.0,
"BF": 246.0,
"Pitches": 947.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.8,
"H": 4.6,
"BB": 2.4,
"SO": 6.2,
"HR": 0.5,
"BF": 24.6,
"Pitches": 94.7
},
"rates": {
"ERA": 1.9719,
"WHIP": 1.1798,
"ER_per_IP": 0.2191,
"H_per_IP": 0.77528,
"BB_per_IP": 0.40449,
"SO_per_IP": 1.04494,
"HR_per_IP": 0.08427
}
},
"season": {
"games": 26,
"totals": {
"IP": 148.2,
"ER": 53.0,
"R": 64.0,
"H": 112.0,
"BB": 58.0,
"SO": 168.0,
"HR": 15.0,
"BF": 618.0,
"Pitches": 2451.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0385,
"R": 2.4615,
"H": 4.3077,
"BB": 2.2308,
"SO": 6.4615,
"HR": 0.5769,
"BF": 23.7692,
"Pitches": 94.2692
},
"rates": {
"ERA": 3.2085,
"WHIP": 1.1435,
"ER_per_IP": 0.3565,
"H_per_IP": 0.75336,
"BB_per_IP": 0.39013,
"SO_per_IP": 1.13004,
"HR_per_IP": 0.1009
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.888,
"predicted_H": 4.678,
"predicted_BB": 2.573,
"predicted_SO": 5.787,
"predicted_HR": 0.687,
"predicted_ERA": 2.8843,
"predicted_WHIP": 1.231
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.888,
"final": 1.5167,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.678,
"final": 3.9763,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.573,
"final": 2.3334,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.787,
"final": 6.7124,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.687,
"final": 1.236,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8843,
"final": 2.8843,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.231,
"final": 1.231,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.1,
"ER": 13,
"H": 46,
"BB": 24,
"SO": 62,
"HR": 5,
"ERA": 1.9719101123595508,
"WHIP": 1.1797752808988764,
"K9": 9.404494382022472,
"HR9": 0.7584269662921349,
"games_pitched": 10,
"quality_starts": 9,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.7248126499305467,
"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": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690997",
"player_name": "Nolan McLean",
"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": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 135,
"wins": 60,
"losses": 75,
"win_pct": 0.4444,
"runs_scored": 553.0,
"runs_allowed": 607.0,
"run_differential": -54.0,
"run_differential_per_game": -0.4,
"avg_runs_scored": 4.0963,
"avg_runs_allowed": 4.4963,
"offense_index": 0.9171,
"defense_index": 0.9934,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.2,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1315
},
"opponent": {
"team": "HOU",
"games": 135,
"wins": 68,
"losses": 67,
"win_pct": 0.5037,
"runs_scored": 616.0,
"runs_allowed": 658.0,
"run_differential": -42.0,
"run_differential_per_game": -0.3111,
"avg_runs_scored": 4.563,
"avg_runs_allowed": 4.8741,
"offense_index": 1.0216,
"defense_index": 0.9164,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.2,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.0352
},
"edges": {
"quality_edge": -0.0963,
"offense_edge": -0.0829,
"opponent_offense_edge": 0.0216,
"defense_strength": -0.0066,
"opponent_defense_weakness": 0.0836,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9951,
"run_prevention": 1.0089,
"strikeout": 0.9954
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690997",
"profile": {
"available": true,
"pitcher_id": "690997",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 589.0,
"k_percent": 27.2,
"bb_percent": 9.4,
"woba": 0.287,
"xwoba": 0.296,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 35.5,
"avg_best_speed": 76.4815,
"avg_hyper_speed": 93.6214,
"whiff_percent": 24.7,
"swing_percent": 44.1
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3722,
"command_and_miss": 0.2961,
"regression_edge": -0.2571,
"xwoba_edge": 0.4286,
"barrel_edge": 0.1,
"hard_hit_edge": 0.3286,
"whiff_edge": -0.0714,
"bb_edge": -0.05,
"pitch_design_score": 0.0663
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "690997",
"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": 91.0400530003611,
"release_spin_rate": 2502.730639559779,
"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": 91.0400530003611,
"release_spin_rate": 2502.730639559779,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.0401,
"release_spin_rate": 2502.7306,
"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.0663,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4737,
"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.265,
"sample_weight": 1.0,
"run_prevention_factor": 0.9775,
"strikeout_factor": 1.0266,
"walk_factor": 1.004,
"homer_factor": 0.966,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "690997",
"espn_id": 4433874,
"player_name": "Nolan McLean",
"team": "NYM",
"role": "pitcher",
"espn_rank": 49,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 49,
"gp_value": 26.0,
"gp_rank": 252,
"gs_value": 26.0,
"gs_rank": 20,
"qs_value": 16.0,
"qs_rank": 9,
"era_value": 3.2085,
"era_rank": 15.0,
"w_value": 9.0,
"w_rank": 31,
"l_value": 8.0,
"l_rank": 41,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 148.2,
"ip_rank": 24,
"h_value": 112.0,
"h_rank": 81,
"er_value": 53.0,
"er_rank": 77,
"hr_value": 15.0,
"hr_rank": 76,
"bb_value": 58.0,
"bb_rank": 13,
"k_value": 168.0,
"k_rank": 12,
"k_per_9_value": 10.1704035,
"k_per_9_rank": 13,
"whip_value": 1.1434,
"whip_rank": 21.0,
"war_value": 2.48,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9775,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9775,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.004,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.966,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0266,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"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/20260829_HOU@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_KC@CLE | away | Daniel Lynch IV | Daniel Lynch IV | True | 5.0 | 3.1 | -5 | 3 | 2 | -1 | 4/3 | 4/2 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9314285714285715,
"WHIP": 1.0285714285714285,
"IP": 58.1,
"games_started": null,
"games_pitched": 50,
"role_avg_IP": 3.083,
"recent_avg_IP": 3.083,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0143,
"sample_weight": 0.844,
"run_prevention_factor": 0.9988,
"strikeout_factor": 0.9848,
"walk_factor": 0.9662,
"homer_factor": 0.9849,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.3,
"bb_percent": 7.2,
"woba": 0.261,
"xwoba": 0.307,
"barrel_percent": 6.4,
"hard_hit_percent": 37.6,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 167,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 58.1,
"season_ERA": 2.931,
"season_WHIP": 1.029,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.701,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7006,
"prior_weight": 0.2994
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663738",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 50,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 13.1,
"ER": 9.0,
"R": 10.0,
"H": 13.0,
"BB": 5.0,
"SO": 9.0,
"HR": 2.0,
"BF": 56.0,
"Pitches": 189.0
},
"per_game": {
"IP": 2.2,
"ER": 1.8,
"R": 2.0,
"H": 2.6,
"BB": 1.0,
"SO": 1.8,
"HR": 0.4,
"BF": 11.2,
"Pitches": 37.8
},
"rates": {
"ERA": 6.075,
"WHIP": 1.35,
"ER_per_IP": 0.675,
"H_per_IP": 0.975,
"BB_per_IP": 0.375,
"SO_per_IP": 0.675,
"HR_per_IP": 0.15
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 18.0,
"ER": 9.0,
"R": 10.0,
"H": 17.0,
"BB": 5.0,
"SO": 10.0,
"HR": 2.0,
"BF": 74.0,
"Pitches": 247.0
},
"per_game": {
"IP": 1.2,
"ER": 0.9,
"R": 1.0,
"H": 1.7,
"BB": 0.5,
"SO": 1.0,
"HR": 0.2,
"BF": 7.4,
"Pitches": 24.7
},
"rates": {
"ERA": 4.5,
"WHIP": 1.2222,
"ER_per_IP": 0.5,
"H_per_IP": 0.94444,
"BB_per_IP": 0.27778,
"SO_per_IP": 0.55556,
"HR_per_IP": 0.11111
}
},
"season": {
"games": 50,
"totals": {
"IP": 58.1,
"ER": 19.0,
"R": 23.0,
"H": 43.0,
"BB": 17.0,
"SO": 43.0,
"HR": 4.0,
"BF": 235.0,
"Pitches": 853.0
},
"per_game": {
"IP": 1.1,
"ER": 0.38,
"R": 0.46,
"H": 0.86,
"BB": 0.34,
"SO": 0.86,
"HR": 0.08,
"BF": 4.7,
"Pitches": 17.06
},
"rates": {
"ERA": 2.9314,
"WHIP": 1.0286,
"ER_per_IP": 0.32571,
"H_per_IP": 0.73714,
"BB_per_IP": 0.29143,
"SO_per_IP": 0.73714,
"HR_per_IP": 0.06857
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 1.662,
"predicted_H": 2.926,
"predicted_BB": 1.058,
"predicted_SO": 2.299,
"predicted_HR": 0.401,
"predicted_ERA": 4.7754,
"predicted_WHIP": 1.2719
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4765,
"form_weight": 0.5235,
"form_reliability": 0.7006,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.701,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7006,
"prior_weight": 0.2994
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 3.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.662,
"final": 2.776,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.926,
"final": 3.4378,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.058,
"final": 2.4599,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.299,
"final": 3.586,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.401,
"final": 0.6864,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7754,
"final": 4.7754,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2719,
"final": 1.2719,
"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": 18.0,
"ER": 9,
"H": 17,
"BB": 5,
"SO": 10,
"HR": 2,
"ERA": 4.5,
"WHIP": 1.2222222222222223,
"K9": 5.0,
"HR9": 1.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 1.006041581231054,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 4.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.701,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7006,
"prior_weight": 0.2994
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 4,
"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": 3,
"predicted_H": 4,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663738",
"player_name": "Daniel Lynch IV",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 4.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": 4.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"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": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 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.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": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 136,
"wins": 61,
"losses": 75,
"win_pct": 0.4485,
"runs_scored": 581.0,
"runs_allowed": 659.0,
"run_differential": -78.0,
"run_differential_per_game": -0.5735,
"avg_runs_scored": 4.2721,
"avg_runs_allowed": 4.8456,
"offense_index": 0.9565,
"defense_index": 0.9218,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 3.0,
"run_differential": 29.0
},
"available": true,
"quality_score": 0.0256
},
"opponent": {
"team": "CLE",
"games": 135,
"wins": 68,
"losses": 67,
"win_pct": 0.5037,
"runs_scored": 543.0,
"runs_allowed": 550.0,
"run_differential": -7.0,
"run_differential_per_game": -0.0519,
"avg_runs_scored": 4.0222,
"avg_runs_allowed": 4.0741,
"offense_index": 0.9005,
"defense_index": 1.0963,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 2.4,
"run_differential": 25.0
},
"available": true,
"quality_score": 0.1018
},
"edges": {
"quality_edge": -0.0762,
"offense_edge": -0.0435,
"opponent_offense_edge": -0.0995,
"defense_strength": -0.0782,
"opponent_defense_weakness": -0.0963,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9986,
"run_prevention": 0.9957,
"strikeout": 1.0057
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663738",
"profile": {
"available": true,
"pitcher_id": "663738",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 211.0,
"k_percent": 18.3,
"bb_percent": 7.2,
"woba": 0.261,
"xwoba": 0.307,
"sweet_spot_percent": 32.9,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.9074,
"avg_hyper_speed": 93.8642,
"whiff_percent": 25.8,
"swing_percent": 46.8
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3168,
"command_and_miss": -0.1111,
"regression_edge": -1.3143,
"xwoba_edge": 0.1143,
"barrel_edge": 0.1667,
"hard_hit_edge": 0.0286,
"whiff_edge": 0.0857,
"bb_edge": 0.5,
"pitch_design_score": -0.0016
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663738",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 28,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 28,
"pitch_usage": 0.0,
"release_speed": 89.82679331429227,
"release_spin_rate": 2099.5103408384525,
"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": 28,
"pitch_usage": 0.0,
"release_speed": 89.82679331429227,
"release_spin_rate": 2099.5103408384525,
"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.8268,
"release_spin_rate": 2099.5103,
"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.0016,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0116,
"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.0143,
"sample_weight": 0.844,
"run_prevention_factor": 0.9988,
"strikeout_factor": 0.9848,
"walk_factor": 0.9662,
"homer_factor": 0.9849,
"woba_minus_xwoba": -0.046,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "663738",
"espn_id": 41227,
"player_name": "Daniel Lynch IV",
"team": "KC",
"role": "pitcher",
"espn_rank": 167,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 167,
"gp_value": 50.0,
"gp_rank": 84,
"gs_value": 4.0,
"gs_rank": 225,
"qs_value": 0.0,
"qs_rank": 206,
"era_value": 2.9314,
"era_rank": null,
"w_value": 4.0,
"w_rank": 176,
"l_value": 4.0,
"l_rank": 166,
"sv_value": 1.0,
"sv_rank": 132,
"hld_value": 13.0,
"hld_rank": 44,
"ip_value": 58.1,
"ip_rank": 217,
"h_value": 43.0,
"h_rank": 274,
"er_value": 19.0,
"er_rank": 308,
"hr_value": 4.0,
"hr_rank": 355,
"bb_value": 17.0,
"bb_rank": 326,
"k_value": 43.0,
"k_rank": 312,
"k_per_9_value": 6.6342854,
"k_per_9_rank": 38,
"whip_value": 1.0285,
"whip_rank": null,
"war_value": 1.0,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.999,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.999,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9715,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9873,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9872,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260829_KC@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_KC@CLE | home | Foster Griffin | Foster Griffin | True | 5.2 | 5.0 | -2 | 2 | 2 | 0 | 4/4 | 1/1 | 9/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.1941964285714284,
"WHIP": 1.125,
"IP": 149.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.744,
"recent_avg_IP": 5.067,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0908,
"sample_weight": 1.0,
"run_prevention_factor": 1.0077,
"strikeout_factor": 0.9883,
"walk_factor": 0.94,
"homer_factor": 1.0392,
"regression_flag": "neutral",
"k_percent": 22.1,
"bb_percent": 6.2,
"woba": 0.302,
"xwoba": 0.317,
"barrel_percent": 9.1,
"hard_hit_percent": 37.7,
"whiff_percent": 23.1
},
"espn_rank": {
"rank": 16,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 149.1,
"season_ERA": 3.194,
"season_WHIP": 1.125,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656492",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 15.0,
"R": 17.0,
"H": 30.0,
"BB": 10.0,
"SO": 22.0,
"HR": 6.0,
"BF": 112.0,
"Pitches": 455.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.4,
"H": 6.0,
"BB": 2.0,
"SO": 4.4,
"HR": 1.2,
"BF": 22.4,
"Pitches": 91.0
},
"rates": {
"ERA": 5.3289,
"WHIP": 1.5789,
"ER_per_IP": 0.59211,
"H_per_IP": 1.18421,
"BB_per_IP": 0.39474,
"SO_per_IP": 0.86842,
"HR_per_IP": 0.23684
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 21.0,
"R": 24.0,
"H": 56.0,
"BB": 15.0,
"SO": 46.0,
"HR": 7.0,
"BF": 237.0,
"Pitches": 954.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1,
"R": 2.4,
"H": 5.6,
"BB": 1.5,
"SO": 4.6,
"HR": 0.7,
"BF": 23.7,
"Pitches": 95.4
},
"rates": {
"ERA": 3.2586,
"WHIP": 1.2241,
"ER_per_IP": 0.36207,
"H_per_IP": 0.96552,
"BB_per_IP": 0.25862,
"SO_per_IP": 0.7931,
"HR_per_IP": 0.12069
}
},
"season": {
"games": 26,
"totals": {
"IP": 149.1,
"ER": 53.0,
"R": 60.0,
"H": 130.0,
"BB": 38.0,
"SO": 135.0,
"HR": 23.0,
"BF": 611.0,
"Pitches": 2431.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0385,
"R": 2.3077,
"H": 5.0,
"BB": 1.4615,
"SO": 5.1923,
"HR": 0.8846,
"BF": 23.5,
"Pitches": 93.5
},
"rates": {
"ERA": 3.1942,
"WHIP": 1.125,
"ER_per_IP": 0.35491,
"H_per_IP": 0.87054,
"BB_per_IP": 0.25446,
"SO_per_IP": 0.90402,
"HR_per_IP": 0.15402
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.544,
"predicted_H": 5.597,
"predicted_BB": 1.772,
"predicted_SO": 4.678,
"predicted_HR": 0.943,
"predicted_ERA": 4.2287,
"predicted_WHIP": 1.3608
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.544,
"final": 2.3165,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.597,
"final": 4.9292,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.772,
"final": 1.4492,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 4.678,
"final": 6.4852,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.943,
"final": 0.9668,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2287,
"final": 4.2287,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3608,
"final": 1.3608,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.0,
"ER": 21,
"H": 56,
"BB": 15,
"SO": 46,
"HR": 7,
"ERA": 3.2586206896551726,
"WHIP": 1.2241379310344827,
"K9": 7.137931034482759,
"HR9": 1.0862068965517242,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.8706766561296944,
"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": 1.0,
"predicted_SO": 9.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 9,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656492",
"player_name": "Foster Griffin",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.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": "CLE",
"games": 135,
"wins": 68,
"losses": 67,
"win_pct": 0.5037,
"runs_scored": 543.0,
"runs_allowed": 550.0,
"run_differential": -7.0,
"run_differential_per_game": -0.0519,
"avg_runs_scored": 4.0222,
"avg_runs_allowed": 4.0741,
"offense_index": 0.9005,
"defense_index": 1.0963,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 2.4,
"run_differential": 25.0
},
"available": true,
"quality_score": 0.1018
},
"opponent": {
"team": "KC",
"games": 136,
"wins": 61,
"losses": 75,
"win_pct": 0.4485,
"runs_scored": 581.0,
"runs_allowed": 659.0,
"run_differential": -78.0,
"run_differential_per_game": -0.5735,
"avg_runs_scored": 4.2721,
"avg_runs_allowed": 4.8456,
"offense_index": 0.9565,
"defense_index": 0.9218,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 3.0,
"run_differential": 29.0
},
"available": true,
"quality_score": 0.0256
},
"edges": {
"quality_edge": 0.0762,
"offense_edge": -0.0995,
"opponent_offense_edge": -0.0435,
"defense_strength": 0.0963,
"opponent_defense_weakness": 0.0782,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0077,
"run_prevention": 0.9796,
"strikeout": 1.0058
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656492",
"profile": {
"available": true,
"pitcher_id": "656492",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 585.0,
"k_percent": 22.1,
"bb_percent": 6.2,
"woba": 0.302,
"xwoba": 0.317,
"sweet_spot_percent": 37.2,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 75.9751,
"avg_hyper_speed": 94.1165,
"whiff_percent": 23.1,
"swing_percent": 48.5
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.0762,
"command_and_miss": 0.0482,
"regression_edge": -0.4286,
"xwoba_edge": -0.1714,
"barrel_edge": -0.4333,
"hard_hit_edge": 0.0143,
"whiff_edge": -0.3,
"bb_edge": 0.75,
"pitch_design_score": -0.2227
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656492",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 85.8782595906004,
"release_spin_rate": 2154.9414767886506,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 85.8782595906004,
"release_spin_rate": 2154.9414767886506,
"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.8783,
"release_spin_rate": 2154.9415,
"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.2227,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.591,
"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.0908,
"sample_weight": 1.0,
"run_prevention_factor": 1.0077,
"strikeout_factor": 0.9883,
"walk_factor": 0.94,
"homer_factor": 1.0392,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656492",
"espn_id": 33773,
"player_name": "Foster Griffin",
"team": "CLE",
"role": "pitcher",
"espn_rank": 16,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 16,
"gp_value": 26.0,
"gp_rank": 252,
"gs_value": 26.0,
"gs_rank": 20,
"qs_value": 13.0,
"qs_rank": 22,
"era_value": 3.1941,
"era_rank": 14.0,
"w_value": 15.0,
"w_rank": 3,
"l_value": 4.0,
"l_rank": 166,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 149.1,
"ip_rank": 20,
"h_value": 130.0,
"h_rank": 36,
"er_value": 53.0,
"er_rank": 77,
"hr_value": 23.0,
"hr_rank": 15,
"bb_value": 38.0,
"bb_rank": 79,
"k_value": 135.0,
"k_rank": 37,
"k_per_9_value": 8.136161,
"k_per_9_rank": 49,
"whip_value": 1.125,
"whip_rank": 19.0,
"war_value": 3.46,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0077,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0077,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.94,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0392,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9883,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 9,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260829_KC@CLE.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_LAD@DET | away | Blake Snell | Blake Snell | True | 5.1 | 5.0 | -1 | 2 | 1 | -1 | 3/3 | 3/3 | 8/10 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 2.5714285714285716,
"WHIP": 1.0476190476190477,
"IP": 21.0,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 5.25,
"recent_avg_IP": 5.25,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5696,
"sample_weight": 0.45,
"run_prevention_factor": 0.9516,
"strikeout_factor": 1.05,
"walk_factor": 1.0099,
"homer_factor": 0.8689,
"regression_flag": "neutral",
"k_percent": 29.9,
"bb_percent": 10.3,
"woba": 0.218,
"xwoba": 0.236,
"barrel_percent": 0.0,
"hard_hit_percent": 9.8,
"whiff_percent": 36.8
},
"espn_rank": {
"rank": 248,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605483",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 21.0,
"ER": 6.0,
"R": 7.0,
"H": 13.0,
"BB": 9.0,
"SO": 26.0,
"HR": 0.0,
"BF": 87.0,
"Pitches": 345.0
},
"per_game": {
"IP": 5.1,
"ER": 1.5,
"R": 1.75,
"H": 3.25,
"BB": 2.25,
"SO": 6.5,
"HR": 0.0,
"BF": 21.75,
"Pitches": 86.25
},
"rates": {
"ERA": 2.5714,
"WHIP": 1.0476,
"ER_per_IP": 0.28571,
"H_per_IP": 0.61905,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.2381,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 21.0,
"ER": 6.0,
"R": 7.0,
"H": 13.0,
"BB": 9.0,
"SO": 26.0,
"HR": 0.0,
"BF": 87.0,
"Pitches": 345.0
},
"per_game": {
"IP": 5.1,
"ER": 1.5,
"R": 1.75,
"H": 3.25,
"BB": 2.25,
"SO": 6.5,
"HR": 0.0,
"BF": 21.75,
"Pitches": 86.25
},
"rates": {
"ERA": 2.5714,
"WHIP": 1.0476,
"ER_per_IP": 0.28571,
"H_per_IP": 0.61905,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.2381,
"HR_per_IP": 0.0
}
},
"season": {
"games": 4,
"totals": {
"IP": 21.0,
"ER": 6.0,
"R": 7.0,
"H": 13.0,
"BB": 9.0,
"SO": 26.0,
"HR": 0.0,
"BF": 87.0,
"Pitches": 345.0
},
"per_game": {
"IP": 5.1,
"ER": 1.5,
"R": 1.75,
"H": 3.25,
"BB": 2.25,
"SO": 6.5,
"HR": 0.0,
"BF": 21.75,
"Pitches": 86.25
},
"rates": {
"ERA": 2.5714,
"WHIP": 1.0476,
"ER_per_IP": 0.28571,
"H_per_IP": 0.61905,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.2381,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.157,
"predicted_H": 4.355,
"predicted_BB": 2.111,
"predicted_SO": 5.721,
"predicted_HR": 0.433,
"predicted_ERA": 3.6404,
"predicted_WHIP": 1.2125
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5847,
"form_weight": 0.4153,
"form_reliability": 0.4444,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.157,
"final": 2.0652,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.355,
"final": 3.5627,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.111,
"final": 2.6308,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.721,
"final": 7.0536,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.433,
"final": 0.7645,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6404,
"final": 3.6404,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2125,
"final": 1.2125,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 21.0,
"ER": 6,
"H": 13,
"BB": 9,
"SO": 26,
"HR": 0,
"ERA": 2.5714285714285716,
"WHIP": 1.0476190476190477,
"K9": 11.142857142857142,
"HR9": 0.0,
"games_pitched": 4,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.8553514775614319,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605483",
"player_name": "Blake Snell",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 135,
"wins": 81,
"losses": 54,
"win_pct": 0.6,
"runs_scored": 663.0,
"runs_allowed": 514.0,
"run_differential": 149.0,
"run_differential_per_game": 1.1037,
"avg_runs_scored": 4.9111,
"avg_runs_allowed": 3.8074,
"offense_index": 1.0969,
"defense_index": 1.1759,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.4,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.2906
},
"opponent": {
"team": "DET",
"games": 134,
"wins": 62,
"losses": 72,
"win_pct": 0.4627,
"runs_scored": 593.0,
"runs_allowed": 524.0,
"run_differential": 69.0,
"run_differential_per_game": 0.5149,
"avg_runs_scored": 4.4254,
"avg_runs_allowed": 3.9104,
"offense_index": 0.9884,
"defense_index": 1.1449,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 4.2,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.0735
},
"edges": {
"quality_edge": 0.3641,
"offense_edge": 0.0969,
"opponent_offense_edge": -0.0116,
"defense_strength": 0.1759,
"opponent_defense_weakness": -0.1449,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0203,
"run_prevention": 0.9623,
"strikeout": 1.0119
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605483",
"profile": {
"available": true,
"pitcher_id": "605483",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 63.0,
"k_percent": 29.9,
"bb_percent": 10.3,
"woba": 0.218,
"xwoba": 0.236,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 0.0,
"hard_hit_percent": 9.8,
"avg_best_speed": 71.195,
"avg_hyper_speed": 90.3039,
"whiff_percent": 36.8,
"swing_percent": 52.8
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 1.8751,
"command_and_miss": 1.0296,
"regression_edge": -0.5143,
"xwoba_edge": 2.1429,
"barrel_edge": 1.5889,
"hard_hit_edge": 2.5,
"whiff_edge": 1.6571,
"bb_edge": -0.275,
"pitch_design_score": -0.0057
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605483",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 89.75331649831651,
"release_spin_rate": 2378.2219095719097,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 89.75331649831651,
"release_spin_rate": 2378.2219095719097,
"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.7533,
"release_spin_rate": 2378.2219,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0057,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.041,
"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.5696,
"sample_weight": 0.45,
"run_prevention_factor": 0.9516,
"strikeout_factor": 1.05,
"walk_factor": 1.0099,
"homer_factor": 0.8689,
"woba_minus_xwoba": -0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605483",
"espn_id": 33748,
"player_name": "Blake Snell",
"team": "LAD",
"role": "pitcher",
"espn_rank": 248,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 248,
"gp_value": 4.0,
"gp_rank": 638,
"gs_value": 4.0,
"gs_rank": 225,
"qs_value": 3.0,
"qs_rank": 133,
"era_value": 2.5714,
"era_rank": null,
"w_value": 2.0,
"w_rank": 296,
"l_value": 1.0,
"l_rank": 406,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 21.0,
"ip_rank": 479,
"h_value": 13.0,
"h_rank": 571,
"er_value": 6.0,
"er_rank": 604,
"hr_value": 0.0,
"hr_rank": 721,
"bb_value": 9.0,
"bb_rank": 485,
"k_value": 26.0,
"k_rank": 428,
"k_per_9_value": 11.142858,
"k_per_9_rank": 24,
"whip_value": 1.0476,
"whip_rank": null,
"war_value": 0.51,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9782,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9782,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0045,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.941,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0225,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 4 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260829_LAD@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_LAD@DET | home | Keider Montero | Keider Montero | True | 6.0 | 5.1 | -2 | 2 | 1 | -1 | 5/4 | 2/1 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2992518703241895,
"WHIP": 0.9950124688279303,
"IP": 133.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.683,
"recent_avg_IP": 5.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0789,
"sample_weight": 1.0,
"run_prevention_factor": 0.9933,
"strikeout_factor": 0.9311,
"walk_factor": 0.928,
"homer_factor": 0.983,
"regression_flag": "neutral",
"k_percent": 16.6,
"bb_percent": 5.6,
"woba": 0.265,
"xwoba": 0.29,
"barrel_percent": 7.3,
"hard_hit_percent": 37.5,
"whiff_percent": 18.6
},
"espn_rank": {
"rank": 27,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 133.2,
"season_ERA": 3.299,
"season_WHIP": 0.995,
"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": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "672456",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 12.0,
"R": 14.0,
"H": 23.0,
"BB": 8.0,
"SO": 11.0,
"HR": 4.0,
"BF": 116.0,
"Pitches": 414.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.8,
"H": 4.6,
"BB": 1.6,
"SO": 2.2,
"HR": 0.8,
"BF": 23.2,
"Pitches": 82.8
},
"rates": {
"ERA": 3.9036,
"WHIP": 1.1205,
"ER_per_IP": 0.43373,
"H_per_IP": 0.83133,
"BB_per_IP": 0.28916,
"SO_per_IP": 0.39759,
"HR_per_IP": 0.14458
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 44.0,
"ER": 16.0,
"R": 18.0,
"H": 33.0,
"BB": 11.0,
"SO": 30.0,
"HR": 5.0,
"BF": 180.0,
"Pitches": 664.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6,
"R": 1.8,
"H": 3.3,
"BB": 1.1,
"SO": 3.0,
"HR": 0.5,
"BF": 18.0,
"Pitches": 66.4
},
"rates": {
"ERA": 3.2727,
"WHIP": 1.0,
"ER_per_IP": 0.36364,
"H_per_IP": 0.75,
"BB_per_IP": 0.25,
"SO_per_IP": 0.68182,
"HR_per_IP": 0.11364
}
},
"season": {
"games": 27,
"totals": {
"IP": 133.2,
"ER": 49.0,
"R": 53.0,
"H": 103.0,
"BB": 30.0,
"SO": 89.0,
"HR": 14.0,
"BF": 535.0,
"Pitches": 1929.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8148,
"R": 1.963,
"H": 3.8148,
"BB": 1.1111,
"SO": 3.2963,
"HR": 0.5185,
"BF": 19.8148,
"Pitches": 71.4444
},
"rates": {
"ERA": 3.2993,
"WHIP": 0.995,
"ER_per_IP": 0.36658,
"H_per_IP": 0.77057,
"BB_per_IP": 0.22444,
"SO_per_IP": 0.66584,
"HR_per_IP": 0.10474
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.147,
"predicted_H": 4.271,
"predicted_BB": 1.456,
"predicted_SO": 3.188,
"predicted_HR": 0.672,
"predicted_ERA": 3.7077,
"predicted_WHIP": 1.0987
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.147,
"final": 2.0858,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.271,
"final": 4.5743,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.456,
"final": 1.6823,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.188,
"final": 4.7738,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.672,
"final": 0.8084,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7077,
"final": 3.7077,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0987,
"final": 1.0987,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.0,
"ER": 16,
"H": 33,
"BB": 11,
"SO": 30,
"HR": 5,
"ERA": 3.2727272727272734,
"WHIP": 1.0000000000000002,
"K9": 6.136363636363638,
"HR9": 1.022727272727273,
"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-18T00:00:00"
},
"recent_form_boost": 0.8666601984494436,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "672456",
"player_name": "Keider Montero",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 134,
"wins": 62,
"losses": 72,
"win_pct": 0.4627,
"runs_scored": 593.0,
"runs_allowed": 524.0,
"run_differential": 69.0,
"run_differential_per_game": 0.5149,
"avg_runs_scored": 4.4254,
"avg_runs_allowed": 3.9104,
"offense_index": 0.9884,
"defense_index": 1.1449,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 4.2,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.0735
},
"opponent": {
"team": "LAD",
"games": 135,
"wins": 81,
"losses": 54,
"win_pct": 0.6,
"runs_scored": 663.0,
"runs_allowed": 514.0,
"run_differential": 149.0,
"run_differential_per_game": 1.1037,
"avg_runs_scored": 4.9111,
"avg_runs_allowed": 3.8074,
"offense_index": 1.0969,
"defense_index": 1.1759,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.4,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.2906
},
"edges": {
"quality_edge": -0.3641,
"offense_edge": -0.0116,
"opponent_offense_edge": 0.0969,
"defense_strength": 0.1449,
"opponent_defense_weakness": -0.1759,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.9859,
"run_prevention": 1.0192,
"strikeout": 0.9813
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "672456",
"profile": {
"available": true,
"pitcher_id": "672456",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 508.0,
"k_percent": 16.6,
"bb_percent": 5.6,
"woba": 0.265,
"xwoba": 0.29,
"sweet_spot_percent": 29.4,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.5,
"avg_best_speed": 77.9117,
"avg_hyper_speed": 93.6739,
"whiff_percent": 18.6,
"swing_percent": 48.5
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.4995,
"command_and_miss": -0.5004,
"regression_edge": -0.7143,
"xwoba_edge": 0.6,
"barrel_edge": -0.0333,
"hard_hit_edge": 0.0429,
"whiff_edge": -0.9429,
"bb_edge": 0.9,
"pitch_design_score": 0.0091
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "672456",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 90.01803682427683,
"release_spin_rate": 2353.3782313595193,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 90.01803682427683,
"release_spin_rate": 2353.3782313595193,
"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.018,
"release_spin_rate": 2353.3782,
"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.0091,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0649,
"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.0789,
"sample_weight": 1.0,
"run_prevention_factor": 0.9933,
"strikeout_factor": 0.9311,
"walk_factor": 0.928,
"homer_factor": 0.983,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "672456",
"espn_id": 5182933,
"player_name": "Keider Montero",
"team": "DET",
"role": "pitcher",
"espn_rank": 27,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 27,
"gp_value": 27.0,
"gp_rank": 228,
"gs_value": 21.0,
"gs_rank": 84,
"qs_value": 9.0,
"qs_rank": 59,
"era_value": 3.2992,
"era_rank": null,
"w_value": 9.0,
"w_rank": 31,
"l_value": 8.0,
"l_rank": 41,
"sv_value": 1.0,
"sv_rank": 132,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 133.2,
"ip_rank": 55,
"h_value": 103.0,
"h_rank": 97,
"er_value": 49.0,
"er_rank": 93,
"hr_value": 14.0,
"hr_rank": 91,
"bb_value": 30.0,
"bb_rank": 144,
"k_value": 89.0,
"k_rank": 110,
"k_per_9_value": 5.992519,
"k_per_9_rank": 53,
"whip_value": 0.995,
"whip_rank": null,
"war_value": 3.11,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9933,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9933,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.928,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.983,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9311,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 111,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260829_LAD@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_MIA@WAS | away | Sandy Alcantara | Sandy Alcantara | True | 6.1 | 6.0 | -1 | 3 | 4 | 1 | 5/8 | 1/1 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.381125226860254,
"WHIP": 1.1760435571687842,
"IP": 183.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 6.56,
"recent_avg_IP": 6.6,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1346,
"sample_weight": 1.0,
"run_prevention_factor": 0.9886,
"strikeout_factor": 0.9546,
"walk_factor": 0.946,
"homer_factor": 0.9388,
"regression_flag": "neutral",
"k_percent": 18.1,
"bb_percent": 6.5,
"woba": 0.292,
"xwoba": 0.296,
"barrel_percent": 5.3,
"hard_hit_percent": 35.1,
"whiff_percent": 21.2
},
"espn_rank": {
"rank": 20,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "645261",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 5.0,
"R": 5.0,
"H": 24.0,
"BB": 10.0,
"SO": 22.0,
"HR": 1.0,
"BF": 132.0,
"Pitches": 512.0
},
"per_game": {
"IP": 6.2,
"ER": 1.0,
"R": 1.0,
"H": 4.8,
"BB": 2.0,
"SO": 4.4,
"HR": 0.2,
"BF": 26.4,
"Pitches": 102.4
},
"rates": {
"ERA": 1.3636,
"WHIP": 1.0303,
"ER_per_IP": 0.15152,
"H_per_IP": 0.72727,
"BB_per_IP": 0.30303,
"SO_per_IP": 0.66667,
"HR_per_IP": 0.0303
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 68.0,
"ER": 15.0,
"R": 15.0,
"H": 51.0,
"BB": 17.0,
"SO": 53.0,
"HR": 6.0,
"BF": 271.0,
"Pitches": 1020.0
},
"per_game": {
"IP": 6.2,
"ER": 1.5,
"R": 1.5,
"H": 5.1,
"BB": 1.7,
"SO": 5.3,
"HR": 0.6,
"BF": 27.1,
"Pitches": 102.0
},
"rates": {
"ERA": 1.9853,
"WHIP": 1.0,
"ER_per_IP": 0.22059,
"H_per_IP": 0.75,
"BB_per_IP": 0.25,
"SO_per_IP": 0.77941,
"HR_per_IP": 0.08824
}
},
"season": {
"games": 28,
"totals": {
"IP": 183.2,
"ER": 69.0,
"R": 74.0,
"H": 167.0,
"BB": 49.0,
"SO": 137.0,
"HR": 18.0,
"BF": 757.0,
"Pitches": 2769.0
},
"per_game": {
"IP": 6.2,
"ER": 2.4643,
"R": 2.6429,
"H": 5.9643,
"BB": 1.75,
"SO": 4.8929,
"HR": 0.6429,
"BF": 27.0357,
"Pitches": 98.8929
},
"rates": {
"ERA": 3.3811,
"WHIP": 1.176,
"ER_per_IP": 0.37568,
"H_per_IP": 0.90926,
"BB_per_IP": 0.26679,
"SO_per_IP": 0.74592,
"HR_per_IP": 0.098
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.2,
"predicted_ER": 1.739,
"predicted_H": 5.309,
"predicted_BB": 1.927,
"predicted_SO": 4.996,
"predicted_HR": 0.506,
"predicted_ERA": 2.3651,
"predicted_WHIP": 1.0936
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.2,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.739,
"final": 2.2611,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.309,
"final": 5.1811,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.927,
"final": 1.5432,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.996,
"final": 4.5836,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.506,
"final": 0.7105,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3651,
"final": 2.3651,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0936,
"final": 1.0936,
"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": 68.0,
"ER": 15,
"H": 51,
"BB": 17,
"SO": 53,
"HR": 6,
"ERA": 1.9852941176470589,
"WHIP": 1.0,
"K9": 7.014705882352941,
"HR9": 0.7941176470588235,
"games_pitched": 10,
"quality_starts": 9,
"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-24T00:00:00"
},
"recent_form_boost": 0.7218239685029195,
"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": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "645261",
"player_name": "Sandy Alcantara",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "MIA",
"games": 135,
"wins": 68,
"losses": 67,
"win_pct": 0.5037,
"runs_scored": 584.0,
"runs_allowed": 572.0,
"run_differential": 12.0,
"run_differential_per_game": 0.0889,
"avg_runs_scored": 4.3259,
"avg_runs_allowed": 4.237,
"offense_index": 0.9685,
"defense_index": 1.0542,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.2,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0209
},
"opponent": {
"team": "WAS",
"games": 137,
"wins": 64,
"losses": 73,
"win_pct": 0.4672,
"runs_scored": 713.0,
"runs_allowed": 694.0,
"run_differential": 19.0,
"run_differential_per_game": 0.1387,
"avg_runs_scored": 5.2044,
"avg_runs_allowed": 5.0657,
"offense_index": 1.1652,
"defense_index": 0.8817,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.7,
"run_differential": 6.0
},
"available": true,
"quality_score": -0.0458
},
"edges": {
"quality_edge": 0.0249,
"offense_edge": -0.0315,
"opponent_offense_edge": 0.1652,
"defense_strength": 0.0542,
"opponent_defense_weakness": 0.1183,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.996,
"run_prevention": 1.0198,
"strikeout": 0.9875
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "645261",
"profile": {
"available": true,
"pitcher_id": "645261",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 724.0,
"k_percent": 18.1,
"bb_percent": 6.5,
"woba": 0.292,
"xwoba": 0.296,
"sweet_spot_percent": 32.4,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 35.1,
"avg_best_speed": 77.4686,
"avg_hyper_speed": 93.5124,
"whiff_percent": 21.2,
"swing_percent": 50.7
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3876,
"command_and_miss": -0.3189,
"regression_edge": -0.1143,
"xwoba_edge": 0.4286,
"barrel_edge": 0.4111,
"hard_hit_edge": 0.3857,
"whiff_edge": -0.5714,
"bb_edge": 0.675,
"pitch_design_score": 0.1488
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "645261",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 101,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 101,
"pitch_usage": 0.0,
"release_speed": 92.51275382443535,
"release_spin_rate": 2245.096491486143,
"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": 101,
"pitch_usage": 0.0,
"release_speed": 92.51275382443535,
"release_spin_rate": 2245.096491486143,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.5128,
"release_spin_rate": 2245.0965,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1488,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0628,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1346,
"sample_weight": 1.0,
"run_prevention_factor": 0.9886,
"strikeout_factor": 0.9546,
"walk_factor": 0.946,
"homer_factor": 0.9388,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "645261",
"espn_id": 35241,
"player_name": "Sandy Alcantara",
"team": "MIA",
"role": "pitcher",
"espn_rank": 20,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 20,
"gp_value": 28.0,
"gp_rank": 219,
"gs_value": 28.0,
"gs_rank": 1,
"qs_value": 21.0,
"qs_rank": 1,
"era_value": 3.3811,
"era_rank": 22.0,
"w_value": 13.0,
"w_rank": 8,
"l_value": 8.0,
"l_rank": 41,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 183.2,
"ip_rank": 1,
"h_value": 167.0,
"h_rank": 3,
"er_value": 69.0,
"er_rank": 19,
"hr_value": 18.0,
"hr_rank": 41,
"bb_value": 49.0,
"bb_rank": 30,
"k_value": 137.0,
"k_rank": 34,
"k_per_9_value": 6.7132487,
"k_per_9_rank": 918,
"whip_value": 1.176,
"whip_rank": 26.0,
"war_value": 3.35,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9886,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9886,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.946,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9388,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9546,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260829_MIA@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_MIA@WAS | home | Cade Cavalli | Cade Cavalli | True | 6.0 | 4.0 | -6 | 2 | 0 | -2 | 6/0 | 1/3 | 7/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2085201793721976,
"WHIP": 1.2107623318385652,
"IP": 148.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.31,
"recent_avg_IP": 6.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1516,
"sample_weight": 1.0,
"run_prevention_factor": 0.9871,
"strikeout_factor": 1.034,
"walk_factor": 0.954,
"homer_factor": 1.0239,
"regression_flag": "neutral",
"k_percent": 27.1,
"bb_percent": 6.9,
"woba": 0.303,
"xwoba": 0.305,
"barrel_percent": 7.5,
"hard_hit_percent": 41.8,
"whiff_percent": 26.1
},
"espn_rank": {
"rank": 37,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676917",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 7.0,
"R": 8.0,
"H": 22.0,
"BB": 7.0,
"SO": 39.0,
"HR": 7.0,
"BF": 121.0,
"Pitches": 470.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.6,
"H": 4.4,
"BB": 1.4,
"SO": 7.8,
"HR": 1.4,
"BF": 24.2,
"Pitches": 94.0
},
"rates": {
"ERA": 1.9688,
"WHIP": 0.9062,
"ER_per_IP": 0.21875,
"H_per_IP": 0.6875,
"BB_per_IP": 0.21875,
"SO_per_IP": 1.21875,
"HR_per_IP": 0.21875
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 16.0,
"R": 19.0,
"H": 46.0,
"BB": 14.0,
"SO": 67.0,
"HR": 10.0,
"BF": 227.0,
"Pitches": 901.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.9,
"H": 4.6,
"BB": 1.4,
"SO": 6.7,
"HR": 1.0,
"BF": 22.7,
"Pitches": 90.1
},
"rates": {
"ERA": 2.4686,
"WHIP": 1.0286,
"ER_per_IP": 0.27429,
"H_per_IP": 0.78857,
"BB_per_IP": 0.24,
"SO_per_IP": 1.14857,
"HR_per_IP": 0.17143
}
},
"season": {
"games": 28,
"totals": {
"IP": 148.2,
"ER": 53.0,
"R": 64.0,
"H": 137.0,
"BB": 43.0,
"SO": 169.0,
"HR": 17.0,
"BF": 624.0,
"Pitches": 2435.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8929,
"R": 2.2857,
"H": 4.8929,
"BB": 1.5357,
"SO": 6.0357,
"HR": 0.6071,
"BF": 22.2857,
"Pitches": 86.9643
},
"rates": {
"ERA": 3.2085,
"WHIP": 1.2108,
"ER_per_IP": 0.3565,
"H_per_IP": 0.92152,
"BB_per_IP": 0.28924,
"SO_per_IP": 1.13677,
"HR_per_IP": 0.11435
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.811,
"predicted_H": 4.816,
"predicted_BB": 1.563,
"predicted_SO": 6.867,
"predicted_HR": 1.058,
"predicted_ERA": 2.7104,
"predicted_WHIP": 1.0606
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.811,
"final": 1.8892,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.816,
"final": 5.3062,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.563,
"final": 1.3299,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.867,
"final": 6.5081,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.058,
"final": 1.034,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7104,
"final": 2.7104,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0606,
"final": 1.0606,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.1,
"ER": 16,
"H": 46,
"BB": 14,
"SO": 67,
"HR": 10,
"ERA": 2.4685714285714284,
"WHIP": 1.0285714285714285,
"K9": 10.337142857142856,
"HR9": 1.5428571428571427,
"games_pitched": 10,
"quality_starts": 9,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-24T00:00:00"
},
"recent_form_boost": 0.7769069516961967,
"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": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676917",
"player_name": "Cade Cavalli",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.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": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "WAS",
"games": 137,
"wins": 64,
"losses": 73,
"win_pct": 0.4672,
"runs_scored": 713.0,
"runs_allowed": 694.0,
"run_differential": 19.0,
"run_differential_per_game": 0.1387,
"avg_runs_scored": 5.2044,
"avg_runs_allowed": 5.0657,
"offense_index": 1.1652,
"defense_index": 0.8817,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.7,
"run_differential": 6.0
},
"available": true,
"quality_score": -0.0458
},
"opponent": {
"team": "MIA",
"games": 135,
"wins": 68,
"losses": 67,
"win_pct": 0.5037,
"runs_scored": 584.0,
"runs_allowed": 572.0,
"run_differential": 12.0,
"run_differential_per_game": 0.0889,
"avg_runs_scored": 4.3259,
"avg_runs_allowed": 4.237,
"offense_index": 0.9685,
"defense_index": 1.0542,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.2,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0209
},
"edges": {
"quality_edge": -0.0249,
"offense_edge": 0.1652,
"opponent_offense_edge": -0.0315,
"defense_strength": -0.1183,
"opponent_defense_weakness": -0.0542,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9967,
"run_prevention": 1.008,
"strikeout": 1.0018
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676917",
"profile": {
"available": true,
"pitcher_id": "676917",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 596.0,
"k_percent": 27.1,
"bb_percent": 6.9,
"woba": 0.303,
"xwoba": 0.305,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 41.8,
"avg_best_speed": 78.3197,
"avg_hyper_speed": 94.4195,
"whiff_percent": 26.1,
"swing_percent": 48.0
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0419,
"command_and_miss": 0.4846,
"regression_edge": -0.0571,
"xwoba_edge": 0.1714,
"barrel_edge": -0.0778,
"hard_hit_edge": -0.5714,
"whiff_edge": 0.1286,
"bb_edge": 0.575,
"pitch_design_score": 0.0986
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676917",
"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": 91.61672486815726,
"release_spin_rate": 2232.265396590468,
"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": 91.61672486815726,
"release_spin_rate": 2232.265396590468,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.6167,
"release_spin_rate": 2232.2654,
"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.0986,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7044,
"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.1516,
"sample_weight": 1.0,
"run_prevention_factor": 0.9871,
"strikeout_factor": 1.034,
"walk_factor": 0.954,
"homer_factor": 1.0239,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676917",
"espn_id": 4308037,
"player_name": "Cade Cavalli",
"team": "WSH",
"role": "pitcher",
"espn_rank": 37,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 37,
"gp_value": 28.0,
"gp_rank": 219,
"gs_value": 28.0,
"gs_rank": 1,
"qs_value": 16.0,
"qs_rank": 9,
"era_value": 3.2085,
"era_rank": 15.0,
"w_value": 12.0,
"w_rank": 13,
"l_value": 5.0,
"l_rank": 128,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 148.2,
"ip_rank": 24,
"h_value": 137.0,
"h_rank": 23,
"er_value": 53.0,
"er_rank": 77,
"hr_value": 17.0,
"hr_rank": 53,
"bb_value": 43.0,
"bb_rank": 55,
"k_value": 169.0,
"k_rank": 10,
"k_per_9_value": 10.230942,
"k_per_9_rank": 11,
"whip_value": 1.2107,
"whip_rank": 29.0,
"war_value": 2.76,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9871,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9871,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.954,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0239,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.034,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was -6."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260829_MIA@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_PHI@LAA | away | Cristopher Sánchez | Cristopher Sánchez | True | 6.0 | 7.0 | 3 | 1 | 0 | -1 | 1/2 | 3/1 | 4/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.6198019801980195,
"WHIP": 1.2237623762376237,
"IP": 168.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 6.235,
"recent_avg_IP": 5.933,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4685,
"sample_weight": 1.0,
"run_prevention_factor": 0.9602,
"strikeout_factor": 1.0751,
"walk_factor": 0.924,
"homer_factor": 1.0035,
"regression_flag": "neutral",
"k_percent": 27.7,
"bb_percent": 5.4,
"woba": 0.294,
"xwoba": 0.284,
"barrel_percent": 7.3,
"hard_hit_percent": 42.0,
"whiff_percent": 32.7
},
"espn_rank": {
"rank": 1,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "650911",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 7.0,
"R": 7.0,
"H": 29.0,
"BB": 10.0,
"SO": 37.0,
"HR": 2.0,
"BF": 123.0,
"Pitches": 479.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 5.8,
"BB": 2.0,
"SO": 7.4,
"HR": 0.4,
"BF": 24.6,
"Pitches": 95.8
},
"rates": {
"ERA": 2.1236,
"WHIP": 1.3146,
"ER_per_IP": 0.23596,
"H_per_IP": 0.97753,
"BB_per_IP": 0.33708,
"SO_per_IP": 1.24719,
"HR_per_IP": 0.06742
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 23.0,
"R": 24.0,
"H": 67.0,
"BB": 17.0,
"SO": 67.0,
"HR": 6.0,
"BF": 252.0,
"Pitches": 957.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.4,
"H": 6.7,
"BB": 1.7,
"SO": 6.7,
"HR": 0.6,
"BF": 25.2,
"Pitches": 95.7
},
"rates": {
"ERA": 3.5486,
"WHIP": 1.44,
"ER_per_IP": 0.39429,
"H_per_IP": 1.14857,
"BB_per_IP": 0.29143,
"SO_per_IP": 1.14857,
"HR_per_IP": 0.10286
}
},
"season": {
"games": 27,
"totals": {
"IP": 168.1,
"ER": 49.0,
"R": 55.0,
"H": 168.0,
"BB": 38.0,
"SO": 194.0,
"HR": 14.0,
"BF": 701.0,
"Pitches": 2582.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8148,
"R": 2.037,
"H": 6.2222,
"BB": 1.4074,
"SO": 7.1852,
"HR": 0.5185,
"BF": 25.963,
"Pitches": 95.6296
},
"rates": {
"ERA": 2.6198,
"WHIP": 1.2238,
"ER_per_IP": 0.29109,
"H_per_IP": 0.99802,
"BB_per_IP": 0.22574,
"SO_per_IP": 1.15248,
"HR_per_IP": 0.08317
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.018,
"predicted_H": 6.244,
"predicted_BB": 1.877,
"predicted_SO": 6.99,
"predicted_HR": 0.562,
"predicted_ERA": 2.9987,
"predicted_WHIP": 1.341
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.018,
"final": 1.5945,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 6.244,
"final": 4.0625,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.877,
"final": 2.3442,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.99,
"final": 4.9142,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.562,
"final": 0.3282,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9987,
"final": 2.9987,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.341,
"final": 1.341,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.1,
"ER": 23,
"H": 67,
"BB": 17,
"SO": 67,
"HR": 6,
"ERA": 3.5485714285714285,
"WHIP": 1.44,
"K9": 10.337142857142856,
"HR9": 0.9257142857142857,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.908692665981911,
"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": 1.0,
"predicted_BB": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "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": 1,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650911",
"player_name": "Cristopher S\u00e1nchez",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 4.0,
"delta": -3.0,
"percent_delta": -0.4286,
"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": 7.0,
"after": 4.0,
"delta": -3.0,
"percent_delta": -0.4286,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"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": "PHI",
"games": 135,
"wins": 75,
"losses": 60,
"win_pct": 0.5556,
"runs_scored": 613.0,
"runs_allowed": 588.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1852,
"avg_runs_scored": 4.5407,
"avg_runs_allowed": 4.3556,
"offense_index": 1.0137,
"defense_index": 1.0284,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.9,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.175
},
"opponent": {
"team": "LAA",
"games": 135,
"wins": 52,
"losses": 83,
"win_pct": 0.3852,
"runs_scored": 551.0,
"runs_allowed": 628.0,
"run_differential": -77.0,
"run_differential_per_game": -0.5704,
"avg_runs_scored": 4.0815,
"avg_runs_allowed": 4.6519,
"offense_index": 0.9112,
"defense_index": 0.9629,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.5,
"run_differential": 9.0
},
"available": true,
"quality_score": -0.2376
},
"edges": {
"quality_edge": 0.4126,
"offense_edge": 0.0137,
"opponent_offense_edge": -0.0888,
"defense_strength": 0.0284,
"opponent_defense_weakness": 0.0371,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0209,
"run_prevention": 0.9623,
"strikeout": 1.0195
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650911",
"profile": {
"available": true,
"pitcher_id": "650911",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 670.0,
"k_percent": 27.7,
"bb_percent": 5.4,
"woba": 0.294,
"xwoba": 0.284,
"sweet_spot_percent": 32.1,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 42.0,
"avg_best_speed": 78.1887,
"avg_hyper_speed": 94.4471,
"whiff_percent": 32.7,
"swing_percent": 50.3
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3503,
"command_and_miss": 0.9282,
"regression_edge": 0.2857,
"xwoba_edge": 0.7714,
"barrel_edge": -0.0333,
"hard_hit_edge": -0.6,
"whiff_edge": 1.0714,
"bb_edge": 0.95,
"pitch_design_score": 0.0302
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650911",
"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": 90.39508390967275,
"release_spin_rate": 2081.2610513716268,
"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": 90.39508390967275,
"release_spin_rate": 2081.2610513716268,
"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.3951,
"release_spin_rate": 2081.2611,
"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.0302,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2157,
"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.4685,
"sample_weight": 1.0,
"run_prevention_factor": 0.9602,
"strikeout_factor": 1.0751,
"walk_factor": 0.924,
"homer_factor": 1.0035,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "650911",
"espn_id": 42359,
"player_name": "Cristopher Sanchez",
"team": "PHI",
"role": "pitcher",
"espn_rank": 1,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 1,
"gp_value": 27.0,
"gp_rank": 228,
"gs_value": 27.0,
"gs_rank": 7,
"qs_value": 18.0,
"qs_rank": 3,
"era_value": 2.6198,
"era_rank": 8.0,
"w_value": 16.0,
"w_rank": 1,
"l_value": 4.0,
"l_rank": 166,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 168.1,
"ip_rank": 3,
"h_value": 168.0,
"h_rank": 2,
"er_value": 49.0,
"er_rank": 93,
"hr_value": 14.0,
"hr_rank": 91,
"bb_value": 38.0,
"bb_rank": 79,
"k_value": 194.0,
"k_rank": 6,
"k_per_9_value": 10.372277,
"k_per_9_rank": 54,
"whip_value": 1.2237,
"whip_rank": 32.0,
"war_value": 7.01,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9602,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9602,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.924,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0035,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0751,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260829_PHI@LAA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_PHI@LAA | home | Ryan Johnson | Ryan Johnson | True | 5.1 | 5.0 | -1 | 3 | 1 | -2 | 3/2 | 3/5 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.747524752475248,
"WHIP": 1.425742574257426,
"IP": 67.1,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.795,
"recent_avg_IP": 5.133,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5594,
"sample_weight": 1.0,
"run_prevention_factor": 1.0476,
"strikeout_factor": 0.9603,
"walk_factor": 1.026,
"homer_factor": 1.0981,
"regression_flag": "neutral",
"k_percent": 16.9,
"bb_percent": 10.5,
"woba": 0.35,
"xwoba": 0.354,
"barrel_percent": 10.5,
"hard_hit_percent": 38.1,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 783,
"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",
"pitcher_usage_role": "starter",
"player_id": "696270",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 9.0,
"R": 9.0,
"H": 18.0,
"BB": 14.0,
"SO": 16.0,
"HR": 5.0,
"BF": 106.0,
"Pitches": 423.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 1.8,
"H": 3.6,
"BB": 2.8,
"SO": 3.2,
"HR": 1.0,
"BF": 21.2,
"Pitches": 84.6
},
"rates": {
"ERA": 3.1558,
"WHIP": 1.2468,
"ER_per_IP": 0.35065,
"H_per_IP": 0.7013,
"BB_per_IP": 0.54545,
"SO_per_IP": 0.62338,
"HR_per_IP": 0.19481
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 24.0,
"R": 29.0,
"H": 41.0,
"BB": 22.0,
"SO": 35.0,
"HR": 11.0,
"BF": 204.0,
"Pitches": 826.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.9,
"H": 4.1,
"BB": 2.2,
"SO": 3.5,
"HR": 1.1,
"BF": 20.4,
"Pitches": 82.6
},
"rates": {
"ERA": 4.5,
"WHIP": 1.3125,
"ER_per_IP": 0.5,
"H_per_IP": 0.85417,
"BB_per_IP": 0.45833,
"SO_per_IP": 0.72917,
"HR_per_IP": 0.22917
}
},
"season": {
"games": 16,
"totals": {
"IP": 67.1,
"ER": 43.0,
"R": 48.0,
"H": 65.0,
"BB": 31.0,
"SO": 50.0,
"HR": 16.0,
"BF": 295.0,
"Pitches": 1175.0
},
"per_game": {
"IP": 4.1,
"ER": 2.6875,
"R": 3.0,
"H": 4.0625,
"BB": 1.9375,
"SO": 3.125,
"HR": 1.0,
"BF": 18.4375,
"Pitches": 73.4375
},
"rates": {
"ERA": 5.7475,
"WHIP": 1.4257,
"ER_per_IP": 0.63861,
"H_per_IP": 0.96535,
"BB_per_IP": 0.4604,
"SO_per_IP": 0.74257,
"HR_per_IP": 0.23762
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.259,
"predicted_H": 4.076,
"predicted_BB": 2.248,
"predicted_SO": 3.584,
"predicted_HR": 0.957,
"predicted_ERA": 4.2281,
"predicted_WHIP": 1.3148
}
},
"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,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"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": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.259,
"final": 2.5929,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.076,
"final": 3.5912,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.248,
"final": 2.5868,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.584,
"final": 3.7714,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.957,
"final": 0.5258,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2281,
"final": 4.2281,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3148,
"final": 1.3148,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 24,
"H": 41,
"BB": 22,
"SO": 35,
"HR": 11,
"ERA": 4.5,
"WHIP": 1.3125,
"K9": 6.5625,
"HR9": 2.0625,
"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-22T00:00:00"
},
"recent_form_boost": 1.0125408802676255,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696270",
"player_name": "Ryan Johnson",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.1,
"delta": 0.1,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.1,
"delta": 0.1,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 135,
"wins": 52,
"losses": 83,
"win_pct": 0.3852,
"runs_scored": 551.0,
"runs_allowed": 628.0,
"run_differential": -77.0,
"run_differential_per_game": -0.5704,
"avg_runs_scored": 4.0815,
"avg_runs_allowed": 4.6519,
"offense_index": 0.9112,
"defense_index": 0.9629,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.5,
"run_differential": 9.0
},
"available": true,
"quality_score": -0.2376
},
"opponent": {
"team": "PHI",
"games": 135,
"wins": 75,
"losses": 60,
"win_pct": 0.5556,
"runs_scored": 613.0,
"runs_allowed": 588.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1852,
"avg_runs_scored": 4.5407,
"avg_runs_allowed": 4.3556,
"offense_index": 1.0137,
"defense_index": 1.0284,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.9,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.175
},
"edges": {
"quality_edge": -0.4126,
"offense_edge": -0.0888,
"opponent_offense_edge": 0.0137,
"defense_strength": -0.0371,
"opponent_defense_weakness": -0.0284,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.9818,
"run_prevention": 1.0265,
"strikeout": 0.9865
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696270",
"profile": {
"available": true,
"pitcher_id": "696270",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 271.0,
"k_percent": 16.9,
"bb_percent": 10.5,
"woba": 0.35,
"xwoba": 0.354,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 10.5,
"hard_hit_percent": 38.1,
"avg_best_speed": 76.987,
"avg_hyper_speed": 93.9913,
"whiff_percent": 23.4,
"swing_percent": 45.9
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.7307,
"command_and_miss": -0.4861,
"regression_edge": -0.1143,
"xwoba_edge": -1.2286,
"barrel_edge": -0.7444,
"hard_hit_edge": -0.0429,
"whiff_edge": -0.2571,
"bb_edge": -0.325,
"pitch_design_score": -0.1558
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696270",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 80,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 87.07415991966134,
"release_spin_rate": 2270.636552773629,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 87.07415991966134,
"release_spin_rate": 2270.636552773629,
"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.0742,
"release_spin_rate": 2270.6366,
"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.1558,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1126,
"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.5594,
"sample_weight": 1.0,
"run_prevention_factor": 1.0476,
"strikeout_factor": 0.9603,
"walk_factor": 1.026,
"homer_factor": 1.0981,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "696270",
"espn_id": 5007859,
"player_name": "Ryan Johnson",
"team": "LAA",
"role": "pitcher",
"espn_rank": 783,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 783,
"gp_value": 16.0,
"gp_rank": 423,
"gs_value": 13.0,
"gs_rank": 145,
"qs_value": 2.0,
"qs_rank": 153,
"era_value": 5.7475,
"era_rank": null,
"w_value": 3.0,
"w_rank": 231,
"l_value": 7.0,
"l_rank": 73,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 67.1,
"ip_rank": 178,
"h_value": 65.0,
"h_rank": 164,
"er_value": 43.0,
"er_rank": 124,
"hr_value": 16.0,
"hr_rank": 69,
"bb_value": 31.0,
"bb_rank": 137,
"k_value": 50.0,
"k_rank": 269,
"k_per_9_value": 6.6831684,
"k_per_9_rank": 40,
"whip_value": 1.4257,
"whip_rank": null,
"war_value": -0.64,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0476,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0476,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.026,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0981,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9603,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260829_PHI@LAA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_PIT@STL | away | Lake Bachar | Lake Bachar | True | 5.0 | 2.1 | -8 | 2 | 1 | -1 | 1/1 | 2/0 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0821917808219177,
"WHIP": 1.0273972602739727,
"IP": 73.0,
"games_started": null,
"games_pitched": 44,
"role_avg_IP": 2.333,
"recent_avg_IP": 2.267,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2189,
"sample_weight": 1.0,
"run_prevention_factor": 0.9814,
"strikeout_factor": 1.0403,
"walk_factor": 1.016,
"homer_factor": 1.004,
"regression_flag": "neutral",
"k_percent": 25.0,
"bb_percent": 10.0,
"woba": 0.287,
"xwoba": 0.296,
"barrel_percent": 8.9,
"hard_hit_percent": 35.3,
"whiff_percent": 29.3
},
"espn_rank": {
"rank": 200,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 73.0,
"season_ERA": 3.082,
"season_WHIP": 1.027,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.643,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7455,
"prior_weight": 0.2545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669199",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 44,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 10.1,
"ER": 4.0,
"R": 4.0,
"H": 6.0,
"BB": 8.0,
"SO": 8.0,
"HR": 2.0,
"BF": 43.0,
"Pitches": 181.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8,
"R": 0.8,
"H": 1.2,
"BB": 1.6,
"SO": 1.6,
"HR": 0.4,
"BF": 8.6,
"Pitches": 36.2
},
"rates": {
"ERA": 3.4839,
"WHIP": 1.3548,
"ER_per_IP": 0.3871,
"H_per_IP": 0.58065,
"BB_per_IP": 0.77419,
"SO_per_IP": 0.77419,
"HR_per_IP": 0.19355
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 19.1,
"ER": 9.0,
"R": 9.0,
"H": 14.0,
"BB": 9.0,
"SO": 16.0,
"HR": 5.0,
"BF": 79.0,
"Pitches": 319.0
},
"per_game": {
"IP": 2.0,
"ER": 0.9,
"R": 0.9,
"H": 1.4,
"BB": 0.9,
"SO": 1.6,
"HR": 0.5,
"BF": 7.9,
"Pitches": 31.9
},
"rates": {
"ERA": 4.1897,
"WHIP": 1.1897,
"ER_per_IP": 0.46552,
"H_per_IP": 0.72414,
"BB_per_IP": 0.46552,
"SO_per_IP": 0.82759,
"HR_per_IP": 0.25862
}
},
"season": {
"games": 44,
"totals": {
"IP": 73.0,
"ER": 25.0,
"R": 27.0,
"H": 47.0,
"BB": 28.0,
"SO": 75.0,
"HR": 11.0,
"BF": 294.0,
"Pitches": 1186.0
},
"per_game": {
"IP": 1.2,
"ER": 0.5682,
"R": 0.6136,
"H": 1.0682,
"BB": 0.6364,
"SO": 1.7045,
"HR": 0.25,
"BF": 6.6818,
"Pitches": 26.9545
},
"rates": {
"ERA": 3.0822,
"WHIP": 1.0274,
"ER_per_IP": 0.34247,
"H_per_IP": 0.64384,
"BB_per_IP": 0.38356,
"SO_per_IP": 1.0274,
"HR_per_IP": 0.15068
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 1.238,
"predicted_H": 2.099,
"predicted_BB": 1.535,
"predicted_SO": 2.503,
"predicted_HR": 0.554,
"predicted_ERA": 3.8656,
"predicted_WHIP": 1.2602
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4575,
"form_weight": 0.5425,
"form_reliability": 0.7455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.643,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7455,
"prior_weight": 0.2545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 3.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.238,
"final": 2.0442,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 2.099,
"final": 1.5962,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.535,
"final": 1.7477,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 2.503,
"final": 2.7304,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.554,
"final": 0.7581,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8656,
"final": 3.8656,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2602,
"final": 1.2602,
"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": 9,
"H": 14,
"BB": 9,
"SO": 16,
"HR": 5,
"ERA": 4.189655172413794,
"WHIP": 1.1896551724137931,
"K9": 7.448275862068966,
"HR9": 2.327586206896552,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 0.9839449576974413,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.643,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7455,
"prior_weight": 0.2545
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669199",
"player_name": "Lake Bachar",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 136,
"wins": 65,
"losses": 71,
"win_pct": 0.4779,
"runs_scored": 658.0,
"runs_allowed": 637.0,
"run_differential": 21.0,
"run_differential_per_game": 0.1544,
"avg_runs_scored": 4.8382,
"avg_runs_allowed": 4.6838,
"offense_index": 1.0822,
"defense_index": 0.9545,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.5,
"avg_runs_allowed": 3.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0348
},
"opponent": {
"team": "STL",
"games": 136,
"wins": 68,
"losses": 68,
"win_pct": 0.5,
"runs_scored": 604.0,
"runs_allowed": 614.0,
"run_differential": -10.0,
"run_differential_per_game": -0.0735,
"avg_runs_scored": 4.4412,
"avg_runs_allowed": 4.5147,
"offense_index": 0.9933,
"defense_index": 0.9903,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 6.6,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.044
},
"edges": {
"quality_edge": 0.0092,
"offense_edge": 0.0822,
"opponent_offense_edge": -0.0067,
"defense_strength": -0.0455,
"opponent_defense_weakness": 0.0097,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9993,
"run_prevention": 1.003,
"strikeout": 1.0008
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669199",
"profile": {
"available": true,
"pitcher_id": "669199",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 281.0,
"k_percent": 25.0,
"bb_percent": 10.0,
"woba": 0.287,
"xwoba": 0.296,
"sweet_spot_percent": 30.5,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 35.3,
"avg_best_speed": 78.8671,
"avg_hyper_speed": 93.8264,
"whiff_percent": 29.3,
"swing_percent": 45.5
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.2728,
"command_and_miss": 0.3546,
"regression_edge": -0.2571,
"xwoba_edge": 0.4286,
"barrel_edge": -0.3889,
"hard_hit_edge": 0.3571,
"whiff_edge": 0.5857,
"bb_edge": -0.2,
"pitch_design_score": -0.0048
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669199",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 43,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 43,
"pitch_usage": 0.0,
"release_speed": 89.77040919616555,
"release_spin_rate": 2691.0164138592872,
"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": 43,
"pitch_usage": 0.0,
"release_speed": 89.77040919616555,
"release_spin_rate": 2691.0164138592872,
"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.7704,
"release_spin_rate": 2691.0164,
"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.0048,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0341,
"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.2189,
"sample_weight": 1.0,
"run_prevention_factor": 0.9814,
"strikeout_factor": 1.0403,
"walk_factor": 1.016,
"homer_factor": 1.004,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669199",
"espn_id": 42592,
"player_name": "Lake Bachar",
"team": "PIT",
"role": "pitcher",
"espn_rank": 200,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 200,
"gp_value": 45.0,
"gp_rank": 116,
"gs_value": 6.0,
"gs_rank": 199,
"qs_value": 0.0,
"qs_rank": 206,
"era_value": 3.6986,
"era_rank": null,
"w_value": 1.0,
"w_rank": 392,
"l_value": 3.0,
"l_rank": 221,
"sv_value": 2.0,
"sv_rank": 84,
"hld_value": 1.0,
"hld_rank": 256,
"ip_value": 73.0,
"ip_rank": 163,
"h_value": 51.0,
"h_rank": 216,
"er_value": 30.0,
"er_rank": 179,
"hr_value": 12.0,
"hr_rank": 122,
"bb_value": 30.0,
"bb_rank": 144,
"k_value": 75.0,
"k_rank": 149,
"k_per_9_value": 9.246575,
"k_per_9_rank": 24,
"whip_value": 1.1095,
"whip_rank": null,
"war_value": 0.8,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9814,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 0.9814,
"adjusted": 2
},
"predicted_BB": {
"original": 2.0,
"factor": 1.016,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.004,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0403,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260829_PIT@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_PIT@STL | home | Kyle Leahy | Kyle Leahy | True | 5.2 | 3.0 | -8 | 3 | 1 | -2 | 5/4 | 1/1 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.1345646437994725,
"WHIP": 1.2981530343007917,
"IP": 126.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.053,
"recent_avg_IP": 5.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4211,
"sample_weight": 1.0,
"run_prevention_factor": 1.0358,
"strikeout_factor": 0.9843,
"walk_factor": 0.956,
"homer_factor": 1.1295,
"regression_flag": "neutral",
"k_percent": 21.7,
"bb_percent": 7.0,
"woba": 0.319,
"xwoba": 0.337,
"barrel_percent": 9.9,
"hard_hit_percent": 48.0,
"whiff_percent": 22.8
},
"espn_rank": {
"rank": 33,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 126.1,
"season_ERA": 3.135,
"season_WHIP": 1.298,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681517",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 4.0,
"R": 4.0,
"H": 25.0,
"BB": 3.0,
"SO": 27.0,
"HR": 0.0,
"BF": 99.0,
"Pitches": 414.0
},
"per_game": {
"IP": 5.0,
"ER": 0.8,
"R": 0.8,
"H": 5.0,
"BB": 0.6,
"SO": 5.4,
"HR": 0.0,
"BF": 19.8,
"Pitches": 82.8
},
"rates": {
"ERA": 1.44,
"WHIP": 1.12,
"ER_per_IP": 0.16,
"H_per_IP": 1.0,
"BB_per_IP": 0.12,
"SO_per_IP": 1.08,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.0,
"ER": 8.0,
"R": 8.0,
"H": 40.0,
"BB": 9.0,
"SO": 53.0,
"HR": 3.0,
"BF": 193.0,
"Pitches": 819.0
},
"per_game": {
"IP": 5.0,
"ER": 0.8,
"R": 0.8,
"H": 4.0,
"BB": 0.9,
"SO": 5.3,
"HR": 0.3,
"BF": 19.3,
"Pitches": 81.9
},
"rates": {
"ERA": 1.44,
"WHIP": 0.98,
"ER_per_IP": 0.16,
"H_per_IP": 0.8,
"BB_per_IP": 0.18,
"SO_per_IP": 1.06,
"HR_per_IP": 0.06
}
},
"season": {
"games": 25,
"totals": {
"IP": 126.1,
"ER": 44.0,
"R": 44.0,
"H": 127.0,
"BB": 37.0,
"SO": 115.0,
"HR": 12.0,
"BF": 531.0,
"Pitches": 2086.0
},
"per_game": {
"IP": 5.0,
"ER": 1.76,
"R": 1.76,
"H": 5.08,
"BB": 1.48,
"SO": 4.6,
"HR": 0.48,
"BF": 21.24,
"Pitches": 83.44
},
"rates": {
"ERA": 3.1346,
"WHIP": 1.2982,
"ER_per_IP": 0.34828,
"H_per_IP": 1.00528,
"BB_per_IP": 0.29288,
"SO_per_IP": 0.91029,
"HR_per_IP": 0.09499
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.267,
"predicted_H": 4.796,
"predicted_BB": 1.063,
"predicted_SO": 5.227,
"predicted_HR": 0.295,
"predicted_ERA": 2.2318,
"predicted_WHIP": 1.1463
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.267,
"final": 2.416,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.796,
"final": 4.8818,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.063,
"final": 1.0365,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.227,
"final": 4.2907,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.295,
"final": 1.0118,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2318,
"final": 2.2318,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1463,
"final": 1.1463,
"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": 8,
"H": 40,
"BB": 9,
"SO": 53,
"HR": 3,
"ERA": 1.44,
"WHIP": 0.98,
"K9": 9.54,
"HR9": 0.54,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.691690932694228,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681517",
"player_name": "Kyle Leahy",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"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": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"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": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 136,
"wins": 68,
"losses": 68,
"win_pct": 0.5,
"runs_scored": 604.0,
"runs_allowed": 614.0,
"run_differential": -10.0,
"run_differential_per_game": -0.0735,
"avg_runs_scored": 4.4412,
"avg_runs_allowed": 4.5147,
"offense_index": 0.9933,
"defense_index": 0.9903,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 6.6,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.044
},
"opponent": {
"team": "PIT",
"games": 136,
"wins": 65,
"losses": 71,
"win_pct": 0.4779,
"runs_scored": 658.0,
"runs_allowed": 637.0,
"run_differential": 21.0,
"run_differential_per_game": 0.1544,
"avg_runs_scored": 4.8382,
"avg_runs_allowed": 4.6838,
"offense_index": 1.0822,
"defense_index": 0.9545,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.5,
"avg_runs_allowed": 3.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0348
},
"edges": {
"quality_edge": -0.0092,
"offense_edge": -0.0067,
"opponent_offense_edge": 0.0822,
"defense_strength": -0.0097,
"opponent_defense_weakness": 0.0455,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9961,
"run_prevention": 1.0146,
"strikeout": 0.9931
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681517",
"profile": {
"available": true,
"pitcher_id": "681517",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 514.0,
"k_percent": 21.7,
"bb_percent": 7.0,
"woba": 0.319,
"xwoba": 0.337,
"sweet_spot_percent": 35.9,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 48.0,
"avg_best_speed": 81.081,
"avg_hyper_speed": 95.4711,
"whiff_percent": 22.8,
"swing_percent": 46.4
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6422,
"command_and_miss": -0.0325,
"regression_edge": -0.5143,
"xwoba_edge": -0.7429,
"barrel_edge": -0.6111,
"hard_hit_edge": -1.4571,
"whiff_edge": -0.3429,
"bb_edge": 0.55,
"pitch_design_score": -0.0198
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681517",
"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.50135049643278,
"release_spin_rate": 2181.5467068991857,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 89.50135049643278,
"release_spin_rate": 2181.5467068991857,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.5014,
"release_spin_rate": 2181.5467,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0198,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1417,
"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.4211,
"sample_weight": 1.0,
"run_prevention_factor": 1.0358,
"strikeout_factor": 0.9843,
"walk_factor": 0.956,
"homer_factor": 1.1295,
"woba_minus_xwoba": -0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "681517",
"espn_id": 5006093,
"player_name": "Kyle Leahy",
"team": "STL",
"role": "pitcher",
"espn_rank": 33,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 33,
"gp_value": 25.0,
"gp_rank": 285,
"gs_value": 25.0,
"gs_rank": 36,
"qs_value": 6.0,
"qs_rank": 84,
"era_value": 3.1345,
"era_rank": null,
"w_value": 10.0,
"w_rank": 23,
"l_value": 4.0,
"l_rank": 166,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 126.1,
"ip_rank": 68,
"h_value": 127.0,
"h_rank": 46,
"er_value": 44.0,
"er_rank": 119,
"hr_value": 12.0,
"hr_rank": 122,
"bb_value": 37.0,
"bb_rank": 89,
"k_value": 115.0,
"k_rank": 67,
"k_per_9_value": 8.192613,
"k_per_9_rank": 26,
"whip_value": 1.2981,
"whip_rank": null,
"war_value": 2.86,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0358,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 1.0358,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.956,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1295,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9843,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260829_PIT@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_SD@TB | away | Walker Buehler | Walker Buehler | True | 5.0 | 5.0 | 0 | 2 | 3 | 1 | 4/7 | 2/0 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.630606860158312,
"WHIP": 1.353562005277045,
"IP": 126.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 4.859,
"recent_avg_IP": 5.267,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1416,
"sample_weight": 1.0,
"run_prevention_factor": 1.012,
"strikeout_factor": 0.9614,
"walk_factor": 0.998,
"homer_factor": 1.0237,
"regression_flag": "neutral",
"k_percent": 20.1,
"bb_percent": 9.1,
"woba": 0.322,
"xwoba": 0.315,
"barrel_percent": 8.0,
"hard_hit_percent": 38.7,
"whiff_percent": 20.4
},
"espn_rank": {
"rank": 223,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "621111",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 8.0,
"R": 8.0,
"H": 23.0,
"BB": 7.0,
"SO": 17.0,
"HR": 2.0,
"BF": 104.0,
"Pitches": 425.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.6,
"H": 4.6,
"BB": 1.4,
"SO": 3.4,
"HR": 0.4,
"BF": 20.8,
"Pitches": 85.0
},
"rates": {
"ERA": 2.7342,
"WHIP": 1.1392,
"ER_per_IP": 0.3038,
"H_per_IP": 0.87342,
"BB_per_IP": 0.26582,
"SO_per_IP": 0.64557,
"HR_per_IP": 0.07595
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 32.0,
"R": 33.0,
"H": 46.0,
"BB": 23.0,
"SO": 38.0,
"HR": 9.0,
"BF": 210.0,
"Pitches": 850.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 3.3,
"H": 4.6,
"BB": 2.3,
"SO": 3.8,
"HR": 0.9,
"BF": 21.0,
"Pitches": 85.0
},
"rates": {
"ERA": 5.9586,
"WHIP": 1.4276,
"ER_per_IP": 0.66207,
"H_per_IP": 0.95172,
"BB_per_IP": 0.47586,
"SO_per_IP": 0.78621,
"HR_per_IP": 0.18621
}
},
"season": {
"games": 26,
"totals": {
"IP": 126.1,
"ER": 65.0,
"R": 66.0,
"H": 122.0,
"BB": 49.0,
"SO": 108.0,
"HR": 15.0,
"BF": 538.0,
"Pitches": 2147.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5,
"R": 2.5385,
"H": 4.6923,
"BB": 1.8846,
"SO": 4.1538,
"HR": 0.5769,
"BF": 20.6923,
"Pitches": 82.5769
},
"rates": {
"ERA": 4.6306,
"WHIP": 1.3536,
"ER_per_IP": 0.51451,
"H_per_IP": 0.9657,
"BB_per_IP": 0.38786,
"SO_per_IP": 0.85488,
"HR_per_IP": 0.11873
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.393,
"predicted_H": 4.667,
"predicted_BB": 1.834,
"predicted_SO": 3.869,
"predicted_HR": 0.638,
"predicted_ERA": 4.2829,
"predicted_WHIP": 1.2929
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.393,
"final": 2.2287,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.667,
"final": 4.3881,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.834,
"final": 1.9034,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.869,
"final": 3.5056,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.638,
"final": 0.3712,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2829,
"final": 4.2829,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2929,
"final": 1.2929,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.1,
"ER": 32,
"H": 46,
"BB": 23,
"SO": 38,
"HR": 9,
"ERA": 5.958620689655173,
"WHIP": 1.427586206896552,
"K9": 7.075862068965518,
"HR9": 1.6758620689655175,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 1.179512863026246,
"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": 2.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": "621111",
"player_name": "Walker Buehler",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 135,
"wins": 72,
"losses": 63,
"win_pct": 0.5333,
"runs_scored": 573.0,
"runs_allowed": 561.0,
"run_differential": 12.0,
"run_differential_per_game": 0.0889,
"avg_runs_scored": 4.2444,
"avg_runs_allowed": 4.1556,
"offense_index": 0.9503,
"defense_index": 1.0748,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 2.9,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.0393
},
"opponent": {
"team": "TB",
"games": 134,
"wins": 80,
"losses": 54,
"win_pct": 0.597,
"runs_scored": 604.0,
"runs_allowed": 552.0,
"run_differential": 52.0,
"run_differential_per_game": 0.3881,
"avg_runs_scored": 4.5075,
"avg_runs_allowed": 4.1194,
"offense_index": 1.0092,
"defense_index": 1.0843,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.9,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.1302
},
"edges": {
"quality_edge": -0.0909,
"offense_edge": -0.0497,
"opponent_offense_edge": 0.0092,
"defense_strength": 0.0748,
"opponent_defense_weakness": -0.0843,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9982,
"run_prevention": 0.9985,
"strikeout": 0.9965
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "621111",
"profile": {
"available": true,
"pitcher_id": "621111",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 514.0,
"k_percent": 20.1,
"bb_percent": 9.1,
"woba": 0.322,
"xwoba": 0.315,
"sweet_spot_percent": 31.1,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 38.7,
"avg_best_speed": 78.8257,
"avg_hyper_speed": 94.048,
"whiff_percent": 20.4,
"swing_percent": 45.0
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.12,
"command_and_miss": -0.3604,
"regression_edge": 0.2,
"xwoba_edge": -0.1143,
"barrel_edge": -0.1889,
"hard_hit_edge": -0.1286,
"whiff_edge": -0.6857,
"bb_edge": 0.025,
"pitch_design_score": -0.0091
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "621111",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.69389206083017,
"release_spin_rate": 2201.5990522722864,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.69389206083017,
"release_spin_rate": 2201.5990522722864,
"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.6939,
"release_spin_rate": 2201.5991,
"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.0091,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0647,
"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.1416,
"sample_weight": 1.0,
"run_prevention_factor": 1.012,
"strikeout_factor": 0.9614,
"walk_factor": 0.998,
"homer_factor": 1.0237,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "621111",
"espn_id": 39251,
"player_name": "Walker Buehler",
"team": "SD",
"role": "pitcher",
"espn_rank": 223,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 223,
"gp_value": 26.0,
"gp_rank": 252,
"gs_value": 26.0,
"gs_rank": 20,
"qs_value": 6.0,
"qs_rank": 84,
"era_value": 4.6306,
"era_rank": null,
"w_value": 8.0,
"w_rank": 52,
"l_value": 6.0,
"l_rank": 99,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 126.1,
"ip_rank": 68,
"h_value": 122.0,
"h_rank": 56,
"er_value": 65.0,
"er_rank": 32,
"hr_value": 15.0,
"hr_rank": 76,
"bb_value": 49.0,
"bb_rank": 30,
"k_value": 108.0,
"k_rank": 76,
"k_per_9_value": 7.6939316,
"k_per_9_rank": 30,
"whip_value": 1.3535,
"whip_rank": null,
"war_value": 0.65,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.012,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.012,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0237,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9614,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260829_SD@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_SD@TB | home | Nick Martinez | Nick Martinez | True | 6.0 | 6.0 | 0 | 3 | 3 | 0 | 8/7 | 0/0 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.925507900677201,
"WHIP": 1.0970654627539504,
"IP": 147.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.907,
"recent_avg_IP": 6.067,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1912,
"sample_weight": 1.0,
"run_prevention_factor": 1.0162,
"strikeout_factor": 0.9117,
"walk_factor": 0.89,
"homer_factor": 0.9791,
"regression_flag": "neutral",
"k_percent": 14.7,
"bb_percent": 3.7,
"woba": 0.294,
"xwoba": 0.319,
"barrel_percent": 7.1,
"hard_hit_percent": 33.1,
"whiff_percent": 17.1
},
"espn_rank": {
"rank": 17,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607259",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 16.0,
"R": 16.0,
"H": 31.0,
"BB": 2.0,
"SO": 20.0,
"HR": 6.0,
"BF": 120.0,
"Pitches": 421.0
},
"per_game": {
"IP": 6.0,
"ER": 3.2,
"R": 3.2,
"H": 6.2,
"BB": 0.4,
"SO": 4.0,
"HR": 1.2,
"BF": 24.0,
"Pitches": 84.2
},
"rates": {
"ERA": 4.7473,
"WHIP": 1.0879,
"ER_per_IP": 0.52747,
"H_per_IP": 1.02198,
"BB_per_IP": 0.06593,
"SO_per_IP": 0.65934,
"HR_per_IP": 0.1978
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.2,
"ER": 21.0,
"R": 21.0,
"H": 54.0,
"BB": 5.0,
"SO": 32.0,
"HR": 9.0,
"BF": 229.0,
"Pitches": 827.0
},
"per_game": {
"IP": 6.0,
"ER": 2.1,
"R": 2.1,
"H": 5.4,
"BB": 0.5,
"SO": 3.2,
"HR": 0.9,
"BF": 22.9,
"Pitches": 82.7
},
"rates": {
"ERA": 3.2216,
"WHIP": 1.0057,
"ER_per_IP": 0.35795,
"H_per_IP": 0.92045,
"BB_per_IP": 0.08523,
"SO_per_IP": 0.54545,
"HR_per_IP": 0.15341
}
},
"season": {
"games": 25,
"totals": {
"IP": 147.2,
"ER": 48.0,
"R": 48.0,
"H": 140.0,
"BB": 22.0,
"SO": 87.0,
"HR": 17.0,
"BF": 593.0,
"Pitches": 2069.0
},
"per_game": {
"IP": 6.0,
"ER": 1.92,
"R": 1.92,
"H": 5.6,
"BB": 0.88,
"SO": 3.48,
"HR": 0.68,
"BF": 23.72,
"Pitches": 82.76
},
"rates": {
"ERA": 2.9255,
"WHIP": 1.0971,
"ER_per_IP": 0.32506,
"H_per_IP": 0.94808,
"BB_per_IP": 0.14898,
"SO_per_IP": 0.58916,
"HR_per_IP": 0.11512
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.638,
"predicted_H": 5.833,
"predicted_BB": 0.816,
"predicted_SO": 3.968,
"predicted_HR": 0.975,
"predicted_ERA": 3.9567,
"predicted_WHIP": 1.1082
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.638,
"final": 3.2106,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 5.833,
"final": 7.1645,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.816,
"final": 0.4729,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.968,
"final": 4.4019,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.975,
"final": 0.5651,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9567,
"final": 3.9567,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1082,
"final": 1.1082,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.2,
"ER": 21,
"H": 54,
"BB": 5,
"SO": 32,
"HR": 9,
"ERA": 3.2215909090909087,
"WHIP": 1.0056818181818181,
"K9": 4.909090909090908,
"HR9": 1.3806818181818181,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.8610494029948981,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 9.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 9,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607259",
"player_name": "Nick Martinez",
"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": 4.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 8.0,
"delta": -1.0,
"percent_delta": -0.1111,
"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": 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": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 9.0,
"after": 8.0,
"delta": -1.0,
"percent_delta": -0.1111,
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 8.0,
"delta": -1.0,
"percent_delta": -0.1111,
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 134,
"wins": 80,
"losses": 54,
"win_pct": 0.597,
"runs_scored": 604.0,
"runs_allowed": 552.0,
"run_differential": 52.0,
"run_differential_per_game": 0.3881,
"avg_runs_scored": 4.5075,
"avg_runs_allowed": 4.1194,
"offense_index": 1.0092,
"defense_index": 1.0843,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.9,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.1302
},
"opponent": {
"team": "SD",
"games": 135,
"wins": 72,
"losses": 63,
"win_pct": 0.5333,
"runs_scored": 573.0,
"runs_allowed": 561.0,
"run_differential": 12.0,
"run_differential_per_game": 0.0889,
"avg_runs_scored": 4.2444,
"avg_runs_allowed": 4.1556,
"offense_index": 0.9503,
"defense_index": 1.0748,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 2.9,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.0393
},
"edges": {
"quality_edge": 0.0909,
"offense_edge": 0.0092,
"opponent_offense_edge": -0.0497,
"defense_strength": 0.0843,
"opponent_defense_weakness": -0.0748,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0082,
"run_prevention": 0.9791,
"strikeout": 1.0067
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607259",
"profile": {
"available": true,
"pitcher_id": "607259",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 572.0,
"k_percent": 14.7,
"bb_percent": 3.7,
"woba": 0.294,
"xwoba": 0.319,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 33.1,
"avg_best_speed": 75.7027,
"avg_hyper_speed": 93.2154,
"whiff_percent": 17.1,
"swing_percent": 50.6
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0894,
"command_and_miss": -0.6025,
"regression_edge": -0.7143,
"xwoba_edge": -0.2286,
"barrel_edge": 0.0111,
"hard_hit_edge": 0.6714,
"whiff_edge": -1.1571,
"bb_edge": 1.375,
"pitch_design_score": -0.1643
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607259",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 86.92210877528385,
"release_spin_rate": 2192.935261117394,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 86.92210877528385,
"release_spin_rate": 2192.935261117394,
"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.9221,
"release_spin_rate": 2192.9353,
"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.1643,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1734,
"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.1912,
"sample_weight": 1.0,
"run_prevention_factor": 1.0162,
"strikeout_factor": 0.9117,
"walk_factor": 0.89,
"homer_factor": 0.9791,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607259",
"espn_id": 33372,
"player_name": "Nick Martinez",
"team": "TB",
"role": "pitcher",
"espn_rank": 17,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 17,
"gp_value": 25.0,
"gp_rank": 285,
"gs_value": 25.0,
"gs_rank": 36,
"qs_value": 12.0,
"qs_rank": 28,
"era_value": 2.9255,
"era_rank": 11.0,
"w_value": 13.0,
"w_rank": 8,
"l_value": 4.0,
"l_rank": 166,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 147.2,
"ip_rank": 26,
"h_value": 140.0,
"h_rank": 18,
"er_value": 48.0,
"er_rank": 101,
"hr_value": 17.0,
"hr_rank": 53,
"bb_value": 22.0,
"bb_rank": 234,
"k_value": 87.0,
"k_rank": 116,
"k_per_9_value": 5.302483,
"k_per_9_rank": 120,
"whip_value": 1.097,
"whip_rank": 13.0,
"war_value": 3.45,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0162,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0162,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.89,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9791,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9117,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260829_SD@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_SEA@TOR | away | Kade Anderson | Kade Anderson | True | 5.0 | 4.1 | -2 | 2 | 2 | 0 | 7/3 | 0/3 | 7/3 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 4.764705882352941,
"WHIP": 1.2352941176470587,
"IP": 5.2,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 5.667,
"recent_avg_IP": 5.667,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0317,
"sample_weight": 0.45,
"run_prevention_factor": 0.9973,
"strikeout_factor": 1.003,
"walk_factor": 0.9982,
"homer_factor": 0.9973,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.307,
"xwoba": 0.307,
"barrel_percent": 7.1,
"hard_hit_percent": 37.5,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 423,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "807739",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 2.0,
"SO": 5.0,
"HR": 2.0,
"BF": 22.0,
"Pitches": 81.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 2.0,
"SO": 5.0,
"HR": 2.0,
"BF": 22.0,
"Pitches": 81.0
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.2353,
"ER_per_IP": 0.52941,
"H_per_IP": 0.88235,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.88235,
"HR_per_IP": 0.35294
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 2.0,
"SO": 5.0,
"HR": 2.0,
"BF": 22.0,
"Pitches": 81.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 2.0,
"SO": 5.0,
"HR": 2.0,
"BF": 22.0,
"Pitches": 81.0
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.2353,
"ER_per_IP": 0.52941,
"H_per_IP": 0.88235,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.88235,
"HR_per_IP": 0.35294
}
},
"season": {
"games": 1,
"totals": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 2.0,
"SO": 5.0,
"HR": 2.0,
"BF": 22.0,
"Pitches": 81.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 2.0,
"SO": 5.0,
"HR": 2.0,
"BF": 22.0,
"Pitches": 81.0
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.2353,
"ER_per_IP": 0.52941,
"H_per_IP": 0.88235,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.88235,
"HR_per_IP": 0.35294
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.578,
"predicted_H": 4.903,
"predicted_BB": 1.875,
"predicted_SO": 4.756,
"predicted_HR": 0.923,
"predicted_ERA": 4.5403,
"predicted_WHIP": 1.3261
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7021,
"form_weight": 0.2979,
"form_reliability": 0.1667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.578,
"final": 2.1722,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.903,
"final": 6.3752,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.875,
"final": 0.5586,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.756,
"final": 6.3314,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.923,
"final": 0.275,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5403,
"final": 4.5403,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3261,
"final": 1.3261,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 5.2,
"ER": 3,
"H": 5,
"BB": 2,
"SO": 5,
"HR": 2,
"ERA": 4.764705882352941,
"WHIP": 1.2352941176470587,
"K9": 7.941176470588235,
"HR9": 3.176470588235294,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 1,
"error_prone": false
},
"games_count": 1,
"latest_game_date": "2026-08-22T00:00:00"
},
"recent_form_boost": 1.007470021209095,
"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": 7.0,
"predicted_BB": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "807739",
"player_name": "Kade Anderson",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 135,
"wins": 64,
"losses": 71,
"win_pct": 0.4741,
"runs_scored": 527.0,
"runs_allowed": 591.0,
"run_differential": -64.0,
"run_differential_per_game": -0.4741,
"avg_runs_scored": 3.9037,
"avg_runs_allowed": 4.3778,
"offense_index": 0.8743,
"defense_index": 1.02,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 7.9,
"run_differential": -41.0
},
"available": true,
"quality_score": -0.0804
},
"opponent": {
"team": "TOR",
"games": 136,
"wins": 66,
"losses": 70,
"win_pct": 0.4853,
"runs_scored": 537.0,
"runs_allowed": 595.0,
"run_differential": -58.0,
"run_differential_per_game": -0.4265,
"avg_runs_scored": 3.9485,
"avg_runs_allowed": 4.375,
"offense_index": 0.8843,
"defense_index": 1.0206,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.6,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.065
},
"edges": {
"quality_edge": -0.0154,
"offense_edge": -0.1257,
"opponent_offense_edge": -0.1157,
"defense_strength": 0.02,
"opponent_defense_weakness": -0.0206,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0046,
"run_prevention": 0.9803,
"strikeout": 1.0088
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "807739",
"profile": {
"available": true,
"pitcher_id": "807739",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 22.7,
"bb_percent": 9.0,
"woba": 0.307,
"xwoba": 0.307,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.5,
"avg_best_speed": 77.5838,
"avg_hyper_speed": 93.8835,
"whiff_percent": 25.7,
"swing_percent": 47.6
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0902,
"command_and_miss": 0.0768,
"regression_edge": 0.0,
"xwoba_edge": 0.1143,
"barrel_edge": 0.0111,
"hard_hit_edge": 0.0429,
"whiff_edge": 0.0714,
"bb_edge": 0.05,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "807739",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0317,
"sample_weight": 0.45,
"run_prevention_factor": 0.9973,
"strikeout_factor": 1.003,
"walk_factor": 0.9982,
"homer_factor": 0.9973,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "807739",
"espn_id": 5198748,
"player_name": "Kade Anderson",
"team": "SEA",
"role": "pitcher",
"espn_rank": 423,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 423,
"gp_value": 1.0,
"gp_rank": 763,
"gs_value": 1.0,
"gs_rank": 290,
"qs_value": 0.0,
"qs_rank": 206,
"era_value": 4.7647,
"era_rank": null,
"w_value": 0.0,
"w_rank": 512,
"l_value": 0.0,
"l_rank": 558,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 5.2,
"ip_rank": 679,
"h_value": 5.0,
"h_rank": 696,
"er_value": 3.0,
"er_rank": 684,
"hr_value": 2.0,
"hr_rank": 494,
"bb_value": 2.0,
"bb_rank": 693,
"k_value": 5.0,
"k_rank": 660,
"k_per_9_value": 7.941177,
"k_per_9_rank": 26,
"whip_value": 1.2352,
"whip_rank": null,
"war_value": 0.06,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9988,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9988,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9992,
"adjusted": 2
},
"predicted_HR": {
"original": 2.0,
"factor": 0.9988,
"adjusted": 2
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0013,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 1 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "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/20260829_SEA@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_SEA@TOR | home | José Soriano | José Soriano | True | 5.1 | 7.0 | 5 | 3 | 3 | 0 | 5/5 | 1/2 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4295612009237875,
"WHIP": 1.2886836027713624,
"IP": 144.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.551,
"recent_avg_IP": 5.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0489,
"sample_weight": 1.0,
"run_prevention_factor": 1.0042,
"strikeout_factor": 1.0386,
"walk_factor": 1.032,
"homer_factor": 1.0357,
"regression_flag": "neutral",
"k_percent": 23.7,
"bb_percent": 10.8,
"woba": 0.296,
"xwoba": 0.325,
"barrel_percent": 8.0,
"hard_hit_percent": 39.3,
"whiff_percent": 30.3
},
"espn_rank": {
"rank": 32,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "667755",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 10.0,
"R": 12.0,
"H": 27.0,
"BB": 11.0,
"SO": 21.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.4,
"H": 5.4,
"BB": 2.2,
"SO": 4.2,
"HR": 0.2,
"BF": 22.4,
"Pitches": 92.0
},
"rates": {
"ERA": 3.4177,
"WHIP": 1.443,
"ER_per_IP": 0.37975,
"H_per_IP": 1.02532,
"BB_per_IP": 0.41772,
"SO_per_IP": 0.79747,
"HR_per_IP": 0.03797
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 25.0,
"R": 27.0,
"H": 50.0,
"BB": 19.0,
"SO": 45.0,
"HR": 3.0,
"BF": 219.0,
"Pitches": 885.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.7,
"H": 5.0,
"BB": 1.9,
"SO": 4.5,
"HR": 0.3,
"BF": 21.9,
"Pitches": 88.5
},
"rates": {
"ERA": 4.2994,
"WHIP": 1.3185,
"ER_per_IP": 0.47771,
"H_per_IP": 0.95541,
"BB_per_IP": 0.36306,
"SO_per_IP": 0.85987,
"HR_per_IP": 0.05732
}
},
"season": {
"games": 26,
"totals": {
"IP": 144.1,
"ER": 55.0,
"R": 60.0,
"H": 121.0,
"BB": 65.0,
"SO": 143.0,
"HR": 13.0,
"BF": 603.0,
"Pitches": 2417.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1154,
"R": 2.3077,
"H": 4.6538,
"BB": 2.5,
"SO": 5.5,
"HR": 0.5,
"BF": 23.1923,
"Pitches": 92.9615
},
"rates": {
"ERA": 3.4296,
"WHIP": 1.2887,
"ER_per_IP": 0.38106,
"H_per_IP": 0.83834,
"BB_per_IP": 0.45035,
"SO_per_IP": 0.99076,
"HR_per_IP": 0.09007
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.307,
"predicted_H": 5.202,
"predicted_BB": 2.152,
"predicted_SO": 4.695,
"predicted_HR": 0.376,
"predicted_ERA": 3.8523,
"predicted_WHIP": 1.3647
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.307,
"final": 2.5968,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.202,
"final": 5.1175,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.152,
"final": 1.6703,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.695,
"final": 5.2407,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.376,
"final": 0.6369,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8523,
"final": 3.8523,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3647,
"final": 1.3647,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 25,
"H": 50,
"BB": 19,
"SO": 45,
"HR": 3,
"ERA": 4.2993630573248405,
"WHIP": 1.3184713375796178,
"K9": 7.738853503184713,
"HR9": 0.5159235668789809,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.9901185076561603,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "667755",
"player_name": "Jos\u00e9 Soriano",
"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": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 136,
"wins": 66,
"losses": 70,
"win_pct": 0.4853,
"runs_scored": 537.0,
"runs_allowed": 595.0,
"run_differential": -58.0,
"run_differential_per_game": -0.4265,
"avg_runs_scored": 3.9485,
"avg_runs_allowed": 4.375,
"offense_index": 0.8843,
"defense_index": 1.0206,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.6,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.065
},
"opponent": {
"team": "SEA",
"games": 135,
"wins": 64,
"losses": 71,
"win_pct": 0.4741,
"runs_scored": 527.0,
"runs_allowed": 591.0,
"run_differential": -64.0,
"run_differential_per_game": -0.4741,
"avg_runs_scored": 3.9037,
"avg_runs_allowed": 4.3778,
"offense_index": 0.8743,
"defense_index": 1.02,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 7.9,
"run_differential": -41.0
},
"available": true,
"quality_score": -0.0804
},
"edges": {
"quality_edge": 0.0154,
"offense_edge": -0.1157,
"opponent_offense_edge": -0.1257,
"defense_strength": 0.0206,
"opponent_defense_weakness": -0.02,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.9771,
"strikeout": 1.0105
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "667755",
"profile": {
"available": true,
"pitcher_id": "667755",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 572.0,
"k_percent": 23.7,
"bb_percent": 10.8,
"woba": 0.296,
"xwoba": 0.325,
"sweet_spot_percent": 30.6,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 39.3,
"avg_best_speed": 77.909,
"avg_hyper_speed": 94.3066,
"whiff_percent": 30.3,
"swing_percent": 46.6
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.0919,
"command_and_miss": 0.2811,
"regression_edge": -0.8286,
"xwoba_edge": -0.4,
"barrel_edge": -0.1889,
"hard_hit_edge": -0.2143,
"whiff_edge": 0.7286,
"bb_edge": -0.4,
"pitch_design_score": 0.1549
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "667755",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 92.62248350722385,
"release_spin_rate": 2056.682557815389,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 92.62248350722385,
"release_spin_rate": 2056.682557815389,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.6225,
"release_spin_rate": 2056.6826,
"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.1549,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1067,
"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.0489,
"sample_weight": 1.0,
"run_prevention_factor": 1.0042,
"strikeout_factor": 1.0386,
"walk_factor": 1.032,
"homer_factor": 1.0357,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "667755",
"espn_id": 40973,
"player_name": "Jose Soriano",
"team": "TOR",
"role": "pitcher",
"espn_rank": 32,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 32,
"gp_value": 26.0,
"gp_rank": 252,
"gs_value": 26.0,
"gs_rank": 20,
"qs_value": 9.0,
"qs_rank": 59,
"era_value": 3.4295,
"era_rank": 23.0,
"w_value": 10.0,
"w_rank": 23,
"l_value": 7.0,
"l_rank": 73,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 144.1,
"ip_rank": 34,
"h_value": 121.0,
"h_rank": 62,
"er_value": 55.0,
"er_rank": 69,
"hr_value": 13.0,
"hr_rank": 110,
"bb_value": 65.0,
"bb_rank": 6,
"k_value": 143.0,
"k_rank": 27,
"k_per_9_value": 8.91686,
"k_per_9_rank": 21,
"whip_value": 1.2886,
"whip_rank": 41.0,
"war_value": 2.88,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0042,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0042,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.032,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0357,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0386,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260829_SEA@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_TEX@MIL | away | Cal Quantrill | Cal Quantrill | True | 5.2 | 6.0 | 1 | 4 | 3 | -1 | 6/4 | 4/0 | 8/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9043824701195216,
"WHIP": 1.1354581673306772,
"IP": 83.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.033,
"recent_avg_IP": 5.867,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0366,
"sample_weight": 1.0,
"run_prevention_factor": 1.0031,
"strikeout_factor": 0.9374,
"walk_factor": 0.942,
"homer_factor": 0.9687,
"regression_flag": "neutral",
"k_percent": 17.3,
"bb_percent": 6.3,
"woba": 0.285,
"xwoba": 0.305,
"barrel_percent": 6.9,
"hard_hit_percent": 34.0,
"whiff_percent": 19.0
},
"espn_rank": {
"rank": 147,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "615698",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 2.0,
"R": 4.0,
"H": 18.0,
"BB": 4.0,
"SO": 21.0,
"HR": 1.0,
"BF": 98.0,
"Pitches": 369.0
},
"per_game": {
"IP": 5.0,
"ER": 0.4,
"R": 0.8,
"H": 3.6,
"BB": 0.8,
"SO": 4.2,
"HR": 0.2,
"BF": 19.6,
"Pitches": 73.8
},
"rates": {
"ERA": 0.72,
"WHIP": 0.88,
"ER_per_IP": 0.08,
"H_per_IP": 0.72,
"BB_per_IP": 0.16,
"SO_per_IP": 0.84,
"HR_per_IP": 0.04
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 14.0,
"R": 17.0,
"H": 41.0,
"BB": 11.0,
"SO": 35.0,
"HR": 5.0,
"BF": 198.0,
"Pitches": 724.0
},
"per_game": {
"IP": 4.2,
"ER": 1.4,
"R": 1.7,
"H": 4.1,
"BB": 1.1,
"SO": 3.5,
"HR": 0.5,
"BF": 19.8,
"Pitches": 72.4
},
"rates": {
"ERA": 2.6069,
"WHIP": 1.0759,
"ER_per_IP": 0.28966,
"H_per_IP": 0.84828,
"BB_per_IP": 0.22759,
"SO_per_IP": 0.72414,
"HR_per_IP": 0.10345
}
},
"season": {
"games": 27,
"totals": {
"IP": 83.2,
"ER": 27.0,
"R": 33.0,
"H": 73.0,
"BB": 22.0,
"SO": 60.0,
"HR": 9.0,
"BF": 347.0,
"Pitches": 1311.0
},
"per_game": {
"IP": 3.0,
"ER": 1.0,
"R": 1.2222,
"H": 2.7037,
"BB": 0.8148,
"SO": 2.2222,
"HR": 0.3333,
"BF": 12.8519,
"Pitches": 48.5556
},
"rates": {
"ERA": 2.9044,
"WHIP": 1.1355,
"ER_per_IP": 0.32271,
"H_per_IP": 0.87251,
"BB_per_IP": 0.26295,
"SO_per_IP": 0.71713,
"HR_per_IP": 0.10757
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.16,
"predicted_H": 3.844,
"predicted_BB": 1.074,
"predicted_SO": 3.738,
"predicted_HR": 0.405,
"predicted_ERA": 2.2356,
"predicted_WHIP": 1.0535
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 4.2,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.16,
"final": 2.3414,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.844,
"final": 4.7409,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.074,
"final": 2.2912,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.738,
"final": 5.095,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.405,
"final": 0.2365,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2356,
"final": 2.2356,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0535,
"final": 1.0535,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.1,
"ER": 14,
"H": 41,
"BB": 11,
"SO": 35,
"HR": 5,
"ERA": 2.6068965517241383,
"WHIP": 1.0758620689655174,
"K9": 6.517241379310345,
"HR9": 0.9310344827586208,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 0.7936507940607289,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 4.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "615698",
"player_name": "Cal Quantrill",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 135,
"wins": 66,
"losses": 69,
"win_pct": 0.4889,
"runs_scored": 544.0,
"runs_allowed": 596.0,
"run_differential": -52.0,
"run_differential_per_game": -0.3852,
"avg_runs_scored": 4.0296,
"avg_runs_allowed": 4.4148,
"offense_index": 0.9004,
"defense_index": 1.0137,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.2,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0568
},
"opponent": {
"team": "MIL",
"games": 135,
"wins": 84,
"losses": 51,
"win_pct": 0.6222,
"runs_scored": 674.0,
"runs_allowed": 496.0,
"run_differential": 178.0,
"run_differential_per_game": 1.3185,
"avg_runs_scored": 4.9926,
"avg_runs_allowed": 3.6741,
"offense_index": 1.1155,
"defense_index": 1.2181,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.6,
"avg_runs_allowed": 2.4,
"run_differential": 42.0
},
"available": true,
"quality_score": 0.3359
},
"edges": {
"quality_edge": -0.3927,
"offense_edge": -0.0996,
"opponent_offense_edge": 0.1155,
"defense_strength": 0.0137,
"opponent_defense_weakness": -0.2181,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9801,
"run_prevention": 1.0367,
"strikeout": 0.979
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "615698",
"profile": {
"available": true,
"pitcher_id": "615698",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 310.0,
"k_percent": 17.3,
"bb_percent": 6.3,
"woba": 0.285,
"xwoba": 0.305,
"sweet_spot_percent": 32.4,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 34.0,
"avg_best_speed": 78.2284,
"avg_hyper_speed": 93.4605,
"whiff_percent": 19.0,
"swing_percent": 48.5
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.2551,
"command_and_miss": -0.4704,
"regression_edge": -0.5714,
"xwoba_edge": 0.1714,
"barrel_edge": 0.0556,
"hard_hit_edge": 0.5429,
"whiff_edge": -0.8857,
"bb_edge": 0.725,
"pitch_design_score": -0.0007
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "615698",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 68,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 89.84263114012379,
"release_spin_rate": 1952.7640647104026,
"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": 68,
"pitch_usage": 0.0,
"release_speed": 89.84263114012379,
"release_spin_rate": 1952.7640647104026,
"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.8426,
"release_spin_rate": 1952.7641,
"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.0007,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0052,
"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.0366,
"sample_weight": 1.0,
"run_prevention_factor": 1.0031,
"strikeout_factor": 0.9374,
"walk_factor": 0.942,
"homer_factor": 0.9687,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "615698",
"espn_id": 39875,
"player_name": "Cal Quantrill",
"team": "TEX",
"role": "pitcher",
"espn_rank": 147,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 147,
"gp_value": 27.0,
"gp_rank": 228,
"gs_value": 10.0,
"gs_rank": 166,
"qs_value": 4.0,
"qs_rank": 118,
"era_value": 2.9043,
"era_rank": null,
"w_value": 6.0,
"w_rank": 94,
"l_value": 4.0,
"l_rank": 166,
"sv_value": 0.0,
"sv_rank": 244,
"hld_value": 0.0,
"hld_rank": 339,
"ip_value": 83.2,
"ip_rank": 141,
"h_value": 73.0,
"h_rank": 152,
"er_value": 27.0,
"er_rank": 200,
"hr_value": 9.0,
"hr_rank": 164,
"bb_value": 22.0,
"bb_rank": 234,
"k_value": 60.0,
"k_rank": 204,
"k_per_9_value": 6.4541836,
"k_per_9_rank": 39,
"whip_value": 1.1354,
"whip_rank": null,
"war_value": 1.15,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0031,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 1.0031,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.942,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9687,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9374,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 117,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260829_TEX@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260829 | 20260829_TEX@MIL | home | Shane Drohan | Shane Drohan | True | 5.1 | 5.0 | -1 | 1 | 1 | 0 | 4/6 | 2/1 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8449367088607596,
"WHIP": 1.2911392405063291,
"IP": 105.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.244,
"recent_avg_IP": 5.467,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2131,
"sample_weight": 1.0,
"run_prevention_factor": 0.9819,
"strikeout_factor": 1.0186,
"walk_factor": 0.978,
"homer_factor": 0.9988,
"regression_flag": "neutral",
"k_percent": 23.4,
"bb_percent": 8.1,
"woba": 0.309,
"xwoba": 0.294,
"barrel_percent": 8.0,
"hard_hit_percent": 37.5,
"whiff_percent": 27.1
},
"espn_rank": {
"rank": 196,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "675660",
"report_date": "20260829",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 13.0,
"R": 13.0,
"H": 25.0,
"BB": 13.0,
"SO": 22.0,
"HR": 3.0,
"BF": 102.0,
"Pitches": 387.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 5.0,
"BB": 2.6,
"SO": 4.4,
"HR": 0.6,
"BF": 20.4,
"Pitches": 77.4
},
"rates": {
"ERA": 5.0143,
"WHIP": 1.6286,
"ER_per_IP": 0.55714,
"H_per_IP": 1.07143,
"BB_per_IP": 0.55714,
"SO_per_IP": 0.94286,
"HR_per_IP": 0.12857
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 27.0,
"R": 29.0,
"H": 53.0,
"BB": 19.0,
"SO": 52.0,
"HR": 5.0,
"BF": 226.0,
"Pitches": 815.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.9,
"H": 5.3,
"BB": 1.9,
"SO": 5.2,
"HR": 0.5,
"BF": 22.6,
"Pitches": 81.5
},
"rates": {
"ERA": 4.5562,
"WHIP": 1.35,
"ER_per_IP": 0.50625,
"H_per_IP": 0.99375,
"BB_per_IP": 0.35625,
"SO_per_IP": 0.975,
"HR_per_IP": 0.09375
}
},
"season": {
"games": 26,
"totals": {
"IP": 105.1,
"ER": 45.0,
"R": 50.0,
"H": 100.0,
"BB": 36.0,
"SO": 104.0,
"HR": 9.0,
"BF": 444.0,
"Pitches": 1662.0
},
"per_game": {
"IP": 4.0,
"ER": 1.7308,
"R": 1.9231,
"H": 3.8462,
"BB": 1.3846,
"SO": 4.0,
"HR": 0.3462,
"BF": 17.0769,
"Pitches": 63.9231
},
"rates": {
"ERA": 3.8449,
"WHIP": 1.2911,
"ER_per_IP": 0.42722,
"H_per_IP": 0.94937,
"BB_per_IP": 0.34177,
"SO_per_IP": 0.98734,
"HR_per_IP": 0.08544
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.483,
"predicted_H": 4.919,
"predicted_BB": 2.098,
"predicted_SO": 4.661,
"predicted_HR": 0.554,
"predicted_ERA": 4.6,
"predicted_WHIP": 1.4444
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.483,
"final": 1.8629,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.919,
"final": 4.5347,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.098,
"final": 2.057,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.661,
"final": 5.2209,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.554,
"final": 0.7405,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6,
"final": 4.6,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4444,
"final": 1.4444,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.1,
"ER": 27,
"H": 53,
"BB": 19,
"SO": 52,
"HR": 5,
"ERA": 4.55625,
"WHIP": 1.35,
"K9": 8.775,
"HR9": 0.8437500000000001,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-23T00:00:00"
},
"recent_form_boost": 1.0198065052676253,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "675660",
"player_name": "Shane Drohan",
"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": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 135,
"wins": 84,
"losses": 51,
"win_pct": 0.6222,
"runs_scored": 674.0,
"runs_allowed": 496.0,
"run_differential": 178.0,
"run_differential_per_game": 1.3185,
"avg_runs_scored": 4.9926,
"avg_runs_allowed": 3.6741,
"offense_index": 1.1155,
"defense_index": 1.2181,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.6,
"avg_runs_allowed": 2.4,
"run_differential": 42.0
},
"available": true,
"quality_score": 0.3359
},
"opponent": {
"team": "TEX",
"games": 135,
"wins": 66,
"losses": 69,
"win_pct": 0.4889,
"runs_scored": 544.0,
"runs_allowed": 596.0,
"run_differential": -52.0,
"run_differential_per_game": -0.3852,
"avg_runs_scored": 4.0296,
"avg_runs_allowed": 4.4148,
"offense_index": 0.9004,
"defense_index": 1.0137,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.2,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0568
},
"edges": {
"quality_edge": 0.3927,
"offense_edge": 0.1155,
"opponent_offense_edge": -0.0996,
"defense_strength": 0.2181,
"opponent_defense_weakness": -0.0137,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0262,
"run_prevention": 0.9426,
"strikeout": 1.0197
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "675660",
"profile": {
"available": true,
"pitcher_id": "675660",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 417.0,
"k_percent": 23.4,
"bb_percent": 8.1,
"woba": 0.309,
"xwoba": 0.294,
"sweet_spot_percent": 35.9,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 37.5,
"avg_best_speed": 76.5543,
"avg_hyper_speed": 93.6932,
"whiff_percent": 27.1,
"swing_percent": 48.3
},
"league_medians": {
"pa": 121.5,
"k_percent": 22.05,
"bb_percent": 9.2,
"woba": 0.3155,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.15,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9134,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.1894,
"command_and_miss": 0.2368,
"regression_edge": 0.4286,
"xwoba_edge": 0.4857,
"barrel_edge": -0.1889,
"hard_hit_edge": 0.0429,
"whiff_edge": 0.2714,
"bb_edge": 0.275,
"pitch_design_score": 0.0333
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "675660",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 90.45103485149461,
"release_spin_rate": 2555.806723547709,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 90.45103485149461,
"release_spin_rate": 2555.806723547709,
"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.451,
"release_spin_rate": 2555.8067,
"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.0333,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2381,
"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.2131,
"sample_weight": 1.0,
"run_prevention_factor": 0.9819,
"strikeout_factor": 1.0186,
"walk_factor": 0.978,
"homer_factor": 0.9988,
"woba_minus_xwoba": 0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "675660",
"espn_id": 4315203,
"player_name": "Shane Drohan",
"team": "MIL",
"role": "pitcher",
"espn_rank": 196,
"espn_total_ranked": 835,
"metrics": {
"espn_rank": 196,
"gp_value": 26.0,
"gp_rank": 252,
"gs_value": 15.0,
"gs_rank": 125,
"qs_value": 5.0,
"qs_rank": 107,
"era_value": 3.8449,
"era_rank": null,
"w_value": 6.0,
"w_rank": 94,
"l_value": 5.0,
"l_rank": 128,
"sv_value": 1.0,
"sv_rank": 132,
"hld_value": 2.0,
"hld_rank": 222,
"ip_value": 105.1,
"ip_rank": 103,
"h_value": 100.0,
"h_rank": 100,
"er_value": 45.0,
"er_rank": 113,
"hr_value": 9.0,
"hr_rank": 164,
"bb_value": 36.0,
"bb_rank": 99,
"k_value": 104.0,
"k_rank": 82,
"k_per_9_value": 8.886076,
"k_per_9_rank": 21,
"whip_value": 1.2911,
"whip_rank": null,
"war_value": 0.82,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9819,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9819,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9988,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0186,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 87,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260829_TEX@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |