| 20260902 | 20260902_ATL@WAS | away | Grant Holmes | Grant Holmes | True | 5.0 | 3.0 | -6 | 2 | 0 | -2 | 2/0 | 1/0 | 4/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.857142857142857,
"WHIP": 1.3698979591836735,
"IP": 130.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 4.872,
"recent_avg_IP": 5.333,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3503,
"sample_weight": 1.0,
"run_prevention_factor": 1.0298,
"strikeout_factor": 0.992,
"walk_factor": 1.017,
"homer_factor": 1.0705,
"regression_flag": "neutral",
"k_percent": 18.7,
"bb_percent": 10.0,
"woba": 0.317,
"xwoba": 0.333,
"barrel_percent": 8.5,
"hard_hit_percent": 43.2,
"whiff_percent": 27.0
},
"espn_rank": {
"rank": 79,
"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": "656550",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 9.0,
"R": 9.0,
"H": 23.0,
"BB": 10.0,
"SO": 16.0,
"HR": 1.0,
"BF": 109.0,
"Pitches": 392.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 1.8,
"H": 4.6,
"BB": 2.0,
"SO": 3.2,
"HR": 0.2,
"BF": 21.8,
"Pitches": 78.4
},
"rates": {
"ERA": 3.0375,
"WHIP": 1.2375,
"ER_per_IP": 0.3375,
"H_per_IP": 0.8625,
"BB_per_IP": 0.375,
"SO_per_IP": 0.6,
"HR_per_IP": 0.0375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 19.0,
"R": 20.0,
"H": 49.0,
"BB": 18.0,
"SO": 34.0,
"HR": 5.0,
"BF": 218.0,
"Pitches": 798.0
},
"per_game": {
"IP": 5.0,
"ER": 1.9,
"R": 2.0,
"H": 4.9,
"BB": 1.8,
"SO": 3.4,
"HR": 0.5,
"BF": 21.8,
"Pitches": 79.8
},
"rates": {
"ERA": 3.3312,
"WHIP": 1.3052,
"ER_per_IP": 0.37013,
"H_per_IP": 0.95455,
"BB_per_IP": 0.35065,
"SO_per_IP": 0.66234,
"HR_per_IP": 0.0974
}
},
"season": {
"games": 27,
"totals": {
"IP": 130.2,
"ER": 56.0,
"R": 58.0,
"H": 121.0,
"BB": 58.0,
"SO": 105.0,
"HR": 19.0,
"BF": 565.0,
"Pitches": 2110.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0741,
"R": 2.1481,
"H": 4.4815,
"BB": 2.1481,
"SO": 3.8889,
"HR": 0.7037,
"BF": 20.9259,
"Pitches": 78.1481
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.3699,
"ER_per_IP": 0.42857,
"H_per_IP": 0.92602,
"BB_per_IP": 0.44388,
"SO_per_IP": 0.80357,
"HR_per_IP": 0.14541
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.986,
"predicted_H": 4.704,
"predicted_BB": 1.942,
"predicted_SO": 3.619,
"predicted_HR": 0.463,
"predicted_ERA": 3.4866,
"predicted_WHIP": 1.2963
}
},
"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.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.986,
"final": 1.9918,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.704,
"final": 3.5792,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.942,
"final": 1.5501,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.619,
"final": 3.7775,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.463,
"final": 1.1024,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4866,
"final": 3.4866,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2963,
"final": 1.2963,
"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": 19,
"H": 49,
"BB": 18,
"SO": 34,
"HR": 5,
"ERA": 3.3311688311688314,
"WHIP": 1.3051948051948052,
"K9": 5.961038961038962,
"HR9": 0.8766233766233767,
"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-28T00:00:00"
},
"recent_form_boost": 0.8836852310998782,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 1.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": "656550",
"player_name": "Grant Holmes",
"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": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 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": "ATL",
"games": 139,
"wins": 82,
"losses": 57,
"win_pct": 0.5899,
"runs_scored": 644.0,
"runs_allowed": 535.0,
"run_differential": 109.0,
"run_differential_per_game": 0.7842,
"avg_runs_scored": 4.6331,
"avg_runs_allowed": 3.8489,
"offense_index": 1.0313,
"defense_index": 1.1673,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.7,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.2424
},
"opponent": {
"team": "WAS",
"games": 141,
"wins": 67,
"losses": 74,
"win_pct": 0.4752,
"runs_scored": 735.0,
"runs_allowed": 712.0,
"run_differential": 23.0,
"run_differential_per_game": 0.1631,
"avg_runs_scored": 5.2128,
"avg_runs_allowed": 5.0496,
"offense_index": 1.1603,
"defense_index": 0.8897,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 4.6,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.0339
},
"edges": {
"quality_edge": 0.2085,
"offense_edge": 0.0313,
"opponent_offense_edge": 0.1603,
"defense_strength": 0.1673,
"opponent_defense_weakness": 0.1103,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0069,
"run_prevention": 0.9985,
"strikeout": 0.9934
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656550",
"profile": {
"available": true,
"pitcher_id": "656550",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 505.0,
"k_percent": 18.7,
"bb_percent": 10.0,
"woba": 0.317,
"xwoba": 0.333,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 43.2,
"avg_best_speed": 81.6931,
"avg_hyper_speed": 94.6382,
"whiff_percent": 27.0,
"swing_percent": 48.5
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4669,
"command_and_miss": -0.1582,
"regression_edge": -0.4571,
"xwoba_edge": -0.6286,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.7571,
"whiff_edge": 0.2571,
"bb_edge": -0.2125,
"pitch_design_score": -0.0246
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656550",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 70,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.4253815918858,
"release_spin_rate": 2458.5893886602285,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.4253815918858,
"release_spin_rate": 2458.5893886602285,
"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.4254,
"release_spin_rate": 2458.5894,
"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.0246,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1759,
"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.3503,
"sample_weight": 1.0,
"run_prevention_factor": 1.0298,
"strikeout_factor": 0.992,
"walk_factor": 1.017,
"homer_factor": 1.0705,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656550",
"espn_id": 33840,
"player_name": "Grant Holmes",
"team": "ATL",
"role": "pitcher",
"espn_rank": 79,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 79,
"gp_value": 26.0,
"gp_rank": 276,
"gs_value": 25.0,
"gs_rank": 48,
"qs_value": 8.0,
"qs_rank": 71,
"era_value": 3.7072,
"era_rank": null,
"w_value": 9.0,
"w_rank": 36,
"l_value": 5.0,
"l_rank": 130,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 128.2,
"ip_rank": 70,
"h_value": 117.0,
"h_rank": 74,
"er_value": 53.0,
"er_rank": 79,
"hr_value": 19.0,
"hr_rank": 39,
"bb_value": 55.0,
"bb_rank": 19,
"k_value": 103.0,
"k_rank": 87,
"k_per_9_value": 7.2046633,
"k_per_9_rank": 33,
"whip_value": 1.3367,
"whip_rank": null,
"war_value": 1.86,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0298,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0298,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.017,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0705,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.992,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 18,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260902_ATL@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"
}
} |
| 20260902 | 20260902_ATL@WAS | home | Brad Lord | Brad Lord | True | 5.0 | 3.1 | -5 | 3 | 0 | -3 | 4/2 | 1/1 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7464114832535884,
"WHIP": 1.1913875598086123,
"IP": 69.2,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 2.083,
"recent_avg_IP": 2.083,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0129,
"sample_weight": 1.0,
"run_prevention_factor": 0.9989,
"strikeout_factor": 0.968,
"walk_factor": 1.005,
"homer_factor": 0.9804,
"regression_flag": "neutral",
"k_percent": 21.5,
"bb_percent": 9.4,
"woba": 0.284,
"xwoba": 0.313,
"barrel_percent": 6.2,
"hard_hit_percent": 37.6,
"whiff_percent": 20.0
},
"espn_rank": {
"rank": 166,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 69.2,
"season_ERA": 3.746,
"season_WHIP": 1.191,
"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": 13.987,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7367,
"prior_weight": 0.2633
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695418",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 10.2,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 7.0,
"SO": 12.0,
"HR": 1.0,
"BF": 46.0,
"Pitches": 197.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8,
"R": 0.8,
"H": 1.0,
"BB": 1.4,
"SO": 2.4,
"HR": 0.2,
"BF": 9.2,
"Pitches": 39.4
},
"rates": {
"ERA": 3.375,
"WHIP": 1.125,
"ER_per_IP": 0.375,
"H_per_IP": 0.46875,
"BB_per_IP": 0.65625,
"SO_per_IP": 1.125,
"HR_per_IP": 0.09375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 18.2,
"ER": 16.0,
"R": 16.0,
"H": 18.0,
"BB": 14.0,
"SO": 20.0,
"HR": 4.0,
"BF": 90.0,
"Pitches": 399.0
},
"per_game": {
"IP": 2.0,
"ER": 1.6,
"R": 1.6,
"H": 1.8,
"BB": 1.4,
"SO": 2.0,
"HR": 0.4,
"BF": 9.0,
"Pitches": 39.9
},
"rates": {
"ERA": 7.7143,
"WHIP": 1.7143,
"ER_per_IP": 0.85714,
"H_per_IP": 0.96429,
"BB_per_IP": 0.75,
"SO_per_IP": 1.07143,
"HR_per_IP": 0.21429
}
},
"season": {
"games": 33,
"totals": {
"IP": 69.2,
"ER": 29.0,
"R": 30.0,
"H": 55.0,
"BB": 28.0,
"SO": 64.0,
"HR": 8.0,
"BF": 297.0,
"Pitches": 1237.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8788,
"R": 0.9091,
"H": 1.6667,
"BB": 0.8485,
"SO": 1.9394,
"HR": 0.2424,
"BF": 9.0,
"Pitches": 37.4848
},
"rates": {
"ERA": 3.7464,
"WHIP": 1.1914,
"ER_per_IP": 0.41627,
"H_per_IP": 0.78947,
"BB_per_IP": 0.40191,
"SO_per_IP": 0.91866,
"HR_per_IP": 0.11483
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.5,
"predicted_H": 2.166,
"predicted_BB": 1.584,
"predicted_SO": 2.88,
"predicted_HR": 0.396,
"predicted_ERA": 4.8373,
"predicted_WHIP": 1.3441
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4612,
"form_weight": 0.5388,
"form_reliability": 0.7367,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.987,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7367,
"prior_weight": 0.2633
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 2.2,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.5,
"final": 2.1919,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.166,
"final": 3.0119,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.584,
"final": 1.3146,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.88,
"final": 3.8578,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.396,
"final": 0.2133,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8373,
"final": 4.8373,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3441,
"final": 1.3441,
"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.2,
"ER": 16,
"H": 18,
"BB": 14,
"SO": 20,
"HR": 4,
"ERA": 7.7142857142857135,
"WHIP": 1.7142857142857142,
"K9": 9.642857142857142,
"HR9": 1.9285714285714284,
"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-29T00:00:00"
},
"recent_form_boost": 1.2359102828105317,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.987,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7367,
"prior_weight": 0.2633
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695418",
"player_name": "Brad Lord",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 141,
"wins": 67,
"losses": 74,
"win_pct": 0.4752,
"runs_scored": 735.0,
"runs_allowed": 712.0,
"run_differential": 23.0,
"run_differential_per_game": 0.1631,
"avg_runs_scored": 5.2128,
"avg_runs_allowed": 5.0496,
"offense_index": 1.1603,
"defense_index": 0.8897,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 4.6,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.0339
},
"opponent": {
"team": "ATL",
"games": 139,
"wins": 82,
"losses": 57,
"win_pct": 0.5899,
"runs_scored": 644.0,
"runs_allowed": 535.0,
"run_differential": 109.0,
"run_differential_per_game": 0.7842,
"avg_runs_scored": 4.6331,
"avg_runs_allowed": 3.8489,
"offense_index": 1.0313,
"defense_index": 1.1673,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.7,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.2424
},
"edges": {
"quality_edge": -0.2085,
"offense_edge": 0.1603,
"opponent_offense_edge": 0.0313,
"defense_strength": -0.1103,
"opponent_defense_weakness": -0.1673,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9871,
"run_prevention": 1.0265,
"strikeout": 0.9912
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695418",
"profile": {
"available": true,
"pitcher_id": "695418",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 264.0,
"k_percent": 21.5,
"bb_percent": 9.4,
"woba": 0.284,
"xwoba": 0.313,
"sweet_spot_percent": 27.4,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 37.6,
"avg_best_speed": 75.046,
"avg_hyper_speed": 93.9051,
"whiff_percent": 20.0,
"swing_percent": 50.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.304,
"command_and_miss": -0.2982,
"regression_edge": -0.8286,
"xwoba_edge": -0.0571,
"barrel_edge": 0.2444,
"hard_hit_edge": 0.0429,
"whiff_edge": -0.7429,
"bb_edge": -0.0625,
"pitch_design_score": 0.038
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695418",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 35,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 35,
"pitch_usage": 0.0,
"release_speed": 90.54365826417965,
"release_spin_rate": 2442.8949820073776,
"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": 35,
"pitch_usage": 0.0,
"release_speed": 90.54365826417965,
"release_spin_rate": 2442.8949820073776,
"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.5437,
"release_spin_rate": 2442.895,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.038,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2715,
"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.0129,
"sample_weight": 1.0,
"run_prevention_factor": 0.9989,
"strikeout_factor": 0.968,
"walk_factor": 1.005,
"homer_factor": 0.9804,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695418",
"espn_id": 4866810,
"player_name": "Brad Lord",
"team": "WSH",
"role": "pitcher",
"espn_rank": 166,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 166,
"gp_value": 33.0,
"gp_rank": 192,
"gs_value": 4.0,
"gs_rank": 229,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.7464,
"era_rank": null,
"w_value": 5.0,
"w_rank": 134,
"l_value": 2.0,
"l_rank": 316,
"sv_value": 1.0,
"sv_rank": 133,
"hld_value": 6.0,
"hld_rank": 145,
"ip_value": 69.2,
"ip_rank": 176,
"h_value": 55.0,
"h_rank": 200,
"er_value": 29.0,
"er_rank": 185,
"hr_value": 8.0,
"hr_rank": 196,
"bb_value": 28.0,
"bb_rank": 172,
"k_value": 64.0,
"k_rank": 195,
"k_per_9_value": 8.267942,
"k_per_9_rank": 29,
"whip_value": 1.1913,
"whip_rank": null,
"war_value": 1.02,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9989,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9989,
"adjusted": 3
},
"predicted_BB": {
"original": 4.0,
"factor": 1.005,
"adjusted": 4
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9804,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.968,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260902_ATL@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"
}
} |
| 20260902 | 20260902_BAL@COL | away | Trevor Rogers | Trevor Rogers | True | 5.2 | 6.2 | 3 | 5 | 2 | -3 | 5/6 | 1/0 | 4/11 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.380145278450364,
"WHIP": 1.2493946731234868,
"IP": 137.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.507,
"recent_avg_IP": 5.6,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0865,
"sample_weight": 1.0,
"run_prevention_factor": 0.9926,
"strikeout_factor": 0.9851,
"walk_factor": 0.945,
"homer_factor": 0.9928,
"regression_flag": "neutral",
"k_percent": 20.9,
"bb_percent": 6.4,
"woba": 0.311,
"xwoba": 0.304,
"barrel_percent": 7.2,
"hard_hit_percent": 38.0,
"whiff_percent": 23.6
},
"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": 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": "669432",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 15.0,
"R": 15.0,
"H": 27.0,
"BB": 5.0,
"SO": 32.0,
"HR": 6.0,
"BF": 116.0,
"Pitches": 459.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.4,
"BB": 1.0,
"SO": 6.4,
"HR": 1.2,
"BF": 23.2,
"Pitches": 91.8
},
"rates": {
"ERA": 4.8214,
"WHIP": 1.1429,
"ER_per_IP": 0.53571,
"H_per_IP": 0.96429,
"BB_per_IP": 0.17857,
"SO_per_IP": 1.14286,
"HR_per_IP": 0.21429
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 23.0,
"R": 26.0,
"H": 55.0,
"BB": 13.0,
"SO": 60.0,
"HR": 7.0,
"BF": 242.0,
"Pitches": 922.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.6,
"H": 5.5,
"BB": 1.3,
"SO": 6.0,
"HR": 0.7,
"BF": 24.2,
"Pitches": 92.2
},
"rates": {
"ERA": 3.5486,
"WHIP": 1.1657,
"ER_per_IP": 0.39429,
"H_per_IP": 0.94286,
"BB_per_IP": 0.22286,
"SO_per_IP": 1.02857,
"HR_per_IP": 0.12
}
},
"season": {
"games": 25,
"totals": {
"IP": 137.2,
"ER": 67.0,
"R": 72.0,
"H": 135.0,
"BB": 37.0,
"SO": 121.0,
"HR": 16.0,
"BF": 579.0,
"Pitches": 2242.0
},
"per_game": {
"IP": 5.2,
"ER": 2.68,
"R": 2.88,
"H": 5.4,
"BB": 1.48,
"SO": 4.84,
"HR": 0.64,
"BF": 23.16,
"Pitches": 89.68
},
"rates": {
"ERA": 4.3801,
"WHIP": 1.2494,
"ER_per_IP": 0.48668,
"H_per_IP": 0.98063,
"BB_per_IP": 0.26877,
"SO_per_IP": 0.87893,
"HR_per_IP": 0.11622
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.766,
"predicted_H": 5.545,
"predicted_BB": 1.375,
"predicted_SO": 5.947,
"predicted_HR": 0.917,
"predicted_ERA": 4.3183,
"predicted_WHIP": 1.2006
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.766,
"final": 3.7052,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.545,
"final": 5.3159,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.375,
"final": 1.2173,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.947,
"final": 5.1284,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 4.0,
"form": 0.917,
"final": 2.2132,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3183,
"final": 4.3183,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2006,
"final": 1.2006,
"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": 55,
"BB": 13,
"SO": 60,
"HR": 7,
"ERA": 3.548571428571429,
"WHIP": 1.1657142857142857,
"K9": 9.257142857142858,
"HR9": 1.08,
"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-27T00:00:00"
},
"recent_form_boost": 0.9046560103206575,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 4.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669432",
"player_name": "Trevor Rogers",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 4.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": 1.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 4.0,
"predicted_IP": 5.2,
"predicted_R": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 4.0,
"after": 4.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 4.0,
"after": 4.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": "BAL",
"games": 139,
"wins": 69,
"losses": 70,
"win_pct": 0.4964,
"runs_scored": 630.0,
"runs_allowed": 649.0,
"run_differential": -19.0,
"run_differential_per_game": -0.1367,
"avg_runs_scored": 4.5324,
"avg_runs_allowed": 4.6691,
"offense_index": 1.0099,
"defense_index": 0.9612,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 3.6,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.0502
},
"opponent": {
"team": "COL",
"games": 139,
"wins": 53,
"losses": 86,
"win_pct": 0.3813,
"runs_scored": 649.0,
"runs_allowed": 790.0,
"run_differential": -141.0,
"run_differential_per_game": -1.0144,
"avg_runs_scored": 4.6691,
"avg_runs_allowed": 5.6835,
"offense_index": 1.0403,
"defense_index": 0.7897,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.4,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.2952
},
"edges": {
"quality_edge": 0.3454,
"offense_edge": 0.0099,
"opponent_offense_edge": 0.0403,
"defense_strength": -0.0388,
"opponent_defense_weakness": 0.2103,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.011,
"run_prevention": 0.9931,
"strikeout": 1.0071
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669432",
"profile": {
"available": true,
"pitcher_id": "669432",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 525.0,
"k_percent": 20.9,
"bb_percent": 6.4,
"woba": 0.311,
"xwoba": 0.304,
"sweet_spot_percent": 31.8,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6649,
"avg_hyper_speed": 93.9134,
"whiff_percent": 23.6,
"swing_percent": 52.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1274,
"command_and_miss": -0.0068,
"regression_edge": 0.2,
"xwoba_edge": 0.2,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.0143,
"whiff_edge": -0.2286,
"bb_edge": 0.6875,
"pitch_design_score": -0.0383
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669432",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.18055651401573,
"release_spin_rate": 2193.8218174875824,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.18055651401573,
"release_spin_rate": 2193.8218174875824,
"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.1806,
"release_spin_rate": 2193.8218,
"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.0383,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2738,
"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.0865,
"sample_weight": 1.0,
"run_prevention_factor": 0.9926,
"strikeout_factor": 0.9851,
"walk_factor": 0.945,
"homer_factor": 0.9928,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669432",
"espn_id": 39640,
"player_name": "Trevor Rogers",
"team": "BAL",
"role": "pitcher",
"espn_rank": 147,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 147,
"gp_value": 25.0,
"gp_rank": 298,
"gs_value": 25.0,
"gs_rank": 48,
"qs_value": 12.0,
"qs_rank": 30,
"era_value": 4.3801,
"era_rank": null,
"w_value": 9.0,
"w_rank": 36,
"l_value": 9.0,
"l_rank": 25,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 137.2,
"ip_rank": 52,
"h_value": 135.0,
"h_rank": 35,
"er_value": 67.0,
"er_rank": 31,
"hr_value": 16.0,
"hr_rank": 74,
"bb_value": 37.0,
"bb_rank": 94,
"k_value": 121.0,
"k_rank": 58,
"k_per_9_value": 7.910412,
"k_per_9_rank": 30,
"whip_value": 1.2493,
"whip_rank": null,
"war_value": 1.16,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9926,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9926,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.945,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9928,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9851,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 4,
"box_score_synced": true,
"BF": 23,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260902_BAL@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_BAL@COL | home | Tomoyuki Sugano | Tomoyuki Sugano | True | 4.2 | 6.0 | 4 | 3 | 3 | 0 | 4/6 | 1/1 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.228116710875331,
"WHIP": 1.3607427055702916,
"IP": 125.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.236,
"recent_avg_IP": 4.6,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -1.112,
"sample_weight": 1.0,
"run_prevention_factor": 1.0945,
"strikeout_factor": 0.9126,
"walk_factor": 0.925,
"homer_factor": 1.198,
"regression_flag": "neutral",
"k_percent": 13.9,
"bb_percent": 5.4,
"woba": 0.368,
"xwoba": 0.392,
"barrel_percent": 12.7,
"hard_hit_percent": 43.6,
"whiff_percent": 17.9
},
"espn_rank": {
"rank": 128,
"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": "608372",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 22.0,
"R": 23.0,
"H": 37.0,
"BB": 5.0,
"SO": 17.0,
"HR": 6.0,
"BF": 111.0,
"Pitches": 450.0
},
"per_game": {
"IP": 4.2,
"ER": 4.4,
"R": 4.6,
"H": 7.4,
"BB": 1.0,
"SO": 3.4,
"HR": 1.2,
"BF": 22.2,
"Pitches": 90.0
},
"rates": {
"ERA": 8.6087,
"WHIP": 1.8261,
"ER_per_IP": 0.95652,
"H_per_IP": 1.6087,
"BB_per_IP": 0.21739,
"SO_per_IP": 0.73913,
"HR_per_IP": 0.26087
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 36.0,
"R": 37.0,
"H": 66.0,
"BB": 7.0,
"SO": 34.0,
"HR": 14.0,
"BF": 227.0,
"Pitches": 873.0
},
"per_game": {
"IP": 5.1,
"ER": 3.6,
"R": 3.7,
"H": 6.6,
"BB": 0.7,
"SO": 3.4,
"HR": 1.4,
"BF": 22.7,
"Pitches": 87.3
},
"rates": {
"ERA": 6.1911,
"WHIP": 1.3949,
"ER_per_IP": 0.6879,
"H_per_IP": 1.26115,
"BB_per_IP": 0.13376,
"SO_per_IP": 0.64968,
"HR_per_IP": 0.26752
}
},
"season": {
"games": 24,
"totals": {
"IP": 125.2,
"ER": 73.0,
"R": 76.0,
"H": 142.0,
"BB": 29.0,
"SO": 75.0,
"HR": 27.0,
"BF": 540.0,
"Pitches": 2083.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0417,
"R": 3.1667,
"H": 5.9167,
"BB": 1.2083,
"SO": 3.125,
"HR": 1.125,
"BF": 22.5,
"Pitches": 86.7917
},
"rates": {
"ERA": 5.2281,
"WHIP": 1.3607,
"ER_per_IP": 0.5809,
"H_per_IP": 1.12997,
"BB_per_IP": 0.23077,
"SO_per_IP": 0.59682,
"HR_per_IP": 0.21485
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.707,
"predicted_H": 6.632,
"predicted_BB": 1.115,
"predicted_SO": 3.642,
"predicted_HR": 1.184,
"predicted_ERA": 6.6356,
"predicted_WHIP": 1.5409
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.707,
"final": 3.4081,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 6.632,
"final": 5.5191,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.115,
"final": 1.0664,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.642,
"final": 3.3705,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.184,
"final": 1.529,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.6356,
"final": 6.6356,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5409,
"final": 1.5409,
"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": 36,
"H": 66,
"BB": 7,
"SO": 34,
"HR": 14,
"ERA": 6.19108280254777,
"WHIP": 1.394904458598726,
"K9": 5.8471337579617835,
"HR9": 2.4076433121019107,
"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-28T00:00:00"
},
"recent_form_boost": 1.207668294215107,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608372",
"player_name": "Tomoyuki Sugano",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 139,
"wins": 53,
"losses": 86,
"win_pct": 0.3813,
"runs_scored": 649.0,
"runs_allowed": 790.0,
"run_differential": -141.0,
"run_differential_per_game": -1.0144,
"avg_runs_scored": 4.6691,
"avg_runs_allowed": 5.6835,
"offense_index": 1.0403,
"defense_index": 0.7897,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.4,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.2952
},
"opponent": {
"team": "BAL",
"games": 139,
"wins": 69,
"losses": 70,
"win_pct": 0.4964,
"runs_scored": 630.0,
"runs_allowed": 649.0,
"run_differential": -19.0,
"run_differential_per_game": -0.1367,
"avg_runs_scored": 4.5324,
"avg_runs_allowed": 4.6691,
"offense_index": 1.0099,
"defense_index": 0.9612,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 3.6,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.0502
},
"edges": {
"quality_edge": -0.3454,
"offense_edge": 0.0403,
"opponent_offense_edge": 0.0099,
"defense_strength": -0.2103,
"opponent_defense_weakness": 0.0388,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9795,
"run_prevention": 1.0399,
"strikeout": 0.9888
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608372",
"profile": {
"available": true,
"pitcher_id": "608372",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 487.0,
"k_percent": 13.9,
"bb_percent": 5.4,
"woba": 0.368,
"xwoba": 0.392,
"sweet_spot_percent": 37.6,
"barrel_batted_rate": 12.7,
"hard_hit_percent": 43.6,
"avg_best_speed": 80.7647,
"avg_hyper_speed": 95.2198,
"whiff_percent": 17.9,
"swing_percent": 46.4
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.5294,
"command_and_miss": -0.6918,
"regression_edge": -0.6857,
"xwoba_edge": -2.3143,
"barrel_edge": -1.2,
"hard_hit_edge": -0.8143,
"whiff_edge": -1.0429,
"bb_edge": 0.9375,
"pitch_design_score": -0.0892
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608372",
"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": 88.27152055516693,
"release_spin_rate": 2295.6362856997916,
"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": 88.27152055516693,
"release_spin_rate": 2295.6362856997916,
"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.2715,
"release_spin_rate": 2295.6363,
"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.0892,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6374,
"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.112,
"sample_weight": 1.0,
"run_prevention_factor": 1.0945,
"strikeout_factor": 0.9126,
"walk_factor": 0.925,
"homer_factor": 1.198,
"woba_minus_xwoba": -0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "608372",
"espn_id": 4142423,
"player_name": "Tomoyuki Sugano",
"team": "COL",
"role": "pitcher",
"espn_rank": 128,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 128,
"gp_value": 24.0,
"gp_rank": 318,
"gs_value": 24.0,
"gs_rank": 61,
"qs_value": 7.0,
"qs_rank": 75,
"era_value": 5.2281,
"era_rank": null,
"w_value": 12.0,
"w_rank": 15,
"l_value": 8.0,
"l_rank": 44,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 125.2,
"ip_rank": 77,
"h_value": 142.0,
"h_rank": 21,
"er_value": 73.0,
"er_rank": 14,
"hr_value": 27.0,
"hr_rank": 5,
"bb_value": 29.0,
"bb_rank": 160,
"k_value": 75.0,
"k_rank": 155,
"k_per_9_value": 5.3713527,
"k_per_9_rank": 54,
"whip_value": 1.3607,
"whip_rank": null,
"war_value": 1.3,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0945,
"adjusted": 4
},
"predicted_H": {
"original": 7.0,
"factor": 1.0945,
"adjusted": 8
},
"predicted_BB": {
"original": 1.0,
"factor": 0.925,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.198,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9126,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 76,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"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/20260902_BAL@COL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_CHW@HOU | away | Davis Martin | Davis Martin | True | 5.0 | 5.2 | 2 | 5 | 0 | -5 | 4/5 | 3/1 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.32,
"WHIP": 1.328,
"IP": 125.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.208,
"recent_avg_IP": 3.8,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2427,
"sample_weight": 1.0,
"run_prevention_factor": 1.0206,
"strikeout_factor": 0.9874,
"walk_factor": 0.965,
"homer_factor": 1.0454,
"regression_flag": "neutral",
"k_percent": 20.9,
"bb_percent": 7.4,
"woba": 0.324,
"xwoba": 0.331,
"barrel_percent": 6.8,
"hard_hit_percent": 44.4,
"whiff_percent": 24.0
},
"espn_rank": {
"rank": 80,
"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": "663436",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.0,
"ER": 21.0,
"R": 23.0,
"H": 25.0,
"BB": 6.0,
"SO": 14.0,
"HR": 6.0,
"BF": 90.0,
"Pitches": 343.0
},
"per_game": {
"IP": 3.2,
"ER": 4.2,
"R": 4.6,
"H": 5.0,
"BB": 1.2,
"SO": 2.8,
"HR": 1.2,
"BF": 18.0,
"Pitches": 68.6
},
"rates": {
"ERA": 9.9474,
"WHIP": 1.6316,
"ER_per_IP": 1.10526,
"H_per_IP": 1.31579,
"BB_per_IP": 0.31579,
"SO_per_IP": 0.73684,
"HR_per_IP": 0.31579
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.1,
"ER": 30.0,
"R": 32.0,
"H": 50.0,
"BB": 19.0,
"SO": 28.0,
"HR": 6.0,
"BF": 196.0,
"Pitches": 749.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.2,
"H": 5.0,
"BB": 1.9,
"SO": 2.8,
"HR": 0.6,
"BF": 19.6,
"Pitches": 74.9
},
"rates": {
"ERA": 6.2308,
"WHIP": 1.5923,
"ER_per_IP": 0.69231,
"H_per_IP": 1.15385,
"BB_per_IP": 0.43846,
"SO_per_IP": 0.64615,
"HR_per_IP": 0.13846
}
},
"season": {
"games": 24,
"totals": {
"IP": 125.0,
"ER": 60.0,
"R": 62.0,
"H": 127.0,
"BB": 39.0,
"SO": 111.0,
"HR": 12.0,
"BF": 530.0,
"Pitches": 2035.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.5833,
"H": 5.2917,
"BB": 1.625,
"SO": 4.625,
"HR": 0.5,
"BF": 22.0833,
"Pitches": 84.7917
},
"rates": {
"ERA": 4.32,
"WHIP": 1.328,
"ER_per_IP": 0.48,
"H_per_IP": 1.016,
"BB_per_IP": 0.312,
"SO_per_IP": 0.888,
"HR_per_IP": 0.096
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.393,
"predicted_H": 5.064,
"predicted_BB": 1.572,
"predicted_SO": 3.364,
"predicted_HR": 0.868,
"predicted_ERA": 6.9954,
"predicted_WHIP": 1.5202
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.393,
"final": 3.6497,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.064,
"final": 4.6141,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.572,
"final": 2.1758,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.364,
"final": 4.4786,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.868,
"final": 0.9238,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.9954,
"final": 6.9954,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5202,
"final": 1.5202,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.1,
"ER": 30,
"H": 50,
"BB": 19,
"SO": 28,
"HR": 6,
"ERA": 6.230769230769231,
"WHIP": 1.5923076923076922,
"K9": 5.815384615384615,
"HR9": 1.2461538461538462,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-13T00:00:00"
},
"recent_form_boost": 1.2170680982327453,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663436",
"player_name": "Davis Martin",
"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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 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": "CHW",
"games": 138,
"wins": 73,
"losses": 65,
"win_pct": 0.529,
"runs_scored": 660.0,
"runs_allowed": 615.0,
"run_differential": 45.0,
"run_differential_per_game": 0.3261,
"avg_runs_scored": 4.7826,
"avg_runs_allowed": 4.4565,
"offense_index": 1.0672,
"defense_index": 1.0056,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.1,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0997
},
"opponent": {
"team": "HOU",
"games": 139,
"wins": 70,
"losses": 69,
"win_pct": 0.5036,
"runs_scored": 631.0,
"runs_allowed": 675.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3165,
"avg_runs_scored": 4.5396,
"avg_runs_allowed": 4.8561,
"offense_index": 1.013,
"defense_index": 0.9228,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.6,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0358
},
"edges": {
"quality_edge": 0.1355,
"offense_edge": 0.0672,
"opponent_offense_edge": 0.013,
"defense_strength": 0.0056,
"opponent_defense_weakness": 0.0772,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0051,
"run_prevention": 0.9947,
"strikeout": 1.003
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663436",
"profile": {
"available": true,
"pitcher_id": "663436",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 502.0,
"k_percent": 20.9,
"bb_percent": 7.4,
"woba": 0.324,
"xwoba": 0.331,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 44.4,
"avg_best_speed": 79.1499,
"avg_hyper_speed": 94.8601,
"whiff_percent": 24.0,
"swing_percent": 48.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3817,
"command_and_miss": -0.0368,
"regression_edge": -0.2,
"xwoba_edge": -0.5714,
"barrel_edge": 0.1111,
"hard_hit_edge": -0.9286,
"whiff_edge": -0.1714,
"bb_edge": 0.4375,
"pitch_design_score": 0.0082
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663436",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 78,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 90.01127982516205,
"release_spin_rate": 2483.065988028828,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 90.01127982516205,
"release_spin_rate": 2483.065988028828,
"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.0113,
"release_spin_rate": 2483.066,
"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.0082,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0585,
"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.2427,
"sample_weight": 1.0,
"run_prevention_factor": 1.0206,
"strikeout_factor": 0.9874,
"walk_factor": 0.965,
"homer_factor": 1.0454,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663436",
"espn_id": 42823,
"player_name": "Davis Martin",
"team": "CHW",
"role": "pitcher",
"espn_rank": 80,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 80,
"gp_value": 24.0,
"gp_rank": 318,
"gs_value": 24.0,
"gs_rank": 61,
"qs_value": 10.0,
"qs_rank": 54,
"era_value": 4.32,
"era_rank": null,
"w_value": 9.0,
"w_rank": 36,
"l_value": 6.0,
"l_rank": 105,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 125.0,
"ip_rank": 79,
"h_value": 127.0,
"h_rank": 56,
"er_value": 60.0,
"er_rank": 60,
"hr_value": 12.0,
"hr_rank": 125,
"bb_value": 39.0,
"bb_rank": 81,
"k_value": 111.0,
"k_rank": 75,
"k_per_9_value": 7.9919996,
"k_per_9_rank": 25,
"whip_value": 1.328,
"whip_rank": null,
"war_value": 1.84,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0206,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0206,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.965,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0454,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9874,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 99,
"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": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 5 ER."
}
],
"provenance": {
"prediction": "output/games/20260902_CHW@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_CHW@HOU | home | Hayden Wesneski | Hayden Wesneski | True | 5.1 | 7.0 | 5 | 3 | 0 | -3 | 5/1 | 1/2 | 3/5 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 3.857142857142857,
"WHIP": 1.1938775510204083,
"IP": 32.2,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 5.444,
"recent_avg_IP": 5.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0247,
"sample_weight": 0.45,
"run_prevention_factor": 0.9979,
"strikeout_factor": 1.0015,
"walk_factor": 0.9987,
"homer_factor": 0.9968,
"regression_flag": "neutral",
"k_percent": 21.1,
"bb_percent": 9.0,
"woba": 0.293,
"xwoba": 0.304,
"barrel_percent": 6.5,
"hard_hit_percent": 40.2,
"whiff_percent": 26.6
},
"espn_rank": {
"rank": 241,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669713",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 10.0,
"SO": 24.0,
"HR": 2.0,
"BF": 108.0,
"Pitches": 424.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.2,
"H": 4.0,
"BB": 2.0,
"SO": 4.8,
"HR": 0.4,
"BF": 21.6,
"Pitches": 84.8
},
"rates": {
"ERA": 3.6667,
"WHIP": 1.1111,
"ER_per_IP": 0.40741,
"H_per_IP": 0.74074,
"BB_per_IP": 0.37037,
"SO_per_IP": 0.88889,
"HR_per_IP": 0.07407
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 32.2,
"ER": 14.0,
"R": 14.0,
"H": 27.0,
"BB": 12.0,
"SO": 28.0,
"HR": 2.0,
"BF": 133.0,
"Pitches": 503.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3333,
"R": 2.3333,
"H": 4.5,
"BB": 2.0,
"SO": 4.6667,
"HR": 0.3333,
"BF": 22.1667,
"Pitches": 83.8333
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.1939,
"ER_per_IP": 0.42857,
"H_per_IP": 0.82653,
"BB_per_IP": 0.36735,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.06122
}
},
"season": {
"games": 6,
"totals": {
"IP": 32.2,
"ER": 14.0,
"R": 14.0,
"H": 27.0,
"BB": 12.0,
"SO": 28.0,
"HR": 2.0,
"BF": 133.0,
"Pitches": 503.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3333,
"R": 2.3333,
"H": 4.5,
"BB": 2.0,
"SO": 4.6667,
"HR": 0.3333,
"BF": 22.1667,
"Pitches": 83.8333
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.1939,
"ER_per_IP": 0.42857,
"H_per_IP": 0.82653,
"BB_per_IP": 0.36735,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.06122
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.398,
"predicted_H": 4.545,
"predicted_BB": 1.975,
"predicted_SO": 4.853,
"predicted_HR": 0.565,
"predicted_ERA": 4.0465,
"predicted_WHIP": 1.2225
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.398,
"final": 2.7243,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.545,
"final": 4.7916,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.975,
"final": 1.4465,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.853,
"final": 3.8486,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.565,
"final": 0.8008,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0465,
"final": 4.0465,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2225,
"final": 1.2225,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 32.2,
"ER": 14,
"H": 27,
"BB": 12,
"SO": 28,
"HR": 2,
"ERA": 3.857142857142857,
"WHIP": 1.1938775510204083,
"K9": 7.714285714285714,
"HR9": 0.5510204081632654,
"games_pitched": 6,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-08-27T00:00:00"
},
"recent_form_boost": 0.9400743776675962,
"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": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669713",
"player_name": "Hayden Wesneski",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 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": 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": 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": 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": 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": "HOU",
"games": 139,
"wins": 70,
"losses": 69,
"win_pct": 0.5036,
"runs_scored": 631.0,
"runs_allowed": 675.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3165,
"avg_runs_scored": 4.5396,
"avg_runs_allowed": 4.8561,
"offense_index": 1.013,
"defense_index": 0.9228,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.6,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0358
},
"opponent": {
"team": "CHW",
"games": 138,
"wins": 73,
"losses": 65,
"win_pct": 0.529,
"runs_scored": 660.0,
"runs_allowed": 615.0,
"run_differential": 45.0,
"run_differential_per_game": 0.3261,
"avg_runs_scored": 4.7826,
"avg_runs_allowed": 4.4565,
"offense_index": 1.0672,
"defense_index": 1.0056,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.1,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0997
},
"edges": {
"quality_edge": -0.1355,
"offense_edge": 0.013,
"opponent_offense_edge": 0.0672,
"defense_strength": -0.0772,
"opponent_defense_weakness": -0.0056,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9896,
"run_prevention": 1.0252,
"strikeout": 0.9906
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669713",
"profile": {
"available": true,
"pitcher_id": "669713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 94.0,
"k_percent": 21.1,
"bb_percent": 9.0,
"woba": 0.293,
"xwoba": 0.304,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 40.2,
"avg_best_speed": 78.4281,
"avg_hyper_speed": 94.3165,
"whiff_percent": 26.6,
"swing_percent": 50.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1559,
"command_and_miss": 0.0261,
"regression_edge": -0.3143,
"xwoba_edge": 0.2,
"barrel_edge": 0.1778,
"hard_hit_edge": -0.3286,
"whiff_edge": 0.2,
"bb_edge": 0.0375,
"pitch_design_score": -0.096
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669713",
"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": 88.15057794740576,
"release_spin_rate": 2328.6168589392373,
"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": 88.15057794740576,
"release_spin_rate": 2328.6168589392373,
"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.1506,
"release_spin_rate": 2328.6169,
"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.096,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6858,
"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.0247,
"sample_weight": 0.45,
"run_prevention_factor": 0.9979,
"strikeout_factor": 1.0015,
"walk_factor": 0.9987,
"homer_factor": 0.9968,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669713",
"espn_id": 42996,
"player_name": "Hayden Wesneski",
"team": "HOU",
"role": "pitcher",
"espn_rank": 241,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 241,
"gp_value": 6.0,
"gp_rank": 592,
"gs_value": 6.0,
"gs_rank": 200,
"qs_value": 2.0,
"qs_rank": 153,
"era_value": 3.8571,
"era_rank": null,
"w_value": 4.0,
"w_rank": 178,
"l_value": 1.0,
"l_rank": 415,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 32.2,
"ip_rank": 403,
"h_value": 27.0,
"h_rank": 426,
"er_value": 14.0,
"er_rank": 426,
"hr_value": 2.0,
"hr_rank": 507,
"bb_value": 12.0,
"bb_rank": 431,
"k_value": 28.0,
"k_rank": 421,
"k_per_9_value": 7.714286,
"k_per_9_rank": 28,
"whip_value": 1.1938,
"whip_rank": null,
"war_value": 0.57,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9991,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9991,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9994,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9986,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0007,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits 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."
},
{
"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/20260902_CHW@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_DET@MIN | away | Drew Anderson | Drew Anderson | True | 4.1 | 5.2 | 4 | 4 | 1 | -3 | 6/3 | 3/2 | 2/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.872093023255814,
"WHIP": 1.3255813953488371,
"IP": 86.0,
"games_started": null,
"games_pitched": 45,
"role_avg_IP": 4.238,
"recent_avg_IP": 4.467,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1706,
"sample_weight": 1.0,
"run_prevention_factor": 0.9855,
"strikeout_factor": 1.0377,
"walk_factor": 1.011,
"homer_factor": 1.0089,
"regression_flag": "neutral",
"k_percent": 25.9,
"bb_percent": 9.7,
"woba": 0.322,
"xwoba": 0.302,
"barrel_percent": 8.2,
"hard_hit_percent": 38.0,
"whiff_percent": 27.8
},
"espn_rank": {
"rank": 186,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.266,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7754,
"prior_weight": 0.2246
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "623454",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 45,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 7.0,
"R": 7.0,
"H": 20.0,
"BB": 11.0,
"SO": 18.0,
"HR": 4.0,
"BF": 93.0,
"Pitches": 350.0
},
"per_game": {
"IP": 4.1,
"ER": 1.4,
"R": 1.4,
"H": 4.0,
"BB": 2.2,
"SO": 3.6,
"HR": 0.8,
"BF": 18.6,
"Pitches": 70.0
},
"rates": {
"ERA": 2.8209,
"WHIP": 1.3881,
"ER_per_IP": 0.31343,
"H_per_IP": 0.89552,
"BB_per_IP": 0.49254,
"SO_per_IP": 0.80597,
"HR_per_IP": 0.1791
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 28.2,
"ER": 10.0,
"R": 10.0,
"H": 26.0,
"BB": 12.0,
"SO": 25.0,
"HR": 4.0,
"BF": 119.0,
"Pitches": 458.0
},
"per_game": {
"IP": 3.0,
"ER": 1.0,
"R": 1.0,
"H": 2.6,
"BB": 1.2,
"SO": 2.5,
"HR": 0.4,
"BF": 11.9,
"Pitches": 45.8
},
"rates": {
"ERA": 3.1395,
"WHIP": 1.3256,
"ER_per_IP": 0.34884,
"H_per_IP": 0.90698,
"BB_per_IP": 0.4186,
"SO_per_IP": 0.87209,
"HR_per_IP": 0.13953
}
},
"season": {
"games": 45,
"totals": {
"IP": 86.0,
"ER": 37.0,
"R": 40.0,
"H": 79.0,
"BB": 35.0,
"SO": 96.0,
"HR": 13.0,
"BF": 369.0,
"Pitches": 1435.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8222,
"R": 0.8889,
"H": 1.7556,
"BB": 0.7778,
"SO": 2.1333,
"HR": 0.2889,
"BF": 8.2,
"Pitches": 31.8889
},
"rates": {
"ERA": 3.8721,
"WHIP": 1.3256,
"ER_per_IP": 0.43023,
"H_per_IP": 0.9186,
"BB_per_IP": 0.40698,
"SO_per_IP": 1.11628,
"HR_per_IP": 0.15116
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.38,
"predicted_H": 3.319,
"predicted_BB": 1.559,
"predicted_SO": 3.257,
"predicted_HR": 0.566,
"predicted_ERA": 3.4411,
"predicted_WHIP": 1.3513
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4449,
"form_weight": 0.5551,
"form_reliability": 0.7754,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.266,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7754,
"prior_weight": 0.2246
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 3.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.38,
"final": 2.5456,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.319,
"final": 4.5118,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.559,
"final": 2.2001,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.257,
"final": 2.6978,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.566,
"final": 1.204,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4411,
"final": 3.4411,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3513,
"final": 1.3513,
"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": 28.2,
"ER": 10,
"H": 26,
"BB": 12,
"SO": 25,
"HR": 4,
"ERA": 3.13953488372093,
"WHIP": 1.3255813953488371,
"K9": 7.848837209302325,
"HR9": 1.255813953488372,
"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-28T00:00:00"
},
"recent_form_boost": 0.8714108705148887,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.266,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7754,
"prior_weight": 0.2246
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "623454",
"player_name": "Drew Anderson",
"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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 138,
"wins": 63,
"losses": 75,
"win_pct": 0.4565,
"runs_scored": 599.0,
"runs_allowed": 557.0,
"run_differential": 42.0,
"run_differential_per_game": 0.3043,
"avg_runs_scored": 4.3406,
"avg_runs_allowed": 4.0362,
"offense_index": 0.9683,
"defense_index": 1.1106,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.0,
"avg_runs_allowed": 5.7,
"run_differential": -37.0
},
"available": true,
"quality_score": -0.1046
},
"opponent": {
"team": "MIN",
"games": 139,
"wins": 67,
"losses": 72,
"win_pct": 0.482,
"runs_scored": 652.0,
"runs_allowed": 685.0,
"run_differential": -33.0,
"run_differential_per_game": -0.2374,
"avg_runs_scored": 4.6906,
"avg_runs_allowed": 4.9281,
"offense_index": 1.0464,
"defense_index": 0.9096,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 4.6,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.0794
},
"edges": {
"quality_edge": -0.0252,
"offense_edge": -0.0317,
"opponent_offense_edge": 0.0464,
"defense_strength": 0.1106,
"opponent_defense_weakness": 0.0904,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0005,
"run_prevention": 0.9976,
"strikeout": 0.9955
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "623454",
"profile": {
"available": true,
"pitcher_id": "623454",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 305.0,
"k_percent": 25.9,
"bb_percent": 9.7,
"woba": 0.322,
"xwoba": 0.302,
"sweet_spot_percent": 30.3,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 38.0,
"avg_best_speed": 79.826,
"avg_hyper_speed": 94.0821,
"whiff_percent": 27.8,
"swing_percent": 48.4
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0321,
"command_and_miss": 0.3596,
"regression_edge": 0.5714,
"xwoba_edge": 0.2571,
"barrel_edge": -0.2,
"hard_hit_edge": -0.0143,
"whiff_edge": 0.3714,
"bb_edge": -0.1375,
"pitch_design_score": 0.0244
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "623454",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 52,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 52,
"pitch_usage": 0.0,
"release_speed": 90.30111562509353,
"release_spin_rate": 2144.0939147176737,
"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": 52,
"pitch_usage": 0.0,
"release_speed": 90.30111562509353,
"release_spin_rate": 2144.0939147176737,
"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.3011,
"release_spin_rate": 2144.0939,
"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.0244,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1744,
"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.1706,
"sample_weight": 1.0,
"run_prevention_factor": 0.9855,
"strikeout_factor": 1.0377,
"walk_factor": 1.011,
"homer_factor": 1.0089,
"woba_minus_xwoba": 0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "623454",
"espn_id": 28617,
"player_name": "Drew Anderson",
"team": "MIL",
"role": "pitcher",
"espn_rank": 186,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 186,
"gp_value": 45.0,
"gp_rank": 123,
"gs_value": 7.0,
"gs_rank": 195,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.872,
"era_rank": null,
"w_value": 4.0,
"w_rank": 178,
"l_value": 5.0,
"l_rank": 130,
"sv_value": 2.0,
"sv_rank": 86,
"hld_value": 6.0,
"hld_rank": 145,
"ip_value": 86.0,
"ip_rank": 140,
"h_value": 79.0,
"h_rank": 142,
"er_value": 37.0,
"er_rank": 155,
"hr_value": 13.0,
"hr_rank": 111,
"bb_value": 35.0,
"bb_rank": 113,
"k_value": 96.0,
"k_rank": 100,
"k_per_9_value": 10.046512,
"k_per_9_rank": 19,
"whip_value": 1.3255,
"whip_rank": null,
"war_value": 0.91,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9855,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9855,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.011,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0089,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0377,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260902_DET@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"
}
} |
| 20260902 | 20260902_DET@MIN | home | Dean Kremer | Dean Kremer | True | 5.0 | 4.0 | -3 | 2 | 4 | 2 | 7/6 | 2/2 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.601063829787234,
"WHIP": 1.2606382978723405,
"IP": 62.2,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 5.222,
"recent_avg_IP": 5.333,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0619,
"sample_weight": 0.868,
"run_prevention_factor": 1.0053,
"strikeout_factor": 1.0213,
"walk_factor": 0.9887,
"homer_factor": 1.0112,
"regression_flag": "neutral",
"k_percent": 23.5,
"bb_percent": 8.5,
"woba": 0.344,
"xwoba": 0.325,
"barrel_percent": 7.9,
"hard_hit_percent": 36.2,
"whiff_percent": 27.9
},
"espn_rank": {
"rank": 685,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "665152",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 13.0,
"R": 14.0,
"H": 19.0,
"BB": 11.0,
"SO": 23.0,
"HR": 3.0,
"BF": 107.0,
"Pitches": 457.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.8,
"H": 3.8,
"BB": 2.2,
"SO": 4.6,
"HR": 0.6,
"BF": 21.4,
"Pitches": 91.4
},
"rates": {
"ERA": 4.3875,
"WHIP": 1.125,
"ER_per_IP": 0.4875,
"H_per_IP": 0.7125,
"BB_per_IP": 0.4125,
"SO_per_IP": 0.8625,
"HR_per_IP": 0.1125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 34.0,
"R": 35.0,
"H": 49.0,
"BB": 20.0,
"SO": 45.0,
"HR": 11.0,
"BF": 217.0,
"Pitches": 879.0
},
"per_game": {
"IP": 5.1,
"ER": 3.4,
"R": 3.5,
"H": 4.9,
"BB": 2.0,
"SO": 4.5,
"HR": 1.1,
"BF": 21.7,
"Pitches": 87.9
},
"rates": {
"ERA": 5.9226,
"WHIP": 1.3355,
"ER_per_IP": 0.65806,
"H_per_IP": 0.94839,
"BB_per_IP": 0.3871,
"SO_per_IP": 0.87097,
"HR_per_IP": 0.2129
}
},
"season": {
"games": 12,
"totals": {
"IP": 62.2,
"ER": 39.0,
"R": 42.0,
"H": 57.0,
"BB": 22.0,
"SO": 61.0,
"HR": 15.0,
"BF": 260.0,
"Pitches": 1054.0
},
"per_game": {
"IP": 5.1,
"ER": 3.25,
"R": 3.5,
"H": 4.75,
"BB": 1.8333,
"SO": 5.0833,
"HR": 1.25,
"BF": 21.6667,
"Pitches": 87.8333
},
"rates": {
"ERA": 5.6011,
"WHIP": 1.2606,
"ER_per_IP": 0.62234,
"H_per_IP": 0.90957,
"BB_per_IP": 0.35106,
"SO_per_IP": 0.9734,
"HR_per_IP": 0.23936
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.941,
"predicted_H": 4.667,
"predicted_BB": 2.055,
"predicted_SO": 4.817,
"predicted_HR": 0.881,
"predicted_ERA": 4.9628,
"predicted_WHIP": 1.2602
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4743,
"form_weight": 0.5257,
"form_reliability": 0.7059,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.941,
"final": 2.4947,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.667,
"final": 5.7734,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.055,
"final": 2.0289,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.817,
"final": 4.9038,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.881,
"final": 0.4632,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9628,
"final": 4.9628,
"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": 51.2,
"ER": 34,
"H": 49,
"BB": 20,
"SO": 45,
"HR": 11,
"ERA": 5.922580645161291,
"WHIP": 1.335483870967742,
"K9": 7.838709677419355,
"HR9": 1.9161290322580646,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-28T00:00:00"
},
"recent_form_boost": 1.1759762868183534,
"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": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 7,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "665152",
"player_name": "Dean Kremer",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 139,
"wins": 67,
"losses": 72,
"win_pct": 0.482,
"runs_scored": 652.0,
"runs_allowed": 685.0,
"run_differential": -33.0,
"run_differential_per_game": -0.2374,
"avg_runs_scored": 4.6906,
"avg_runs_allowed": 4.9281,
"offense_index": 1.0464,
"defense_index": 0.9096,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 4.6,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.0794
},
"opponent": {
"team": "DET",
"games": 138,
"wins": 63,
"losses": 75,
"win_pct": 0.4565,
"runs_scored": 599.0,
"runs_allowed": 557.0,
"run_differential": 42.0,
"run_differential_per_game": 0.3043,
"avg_runs_scored": 4.3406,
"avg_runs_allowed": 4.0362,
"offense_index": 0.9683,
"defense_index": 1.1106,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.0,
"avg_runs_allowed": 5.7,
"run_differential": -37.0
},
"available": true,
"quality_score": -0.1046
},
"edges": {
"quality_edge": 0.0252,
"offense_edge": 0.0464,
"opponent_offense_edge": -0.0317,
"defense_strength": -0.0904,
"opponent_defense_weakness": -0.1106,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9996,
"run_prevention": 1.0027,
"strikeout": 1.0033
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "665152",
"profile": {
"available": true,
"pitcher_id": "665152",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 217.0,
"k_percent": 23.5,
"bb_percent": 8.5,
"woba": 0.344,
"xwoba": 0.325,
"sweet_spot_percent": 38.4,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 36.2,
"avg_best_speed": 76.8654,
"avg_hyper_speed": 93.5951,
"whiff_percent": 27.9,
"swing_percent": 45.2
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3236,
"command_and_miss": 0.2704,
"regression_edge": 0.5429,
"xwoba_edge": -0.4,
"barrel_edge": -0.1333,
"hard_hit_edge": 0.2429,
"whiff_edge": 0.3857,
"bb_edge": 0.1625,
"pitch_design_score": -0.183
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "665152",
"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": 86.5972766860832,
"release_spin_rate": 2072.2900211030874,
"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": 86.5972766860832,
"release_spin_rate": 2072.2900211030874,
"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.5973,
"release_spin_rate": 2072.29,
"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.183,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.3071,
"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.0619,
"sample_weight": 0.868,
"run_prevention_factor": 1.0053,
"strikeout_factor": 1.0213,
"walk_factor": 0.9887,
"homer_factor": 1.0112,
"woba_minus_xwoba": 0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "665152",
"espn_id": 38295,
"player_name": "Dean Kremer",
"team": "MIN",
"role": "pitcher",
"espn_rank": 685,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 685,
"gp_value": 12.0,
"gp_rank": 485,
"gs_value": 12.0,
"gs_rank": 153,
"qs_value": 3.0,
"qs_rank": 135,
"era_value": 5.601,
"era_rank": null,
"w_value": 2.0,
"w_rank": 299,
"l_value": 5.0,
"l_rank": 130,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 62.2,
"ip_rank": 198,
"h_value": 57.0,
"h_rank": 191,
"er_value": 39.0,
"er_rank": 145,
"hr_value": 15.0,
"hr_rank": 79,
"bb_value": 22.0,
"bb_rank": 240,
"k_value": 61.0,
"k_rank": 208,
"k_per_9_value": 8.760638,
"k_per_9_rank": 28,
"whip_value": 1.2606,
"whip_rank": null,
"war_value": -0.25,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0046,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0046,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9902,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0097,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0185,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260902_DET@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"
}
} |
| 20260902 | 20260902_MIA@KC | away | Eury Pérez | Eury Pérez | True | 5.1 | 4.2 | -2 | 2 | 6 | 4 | 2/9 | 0/3 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4438775510204085,
"WHIP": 1.1326530612244898,
"IP": 130.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.444,
"recent_avg_IP": 5.2,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2302,
"sample_weight": 1.0,
"run_prevention_factor": 0.9804,
"strikeout_factor": 1.0497,
"walk_factor": 1.029,
"homer_factor": 1.0301,
"regression_flag": "neutral",
"k_percent": 26.8,
"bb_percent": 10.6,
"woba": 0.287,
"xwoba": 0.298,
"barrel_percent": 9.3,
"hard_hit_percent": 38.9,
"whiff_percent": 29.0
},
"espn_rank": {
"rank": 68,
"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": "691587",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 10.0,
"R": 11.0,
"H": 17.0,
"BB": 16.0,
"SO": 30.0,
"HR": 1.0,
"BF": 107.0,
"Pitches": 465.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.2,
"H": 3.4,
"BB": 3.2,
"SO": 6.0,
"HR": 0.2,
"BF": 21.4,
"Pitches": 93.0
},
"rates": {
"ERA": 3.4615,
"WHIP": 1.2692,
"ER_per_IP": 0.38462,
"H_per_IP": 0.65385,
"BB_per_IP": 0.61538,
"SO_per_IP": 1.15385,
"HR_per_IP": 0.03846
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 16.0,
"R": 18.0,
"H": 36.0,
"BB": 24.0,
"SO": 61.0,
"HR": 1.0,
"BF": 228.0,
"Pitches": 950.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.8,
"H": 3.6,
"BB": 2.4,
"SO": 6.1,
"HR": 0.1,
"BF": 22.8,
"Pitches": 95.0
},
"rates": {
"ERA": 2.4828,
"WHIP": 1.0345,
"ER_per_IP": 0.27586,
"H_per_IP": 0.62069,
"BB_per_IP": 0.41379,
"SO_per_IP": 1.05172,
"HR_per_IP": 0.01724
}
},
"season": {
"games": 24,
"totals": {
"IP": 130.2,
"ER": 50.0,
"R": 56.0,
"H": 92.0,
"BB": 56.0,
"SO": 142.0,
"HR": 14.0,
"BF": 530.0,
"Pitches": 2167.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0833,
"R": 2.3333,
"H": 3.8333,
"BB": 2.3333,
"SO": 5.9167,
"HR": 0.5833,
"BF": 22.0833,
"Pitches": 90.2917
},
"rates": {
"ERA": 3.4439,
"WHIP": 1.1327,
"ER_per_IP": 0.38265,
"H_per_IP": 0.70408,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.08673,
"HR_per_IP": 0.10714
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.021,
"predicted_H": 3.841,
"predicted_BB": 2.627,
"predicted_SO": 5.845,
"predicted_HR": 0.338,
"predicted_ERA": 3.3492,
"predicted_WHIP": 1.1913
}
},
"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": 2.0,
"form": 2.021,
"final": 2.0121,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.841,
"final": 3.0626,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.627,
"final": 1.5162,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.845,
"final": 6.3334,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.338,
"final": 1.0408,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3492,
"final": 3.3492,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1913,
"final": 1.1913,
"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": 16,
"H": 36,
"BB": 24,
"SO": 61,
"HR": 1,
"ERA": 2.4827586206896552,
"WHIP": 1.0344827586206897,
"K9": 9.46551724137931,
"HR9": 0.15517241379310345,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-28T00:00:00"
},
"recent_form_boost": 0.7814712812566181,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "691587",
"player_name": "Eury P\u00e9rez",
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"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.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.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": "MIA",
"games": 139,
"wins": 70,
"losses": 69,
"win_pct": 0.5036,
"runs_scored": 603.0,
"runs_allowed": 588.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1079,
"avg_runs_scored": 4.3381,
"avg_runs_allowed": 4.2302,
"offense_index": 0.968,
"defense_index": 1.0594,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.0,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0163
},
"opponent": {
"team": "KC",
"games": 139,
"wins": 62,
"losses": 77,
"win_pct": 0.446,
"runs_scored": 593.0,
"runs_allowed": 679.0,
"run_differential": -86.0,
"run_differential_per_game": -0.6187,
"avg_runs_scored": 4.2662,
"avg_runs_allowed": 4.8849,
"offense_index": 0.952,
"defense_index": 0.9174,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 3.8,
"run_differential": 14.0
},
"available": true,
"quality_score": -0.0518
},
"edges": {
"quality_edge": 0.0681,
"offense_edge": -0.032,
"opponent_offense_edge": -0.048,
"defense_strength": 0.0594,
"opponent_defense_weakness": 0.0826,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0064,
"run_prevention": 0.983,
"strikeout": 1.0059
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "691587",
"profile": {
"available": true,
"pitcher_id": "691587",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 26.8,
"bb_percent": 10.6,
"woba": 0.287,
"xwoba": 0.298,
"sweet_spot_percent": 31.5,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 38.9,
"avg_best_speed": 76.9222,
"avg_hyper_speed": 94.1041,
"whiff_percent": 29.0,
"swing_percent": 51.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2424,
"command_and_miss": 0.4325,
"regression_edge": -0.3143,
"xwoba_edge": 0.3714,
"barrel_edge": -0.4444,
"hard_hit_edge": -0.1429,
"whiff_edge": 0.5429,
"bb_edge": -0.3625,
"pitch_design_score": 0.1678
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "691587",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 92.86224536987449,
"release_spin_rate": 2522.012850884775,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 92.86224536987449,
"release_spin_rate": 2522.012850884775,
"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.8622,
"release_spin_rate": 2522.0129,
"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.1678,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1989,
"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.2302,
"sample_weight": 1.0,
"run_prevention_factor": 0.9804,
"strikeout_factor": 1.0497,
"walk_factor": 1.029,
"homer_factor": 1.0301,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "691587",
"espn_id": 4917854,
"player_name": "Eury Perez",
"team": "MIA",
"role": "pitcher",
"espn_rank": 68,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 68,
"gp_value": 24.0,
"gp_rank": 318,
"gs_value": 24.0,
"gs_rank": 61,
"qs_value": 11.0,
"qs_rank": 40,
"era_value": 3.4438,
"era_rank": null,
"w_value": 7.0,
"w_rank": 79,
"l_value": 10.0,
"l_rank": 13,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 130.2,
"ip_rank": 65,
"h_value": 92.0,
"h_rank": 122,
"er_value": 50.0,
"er_rank": 96,
"hr_value": 14.0,
"hr_rank": 99,
"bb_value": 56.0,
"bb_rank": 17,
"k_value": 142.0,
"k_rank": 32,
"k_per_9_value": 9.780612,
"k_per_9_rank": 13,
"whip_value": 1.1326,
"whip_rank": null,
"war_value": 1.97,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9804,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9804,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.029,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0301,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0497,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 18,
"Pitches": 73,
"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 7",
"detail": "Actual minus predicted hits was +7."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260902_MIA@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_MIA@KC | home | Noah Cameron | Noah Cameron | True | 6.1 | 5.0 | -4 | 0 | 4 | 4 | 3/5 | 4/1 | 11/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.977678571428571,
"WHIP": 1.21875,
"IP": 149.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.693,
"recent_avg_IP": 6.733,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0531,
"sample_weight": 1.0,
"run_prevention_factor": 1.0045,
"strikeout_factor": 1.0011,
"walk_factor": 0.971,
"homer_factor": 1.0135,
"regression_flag": "neutral",
"k_percent": 21.0,
"bb_percent": 7.7,
"woba": 0.299,
"xwoba": 0.313,
"barrel_percent": 7.9,
"hard_hit_percent": 38.1,
"whiff_percent": 26.3
},
"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": 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": "702070",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.2,
"ER": 7.0,
"R": 7.0,
"H": 18.0,
"BB": 9.0,
"SO": 24.0,
"HR": 1.0,
"BF": 126.0,
"Pitches": 488.0
},
"per_game": {
"IP": 6.2,
"ER": 1.4,
"R": 1.4,
"H": 3.6,
"BB": 1.8,
"SO": 4.8,
"HR": 0.2,
"BF": 25.2,
"Pitches": 97.6
},
"rates": {
"ERA": 1.8713,
"WHIP": 0.802,
"ER_per_IP": 0.20792,
"H_per_IP": 0.53465,
"BB_per_IP": 0.26733,
"SO_per_IP": 0.71287,
"HR_per_IP": 0.0297
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 65.2,
"ER": 20.0,
"R": 20.0,
"H": 41.0,
"BB": 23.0,
"SO": 56.0,
"HR": 5.0,
"BF": 255.0,
"Pitches": 977.0
},
"per_game": {
"IP": 6.2,
"ER": 2.0,
"R": 2.0,
"H": 4.1,
"BB": 2.3,
"SO": 5.6,
"HR": 0.5,
"BF": 25.5,
"Pitches": 97.7
},
"rates": {
"ERA": 2.7411,
"WHIP": 0.9746,
"ER_per_IP": 0.30457,
"H_per_IP": 0.62437,
"BB_per_IP": 0.35025,
"SO_per_IP": 0.85279,
"HR_per_IP": 0.07614
}
},
"season": {
"games": 26,
"totals": {
"IP": 149.1,
"ER": 66.0,
"R": 71.0,
"H": 134.0,
"BB": 48.0,
"SO": 131.0,
"HR": 15.0,
"BF": 625.0,
"Pitches": 2428.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5385,
"R": 2.7308,
"H": 5.1538,
"BB": 1.8462,
"SO": 5.0385,
"HR": 0.5769,
"BF": 24.0385,
"Pitches": 93.3846
},
"rates": {
"ERA": 3.9777,
"WHIP": 1.2188,
"ER_per_IP": 0.44196,
"H_per_IP": 0.89732,
"BB_per_IP": 0.32143,
"SO_per_IP": 0.87723,
"HR_per_IP": 0.10045
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.076,
"predicted_H": 4.463,
"predicted_BB": 2.046,
"predicted_SO": 5.274,
"predicted_HR": 0.477,
"predicted_ERA": 2.8994,
"predicted_WHIP": 1.0098
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.076,
"final": 1.2079,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.463,
"final": 3.8512,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.046,
"final": 2.8631,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 5.274,
"final": 6.832,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.477,
"final": 0.2775,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8994,
"final": 2.8994,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0098,
"final": 1.0098,
"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": 65.2,
"ER": 20,
"H": 41,
"BB": 23,
"SO": 56,
"HR": 5,
"ERA": 2.7411167512690353,
"WHIP": 0.9746192893401014,
"K9": 7.6751269035532985,
"HR9": 0.6852791878172588,
"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-27T00:00:00"
},
"recent_form_boost": 0.8090399842147836,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 9.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702070",
"player_name": "Noah Cameron",
"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": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 0.0,
"predicted_SO": 11.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 11.0,
"delta": 2.0,
"percent_delta": 0.2222,
"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": 9.0,
"after": 11.0,
"delta": 2.0,
"percent_delta": 0.2222,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 11.0,
"delta": 2.0,
"percent_delta": 0.2222,
"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": 9.0,
"after": 11.0,
"delta": 2.0,
"percent_delta": 0.2222,
"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": "KC",
"games": 139,
"wins": 62,
"losses": 77,
"win_pct": 0.446,
"runs_scored": 593.0,
"runs_allowed": 679.0,
"run_differential": -86.0,
"run_differential_per_game": -0.6187,
"avg_runs_scored": 4.2662,
"avg_runs_allowed": 4.8849,
"offense_index": 0.952,
"defense_index": 0.9174,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 3.8,
"run_differential": 14.0
},
"available": true,
"quality_score": -0.0518
},
"opponent": {
"team": "MIA",
"games": 139,
"wins": 70,
"losses": 69,
"win_pct": 0.5036,
"runs_scored": 603.0,
"runs_allowed": 588.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1079,
"avg_runs_scored": 4.3381,
"avg_runs_allowed": 4.2302,
"offense_index": 0.968,
"defense_index": 1.0594,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.0,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0163
},
"edges": {
"quality_edge": -0.0681,
"offense_edge": -0.048,
"opponent_offense_edge": -0.032,
"defense_strength": -0.0826,
"opponent_defense_weakness": -0.0594,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9961,
"run_prevention": 1.0065,
"strikeout": 1.0005
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702070",
"profile": {
"available": true,
"pitcher_id": "702070",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 575.0,
"k_percent": 21.0,
"bb_percent": 7.7,
"woba": 0.299,
"xwoba": 0.313,
"sweet_spot_percent": 38.6,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 38.1,
"avg_best_speed": 77.8848,
"avg_hyper_speed": 93.9935,
"whiff_percent": 26.3,
"swing_percent": 47.7
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.031,
"command_and_miss": 0.0696,
"regression_edge": -0.4,
"xwoba_edge": -0.0571,
"barrel_edge": -0.1333,
"hard_hit_edge": -0.0286,
"whiff_edge": 0.1571,
"bb_edge": 0.3625,
"pitch_design_score": -0.1729
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702070",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 104,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 104,
"pitch_usage": 0.0,
"release_speed": 86.77804095392263,
"release_spin_rate": 2196.6732125022254,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 104,
"pitch_usage": 0.0,
"release_speed": 86.77804095392263,
"release_spin_rate": 2196.6732125022254,
"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.778,
"release_spin_rate": 2196.6732,
"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.1729,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2348,
"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.0531,
"sample_weight": 1.0,
"run_prevention_factor": 1.0045,
"strikeout_factor": 1.0011,
"walk_factor": 0.971,
"homer_factor": 1.0135,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "702070",
"espn_id": 4417208,
"player_name": "Noah Cameron",
"team": "KC",
"role": "pitcher",
"espn_rank": 110,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 110,
"gp_value": 26.0,
"gp_rank": 276,
"gs_value": 25.0,
"gs_rank": 48,
"qs_value": 9.0,
"qs_rank": 63,
"era_value": 3.9776,
"era_rank": 32.0,
"w_value": 9.0,
"w_rank": 36,
"l_value": 8.0,
"l_rank": 44,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 149.1,
"ip_rank": 33,
"h_value": 134.0,
"h_rank": 37,
"er_value": 66.0,
"er_rank": 35,
"hr_value": 15.0,
"hr_rank": 79,
"bb_value": 48.0,
"bb_rank": 40,
"k_value": 131.0,
"k_rank": 46,
"k_per_9_value": 7.8950896,
"k_per_9_rank": 37,
"whip_value": 1.2187,
"whip_rank": 31.0,
"war_value": 1.56,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0045,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0045,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.971,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0135,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0011,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 3,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 4,
"predicted_SO": 11,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 117,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260902_MIA@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_MIL@CHC | away | Jacob Misiorowski | Jacob Misiorowski | True | 6.0 | 4.0 | -6 | 2 | 5 | 3 | 7/5 | 1/4 | 8/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.728476821192053,
"WHIP": 0.7549668874172185,
"IP": 151.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 6.04,
"recent_avg_IP": 6.2,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 1.4075,
"sample_weight": 1.0,
"run_prevention_factor": 0.8804,
"strikeout_factor": 1.16,
"walk_factor": 0.939,
"homer_factor": 0.8335,
"regression_flag": "neutral",
"k_percent": 38.9,
"bb_percent": 6.1,
"woba": 0.21,
"xwoba": 0.22,
"barrel_percent": 3.6,
"hard_hit_percent": 33.4,
"whiff_percent": 37.6
},
"espn_rank": {
"rank": 5,
"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": "694819",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 8.0,
"R": 8.0,
"H": 17.0,
"BB": 7.0,
"SO": 37.0,
"HR": 3.0,
"BF": 115.0,
"Pitches": 460.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 3.4,
"BB": 1.4,
"SO": 7.4,
"HR": 0.6,
"BF": 23.0,
"Pitches": 92.0
},
"rates": {
"ERA": 2.3226,
"WHIP": 0.7742,
"ER_per_IP": 0.25806,
"H_per_IP": 0.54839,
"BB_per_IP": 0.22581,
"SO_per_IP": 1.19355,
"HR_per_IP": 0.09677
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 14.0,
"R": 19.0,
"H": 32.0,
"BB": 12.0,
"SO": 84.0,
"HR": 9.0,
"BF": 218.0,
"Pitches": 900.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 1.9,
"H": 3.2,
"BB": 1.2,
"SO": 8.4,
"HR": 0.9,
"BF": 21.8,
"Pitches": 90.0
},
"rates": {
"ERA": 2.1724,
"WHIP": 0.7586,
"ER_per_IP": 0.24138,
"H_per_IP": 0.55172,
"BB_per_IP": 0.2069,
"SO_per_IP": 1.44828,
"HR_per_IP": 0.15517
}
},
"season": {
"games": 25,
"totals": {
"IP": 151.0,
"ER": 29.0,
"R": 37.0,
"H": 79.0,
"BB": 35.0,
"SO": 222.0,
"HR": 13.0,
"BF": 571.0,
"Pitches": 2268.0
},
"per_game": {
"IP": 6.0,
"ER": 1.16,
"R": 1.48,
"H": 3.16,
"BB": 1.4,
"SO": 8.88,
"HR": 0.52,
"BF": 22.84,
"Pitches": 90.72
},
"rates": {
"ERA": 1.7285,
"WHIP": 0.755,
"ER_per_IP": 0.19205,
"H_per_IP": 0.52318,
"BB_per_IP": 0.23179,
"SO_per_IP": 1.4702,
"HR_per_IP": 0.08609
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.7,
"predicted_H": 3.712,
"predicted_BB": 1.479,
"predicted_SO": 7.666,
"predicted_HR": 0.725,
"predicted_ERA": 2.538,
"predicted_WHIP": 0.8612
}
},
"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": 2.0,
"form": 1.7,
"final": 1.8261,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 3.712,
"final": 5.0944,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.479,
"final": 1.2776,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 7.666,
"final": 6.9656,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.725,
"final": 0.4202,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.538,
"final": 2.538,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8612,
"final": 0.8612,
"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": 14,
"H": 32,
"BB": 12,
"SO": 84,
"HR": 9,
"ERA": 2.1724137931034484,
"WHIP": 0.7586206896551724,
"K9": 13.03448275862069,
"HR9": 1.396551724137931,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-27T00:00:00"
},
"recent_form_boost": 0.7396609364290319,
"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": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694819",
"player_name": "Jacob Misiorowski",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 8.0,
"delta": 2.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 8.0,
"delta": 2.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 8.0,
"delta": 2.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 8.0,
"delta": 2.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 139,
"wins": 86,
"losses": 53,
"win_pct": 0.6187,
"runs_scored": 695.0,
"runs_allowed": 527.0,
"run_differential": 168.0,
"run_differential_per_game": 1.2086,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.7914,
"offense_index": 1.1157,
"defense_index": 1.182,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.3,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.2842
},
"opponent": {
"team": "CHC",
"games": 139,
"wins": 78,
"losses": 61,
"win_pct": 0.5612,
"runs_scored": 746.0,
"runs_allowed": 610.0,
"run_differential": 136.0,
"run_differential_per_game": 0.9784,
"avg_runs_scored": 5.3669,
"avg_runs_allowed": 4.3885,
"offense_index": 1.1976,
"defense_index": 1.0212,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 8.5,
"avg_runs_allowed": 4.8,
"run_differential": 37.0
},
"available": true,
"quality_score": 0.1371
},
"edges": {
"quality_edge": 0.1471,
"offense_edge": 0.1157,
"opponent_offense_edge": 0.1976,
"defense_strength": 0.182,
"opponent_defense_weakness": -0.0212,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0034,
"run_prevention": 1.0061,
"strikeout": 0.9886
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694819",
"profile": {
"available": true,
"pitcher_id": "694819",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 525.0,
"k_percent": 38.9,
"bb_percent": 6.1,
"woba": 0.21,
"xwoba": 0.22,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 3.6,
"hard_hit_percent": 33.4,
"avg_best_speed": 76.2282,
"avg_hyper_speed": 92.9956,
"whiff_percent": 37.6,
"swing_percent": 51.2
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6584,
"command_and_miss": 1.8654,
"regression_edge": -0.2857,
"xwoba_edge": 2.5,
"barrel_edge": 0.8222,
"hard_hit_edge": 0.6429,
"whiff_edge": 1.7714,
"bb_edge": 0.7625,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694819",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 97.61667244035621,
"release_spin_rate": 2563.200146698222,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 97.61667244035621,
"release_spin_rate": 2563.200146698222,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 97.6167,
"release_spin_rate": 2563.2001,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 1.4075,
"sample_weight": 1.0,
"run_prevention_factor": 0.8804,
"strikeout_factor": 1.16,
"walk_factor": 0.939,
"homer_factor": 0.8335,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694819",
"espn_id": 5080761,
"player_name": "Jacob Misiorowski",
"team": "MIL",
"role": "pitcher",
"espn_rank": 5,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 5,
"gp_value": 25.0,
"gp_rank": 298,
"gs_value": 25.0,
"gs_rank": 48,
"qs_value": 17.0,
"qs_rank": 5,
"era_value": 1.7284,
"era_rank": 1.0,
"w_value": 14.0,
"w_rank": 5,
"l_value": 5.0,
"l_rank": 130,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 151.0,
"ip_rank": 27,
"h_value": 79.0,
"h_rank": 142,
"er_value": 29.0,
"er_rank": 185,
"hr_value": 13.0,
"hr_rank": 111,
"bb_value": 35.0,
"bb_rank": 113,
"k_value": 222.0,
"k_rank": 1,
"k_per_9_value": 13.231788,
"k_per_9_rank": 1,
"whip_value": 0.7549,
"whip_rank": 1.0,
"war_value": 5.58,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.8804,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.8804,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.939,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.8335,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.16,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 7,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 111,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260902_MIL@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"
}
} |
| 20260902 | 20260902_MIL@CHC | home | David Peterson | David Peterson | True | 4.0 | 3.2 | -1 | 6 | 6 | 0 | 11/7 | 2/4 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.108108108108108,
"WHIP": 1.5162162162162163,
"IP": 123.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.074,
"recent_avg_IP": 5.467,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3242,
"sample_weight": 1.0,
"run_prevention_factor": 1.0276,
"strikeout_factor": 0.9703,
"walk_factor": 1.005,
"homer_factor": 1.026,
"regression_flag": "neutral",
"k_percent": 19.6,
"bb_percent": 9.4,
"woba": 0.334,
"xwoba": 0.338,
"barrel_percent": 6.4,
"hard_hit_percent": 41.2,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 798,
"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": "656849",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 8.0,
"R": 9.0,
"H": 26.0,
"BB": 12.0,
"SO": 24.0,
"HR": 2.0,
"BF": 103.0,
"Pitches": 387.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6,
"R": 1.8,
"H": 5.2,
"BB": 2.4,
"SO": 4.8,
"HR": 0.4,
"BF": 20.6,
"Pitches": 77.4
},
"rates": {
"ERA": 3.2239,
"WHIP": 1.7015,
"ER_per_IP": 0.35821,
"H_per_IP": 1.16418,
"BB_per_IP": 0.53731,
"SO_per_IP": 1.07463,
"HR_per_IP": 0.08955
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 22.0,
"R": 24.0,
"H": 48.0,
"BB": 22.0,
"SO": 44.0,
"HR": 6.0,
"BF": 217.0,
"Pitches": 832.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.4,
"H": 4.8,
"BB": 2.2,
"SO": 4.4,
"HR": 0.6,
"BF": 21.7,
"Pitches": 83.2
},
"rates": {
"ERA": 3.9866,
"WHIP": 1.4094,
"ER_per_IP": 0.44295,
"H_per_IP": 0.96644,
"BB_per_IP": 0.44295,
"SO_per_IP": 0.88591,
"HR_per_IP": 0.12081
}
},
"season": {
"games": 27,
"totals": {
"IP": 123.1,
"ER": 70.0,
"R": 77.0,
"H": 135.0,
"BB": 52.0,
"SO": 109.0,
"HR": 13.0,
"BF": 556.0,
"Pitches": 2038.0
},
"per_game": {
"IP": 4.2,
"ER": 2.5926,
"R": 2.8519,
"H": 5.0,
"BB": 1.9259,
"SO": 4.037,
"HR": 0.4815,
"BF": 20.5926,
"Pitches": 75.4815
},
"rates": {
"ERA": 5.1081,
"WHIP": 1.5162,
"ER_per_IP": 0.56757,
"H_per_IP": 1.09459,
"BB_per_IP": 0.42162,
"SO_per_IP": 0.88378,
"HR_per_IP": 0.10541
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.088,
"predicted_H": 5.046,
"predicted_BB": 2.2,
"predicted_SO": 4.58,
"predicted_HR": 0.523,
"predicted_ERA": 3.962,
"predicted_WHIP": 1.5279
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.088,
"final": 3.7154,
"source": "model_form_blend"
},
"predicted_H": {
"model": 11.0,
"form": 5.046,
"final": 7.5228,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.2,
"final": 2.1168,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.58,
"final": 5.5867,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.523,
"final": 0.7214,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.962,
"final": 3.962,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5279,
"final": 1.5279,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.2,
"ER": 22,
"H": 48,
"BB": 22,
"SO": 44,
"HR": 6,
"ERA": 3.986577181208054,
"WHIP": 1.4093959731543624,
"K9": 7.973154362416108,
"HR9": 1.087248322147651,
"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-28T00:00:00"
},
"recent_form_boost": 0.9600236996782797,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 6.0,
"predicted_H": 11.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 6,
"predicted_H": 11,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656849",
"player_name": "David Peterson",
"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": 2.0,
"predicted_ER": 6.0,
"predicted_H": 11.0,
"predicted_HR": 1.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": 2.0,
"predicted_ER": 6.0,
"predicted_H": 11.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.0,
"delta": -1.3333,
"percent_delta": -0.25,
"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": 4.0,
"delta": -1.3333,
"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": 2.0,
"predicted_ER": 6.0,
"predicted_H": 11.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.0,
"delta": -1.3333,
"percent_delta": -0.25,
"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": 4.0,
"delta": -1.3333,
"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": "CHC",
"games": 139,
"wins": 78,
"losses": 61,
"win_pct": 0.5612,
"runs_scored": 746.0,
"runs_allowed": 610.0,
"run_differential": 136.0,
"run_differential_per_game": 0.9784,
"avg_runs_scored": 5.3669,
"avg_runs_allowed": 4.3885,
"offense_index": 1.1976,
"defense_index": 1.0212,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 8.5,
"avg_runs_allowed": 4.8,
"run_differential": 37.0
},
"available": true,
"quality_score": 0.1371
},
"opponent": {
"team": "MIL",
"games": 139,
"wins": 86,
"losses": 53,
"win_pct": 0.6187,
"runs_scored": 695.0,
"runs_allowed": 527.0,
"run_differential": 168.0,
"run_differential_per_game": 1.2086,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.7914,
"offense_index": 1.1157,
"defense_index": 1.182,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.3,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.2842
},
"edges": {
"quality_edge": -0.1471,
"offense_edge": 0.1976,
"opponent_offense_edge": 0.1157,
"defense_strength": 0.0212,
"opponent_defense_weakness": -0.182,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9901,
"run_prevention": 1.0237,
"strikeout": 0.9863
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656849",
"profile": {
"available": true,
"pitcher_id": "656849",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 503.0,
"k_percent": 19.6,
"bb_percent": 9.4,
"woba": 0.334,
"xwoba": 0.338,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 41.2,
"avg_best_speed": 78.0276,
"avg_hyper_speed": 94.4751,
"whiff_percent": 22.3,
"swing_percent": 46.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4089,
"command_and_miss": -0.3054,
"regression_edge": -0.1143,
"xwoba_edge": -0.7714,
"barrel_edge": 0.2,
"hard_hit_edge": -0.4714,
"whiff_edge": -0.4143,
"bb_edge": -0.0625,
"pitch_design_score": -0.0552
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656849",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 74,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 74,
"pitch_usage": 0.0,
"release_speed": 88.87843836354706,
"release_spin_rate": 2125.964579008083,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 74,
"pitch_usage": 0.0,
"release_speed": 88.87843836354706,
"release_spin_rate": 2125.964579008083,
"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.8784,
"release_spin_rate": 2125.9646,
"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.0552,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3946,
"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.3242,
"sample_weight": 1.0,
"run_prevention_factor": 1.0276,
"strikeout_factor": 0.9703,
"walk_factor": 1.005,
"homer_factor": 1.026,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656849",
"espn_id": 40921,
"player_name": "David Peterson",
"team": "CHC",
"role": "pitcher",
"espn_rank": 798,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 798,
"gp_value": 27.0,
"gp_rank": 247,
"gs_value": 18.0,
"gs_rank": 106,
"qs_value": 3.0,
"qs_rank": 135,
"era_value": 5.1081,
"era_rank": null,
"w_value": 7.0,
"w_rank": 79,
"l_value": 7.0,
"l_rank": 77,
"sv_value": 1.0,
"sv_rank": 133,
"hld_value": 1.0,
"hld_rank": 262,
"ip_value": 123.1,
"ip_rank": 84,
"h_value": 135.0,
"h_rank": 35,
"er_value": 70.0,
"er_rank": 20,
"hr_value": 13.0,
"hr_rank": 111,
"bb_value": 52.0,
"bb_rank": 26,
"k_value": 109.0,
"k_rank": 80,
"k_per_9_value": 7.954054,
"k_per_9_rank": 25,
"whip_value": 1.5162,
"whip_rank": null,
"war_value": -0.64,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0276,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0276,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.005,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.026,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9703,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 11,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"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 +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260902_MIL@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"
}
} |
| 20260902 | 20260902_NYM@TB | away | Justin Hagenman | Justin Hagenman | True | 3.0 | 3.0 | 0 | 1 | 1 | 0 | 3/2 | 2/1 | 3/2 | Last 10 before this game (0 available)No pregame recent-game rows were available. {
"model_context": {
"embedded_season": {
"ERA": null,
"WHIP": null,
"IP": null,
"games_started": null,
"games_pitched": null,
"role_avg_IP": null,
"recent_avg_IP": null,
"last_start_IP": null,
"projection_source": "league_average_stable_fallback"
},
"savant": {
"quality_score": null,
"sample_weight": null,
"run_prevention_factor": null,
"strikeout_factor": null,
"walk_factor": null,
"homer_factor": null,
"regression_flag": null,
"k_percent": null,
"bb_percent": null,
"woba": null,
"xwoba": null,
"barrel_percent": null,
"hard_hit_percent": null,
"whiff_percent": null
},
"espn_rank": {
"rank": null,
"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": {},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663795",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 0,
"reference_playing_time": 0.1,
"windows": {
"last_5": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
},
"last_10": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
},
"season": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 0.1,
"predicted_ER": 0.166,
"predicted_H": 0.324,
"predicted_BB": 0.124,
"predicted_SO": 0.313,
"predicted_HR": 0.049,
"predicted_ERA": 4.4716,
"predicted_WHIP": 1.3428
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7725,
"form_weight": 0.2275,
"form_reliability": 0.0,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
},
"applied_metrics": {
"predicted_IP": {
"model": 0.1,
"form": 0.1,
"final": 0.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 0.166,
"final": 0.8103,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 0.324,
"final": 2.3912,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 0.124,
"final": 1.5732,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 0.313,
"final": 2.3887,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.049,
"final": 0.7836,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4716,
"final": 4.4716,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3428,
"final": 1.3428,
"source": "form_only"
}
}
},
"recent_form_analysis": null,
"recent_form_boost": null,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 0.1,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
}
},
{
"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": 1,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663795",
"player_name": "Justin Hagenman",
"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": 1.0,
"predicted_IP": 0.1,
"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": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 3.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 3.0,
"delta": 2.9,
"percent_delta": 29.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 3.0,
"delta": 2.9,
"percent_delta": 29.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 3.0,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 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": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 3.0,
"delta": 2.9,
"percent_delta": 29.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 3.0,
"delta": 2.9,
"percent_delta": 29.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": "NYM",
"games": 139,
"wins": 62,
"losses": 77,
"win_pct": 0.446,
"runs_scored": 567.0,
"runs_allowed": 623.0,
"run_differential": -56.0,
"run_differential_per_game": -0.4029,
"avg_runs_scored": 4.0791,
"avg_runs_allowed": 4.482,
"offense_index": 0.9088,
"defense_index": 1.0015,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.4,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1303
},
"opponent": {
"team": "TB",
"games": 138,
"wins": 83,
"losses": 55,
"win_pct": 0.6014,
"runs_scored": 624.0,
"runs_allowed": 567.0,
"run_differential": 57.0,
"run_differential_per_game": 0.413,
"avg_runs_scored": 4.5217,
"avg_runs_allowed": 4.1087,
"offense_index": 1.0074,
"defense_index": 1.0925,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 2.8,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.2068
},
"edges": {
"quality_edge": -0.3371,
"offense_edge": -0.0912,
"opponent_offense_edge": 0.0074,
"defense_strength": 0.0015,
"opponent_defense_weakness": -0.0925,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9863,
"run_prevention": 1.0179,
"strikeout": 0.9893
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 14,
"Pitches": 63,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "NO_PRIOR_HISTORY",
"severity": "critical",
"title": "No prior appearances in the source dataset",
"detail": "The model had no row-level pitching history before this game; any precise box-score line should carry a strong uncertainty warning."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260902_NYM@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"
}
} |
| 20260902 | 20260902_NYM@TB | home | Griffin Jax | Griffin Jax | True | 5.0 | 2.2 | -7 | 2 | 3 | 1 | 1/7 | 0/2 | 10/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.338181818181818,
"WHIP": 1.1672727272727272,
"IP": 91.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.593,
"recent_avg_IP": 5.333,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0228,
"sample_weight": 1.0,
"run_prevention_factor": 0.9981,
"strikeout_factor": 1.06,
"walk_factor": 0.975,
"homer_factor": 1.0561,
"regression_flag": "neutral",
"k_percent": 26.4,
"bb_percent": 7.9,
"woba": 0.306,
"xwoba": 0.323,
"barrel_percent": 9.3,
"hard_hit_percent": 39.7,
"whiff_percent": 31.2
},
"espn_rank": {
"rank": 292,
"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": "643377",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 11.0,
"R": 14.0,
"H": 24.0,
"BB": 8.0,
"SO": 32.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 412.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.8,
"H": 4.8,
"BB": 1.6,
"SO": 6.4,
"HR": 0.4,
"BF": 22.6,
"Pitches": 82.4
},
"rates": {
"ERA": 3.7125,
"WHIP": 1.2,
"ER_per_IP": 0.4125,
"H_per_IP": 0.9,
"BB_per_IP": 0.3,
"SO_per_IP": 1.2,
"HR_per_IP": 0.075
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 19.0,
"R": 25.0,
"H": 44.0,
"BB": 12.0,
"SO": 64.0,
"HR": 7.0,
"BF": 215.0,
"Pitches": 784.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9,
"R": 2.5,
"H": 4.4,
"BB": 1.2,
"SO": 6.4,
"HR": 0.7,
"BF": 21.5,
"Pitches": 78.4
},
"rates": {
"ERA": 3.2468,
"WHIP": 1.0633,
"ER_per_IP": 0.36076,
"H_per_IP": 0.83544,
"BB_per_IP": 0.22785,
"SO_per_IP": 1.21519,
"HR_per_IP": 0.13291
}
},
"season": {
"games": 28,
"totals": {
"IP": 91.2,
"ER": 34.0,
"R": 44.0,
"H": 78.0,
"BB": 29.0,
"SO": 100.0,
"HR": 14.0,
"BF": 374.0,
"Pitches": 1386.0
},
"per_game": {
"IP": 3.1,
"ER": 1.2143,
"R": 1.5714,
"H": 2.7857,
"BB": 1.0357,
"SO": 3.5714,
"HR": 0.5,
"BF": 13.3571,
"Pitches": 49.5
},
"rates": {
"ERA": 3.3382,
"WHIP": 1.1673,
"ER_per_IP": 0.37091,
"H_per_IP": 0.85091,
"BB_per_IP": 0.31636,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.15273
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.991,
"predicted_H": 4.367,
"predicted_BB": 1.444,
"predicted_SO": 5.668,
"predicted_HR": 0.574,
"predicted_ERA": 3.6257,
"predicted_WHIP": 1.1755
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.991,
"final": 1.9947,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 4.367,
"final": 2.559,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.444,
"final": 0.8462,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 10.0,
"form": 5.668,
"final": 7.4615,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.574,
"final": 0.3364,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6257,
"final": 3.6257,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1755,
"final": 1.1755,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.2,
"ER": 19,
"H": 44,
"BB": 12,
"SO": 64,
"HR": 7,
"ERA": 3.2468354430379742,
"WHIP": 1.0632911392405062,
"K9": 10.936708860759493,
"HR9": 1.1962025316455696,
"games_pitched": 10,
"quality_starts": 2,
"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-02T00:00:00"
},
"recent_form_boost": 0.8681501332862993,
"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": 0.0,
"predicted_BB": 0.0,
"predicted_SO": 10.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "643377",
"player_name": "Griffin Jax",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 10.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": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 10.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 138,
"wins": 83,
"losses": 55,
"win_pct": 0.6014,
"runs_scored": 624.0,
"runs_allowed": 567.0,
"run_differential": 57.0,
"run_differential_per_game": 0.413,
"avg_runs_scored": 4.5217,
"avg_runs_allowed": 4.1087,
"offense_index": 1.0074,
"defense_index": 1.0925,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 2.8,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.2068
},
"opponent": {
"team": "NYM",
"games": 139,
"wins": 62,
"losses": 77,
"win_pct": 0.446,
"runs_scored": 567.0,
"runs_allowed": 623.0,
"run_differential": -56.0,
"run_differential_per_game": -0.4029,
"avg_runs_scored": 4.0791,
"avg_runs_allowed": 4.482,
"offense_index": 0.9088,
"defense_index": 1.0015,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.4,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1303
},
"edges": {
"quality_edge": 0.3371,
"offense_edge": 0.0074,
"opponent_offense_edge": -0.0912,
"defense_strength": 0.0925,
"opponent_defense_weakness": -0.0015,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0199,
"run_prevention": 0.9593,
"strikeout": 1.0174
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "643377",
"profile": {
"available": true,
"pitcher_id": "643377",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 353.0,
"k_percent": 26.4,
"bb_percent": 7.9,
"woba": 0.306,
"xwoba": 0.323,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 39.7,
"avg_best_speed": 77.614,
"avg_hyper_speed": 94.1671,
"whiff_percent": 31.2,
"swing_percent": 48.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1902,
"command_and_miss": 0.6518,
"regression_edge": -0.4857,
"xwoba_edge": -0.3429,
"barrel_edge": -0.4444,
"hard_hit_edge": -0.2571,
"whiff_edge": 0.8571,
"bb_edge": 0.3125,
"pitch_design_score": 0.1046
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "643377",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 91.73209293497034,
"release_spin_rate": 2569.752574083549,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 91.73209293497034,
"release_spin_rate": 2569.752574083549,
"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.7321,
"release_spin_rate": 2569.7526,
"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.1046,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7468,
"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.0228,
"sample_weight": 1.0,
"run_prevention_factor": 0.9981,
"strikeout_factor": 1.06,
"walk_factor": 0.975,
"homer_factor": 1.0561,
"woba_minus_xwoba": -0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "643377",
"espn_id": 42604,
"player_name": "Griffin Jax",
"team": "TB",
"role": "pitcher",
"espn_rank": 292,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 292,
"gp_value": 29.0,
"gp_rank": 214,
"gs_value": 18.0,
"gs_rank": 106,
"qs_value": 2.0,
"qs_rank": 153,
"era_value": 3.6327,
"era_rank": null,
"w_value": 6.0,
"w_rank": 99,
"l_value": 9.0,
"l_rank": 25,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 2.0,
"hld_rank": 224,
"ip_value": 91.2,
"ip_rank": 132,
"h_value": 81.0,
"h_rank": 133,
"er_value": 37.0,
"er_rank": 155,
"hr_value": 14.0,
"hr_rank": 99,
"bb_value": 30.0,
"bb_rank": 153,
"k_value": 100.0,
"k_rank": 93,
"k_per_9_value": 9.818182,
"k_per_9_rank": 19,
"whip_value": 1.2109,
"whip_rank": null,
"war_value": 0.33,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9981,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9981,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.975,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0561,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.06,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 0,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 10,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 15,
"Pitches": 75,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was +6."
}
],
"provenance": {
"prediction": "output/games/20260902_NYM@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"
}
} |
| 20260902 | 20260902_NYY@LAA | away | Cam Schlittler | Cam Schlittler | True | 6.1 | 8.0 | 5 | 0 | 1 | 1 | 0/2 | 0/0 | 6/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.089613034623218,
"WHIP": 0.9714867617107944,
"IP": 163.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.845,
"recent_avg_IP": 5.4,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6332,
"sample_weight": 1.0,
"run_prevention_factor": 0.9462,
"strikeout_factor": 1.0726,
"walk_factor": 0.947,
"homer_factor": 0.9812,
"regression_flag": "neutral",
"k_percent": 30.9,
"bb_percent": 6.5,
"woba": 0.255,
"xwoba": 0.268,
"barrel_percent": 7.8,
"hard_hit_percent": 39.5,
"whiff_percent": 28.9
},
"espn_rank": {
"rank": 2,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 163.2,
"season_ERA": 2.09,
"season_WHIP": 0.971,
"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": 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": "693645",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 7.0,
"R": 7.0,
"H": 19.0,
"BB": 16.0,
"SO": 36.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 474.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 3.8,
"BB": 3.2,
"SO": 7.2,
"HR": 0.4,
"BF": 22.6,
"Pitches": 94.8
},
"rates": {
"ERA": 2.3333,
"WHIP": 1.2963,
"ER_per_IP": 0.25926,
"H_per_IP": 0.7037,
"BB_per_IP": 0.59259,
"SO_per_IP": 1.33333,
"HR_per_IP": 0.07407
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 14.0,
"R": 14.0,
"H": 38.0,
"BB": 21.0,
"SO": 78.0,
"HR": 4.0,
"BF": 237.0,
"Pitches": 964.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 3.8,
"BB": 2.1,
"SO": 7.8,
"HR": 0.4,
"BF": 23.7,
"Pitches": 96.4
},
"rates": {
"ERA": 2.1117,
"WHIP": 0.9888,
"ER_per_IP": 0.23464,
"H_per_IP": 0.63687,
"BB_per_IP": 0.35196,
"SO_per_IP": 1.30726,
"HR_per_IP": 0.06704
}
},
"season": {
"games": 28,
"totals": {
"IP": 163.2,
"ER": 38.0,
"R": 45.0,
"H": 117.0,
"BB": 42.0,
"SO": 201.0,
"HR": 14.0,
"BF": 651.0,
"Pitches": 2584.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3571,
"R": 1.6071,
"H": 4.1786,
"BB": 1.5,
"SO": 7.1786,
"HR": 0.5,
"BF": 23.25,
"Pitches": 92.2857
},
"rates": {
"ERA": 2.0896,
"WHIP": 0.9715,
"ER_per_IP": 0.23218,
"H_per_IP": 0.71487,
"BB_per_IP": 0.25662,
"SO_per_IP": 1.22811,
"HR_per_IP": 0.08554
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.642,
"predicted_H": 4.21,
"predicted_BB": 2.495,
"predicted_SO": 7.235,
"predicted_HR": 0.492,
"predicted_ERA": 2.5501,
"predicted_WHIP": 1.1569
}
},
"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": 5.2,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.642,
"final": 0.9622,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 4.21,
"final": 2.467,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.495,
"final": 1.462,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 7.235,
"final": 5.0677,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.492,
"final": 0.2883,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5501,
"final": 2.5501,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1569,
"final": 1.1569,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.2,
"ER": 14,
"H": 38,
"BB": 21,
"SO": 78,
"HR": 4,
"ERA": 2.111731843575419,
"WHIP": 0.9888268156424581,
"K9": 11.76536312849162,
"HR9": 0.6033519553072626,
"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-28T00:00:00"
},
"recent_form_boost": 0.7385893702568106,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 0,
"predicted_H": 0,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693645",
"player_name": "Cam Schlittler",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"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": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 0.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"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": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_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": "NYY",
"games": 139,
"wins": 79,
"losses": 60,
"win_pct": 0.5683,
"runs_scored": 630.0,
"runs_allowed": 518.0,
"run_differential": 112.0,
"run_differential_per_game": 0.8058,
"avg_runs_scored": 4.5324,
"avg_runs_allowed": 3.7266,
"offense_index": 1.0091,
"defense_index": 1.2052,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 4.2,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.1917
},
"opponent": {
"team": "LAA",
"games": 139,
"wins": 53,
"losses": 86,
"win_pct": 0.3813,
"runs_scored": 568.0,
"runs_allowed": 645.0,
"run_differential": -77.0,
"run_differential_per_game": -0.554,
"avg_runs_scored": 4.0863,
"avg_runs_allowed": 4.6403,
"offense_index": 0.9098,
"defense_index": 0.9679,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.3,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.2737
},
"edges": {
"quality_edge": 0.4654,
"offense_edge": 0.0091,
"opponent_offense_edge": -0.0902,
"defense_strength": 0.2052,
"opponent_defense_weakness": 0.0321,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0284,
"run_prevention": 0.9418,
"strikeout": 1.0212
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693645",
"profile": {
"available": true,
"pitcher_id": "693645",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 571.0,
"k_percent": 30.9,
"bb_percent": 6.5,
"woba": 0.255,
"xwoba": 0.268,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 39.5,
"avg_best_speed": 77.3054,
"avg_hyper_speed": 93.8129,
"whiff_percent": 28.9,
"swing_percent": 52.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7411,
"command_and_miss": 0.8961,
"regression_edge": -0.3714,
"xwoba_edge": 1.2286,
"barrel_edge": -0.1111,
"hard_hit_edge": -0.2286,
"whiff_edge": 0.5286,
"bb_edge": 0.6625,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693645",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 95.86598593414776,
"release_spin_rate": 2500.592351861234,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 95.86598593414776,
"release_spin_rate": 2500.592351861234,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 95.866,
"release_spin_rate": 2500.5924,
"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.6332,
"sample_weight": 1.0,
"run_prevention_factor": 0.9462,
"strikeout_factor": 1.0726,
"walk_factor": 0.947,
"homer_factor": 0.9812,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693645",
"espn_id": 5134581,
"player_name": "Cam Schlittler",
"team": "NYY",
"role": "pitcher",
"espn_rank": 2,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 2,
"gp_value": 28.0,
"gp_rank": 226,
"gs_value": 28.0,
"gs_rank": 4,
"qs_value": 16.0,
"qs_rank": 10,
"era_value": 2.0896,
"era_rank": 3.0,
"w_value": 12.0,
"w_rank": 15,
"l_value": 6.0,
"l_rank": 105,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 163.2,
"ip_rank": 6,
"h_value": 117.0,
"h_rank": 74,
"er_value": 38.0,
"er_rank": 151,
"hr_value": 14.0,
"hr_rank": 99,
"bb_value": 42.0,
"bb_rank": 65,
"k_value": 201.0,
"k_rank": 6,
"k_per_9_value": 11.052954,
"k_per_9_rank": 27,
"whip_value": 0.9714,
"whip_rank": 4.0,
"war_value": 5.92,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9462,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9462,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 0.947,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9812,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0726,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 0,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 82,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260902_NYY@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"
}
} |
| 20260902 | 20260902_NYY@LAA | home | Reid Detmers | Reid Detmers | True | 6.0 | 7.0 | 3 | 2 | 1 | -1 | 6/6 | 1/0 | 6/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.541935483870968,
"WHIP": 1.070967741935484,
"IP": 155.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.741,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3959,
"sample_weight": 1.0,
"run_prevention_factor": 0.9663,
"strikeout_factor": 1.056,
"walk_factor": 0.957,
"homer_factor": 0.9845,
"regression_flag": "neutral",
"k_percent": 27.8,
"bb_percent": 7.0,
"woba": 0.275,
"xwoba": 0.284,
"barrel_percent": 7.7,
"hard_hit_percent": 38.0,
"whiff_percent": 29.1
},
"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": 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": "672282",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 5.0,
"R": 5.0,
"H": 23.0,
"BB": 6.0,
"SO": 29.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 436.0
},
"per_game": {
"IP": 6.0,
"ER": 1.0,
"R": 1.0,
"H": 4.6,
"BB": 1.2,
"SO": 5.8,
"HR": 0.4,
"BF": 22.6,
"Pitches": 87.2
},
"rates": {
"ERA": 1.5,
"WHIP": 0.9667,
"ER_per_IP": 0.16667,
"H_per_IP": 0.76667,
"BB_per_IP": 0.2,
"SO_per_IP": 0.96667,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 18.0,
"R": 18.0,
"H": 47.0,
"BB": 13.0,
"SO": 62.0,
"HR": 9.0,
"BF": 220.0,
"Pitches": 877.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 4.7,
"BB": 1.3,
"SO": 6.2,
"HR": 0.9,
"BF": 22.0,
"Pitches": 87.7
},
"rates": {
"ERA": 2.9277,
"WHIP": 1.0843,
"ER_per_IP": 0.3253,
"H_per_IP": 0.8494,
"BB_per_IP": 0.23494,
"SO_per_IP": 1.12048,
"HR_per_IP": 0.16265
}
},
"season": {
"games": 27,
"totals": {
"IP": 155.0,
"ER": 61.0,
"R": 64.0,
"H": 122.0,
"BB": 44.0,
"SO": 174.0,
"HR": 17.0,
"BF": 626.0,
"Pitches": 2485.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2593,
"R": 2.3704,
"H": 4.5185,
"BB": 1.6296,
"SO": 6.4444,
"HR": 0.6296,
"BF": 23.1852,
"Pitches": 92.037
},
"rates": {
"ERA": 3.5419,
"WHIP": 1.071,
"ER_per_IP": 0.39355,
"H_per_IP": 0.7871,
"BB_per_IP": 0.28387,
"SO_per_IP": 1.12258,
"HR_per_IP": 0.10968
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.773,
"predicted_H": 4.832,
"predicted_BB": 1.468,
"predicted_SO": 6.046,
"predicted_HR": 0.671,
"predicted_ERA": 2.7304,
"predicted_WHIP": 1.0778
}
},
"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": 2.0,
"form": 1.773,
"final": 1.8674,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.832,
"final": 5.3179,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.468,
"final": 1.2733,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.046,
"final": 4.7789,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.671,
"final": 0.3919,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7304,
"final": 2.7304,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0778,
"final": 1.0778,
"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": 18,
"H": 47,
"BB": 13,
"SO": 62,
"HR": 9,
"ERA": 2.9277108433734944,
"WHIP": 1.0843373493975905,
"K9": 10.084337349397591,
"HR9": 1.4638554216867472,
"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-28T00:00:00"
},
"recent_form_boost": 0.8327747710779725,
"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": 3.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": 2,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "672282",
"player_name": "Reid Detmers",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.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": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.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": 3.0,
"after": 6.0,
"delta": 3.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": "LAA",
"games": 139,
"wins": 53,
"losses": 86,
"win_pct": 0.3813,
"runs_scored": 568.0,
"runs_allowed": 645.0,
"run_differential": -77.0,
"run_differential_per_game": -0.554,
"avg_runs_scored": 4.0863,
"avg_runs_allowed": 4.6403,
"offense_index": 0.9098,
"defense_index": 0.9679,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.3,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.2737
},
"opponent": {
"team": "NYY",
"games": 139,
"wins": 79,
"losses": 60,
"win_pct": 0.5683,
"runs_scored": 630.0,
"runs_allowed": 518.0,
"run_differential": 112.0,
"run_differential_per_game": 0.8058,
"avg_runs_scored": 4.5324,
"avg_runs_allowed": 3.7266,
"offense_index": 1.0091,
"defense_index": 1.2052,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 4.2,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.1917
},
"edges": {
"quality_edge": -0.4654,
"offense_edge": -0.0902,
"opponent_offense_edge": 0.0091,
"defense_strength": -0.0321,
"opponent_defense_weakness": -0.2052,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9801,
"run_prevention": 1.0279,
"strikeout": 0.9853
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "672282",
"profile": {
"available": true,
"pitcher_id": "672282",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 576.0,
"k_percent": 27.8,
"bb_percent": 7.0,
"woba": 0.275,
"xwoba": 0.284,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 38.0,
"avg_best_speed": 80.1426,
"avg_hyper_speed": 94.2577,
"whiff_percent": 29.1,
"swing_percent": 49.2
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.451,
"command_and_miss": 0.6818,
"regression_edge": -0.2571,
"xwoba_edge": 0.7714,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.0143,
"whiff_edge": 0.5571,
"bb_edge": 0.5375,
"pitch_design_score": -0.1022
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "672282",
"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.03966004092277,
"release_spin_rate": 2234.6453988776,
"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.03966004092277,
"release_spin_rate": 2234.6453988776,
"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.0397,
"release_spin_rate": 2234.6454,
"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.1022,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7301,
"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.3959,
"sample_weight": 1.0,
"run_prevention_factor": 0.9663,
"strikeout_factor": 1.056,
"walk_factor": 0.957,
"homer_factor": 0.9845,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "672282",
"espn_id": 4326697,
"player_name": "Reid Detmers",
"team": "LAA",
"role": "pitcher",
"espn_rank": 32,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 32,
"gp_value": 27.0,
"gp_rank": 247,
"gs_value": 27.0,
"gs_rank": 18,
"qs_value": 12.0,
"qs_rank": 30,
"era_value": 3.5419,
"era_rank": 25.0,
"w_value": 4.0,
"w_rank": 178,
"l_value": 8.0,
"l_rank": 44,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 155.0,
"ip_rank": 17,
"h_value": 122.0,
"h_rank": 65,
"er_value": 61.0,
"er_rank": 55,
"hr_value": 17.0,
"hr_rank": 59,
"bb_value": 44.0,
"bb_rank": 57,
"k_value": 174.0,
"k_rank": 11,
"k_per_9_value": 10.103227,
"k_per_9_rank": 17,
"whip_value": 1.0709,
"whip_rank": 10.0,
"war_value": 3.05,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9663,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9663,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.957,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9845,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.056,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"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 -1."
}
],
"provenance": {
"prediction": "output/games/20260902_NYY@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"
}
} |
| 20260902 | 20260902_OAK@TEX | away | Jacob Lopez | Jacob Lopez | True | 5.0 | 6.0 | 3 | 1 | 2 | 1 | 4/6 | 3/2 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.818181818181818,
"WHIP": 1.4646464646464648,
"IP": 99.0,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 4.754,
"recent_avg_IP": 5.8,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3635,
"sample_weight": 1.0,
"run_prevention_factor": 0.9691,
"strikeout_factor": 0.9989,
"walk_factor": 1.043,
"homer_factor": 0.9009,
"regression_flag": "positive_pitcher_regression",
"k_percent": 21.8,
"bb_percent": 11.3,
"woba": 0.333,
"xwoba": 0.286,
"barrel_percent": 5.5,
"hard_hit_percent": 29.9,
"whiff_percent": 25.1
},
"espn_rank": {
"rank": 155,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682052",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 8.0,
"R": 9.0,
"H": 20.0,
"BB": 8.0,
"SO": 35.0,
"HR": 3.0,
"BF": 115.0,
"Pitches": 464.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.8,
"H": 4.0,
"BB": 1.6,
"SO": 7.0,
"HR": 0.6,
"BF": 23.0,
"Pitches": 92.8
},
"rates": {
"ERA": 2.4828,
"WHIP": 0.9655,
"ER_per_IP": 0.27586,
"H_per_IP": 0.68966,
"BB_per_IP": 0.27586,
"SO_per_IP": 1.2069,
"HR_per_IP": 0.10345
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 15.0,
"R": 17.0,
"H": 35.0,
"BB": 17.0,
"SO": 58.0,
"HR": 4.0,
"BF": 198.0,
"Pitches": 811.0
},
"per_game": {
"IP": 4.2,
"ER": 1.5,
"R": 1.7,
"H": 3.5,
"BB": 1.7,
"SO": 5.8,
"HR": 0.4,
"BF": 19.8,
"Pitches": 81.1
},
"rates": {
"ERA": 2.7931,
"WHIP": 1.0759,
"ER_per_IP": 0.31034,
"H_per_IP": 0.72414,
"BB_per_IP": 0.35172,
"SO_per_IP": 1.2,
"HR_per_IP": 0.08276
}
},
"season": {
"games": 22,
"totals": {
"IP": 99.0,
"ER": 53.0,
"R": 56.0,
"H": 95.0,
"BB": 50.0,
"SO": 96.0,
"HR": 15.0,
"BF": 441.0,
"Pitches": 1789.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4091,
"R": 2.5455,
"H": 4.3182,
"BB": 2.2727,
"SO": 4.3636,
"HR": 0.6818,
"BF": 20.0455,
"Pitches": 81.3182
},
"rates": {
"ERA": 4.8182,
"WHIP": 1.4646,
"ER_per_IP": 0.53535,
"H_per_IP": 0.9596,
"BB_per_IP": 0.50505,
"SO_per_IP": 0.9697,
"HR_per_IP": 0.15152
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.902,
"predicted_H": 4.104,
"predicted_BB": 1.817,
"predicted_SO": 5.76,
"predicted_HR": 0.584,
"predicted_ERA": 3.3202,
"predicted_WHIP": 1.1482
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.902,
"final": 1.5157,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.104,
"final": 4.0595,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.817,
"final": 2.3236,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.76,
"final": 5.4345,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.584,
"final": 0.7622,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3202,
"final": 3.3202,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1482,
"final": 1.1482,
"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": 15,
"H": 35,
"BB": 17,
"SO": 58,
"HR": 4,
"ERA": 2.7931034482758625,
"WHIP": 1.0758620689655174,
"K9": 10.8,
"HR9": 0.7448275862068966,
"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-28T00:00:00"
},
"recent_form_boost": 0.8174195571186871,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682052",
"player_name": "Jacob Lopez",
"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": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 139,
"wins": 53,
"losses": 86,
"win_pct": 0.3813,
"runs_scored": 602.0,
"runs_allowed": 803.0,
"run_differential": -201.0,
"run_differential_per_game": -1.446,
"avg_runs_scored": 4.3309,
"avg_runs_allowed": 5.777,
"offense_index": 0.9639,
"defense_index": 0.7778,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 5.7,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.3129
},
"opponent": {
"team": "TEX",
"games": 139,
"wins": 69,
"losses": 70,
"win_pct": 0.4964,
"runs_scored": 570.0,
"runs_allowed": 611.0,
"run_differential": -41.0,
"run_differential_per_game": -0.295,
"avg_runs_scored": 4.1007,
"avg_runs_allowed": 4.3957,
"offense_index": 0.9127,
"defense_index": 1.0222,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 5.0,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0392
},
"edges": {
"quality_edge": -0.2737,
"offense_edge": -0.0361,
"opponent_offense_edge": -0.0873,
"defense_strength": -0.2222,
"opponent_defense_weakness": -0.0222,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9859,
"run_prevention": 1.0219,
"strikeout": 0.9988
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682052",
"profile": {
"available": true,
"pitcher_id": "682052",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 393.0,
"k_percent": 21.8,
"bb_percent": 11.3,
"woba": 0.333,
"xwoba": 0.286,
"sweet_spot_percent": 32.0,
"barrel_batted_rate": 5.5,
"hard_hit_percent": 29.9,
"avg_best_speed": 71.2994,
"avg_hyper_speed": 92.44,
"whiff_percent": 25.1,
"swing_percent": 45.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5046,
"command_and_miss": -0.1189,
"regression_edge": 1.3429,
"xwoba_edge": 0.7143,
"barrel_edge": 0.4,
"hard_hit_edge": 1.1429,
"whiff_edge": -0.0143,
"bb_edge": -0.5375,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682052",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 84.33938318705401,
"release_spin_rate": 2262.340834097883,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 84.33938318705401,
"release_spin_rate": 2262.340834097883,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 84.3394,
"release_spin_rate": 2262.3408,
"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.3635,
"sample_weight": 1.0,
"run_prevention_factor": 0.9691,
"strikeout_factor": 0.9989,
"walk_factor": 1.043,
"homer_factor": 0.9009,
"woba_minus_xwoba": 0.047,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "682052",
"espn_id": 42239,
"player_name": "Jacob Lopez",
"team": "ATH",
"role": "pitcher",
"espn_rank": 155,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 155,
"gp_value": 22.0,
"gp_rank": 349,
"gs_value": 19.0,
"gs_rank": 99,
"qs_value": 3.0,
"qs_rank": 135,
"era_value": 4.8181,
"era_rank": null,
"w_value": 5.0,
"w_rank": 134,
"l_value": 4.0,
"l_rank": 170,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 1.0,
"hld_rank": 262,
"ip_value": 99.0,
"ip_rank": 115,
"h_value": 95.0,
"h_rank": 114,
"er_value": 53.0,
"er_rank": 79,
"hr_value": 15.0,
"hr_rank": 79,
"bb_value": 50.0,
"bb_rank": 29,
"k_value": 96.0,
"k_rank": 100,
"k_per_9_value": 8.727273,
"k_per_9_rank": 23,
"whip_value": 1.4646,
"whip_rank": null,
"war_value": 1.09,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9691,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9691,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.043,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9009,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9989,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"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: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260902_OAK@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_OAK@TEX | home | Cody Bradford | Cody Bradford | True | 5.0 | 4.0 | -3 | 3 | 5 | 2 | 3/7 | 1/1 | 8/3 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 3.4177215189873418,
"WHIP": 1.518987341772152,
"IP": 26.1,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 5.267,
"recent_avg_IP": 5.267,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2505,
"sample_weight": 0.45,
"run_prevention_factor": 1.0213,
"strikeout_factor": 0.9571,
"walk_factor": 0.9654,
"homer_factor": 1.035,
"regression_flag": "neutral",
"k_percent": 11.4,
"bb_percent": 5.3,
"woba": 0.351,
"xwoba": 0.342,
"barrel_percent": 9.7,
"hard_hit_percent": 39.4,
"whiff_percent": 19.0
},
"espn_rank": {
"rank": 236,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "674003",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 10.0,
"R": 10.0,
"H": 34.0,
"BB": 6.0,
"SO": 13.0,
"HR": 1.0,
"BF": 114.0,
"Pitches": 406.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0,
"H": 6.8,
"BB": 1.2,
"SO": 2.6,
"HR": 0.2,
"BF": 22.8,
"Pitches": 81.2
},
"rates": {
"ERA": 3.4177,
"WHIP": 1.519,
"ER_per_IP": 0.37975,
"H_per_IP": 1.29114,
"BB_per_IP": 0.22785,
"SO_per_IP": 0.49367,
"HR_per_IP": 0.03797
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 10.0,
"R": 10.0,
"H": 34.0,
"BB": 6.0,
"SO": 13.0,
"HR": 1.0,
"BF": 114.0,
"Pitches": 406.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0,
"H": 6.8,
"BB": 1.2,
"SO": 2.6,
"HR": 0.2,
"BF": 22.8,
"Pitches": 81.2
},
"rates": {
"ERA": 3.4177,
"WHIP": 1.519,
"ER_per_IP": 0.37975,
"H_per_IP": 1.29114,
"BB_per_IP": 0.22785,
"SO_per_IP": 0.49367,
"HR_per_IP": 0.03797
}
},
"season": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 10.0,
"R": 10.0,
"H": 34.0,
"BB": 6.0,
"SO": 13.0,
"HR": 1.0,
"BF": 114.0,
"Pitches": 406.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0,
"H": 6.8,
"BB": 1.2,
"SO": 2.6,
"HR": 0.2,
"BF": 22.8,
"Pitches": 81.2
},
"rates": {
"ERA": 3.4177,
"WHIP": 1.519,
"ER_per_IP": 0.37975,
"H_per_IP": 1.29114,
"BB_per_IP": 0.22785,
"SO_per_IP": 0.49367,
"HR_per_IP": 0.03797
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.338,
"predicted_H": 6.036,
"predicted_BB": 1.596,
"predicted_SO": 3.824,
"predicted_HR": 0.492,
"predicted_ERA": 3.9446,
"predicted_WHIP": 1.4309
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5613,
"form_weight": 0.4388,
"form_reliability": 0.5,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.338,
"final": 2.7095,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 6.036,
"final": 3.7708,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.596,
"final": 1.2615,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 3.824,
"final": 6.1678,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.492,
"final": 1.3384,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9446,
"final": 3.9446,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4309,
"final": 1.4309,
"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": 26.1,
"ER": 10,
"H": 34,
"BB": 6,
"SO": 13,
"HR": 1,
"ERA": 3.4177215189873418,
"WHIP": 1.518987341772152,
"K9": 4.443037974683545,
"HR9": 0.34177215189873417,
"games_pitched": 5,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-08-28T00:00:00"
},
"recent_form_boost": 0.912947476433466,
"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": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "674003",
"player_name": "Cody Bradford",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 2.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": "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": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 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.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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"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": 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": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"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": "TEX",
"games": 139,
"wins": 69,
"losses": 70,
"win_pct": 0.4964,
"runs_scored": 570.0,
"runs_allowed": 611.0,
"run_differential": -41.0,
"run_differential_per_game": -0.295,
"avg_runs_scored": 4.1007,
"avg_runs_allowed": 4.3957,
"offense_index": 0.9127,
"defense_index": 1.0222,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 5.0,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0392
},
"opponent": {
"team": "OAK",
"games": 139,
"wins": 53,
"losses": 86,
"win_pct": 0.3813,
"runs_scored": 602.0,
"runs_allowed": 803.0,
"run_differential": -201.0,
"run_differential_per_game": -1.446,
"avg_runs_scored": 4.3309,
"avg_runs_allowed": 5.777,
"offense_index": 0.9639,
"defense_index": 0.7778,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 5.7,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.3129
},
"edges": {
"quality_edge": 0.2737,
"offense_edge": -0.0873,
"opponent_offense_edge": -0.0361,
"defense_strength": 0.0222,
"opponent_defense_weakness": 0.2222,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0131,
"run_prevention": 0.9783,
"strikeout": 1.0111
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "674003",
"profile": {
"available": true,
"pitcher_id": "674003",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 63.0,
"k_percent": 11.4,
"bb_percent": 5.3,
"woba": 0.351,
"xwoba": 0.342,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 39.4,
"avg_best_speed": 79.7976,
"avg_hyper_speed": 94.8247,
"whiff_percent": 19.0,
"swing_percent": 49.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.632,
"command_and_miss": -0.7925,
"regression_edge": 0.2571,
"xwoba_edge": -0.8857,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.2143,
"whiff_edge": -0.8857,
"bb_edge": 0.9625,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "674003",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 75,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 84.26618224573781,
"release_spin_rate": 1896.6627748383305,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 84.26618224573781,
"release_spin_rate": 1896.6627748383305,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 84.2662,
"release_spin_rate": 1896.6628,
"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.2505,
"sample_weight": 0.45,
"run_prevention_factor": 1.0213,
"strikeout_factor": 0.9571,
"walk_factor": 0.9654,
"homer_factor": 1.035,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "674003",
"espn_id": 4142539,
"player_name": "Cody Bradford",
"team": "TEX",
"role": "pitcher",
"espn_rank": 236,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 236,
"gp_value": 5.0,
"gp_rank": 610,
"gs_value": 5.0,
"gs_rank": 214,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 3.4177,
"era_rank": null,
"w_value": 0.0,
"w_rank": 519,
"l_value": 3.0,
"l_rank": 226,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 26.1,
"ip_rank": 450,
"h_value": 34.0,
"h_rank": 362,
"er_value": 10.0,
"er_rank": 518,
"hr_value": 1.0,
"hr_rank": 597,
"bb_value": 6.0,
"bb_rank": 567,
"k_value": 13.0,
"k_rank": 544,
"k_per_9_value": 4.443038,
"k_per_9_rank": 32,
"whip_value": 1.5189,
"whip_rank": null,
"war_value": 0.6,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0096,
"adjusted": 2
},
"predicted_H": {
"original": 7.0,
"factor": 1.0096,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9844,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0157,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9807,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 5 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260902_OAK@TEX.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_PHI@ARI | away | Andrew Painter | Andrew Painter | True | 5.0 | 7.0 | 6 | 4 | 0 | -4 | 4/2 | 2/0 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.9491525423728815,
"WHIP": 1.4440677966101696,
"IP": 98.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 4.907,
"recent_avg_IP": 5.467,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.125,
"sample_weight": 1.0,
"run_prevention_factor": 1.0106,
"strikeout_factor": 0.9829,
"walk_factor": 0.989,
"homer_factor": 1.0211,
"regression_flag": "neutral",
"k_percent": 19.7,
"bb_percent": 8.6,
"woba": 0.348,
"xwoba": 0.329,
"barrel_percent": 8.2,
"hard_hit_percent": 36.1,
"whiff_percent": 24.4
},
"espn_rank": {
"rank": 288,
"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": "691725",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 12.0,
"R": 12.0,
"H": 18.0,
"BB": 10.0,
"SO": 26.0,
"HR": 2.0,
"BF": 110.0,
"Pitches": 447.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.4,
"H": 3.6,
"BB": 2.0,
"SO": 5.2,
"HR": 0.4,
"BF": 22.0,
"Pitches": 89.4
},
"rates": {
"ERA": 3.9512,
"WHIP": 1.0244,
"ER_per_IP": 0.43902,
"H_per_IP": 0.65854,
"BB_per_IP": 0.36585,
"SO_per_IP": 0.95122,
"HR_per_IP": 0.07317
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 35.0,
"R": 35.0,
"H": 48.0,
"BB": 21.0,
"SO": 45.0,
"HR": 10.0,
"BF": 214.0,
"Pitches": 836.0
},
"per_game": {
"IP": 4.2,
"ER": 3.5,
"R": 3.5,
"H": 4.8,
"BB": 2.1,
"SO": 4.5,
"HR": 1.0,
"BF": 21.4,
"Pitches": 83.6
},
"rates": {
"ERA": 6.5172,
"WHIP": 1.4276,
"ER_per_IP": 0.72414,
"H_per_IP": 0.9931,
"BB_per_IP": 0.43448,
"SO_per_IP": 0.93103,
"HR_per_IP": 0.2069
}
},
"season": {
"games": 20,
"totals": {
"IP": 98.1,
"ER": 65.0,
"R": 65.0,
"H": 105.0,
"BB": 37.0,
"SO": 85.0,
"HR": 17.0,
"BF": 432.0,
"Pitches": 1670.0
},
"per_game": {
"IP": 5.0,
"ER": 3.25,
"R": 3.25,
"H": 5.25,
"BB": 1.85,
"SO": 4.25,
"HR": 0.85,
"BF": 21.6,
"Pitches": 83.5
},
"rates": {
"ERA": 5.9492,
"WHIP": 1.4441,
"ER_per_IP": 0.66102,
"H_per_IP": 1.0678,
"BB_per_IP": 0.37627,
"SO_per_IP": 0.86441,
"HR_per_IP": 0.17288
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.883,
"predicted_H": 4.484,
"predicted_BB": 1.975,
"predicted_SO": 4.734,
"predicted_HR": 0.719,
"predicted_ERA": 5.0934,
"predicted_WHIP": 1.2681
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.883,
"final": 3.3683,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.484,
"final": 3.4047,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.975,
"final": 1.9859,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.734,
"final": 5.7186,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.719,
"final": 0.8411,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0934,
"final": 5.0934,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2681,
"final": 1.2681,
"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": 35,
"H": 48,
"BB": 21,
"SO": 45,
"HR": 10,
"ERA": 6.517241379310345,
"WHIP": 1.427586206896552,
"K9": 8.379310344827587,
"HR9": 1.8620689655172415,
"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-28T00:00:00"
},
"recent_form_boost": 1.2451781778083422,
"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": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "691725",
"player_name": "Andrew Painter",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 1.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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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.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": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.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": "PHI",
"games": 139,
"wins": 79,
"losses": 60,
"win_pct": 0.5683,
"runs_scored": 631.0,
"runs_allowed": 594.0,
"run_differential": 37.0,
"run_differential_per_game": 0.2662,
"avg_runs_scored": 4.5396,
"avg_runs_allowed": 4.2734,
"offense_index": 1.0114,
"defense_index": 1.0504,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.9,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1957
},
"opponent": {
"team": "ARI",
"games": 140,
"wins": 73,
"losses": 67,
"win_pct": 0.5214,
"runs_scored": 627.0,
"runs_allowed": 629.0,
"run_differential": -2.0,
"run_differential_per_game": -0.0143,
"avg_runs_scored": 4.4786,
"avg_runs_allowed": 4.4929,
"offense_index": 0.9978,
"defense_index": 0.999,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.3,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.0164
},
"edges": {
"quality_edge": 0.1793,
"offense_edge": 0.0114,
"opponent_offense_edge": -0.0022,
"defense_strength": 0.0504,
"opponent_defense_weakness": 0.001,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0088,
"run_prevention": 0.9856,
"strikeout": 1.0056
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "691725",
"profile": {
"available": true,
"pitcher_id": "691725",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 380.0,
"k_percent": 19.7,
"bb_percent": 8.6,
"woba": 0.348,
"xwoba": 0.329,
"sweet_spot_percent": 29.2,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 36.1,
"avg_best_speed": 75.4302,
"avg_hyper_speed": 93.6921,
"whiff_percent": 24.4,
"swing_percent": 48.7
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2514,
"command_and_miss": -0.1539,
"regression_edge": 0.5429,
"xwoba_edge": -0.5143,
"barrel_edge": -0.2,
"hard_hit_edge": 0.2571,
"whiff_edge": -0.1143,
"bb_edge": 0.1375,
"pitch_design_score": 0.0189
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "691725",
"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.20186596189707,
"release_spin_rate": 2299.9389803815907,
"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.20186596189707,
"release_spin_rate": 2299.9389803815907,
"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.2019,
"release_spin_rate": 2299.939,
"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.0189,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1347,
"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.125,
"sample_weight": 1.0,
"run_prevention_factor": 1.0106,
"strikeout_factor": 0.9829,
"walk_factor": 0.989,
"homer_factor": 1.0211,
"woba_minus_xwoba": 0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "691725",
"espn_id": 4872683,
"player_name": "Andrew Painter",
"team": "PHI",
"role": "pitcher",
"espn_rank": 288,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 288,
"gp_value": 20.0,
"gp_rank": 379,
"gs_value": 18.0,
"gs_rank": 106,
"qs_value": 5.0,
"qs_rank": 107,
"era_value": 5.9491,
"era_rank": null,
"w_value": 3.0,
"w_rank": 236,
"l_value": 8.0,
"l_rank": 44,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 98.1,
"ip_rank": 117,
"h_value": 105.0,
"h_rank": 100,
"er_value": 65.0,
"er_rank": 41,
"hr_value": 17.0,
"hr_rank": 59,
"bb_value": 37.0,
"bb_rank": 94,
"k_value": 85.0,
"k_rank": 133,
"k_per_9_value": 7.7796607,
"k_per_9_rank": 30,
"whip_value": 1.444,
"whip_rank": null,
"war_value": 0.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0106,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0106,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.989,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0211,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9829,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 90,
"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": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260902_PHI@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_PHI@ARI | home | Taylor Clarke | Taylor Clarke | True | 6.0 | 1.2 | -13 | 2 | 0 | -2 | 1/0 | 2/1 | 8/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.598930481283422,
"WHIP": 0.8823529411764706,
"IP": 62.1,
"games_started": null,
"games_pitched": 62,
"role_avg_IP": 1.005,
"recent_avg_IP": 1.067,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1135,
"sample_weight": 0.832,
"run_prevention_factor": 1.0097,
"strikeout_factor": 0.952,
"walk_factor": 0.9243,
"homer_factor": 1.0107,
"regression_flag": "negative_pitcher_regression",
"k_percent": 15.5,
"bb_percent": 4.6,
"woba": 0.249,
"xwoba": 0.32,
"barrel_percent": 9.1,
"hard_hit_percent": 33.2,
"whiff_percent": 21.5
},
"espn_rank": {
"rank": 135,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 62.1,
"season_ERA": 2.599,
"season_WHIP": 0.882,
"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": 12.514,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7145,
"prior_weight": 0.2855
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "664199",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 62,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0,
"H": 4.0,
"BB": 1.0,
"SO": 5.0,
"HR": 2.0,
"BF": 20.0,
"Pitches": 76.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 0.8,
"BB": 0.2,
"SO": 1.0,
"HR": 0.4,
"BF": 4.0,
"Pitches": 15.2
},
"rates": {
"ERA": 5.0625,
"WHIP": 0.9375,
"ER_per_IP": 0.5625,
"H_per_IP": 0.75,
"BB_per_IP": 0.1875,
"SO_per_IP": 0.9375,
"HR_per_IP": 0.375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.0,
"ER": 5.0,
"R": 5.0,
"H": 8.0,
"BB": 2.0,
"SO": 9.0,
"HR": 2.0,
"BF": 38.0,
"Pitches": 143.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.5,
"H": 0.8,
"BB": 0.2,
"SO": 0.9,
"HR": 0.2,
"BF": 3.8,
"Pitches": 14.3
},
"rates": {
"ERA": 4.5,
"WHIP": 1.0,
"ER_per_IP": 0.5,
"H_per_IP": 0.8,
"BB_per_IP": 0.2,
"SO_per_IP": 0.9,
"HR_per_IP": 0.2
}
},
"season": {
"games": 62,
"totals": {
"IP": 62.1,
"ER": 18.0,
"R": 21.0,
"H": 44.0,
"BB": 11.0,
"SO": 37.0,
"HR": 6.0,
"BF": 238.0,
"Pitches": 883.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2903,
"R": 0.3387,
"H": 0.7097,
"BB": 0.1774,
"SO": 0.5968,
"HR": 0.0968,
"BF": 3.8387,
"Pitches": 14.2419
},
"rates": {
"ERA": 2.5989,
"WHIP": 0.8824,
"ER_per_IP": 0.28877,
"H_per_IP": 0.70588,
"BB_per_IP": 0.17647,
"SO_per_IP": 0.59358,
"HR_per_IP": 0.09626
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 1.187,
"predicted_H": 1.99,
"predicted_BB": 0.586,
"predicted_SO": 2.136,
"predicted_HR": 0.549,
"predicted_ERA": 4.4011,
"predicted_WHIP": 1.061
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4706,
"form_weight": 0.5294,
"form_reliability": 0.7145,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.514,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7145,
"prior_weight": 0.2855
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 2.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.187,
"final": 1.5696,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 1.99,
"final": 1.5241,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 0.586,
"final": 1.2515,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 2.136,
"final": 4.8957,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.549,
"final": 0.7613,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4011,
"final": 4.4011,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.061,
"final": 1.061,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.0,
"ER": 5,
"H": 8,
"BB": 2,
"SO": 9,
"HR": 2,
"ERA": 4.5,
"WHIP": 1.0,
"K9": 8.1,
"HR9": 1.8,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.0024651092654744,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.514,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7145,
"prior_weight": 0.2855
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "664199",
"player_name": "Taylor Clarke",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 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": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 140,
"wins": 73,
"losses": 67,
"win_pct": 0.5214,
"runs_scored": 627.0,
"runs_allowed": 629.0,
"run_differential": -2.0,
"run_differential_per_game": -0.0143,
"avg_runs_scored": 4.4786,
"avg_runs_allowed": 4.4929,
"offense_index": 0.9978,
"defense_index": 0.999,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.3,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.0164
},
"opponent": {
"team": "PHI",
"games": 139,
"wins": 79,
"losses": 60,
"win_pct": 0.5683,
"runs_scored": 631.0,
"runs_allowed": 594.0,
"run_differential": 37.0,
"run_differential_per_game": 0.2662,
"avg_runs_scored": 4.5396,
"avg_runs_allowed": 4.2734,
"offense_index": 1.0114,
"defense_index": 1.0504,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.9,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1957
},
"edges": {
"quality_edge": -0.1793,
"offense_edge": -0.0022,
"opponent_offense_edge": 0.0114,
"defense_strength": -0.001,
"opponent_defense_weakness": -0.0504,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9923,
"run_prevention": 1.0109,
"strikeout": 0.9937
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664199",
"profile": {
"available": true,
"pitcher_id": "664199",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 208.0,
"k_percent": 15.5,
"bb_percent": 4.6,
"woba": 0.249,
"xwoba": 0.32,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 33.2,
"avg_best_speed": 75.2175,
"avg_hyper_speed": 93.3952,
"whiff_percent": 21.5,
"swing_percent": 49.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2847,
"command_and_miss": -0.3689,
"regression_edge": -2.0,
"xwoba_edge": -0.2571,
"barrel_edge": -0.4,
"hard_hit_edge": 0.6714,
"whiff_edge": -0.5286,
"bb_edge": 1.1375,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "664199",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": -0.1135,
"sample_weight": 0.832,
"run_prevention_factor": 1.0097,
"strikeout_factor": 0.952,
"walk_factor": 0.9243,
"homer_factor": 1.0107,
"woba_minus_xwoba": -0.071,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "664199",
"espn_id": 35277,
"player_name": "Taylor Clarke",
"team": "ARI",
"role": "pitcher",
"espn_rank": 135,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 135,
"gp_value": 62.0,
"gp_rank": 16,
"gs_value": 0.0,
"gs_rank": 354,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 2.5989,
"era_rank": null,
"w_value": 2.0,
"w_rank": 299,
"l_value": 3.0,
"l_rank": 226,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 13.0,
"hld_rank": 46,
"ip_value": 62.1,
"ip_rank": 201,
"h_value": 44.0,
"h_rank": 271,
"er_value": 18.0,
"er_rank": 339,
"hr_value": 6.0,
"hr_rank": 259,
"bb_value": 11.0,
"bb_rank": 448,
"k_value": 37.0,
"k_rank": 359,
"k_per_9_value": 5.342246,
"k_per_9_rank": 48,
"whip_value": 0.8823,
"whip_rank": null,
"war_value": 1.25,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0081,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 1.0081,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.937,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0089,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9601,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"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": "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/20260902_PHI@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_SD@CIN | away | Casey Mize | Casey Mize | True | 5.0 | 4.0 | -3 | 3 | 4 | 1 | 3/5 | 2/1 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4468085106382977,
"WHIP": 1.1033434650455927,
"IP": 109.2,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.222,
"recent_avg_IP": 4.6,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1805,
"sample_weight": 1.0,
"run_prevention_factor": 0.9847,
"strikeout_factor": 0.9909,
"walk_factor": 0.939,
"homer_factor": 0.9934,
"regression_flag": "neutral",
"k_percent": 21.5,
"bb_percent": 6.1,
"woba": 0.287,
"xwoba": 0.29,
"barrel_percent": 8.1,
"hard_hit_percent": 37.4,
"whiff_percent": 24.0
},
"espn_rank": {
"rank": 63,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663554",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 16.0,
"R": 21.0,
"H": 27.0,
"BB": 8.0,
"SO": 11.0,
"HR": 6.0,
"BF": 105.0,
"Pitches": 370.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 4.2,
"H": 5.4,
"BB": 1.6,
"SO": 2.2,
"HR": 1.2,
"BF": 21.0,
"Pitches": 74.0
},
"rates": {
"ERA": 6.2609,
"WHIP": 1.5217,
"ER_per_IP": 0.69565,
"H_per_IP": 1.17391,
"BB_per_IP": 0.34783,
"SO_per_IP": 0.47826,
"HR_per_IP": 0.26087
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 23.0,
"R": 29.0,
"H": 46.0,
"BB": 13.0,
"SO": 38.0,
"HR": 7.0,
"BF": 215.0,
"Pitches": 808.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.9,
"H": 4.6,
"BB": 1.3,
"SO": 3.8,
"HR": 0.7,
"BF": 21.5,
"Pitches": 80.8
},
"rates": {
"ERA": 4.0065,
"WHIP": 1.1419,
"ER_per_IP": 0.44516,
"H_per_IP": 0.89032,
"BB_per_IP": 0.25161,
"SO_per_IP": 0.73548,
"HR_per_IP": 0.13548
}
},
"season": {
"games": 21,
"totals": {
"IP": 109.2,
"ER": 42.0,
"R": 48.0,
"H": 94.0,
"BB": 27.0,
"SO": 96.0,
"HR": 11.0,
"BF": 446.0,
"Pitches": 1688.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.2857,
"H": 4.4762,
"BB": 1.2857,
"SO": 4.5714,
"HR": 0.5238,
"BF": 21.2381,
"Pitches": 80.381
},
"rates": {
"ERA": 3.4468,
"WHIP": 1.1033,
"ER_per_IP": 0.38298,
"H_per_IP": 0.85714,
"BB_per_IP": 0.2462,
"SO_per_IP": 0.87538,
"HR_per_IP": 0.1003
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.695,
"predicted_H": 5.046,
"predicted_BB": 1.551,
"predicted_SO": 3.539,
"predicted_HR": 0.892,
"predicted_ERA": 4.8249,
"predicted_WHIP": 1.3124
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.695,
"final": 2.8265,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.046,
"final": 4.1637,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.551,
"final": 1.7446,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.539,
"final": 4.1691,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.892,
"final": 0.5073,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8249,
"final": 4.8249,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3124,
"final": 1.3124,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 23,
"H": 46,
"BB": 13,
"SO": 38,
"HR": 7,
"ERA": 4.006451612903226,
"WHIP": 1.1419354838709679,
"K9": 6.619354838709678,
"HR9": 1.2193548387096775,
"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-28T00:00:00"
},
"recent_form_boost": 0.9555730610119018,
"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": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
},
{
"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": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663554",
"player_name": "Casey Mize",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 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": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 139,
"wins": 73,
"losses": 66,
"win_pct": 0.5252,
"runs_scored": 591.0,
"runs_allowed": 577.0,
"run_differential": 14.0,
"run_differential_per_game": 0.1007,
"avg_runs_scored": 4.2518,
"avg_runs_allowed": 4.1511,
"offense_index": 0.9464,
"defense_index": 1.0823,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.5,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0013
},
"opponent": {
"team": "CIN",
"games": 139,
"wins": 66,
"losses": 73,
"win_pct": 0.4748,
"runs_scored": 574.0,
"runs_allowed": 686.0,
"run_differential": -112.0,
"run_differential_per_game": -0.8058,
"avg_runs_scored": 4.1295,
"avg_runs_allowed": 4.9353,
"offense_index": 0.9192,
"defense_index": 0.9103,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 6.5,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.1201
},
"edges": {
"quality_edge": 0.1188,
"offense_edge": -0.0536,
"opponent_offense_edge": -0.0808,
"defense_strength": 0.0823,
"opponent_defense_weakness": 0.0897,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0105,
"run_prevention": 0.9729,
"strikeout": 1.01
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663554",
"profile": {
"available": true,
"pitcher_id": "663554",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 406.0,
"k_percent": 21.5,
"bb_percent": 6.1,
"woba": 0.287,
"xwoba": 0.29,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 37.4,
"avg_best_speed": 78.8088,
"avg_hyper_speed": 93.809,
"whiff_percent": 24.0,
"swing_percent": 47.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3052,
"command_and_miss": 0.0668,
"regression_edge": -0.0857,
"xwoba_edge": 0.6,
"barrel_edge": -0.1778,
"hard_hit_edge": 0.0714,
"whiff_edge": -0.1714,
"bb_edge": 0.7625,
"pitch_design_score": 0.0103
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663554",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.04851401520826,
"release_spin_rate": 2095.774411866807,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.04851401520826,
"release_spin_rate": 2095.774411866807,
"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.0485,
"release_spin_rate": 2095.7744,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0103,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0734,
"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.1805,
"sample_weight": 1.0,
"run_prevention_factor": 0.9847,
"strikeout_factor": 0.9909,
"walk_factor": 0.939,
"homer_factor": 0.9934,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663554",
"espn_id": 41167,
"player_name": "Casey Mize",
"team": "SD",
"role": "pitcher",
"espn_rank": 63,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 63,
"gp_value": 21.0,
"gp_rank": 360,
"gs_value": 21.0,
"gs_rank": 88,
"qs_value": 10.0,
"qs_rank": 54,
"era_value": 3.4468,
"era_rank": null,
"w_value": 5.0,
"w_rank": 134,
"l_value": 8.0,
"l_rank": 44,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 109.2,
"ip_rank": 104,
"h_value": 94.0,
"h_rank": 116,
"er_value": 42.0,
"er_rank": 135,
"hr_value": 11.0,
"hr_rank": 138,
"bb_value": 27.0,
"bb_rank": 184,
"k_value": 96.0,
"k_rank": 100,
"k_per_9_value": 7.8784194,
"k_per_9_rank": 25,
"whip_value": 1.1033,
"whip_rank": null,
"war_value": 2.08,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9847,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9847,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.939,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9934,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9909,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260902_SD@CIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_SD@CIN | home | Brandon Williamson | Brandon Williamson | True | 4.1 | 5.1 | 3 | 3 | 3 | 0 | 4/7 | 5/2 | 3/5 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 6.107142857142857,
"WHIP": 1.6428571428571428,
"IP": 28.0,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 4.667,
"recent_avg_IP": 4.667,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4528,
"sample_weight": 0.45,
"run_prevention_factor": 1.0385,
"strikeout_factor": 0.9789,
"walk_factor": 1.058,
"homer_factor": 1.066,
"regression_flag": "neutral",
"k_percent": 14.8,
"bb_percent": 15.6,
"woba": 0.36,
"xwoba": 0.389,
"barrel_percent": 10.5,
"hard_hit_percent": 41.9,
"whiff_percent": 24.1
},
"espn_rank": {
"rank": 618,
"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.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682227",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 13.0,
"R": 13.0,
"H": 20.0,
"BB": 18.0,
"SO": 16.0,
"HR": 1.0,
"BF": 106.0,
"Pitches": 424.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 4.0,
"BB": 3.6,
"SO": 3.2,
"HR": 0.2,
"BF": 21.2,
"Pitches": 84.8
},
"rates": {
"ERA": 5.0143,
"WHIP": 1.6286,
"ER_per_IP": 0.55714,
"H_per_IP": 0.85714,
"BB_per_IP": 0.77143,
"SO_per_IP": 0.68571,
"HR_per_IP": 0.04286
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 28.0,
"ER": 19.0,
"R": 19.0,
"H": 26.0,
"BB": 20.0,
"SO": 19.0,
"HR": 4.0,
"BF": 128.0,
"Pitches": 518.0
},
"per_game": {
"IP": 4.2,
"ER": 3.1667,
"R": 3.1667,
"H": 4.3333,
"BB": 3.3333,
"SO": 3.1667,
"HR": 0.6667,
"BF": 21.3333,
"Pitches": 86.3333
},
"rates": {
"ERA": 6.1071,
"WHIP": 1.6429,
"ER_per_IP": 0.67857,
"H_per_IP": 0.92857,
"BB_per_IP": 0.71429,
"SO_per_IP": 0.67857,
"HR_per_IP": 0.14286
}
},
"season": {
"games": 6,
"totals": {
"IP": 28.0,
"ER": 19.0,
"R": 19.0,
"H": 26.0,
"BB": 20.0,
"SO": 19.0,
"HR": 4.0,
"BF": 128.0,
"Pitches": 518.0
},
"per_game": {
"IP": 4.2,
"ER": 3.1667,
"R": 3.1667,
"H": 4.3333,
"BB": 3.3333,
"SO": 3.1667,
"HR": 0.6667,
"BF": 21.3333,
"Pitches": 86.3333
},
"rates": {
"ERA": 6.1071,
"WHIP": 1.6429,
"ER_per_IP": 0.67857,
"H_per_IP": 0.92857,
"BB_per_IP": 0.71429,
"SO_per_IP": 0.67857,
"HR_per_IP": 0.14286
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.514,
"predicted_H": 4.269,
"predicted_BB": 2.73,
"predicted_SO": 3.738,
"predicted_HR": 0.454,
"predicted_ERA": 4.8479,
"predicted_WHIP": 1.4998
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.514,
"final": 2.7774,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.269,
"final": 3.5812,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 2.73,
"final": 3.9604,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.738,
"final": 3.338,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.454,
"final": 0.7499,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8479,
"final": 4.8479,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4998,
"final": 1.4998,
"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": 28.0,
"ER": 19,
"H": 26,
"BB": 20,
"SO": 19,
"HR": 4,
"ERA": 6.107142857142857,
"WHIP": 1.6428571428571428,
"K9": 6.107142857142857,
"HR9": 1.2857142857142858,
"games_pitched": 6,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-04-29T00:00:00"
},
"recent_form_boost": 1.1869149355411623,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 5.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 5,
"predicted_SO": 3,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 5,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682227",
"player_name": "Brandon Williamson",
"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": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": 5.0,
"after": 5.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": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 139,
"wins": 66,
"losses": 73,
"win_pct": 0.4748,
"runs_scored": 574.0,
"runs_allowed": 686.0,
"run_differential": -112.0,
"run_differential_per_game": -0.8058,
"avg_runs_scored": 4.1295,
"avg_runs_allowed": 4.9353,
"offense_index": 0.9192,
"defense_index": 0.9103,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 6.5,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.1201
},
"opponent": {
"team": "SD",
"games": 139,
"wins": 73,
"losses": 66,
"win_pct": 0.5252,
"runs_scored": 591.0,
"runs_allowed": 577.0,
"run_differential": 14.0,
"run_differential_per_game": 0.1007,
"avg_runs_scored": 4.2518,
"avg_runs_allowed": 4.1511,
"offense_index": 0.9464,
"defense_index": 1.0823,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.5,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0013
},
"edges": {
"quality_edge": -0.1188,
"offense_edge": -0.0808,
"opponent_offense_edge": -0.0536,
"defense_strength": -0.0897,
"opponent_defense_weakness": -0.0823,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9947,
"run_prevention": 1.0063,
"strikeout": 1.0007
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682227",
"profile": {
"available": true,
"pitcher_id": "682227",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 112.0,
"k_percent": 14.8,
"bb_percent": 15.6,
"woba": 0.36,
"xwoba": 0.389,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 10.5,
"hard_hit_percent": 41.9,
"avg_best_speed": 76.3891,
"avg_hyper_speed": 94.092,
"whiff_percent": 24.1,
"swing_percent": 43.2
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.2382,
"command_and_miss": -0.8339,
"regression_edge": -0.8286,
"xwoba_edge": -2.2286,
"barrel_edge": -0.7111,
"hard_hit_edge": -0.5714,
"whiff_edge": -0.1571,
"bb_edge": -1.6125,
"pitch_design_score": -0.1629
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682227",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 86.95558769002595,
"release_spin_rate": 2247.906437412728,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 86.95558769002595,
"release_spin_rate": 2247.906437412728,
"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.9556,
"release_spin_rate": 2247.9064,
"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.1629,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1638,
"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.4528,
"sample_weight": 0.45,
"run_prevention_factor": 1.0385,
"strikeout_factor": 0.9789,
"walk_factor": 1.058,
"homer_factor": 1.066,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "682227",
"espn_id": 42431,
"player_name": "Brandon Williamson",
"team": "CIN",
"role": "pitcher",
"espn_rank": 618,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 618,
"gp_value": 6.0,
"gp_rank": 592,
"gs_value": 6.0,
"gs_rank": 200,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 6.1071,
"era_rank": null,
"w_value": 2.0,
"w_rank": 299,
"l_value": 3.0,
"l_rank": 226,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 28.0,
"ip_rank": 435,
"h_value": 26.0,
"h_rank": 438,
"er_value": 19.0,
"er_rank": 317,
"hr_value": 4.0,
"hr_rank": 361,
"bb_value": 20.0,
"bb_rank": 282,
"k_value": 19.0,
"k_rank": 484,
"k_per_9_value": 6.107143,
"k_per_9_rank": 30,
"whip_value": 1.6428,
"whip_rank": null,
"war_value": -0.14,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0173,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0173,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0261,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0297,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9905,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 5,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260902_SD@CIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_SEA@BOS | away | Bryce Miller | Bryce Miller | True | 5.1 | 4.2 | -2 | 2 | 1 | -1 | 3/7 | 2/1 | 8/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.117021276595745,
"WHIP": 1.0851063829787233,
"IP": 94.0,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.562,
"recent_avg_IP": 5.067,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4673,
"sample_weight": 1.0,
"run_prevention_factor": 0.9603,
"strikeout_factor": 1.0183,
"walk_factor": 0.949,
"homer_factor": 0.9441,
"regression_flag": "neutral",
"k_percent": 24.5,
"bb_percent": 6.6,
"woba": 0.3,
"xwoba": 0.277,
"barrel_percent": 7.4,
"hard_hit_percent": 32.9,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 180,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682243",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 22.0,
"R": 23.0,
"H": 25.0,
"BB": 14.0,
"SO": 21.0,
"HR": 6.0,
"BF": 112.0,
"Pitches": 465.0
},
"per_game": {
"IP": 5.0,
"ER": 4.4,
"R": 4.6,
"H": 5.0,
"BB": 2.8,
"SO": 4.2,
"HR": 1.2,
"BF": 22.4,
"Pitches": 93.0
},
"rates": {
"ERA": 7.8158,
"WHIP": 1.5395,
"ER_per_IP": 0.86842,
"H_per_IP": 0.98684,
"BB_per_IP": 0.55263,
"SO_per_IP": 0.82895,
"HR_per_IP": 0.23684
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 36.0,
"R": 40.0,
"H": 54.0,
"BB": 20.0,
"SO": 49.0,
"HR": 12.0,
"BF": 235.0,
"Pitches": 906.0
},
"per_game": {
"IP": 5.1,
"ER": 3.6,
"R": 4.0,
"H": 5.4,
"BB": 2.0,
"SO": 4.9,
"HR": 1.2,
"BF": 23.5,
"Pitches": 90.6
},
"rates": {
"ERA": 6.0,
"WHIP": 1.3704,
"ER_per_IP": 0.66667,
"H_per_IP": 1.0,
"BB_per_IP": 0.37037,
"SO_per_IP": 0.90741,
"HR_per_IP": 0.22222
}
},
"season": {
"games": 17,
"totals": {
"IP": 94.0,
"ER": 43.0,
"R": 47.0,
"H": 77.0,
"BB": 25.0,
"SO": 92.0,
"HR": 17.0,
"BF": 376.0,
"Pitches": 1464.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5294,
"R": 2.7647,
"H": 4.5294,
"BB": 1.4706,
"SO": 5.4118,
"HR": 1.0,
"BF": 22.1176,
"Pitches": 86.1176
},
"rates": {
"ERA": 4.117,
"WHIP": 1.0851,
"ER_per_IP": 0.45745,
"H_per_IP": 0.81915,
"BB_per_IP": 0.26596,
"SO_per_IP": 0.97872,
"HR_per_IP": 0.18085
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.509,
"predicted_H": 5.064,
"predicted_BB": 2.201,
"predicted_SO": 4.735,
"predicted_HR": 1.073,
"predicted_ERA": 5.993,
"predicted_WHIP": 1.3788
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.509,
"final": 2.8359,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.064,
"final": 4.1434,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.201,
"final": 2.1113,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.735,
"final": 6.1913,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.073,
"final": 0.5944,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.993,
"final": 5.993,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3788,
"final": 1.3788,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 36,
"H": 54,
"BB": 20,
"SO": 49,
"HR": 12,
"ERA": 6.0,
"WHIP": 1.3703703703703705,
"K9": 8.166666666666666,
"HR9": 2.0,
"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-23T00:00:00"
},
"recent_form_boost": 1.1855581267227737,
"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": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682243",
"player_name": "Bryce Miller",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.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": "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": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": {}
},
{
"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": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": "SEA",
"games": 139,
"wins": 65,
"losses": 74,
"win_pct": 0.4676,
"runs_scored": 547.0,
"runs_allowed": 617.0,
"run_differential": -70.0,
"run_differential_per_game": -0.5036,
"avg_runs_scored": 3.9353,
"avg_runs_allowed": 4.4388,
"offense_index": 0.8767,
"defense_index": 1.0112,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 6.6,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.1242
},
"opponent": {
"team": "BOS",
"games": 139,
"wins": 75,
"losses": 64,
"win_pct": 0.5396,
"runs_scored": 624.0,
"runs_allowed": 542.0,
"run_differential": 82.0,
"run_differential_per_game": 0.5899,
"avg_runs_scored": 4.4892,
"avg_runs_allowed": 3.8993,
"offense_index": 1.0001,
"defense_index": 1.1511,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.6,
"run_differential": -16.0
},
"available": true,
"quality_score": 0.1059
},
"edges": {
"quality_edge": -0.2301,
"offense_edge": -0.1233,
"opponent_offense_edge": 0.0001,
"defense_strength": 0.0112,
"opponent_defense_weakness": -0.1511,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9911,
"run_prevention": 1.0104,
"strikeout": 0.9931
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682243",
"profile": {
"available": true,
"pitcher_id": "682243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 351.0,
"k_percent": 24.5,
"bb_percent": 6.6,
"woba": 0.3,
"xwoba": 0.277,
"sweet_spot_percent": 30.2,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 32.9,
"avg_best_speed": 77.2518,
"avg_hyper_speed": 92.9479,
"whiff_percent": 25.8,
"swing_percent": 54.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5609,
"command_and_miss": 0.3246,
"regression_edge": 0.6571,
"xwoba_edge": 0.9714,
"barrel_edge": -0.0222,
"hard_hit_edge": 0.7143,
"whiff_edge": 0.0857,
"bb_edge": 0.6375,
"pitch_design_score": 0.0386
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682243",
"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.55481419586265,
"release_spin_rate": 2136.012184708858,
"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.55481419586265,
"release_spin_rate": 2136.012184708858,
"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.5548,
"release_spin_rate": 2136.0122,
"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.0386,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2759,
"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.4673,
"sample_weight": 1.0,
"run_prevention_factor": 0.9603,
"strikeout_factor": 1.0183,
"walk_factor": 0.949,
"homer_factor": 0.9441,
"woba_minus_xwoba": 0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "682243",
"espn_id": 4654313,
"player_name": "Bryce Miller",
"team": "SEA",
"role": "pitcher",
"espn_rank": 180,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 180,
"gp_value": 17.0,
"gp_rank": 420,
"gs_value": 16.0,
"gs_rank": 122,
"qs_value": 3.0,
"qs_rank": 135,
"era_value": 4.117,
"era_rank": null,
"w_value": 4.0,
"w_rank": 178,
"l_value": 8.0,
"l_rank": 44,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 94.0,
"ip_rank": 128,
"h_value": 77.0,
"h_rank": 150,
"er_value": 43.0,
"er_rank": 131,
"hr_value": 17.0,
"hr_rank": 59,
"bb_value": 25.0,
"bb_rank": 207,
"k_value": 92.0,
"k_rank": 109,
"k_per_9_value": 8.808511,
"k_per_9_rank": 22,
"whip_value": 1.0851,
"whip_rank": null,
"war_value": 0.95,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9603,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 0.9603,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.949,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9441,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0183,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260902_SEA@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_SEA@BOS | home | Patrick Sandoval | Patrick Sandoval | True | 5.0 | 4.0 | -3 | 4 | 3 | -1 | 6/5 | 2/3 | 2/2 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 4.2,
"WHIP": 1.711111111111111,
"IP": 45.0,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.2,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1474,
"sample_weight": 0.636,
"run_prevention_factor": 1.0125,
"strikeout_factor": 1.0044,
"walk_factor": 1.0184,
"homer_factor": 1.0042,
"regression_flag": "neutral",
"k_percent": 23.2,
"bb_percent": 10.6,
"woba": 0.369,
"xwoba": 0.344,
"barrel_percent": 7.4,
"hard_hit_percent": 33.8,
"whiff_percent": 25.1
},
"espn_rank": {
"rank": 405,
"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.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663776",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 14.0,
"R": 16.0,
"H": 31.0,
"BB": 16.0,
"SO": 28.0,
"HR": 3.0,
"BF": 121.0,
"Pitches": 451.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 3.2,
"H": 6.2,
"BB": 3.2,
"SO": 5.6,
"HR": 0.6,
"BF": 24.2,
"Pitches": 90.2
},
"rates": {
"ERA": 4.8462,
"WHIP": 1.8077,
"ER_per_IP": 0.53846,
"H_per_IP": 1.19231,
"BB_per_IP": 0.61538,
"SO_per_IP": 1.07692,
"HR_per_IP": 0.11538
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 45.0,
"ER": 21.0,
"R": 24.0,
"H": 55.0,
"BB": 22.0,
"SO": 48.0,
"HR": 6.0,
"BF": 207.0,
"Pitches": 768.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3333,
"R": 2.6667,
"H": 6.1111,
"BB": 2.4444,
"SO": 5.3333,
"HR": 0.6667,
"BF": 23.0,
"Pitches": 85.3333
},
"rates": {
"ERA": 4.2,
"WHIP": 1.7111,
"ER_per_IP": 0.46667,
"H_per_IP": 1.22222,
"BB_per_IP": 0.48889,
"SO_per_IP": 1.06667,
"HR_per_IP": 0.13333
}
},
"season": {
"games": 9,
"totals": {
"IP": 45.0,
"ER": 21.0,
"R": 24.0,
"H": 55.0,
"BB": 22.0,
"SO": 48.0,
"HR": 6.0,
"BF": 207.0,
"Pitches": 768.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3333,
"R": 2.6667,
"H": 6.1111,
"BB": 2.4444,
"SO": 5.3333,
"HR": 0.6667,
"BF": 23.0,
"Pitches": 85.3333
},
"rates": {
"ERA": 4.2,
"WHIP": 1.7111,
"ER_per_IP": 0.46667,
"H_per_IP": 1.22222,
"BB_per_IP": 0.48889,
"SO_per_IP": 1.06667,
"HR_per_IP": 0.13333
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.596,
"predicted_H": 5.754,
"predicted_BB": 2.549,
"predicted_SO": 5.264,
"predicted_HR": 0.672,
"predicted_ERA": 4.5531,
"predicted_WHIP": 1.6179
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5009,
"form_weight": 0.4991,
"form_reliability": 0.6429,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.596,
"final": 3.2992,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.754,
"final": 5.8772,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.549,
"final": 2.274,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.264,
"final": 3.6291,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.672,
"final": 1.3372,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5531,
"final": 4.5531,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6179,
"final": 1.6179,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.0,
"ER": 21,
"H": 55,
"BB": 22,
"SO": 48,
"HR": 6,
"ERA": 4.199999999999999,
"WHIP": 1.7111111111111108,
"K9": 9.599999999999998,
"HR9": 1.1999999999999997,
"games_pitched": 9,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 9,
"error_prone": false
},
"games_count": 9,
"latest_game_date": "2026-08-28T00:00:00"
},
"recent_form_boost": 0.9915766452412922,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663776",
"player_name": "Patrick Sandoval",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 139,
"wins": 75,
"losses": 64,
"win_pct": 0.5396,
"runs_scored": 624.0,
"runs_allowed": 542.0,
"run_differential": 82.0,
"run_differential_per_game": 0.5899,
"avg_runs_scored": 4.4892,
"avg_runs_allowed": 3.8993,
"offense_index": 1.0001,
"defense_index": 1.1511,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.6,
"run_differential": -16.0
},
"available": true,
"quality_score": 0.1059
},
"opponent": {
"team": "SEA",
"games": 139,
"wins": 65,
"losses": 74,
"win_pct": 0.4676,
"runs_scored": 547.0,
"runs_allowed": 617.0,
"run_differential": -70.0,
"run_differential_per_game": -0.5036,
"avg_runs_scored": 3.9353,
"avg_runs_allowed": 4.4388,
"offense_index": 0.8767,
"defense_index": 1.0112,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 6.6,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.1242
},
"edges": {
"quality_edge": 0.2301,
"offense_edge": 0.0001,
"opponent_offense_edge": -0.1233,
"defense_strength": 0.1511,
"opponent_defense_weakness": -0.0112,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0187,
"run_prevention": 0.9537,
"strikeout": 1.0168
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663776",
"profile": {
"available": true,
"pitcher_id": "663776",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 159.0,
"k_percent": 23.2,
"bb_percent": 10.6,
"woba": 0.369,
"xwoba": 0.344,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 33.8,
"avg_best_speed": 75.3374,
"avg_hyper_speed": 93.3554,
"whiff_percent": 25.1,
"swing_percent": 47.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5316,
"command_and_miss": 0.0061,
"regression_edge": 0.7143,
"xwoba_edge": -0.9429,
"barrel_edge": -0.0222,
"hard_hit_edge": 0.5857,
"whiff_edge": -0.0143,
"bb_edge": -0.3625,
"pitch_design_score": -0.0878
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663776",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.29745412076173,
"release_spin_rate": 2185.3833510165955,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.29745412076173,
"release_spin_rate": 2185.3833510165955,
"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.2975,
"release_spin_rate": 2185.3834,
"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.0878,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.627,
"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.1474,
"sample_weight": 0.636,
"run_prevention_factor": 1.0125,
"strikeout_factor": 1.0044,
"walk_factor": 1.0184,
"homer_factor": 1.0042,
"woba_minus_xwoba": 0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663776",
"espn_id": 40975,
"player_name": "Patrick Sandoval",
"team": "BOS",
"role": "pitcher",
"espn_rank": 405,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 405,
"gp_value": 9.0,
"gp_rank": 528,
"gs_value": 9.0,
"gs_rank": 175,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 4.2,
"era_rank": null,
"w_value": 1.0,
"w_rank": 398,
"l_value": 3.0,
"l_rank": 226,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 45.0,
"ip_rank": 315,
"h_value": 55.0,
"h_rank": 200,
"er_value": 21.0,
"er_rank": 286,
"hr_value": 6.0,
"hr_rank": 259,
"bb_value": 22.0,
"bb_rank": 240,
"k_value": 48.0,
"k_rank": 284,
"k_per_9_value": 9.6,
"k_per_9_rank": 24,
"whip_value": 1.7111,
"whip_rank": null,
"war_value": 0.08,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0079,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0079,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0117,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0027,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0028,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260902_SEA@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_SF@PIT | away | Landen Roupp | Landen Roupp | True | 5.1 | 5.0 | -1 | 1 | 1 | 0 | 6/2 | 2/2 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.2529832935560865,
"WHIP": 1.3102625298329356,
"IP": 139.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.372,
"recent_avg_IP": 5.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1899,
"sample_weight": 1.0,
"run_prevention_factor": 0.9839,
"strikeout_factor": 1.0006,
"walk_factor": 1.039,
"homer_factor": 0.9063,
"regression_flag": "neutral",
"k_percent": 22.4,
"bb_percent": 11.1,
"woba": 0.3,
"xwoba": 0.302,
"barrel_percent": 5.1,
"hard_hit_percent": 29.7,
"whiff_percent": 24.8
},
"espn_rank": {
"rank": 207,
"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": "694738",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 14.0,
"R": 15.0,
"H": 22.0,
"BB": 18.0,
"SO": 19.0,
"HR": 3.0,
"BF": 120.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 3.0,
"H": 4.4,
"BB": 3.6,
"SO": 3.8,
"HR": 0.6,
"BF": 24.0,
"Pitches": 92.0
},
"rates": {
"ERA": 4.8462,
"WHIP": 1.5385,
"ER_per_IP": 0.53846,
"H_per_IP": 0.84615,
"BB_per_IP": 0.69231,
"SO_per_IP": 0.73077,
"HR_per_IP": 0.11538
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 27.0,
"R": 28.0,
"H": 40.0,
"BB": 32.0,
"SO": 38.0,
"HR": 6.0,
"BF": 233.0,
"Pitches": 920.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.8,
"H": 4.0,
"BB": 3.2,
"SO": 3.8,
"HR": 0.6,
"BF": 23.3,
"Pitches": 92.0
},
"rates": {
"ERA": 4.5562,
"WHIP": 1.35,
"ER_per_IP": 0.50625,
"H_per_IP": 0.75,
"BB_per_IP": 0.6,
"SO_per_IP": 0.7125,
"HR_per_IP": 0.1125
}
},
"season": {
"games": 26,
"totals": {
"IP": 139.2,
"ER": 66.0,
"R": 71.0,
"H": 117.0,
"BB": 66.0,
"SO": 133.0,
"HR": 11.0,
"BF": 595.0,
"Pitches": 2468.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5385,
"R": 2.7308,
"H": 4.5,
"BB": 2.5385,
"SO": 5.1154,
"HR": 0.4231,
"BF": 22.8846,
"Pitches": 94.9231
},
"rates": {
"ERA": 4.253,
"WHIP": 1.3103,
"ER_per_IP": 0.47255,
"H_per_IP": 0.83771,
"BB_per_IP": 0.47255,
"SO_per_IP": 0.95227,
"HR_per_IP": 0.07876
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.727,
"predicted_H": 4.463,
"predicted_BB": 3.074,
"predicted_SO": 4.247,
"predicted_HR": 0.605,
"predicted_ERA": 4.6011,
"predicted_WHIP": 1.4133
}
},
"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": 1.0,
"form": 2.727,
"final": 2.0049,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.463,
"final": 5.1057,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 3.074,
"final": 2.6249,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.247,
"final": 4.98,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.605,
"final": 0.352,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6011,
"final": 4.6011,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4133,
"final": 1.4133,
"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": 40,
"BB": 32,
"SO": 38,
"HR": 6,
"ERA": 4.5562499999999995,
"WHIP": 1.3499999999999999,
"K9": 6.4125,
"HR9": 1.0125,
"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-27T00:00:00"
},
"recent_form_boost": 1.0226269924635145,
"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": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694738",
"player_name": "Landen Roupp",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 6.0,
"predicted_HR": 0.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": 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": 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": 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": 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": "SF",
"games": 139,
"wins": 57,
"losses": 82,
"win_pct": 0.4101,
"runs_scored": 579.0,
"runs_allowed": 650.0,
"run_differential": -71.0,
"run_differential_per_game": -0.5108,
"avg_runs_scored": 4.1655,
"avg_runs_allowed": 4.6763,
"offense_index": 0.9285,
"defense_index": 0.9593,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 5.2,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.139
},
"opponent": {
"team": "PIT",
"games": 139,
"wins": 68,
"losses": 71,
"win_pct": 0.4892,
"runs_scored": 682.0,
"runs_allowed": 655.0,
"run_differential": 27.0,
"run_differential_per_game": 0.1942,
"avg_runs_scored": 4.9065,
"avg_runs_allowed": 4.7122,
"offense_index": 1.0937,
"defense_index": 0.952,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.0,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0146
},
"edges": {
"quality_edge": -0.1536,
"offense_edge": -0.0715,
"opponent_offense_edge": 0.0937,
"defense_strength": -0.0407,
"opponent_defense_weakness": 0.048,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9889,
"run_prevention": 1.0267,
"strikeout": 0.9879
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694738",
"profile": {
"available": true,
"pitcher_id": "694738",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 545.0,
"k_percent": 22.4,
"bb_percent": 11.1,
"woba": 0.3,
"xwoba": 0.302,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 29.7,
"avg_best_speed": 75.3458,
"avg_hyper_speed": 92.6556,
"whiff_percent": 24.8,
"swing_percent": 43.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4118,
"command_and_miss": -0.0854,
"regression_edge": -0.0571,
"xwoba_edge": 0.2571,
"barrel_edge": 0.4889,
"hard_hit_edge": 1.1714,
"whiff_edge": -0.0571,
"bb_edge": -0.4875,
"pitch_design_score": -0.1603
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694738",
"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": 87.00224317148336,
"release_spin_rate": 2326.4570396123822,
"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": 87.00224317148336,
"release_spin_rate": 2326.4570396123822,
"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.0022,
"release_spin_rate": 2326.457,
"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.1603,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1451,
"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.1899,
"sample_weight": 1.0,
"run_prevention_factor": 0.9839,
"strikeout_factor": 1.0006,
"walk_factor": 1.039,
"homer_factor": 0.9063,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694738",
"espn_id": 4345404,
"player_name": "Landen Roupp",
"team": "SF",
"role": "pitcher",
"espn_rank": 207,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 207,
"gp_value": 26.0,
"gp_rank": 276,
"gs_value": 26.0,
"gs_rank": 35,
"qs_value": 10.0,
"qs_rank": 54,
"era_value": 4.2529,
"era_rank": 40.0,
"w_value": 8.0,
"w_rank": 58,
"l_value": 13.0,
"l_rank": 3,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 139.2,
"ip_rank": 48,
"h_value": 117.0,
"h_rank": 74,
"er_value": 66.0,
"er_rank": 35,
"hr_value": 11.0,
"hr_rank": 138,
"bb_value": 66.0,
"bb_rank": 6,
"k_value": 133.0,
"k_rank": 44,
"k_per_9_value": 8.570406,
"k_per_9_rank": 24,
"whip_value": 1.3102,
"whip_rank": 39.0,
"war_value": 0.78,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9839,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9839,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.039,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9063,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0006,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 105,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260902_SF@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_SF@PIT | home | Bubba Chandler | Bubba Chandler | True | 5.0 | 5.0 | 0 | 4 | 3 | -1 | 8/5 | 0/3 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.259541984732825,
"WHIP": 1.3587786259541985,
"IP": 131.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.027,
"recent_avg_IP": 5.267,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0386,
"sample_weight": 1.0,
"run_prevention_factor": 1.0033,
"strikeout_factor": 0.9783,
"walk_factor": 1.057,
"homer_factor": 0.9749,
"regression_flag": "neutral",
"k_percent": 20.6,
"bb_percent": 12.0,
"woba": 0.306,
"xwoba": 0.313,
"barrel_percent": 5.6,
"hard_hit_percent": 38.5,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 134,
"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": "696149",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 9.0,
"R": 11.0,
"H": 19.0,
"BB": 11.0,
"SO": 24.0,
"HR": 1.0,
"BF": 106.0,
"Pitches": 439.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 2.2,
"H": 3.8,
"BB": 2.2,
"SO": 4.8,
"HR": 0.2,
"BF": 21.2,
"Pitches": 87.8
},
"rates": {
"ERA": 3.0759,
"WHIP": 1.1392,
"ER_per_IP": 0.34177,
"H_per_IP": 0.72152,
"BB_per_IP": 0.41772,
"SO_per_IP": 0.91139,
"HR_per_IP": 0.03797
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 23.0,
"R": 27.0,
"H": 46.0,
"BB": 22.0,
"SO": 44.0,
"HR": 2.0,
"BF": 219.0,
"Pitches": 894.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.7,
"H": 4.6,
"BB": 2.2,
"SO": 4.4,
"HR": 0.2,
"BF": 21.9,
"Pitches": 89.4
},
"rates": {
"ERA": 4.0065,
"WHIP": 1.3161,
"ER_per_IP": 0.44516,
"H_per_IP": 0.89032,
"BB_per_IP": 0.42581,
"SO_per_IP": 0.85161,
"HR_per_IP": 0.03871
}
},
"season": {
"games": 26,
"totals": {
"IP": 131.0,
"ER": 62.0,
"R": 72.0,
"H": 110.0,
"BB": 68.0,
"SO": 117.0,
"HR": 11.0,
"BF": 569.0,
"Pitches": 2246.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3846,
"R": 2.7692,
"H": 4.2308,
"BB": 2.6154,
"SO": 4.5,
"HR": 0.4231,
"BF": 21.8846,
"Pitches": 86.3846
},
"rates": {
"ERA": 4.2595,
"WHIP": 1.3588,
"ER_per_IP": 0.47328,
"H_per_IP": 0.83969,
"BB_per_IP": 0.51908,
"SO_per_IP": 0.89313,
"HR_per_IP": 0.08397
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.19,
"predicted_H": 4.343,
"predicted_BB": 2.244,
"predicted_SO": 4.678,
"predicted_HR": 0.331,
"predicted_ERA": 3.7727,
"predicted_WHIP": 1.2608
}
},
"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.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.19,
"final": 2.9469,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 4.343,
"final": 5.8722,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.244,
"final": 1.3057,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.678,
"final": 4.3945,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.331,
"final": 0.1926,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7727,
"final": 3.7727,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2608,
"final": 1.2608,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 23,
"H": 46,
"BB": 22,
"SO": 44,
"HR": 2,
"ERA": 4.006451612903225,
"WHIP": 1.3161290322580643,
"K9": 7.664516129032258,
"HR9": 0.3483870967741935,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 0.9599278997215789,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696149",
"player_name": "Bubba Chandler",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.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": 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": "PIT",
"games": 139,
"wins": 68,
"losses": 71,
"win_pct": 0.4892,
"runs_scored": 682.0,
"runs_allowed": 655.0,
"run_differential": 27.0,
"run_differential_per_game": 0.1942,
"avg_runs_scored": 4.9065,
"avg_runs_allowed": 4.7122,
"offense_index": 1.0937,
"defense_index": 0.952,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.0,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0146
},
"opponent": {
"team": "SF",
"games": 139,
"wins": 57,
"losses": 82,
"win_pct": 0.4101,
"runs_scored": 579.0,
"runs_allowed": 650.0,
"run_differential": -71.0,
"run_differential_per_game": -0.5108,
"avg_runs_scored": 4.1655,
"avg_runs_allowed": 4.6763,
"offense_index": 0.9285,
"defense_index": 0.9593,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 5.2,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.139
},
"edges": {
"quality_edge": 0.1536,
"offense_edge": 0.0937,
"opponent_offense_edge": -0.0715,
"defense_strength": -0.048,
"opponent_defense_weakness": 0.0407,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0076,
"run_prevention": 0.9857,
"strikeout": 1.0103
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696149",
"profile": {
"available": true,
"pitcher_id": "696149",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 526.0,
"k_percent": 20.6,
"bb_percent": 12.0,
"woba": 0.306,
"xwoba": 0.313,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 38.5,
"avg_best_speed": 78.2548,
"avg_hyper_speed": 93.8547,
"whiff_percent": 22.7,
"swing_percent": 47.4
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0902,
"command_and_miss": -0.3511,
"regression_edge": -0.2,
"xwoba_edge": -0.0571,
"barrel_edge": 0.3778,
"hard_hit_edge": -0.0857,
"whiff_edge": -0.3571,
"bb_edge": -0.7125,
"pitch_design_score": 0.2769
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696149",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 94.8103538897678,
"release_spin_rate": 2354.536984834445,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 94.8103538897678,
"release_spin_rate": 2354.536984834445,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.8104,
"release_spin_rate": 2354.537,
"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.2769,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.9781,
"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.0386,
"sample_weight": 1.0,
"run_prevention_factor": 1.0033,
"strikeout_factor": 0.9783,
"walk_factor": 1.057,
"homer_factor": 0.9749,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "696149",
"espn_id": 4683325,
"player_name": "Bubba Chandler",
"team": "PIT",
"role": "pitcher",
"espn_rank": 134,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 134,
"gp_value": 26.0,
"gp_rank": 276,
"gs_value": 25.0,
"gs_rank": 48,
"qs_value": 4.0,
"qs_rank": 121,
"era_value": 4.2595,
"era_rank": null,
"w_value": 6.0,
"w_rank": 99,
"l_value": 9.0,
"l_rank": 25,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 131.0,
"ip_rank": 63,
"h_value": 110.0,
"h_rank": 88,
"er_value": 62.0,
"er_rank": 52,
"hr_value": 11.0,
"hr_rank": 138,
"bb_value": 68.0,
"bb_rank": 4,
"k_value": 117.0,
"k_rank": 68,
"k_per_9_value": 8.038168,
"k_per_9_rank": 29,
"whip_value": 1.3587,
"whip_rank": null,
"war_value": 1.26,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0033,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0033,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.057,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9749,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9783,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 8,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260902_SF@PIT.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_STL@LAD | away | Brycen Mautz | Brycen Mautz | True | 3.0 | 1.0 | -6 | 2 | 3 | 1 | 3/2 | 2/3 | 1/0 | Last 10 before this game (2 available){
"model_context": {
"embedded_season": {
"ERA": 9.0,
"WHIP": 2.0,
"IP": 6.0,
"games_started": null,
"games_pitched": 2,
"role_avg_IP": 3.0,
"recent_avg_IP": 3.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0109,
"sample_weight": 0.45,
"run_prevention_factor": 0.9991,
"strikeout_factor": 1.0432,
"walk_factor": 1.0104,
"homer_factor": 0.982,
"regression_flag": "positive_pitcher_regression",
"k_percent": 34.5,
"bb_percent": 10.3,
"woba": 0.401,
"xwoba": 0.329,
"barrel_percent": 6.3,
"hard_hit_percent": 31.3,
"whiff_percent": 29.4
},
"espn_rank": {
"rank": 677,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "802408",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 2,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 2,
"totals": {
"IP": 6.0,
"ER": 6.0,
"R": 6.0,
"H": 9.0,
"BB": 3.0,
"SO": 10.0,
"HR": 1.0,
"BF": 29.0,
"Pitches": 120.0
},
"per_game": {
"IP": 3.0,
"ER": 3.0,
"R": 3.0,
"H": 4.5,
"BB": 1.5,
"SO": 5.0,
"HR": 0.5,
"BF": 14.5,
"Pitches": 60.0
},
"rates": {
"ERA": 9.0,
"WHIP": 2.0,
"ER_per_IP": 1.0,
"H_per_IP": 1.5,
"BB_per_IP": 0.5,
"SO_per_IP": 1.66667,
"HR_per_IP": 0.16667
}
},
"last_10": {
"games": 2,
"totals": {
"IP": 6.0,
"ER": 6.0,
"R": 6.0,
"H": 9.0,
"BB": 3.0,
"SO": 10.0,
"HR": 1.0,
"BF": 29.0,
"Pitches": 120.0
},
"per_game": {
"IP": 3.0,
"ER": 3.0,
"R": 3.0,
"H": 4.5,
"BB": 1.5,
"SO": 5.0,
"HR": 0.5,
"BF": 14.5,
"Pitches": 60.0
},
"rates": {
"ERA": 9.0,
"WHIP": 2.0,
"ER_per_IP": 1.0,
"H_per_IP": 1.5,
"BB_per_IP": 0.5,
"SO_per_IP": 1.66667,
"HR_per_IP": 0.16667
}
},
"season": {
"games": 2,
"totals": {
"IP": 6.0,
"ER": 6.0,
"R": 6.0,
"H": 9.0,
"BB": 3.0,
"SO": 10.0,
"HR": 1.0,
"BF": 29.0,
"Pitches": 120.0
},
"per_game": {
"IP": 3.0,
"ER": 3.0,
"R": 3.0,
"H": 4.5,
"BB": 1.5,
"SO": 5.0,
"HR": 0.5,
"BF": 14.5,
"Pitches": 60.0
},
"rates": {
"ERA": 9.0,
"WHIP": 2.0,
"ER_per_IP": 1.0,
"H_per_IP": 1.5,
"BB_per_IP": 0.5,
"SO_per_IP": 1.66667,
"HR_per_IP": 0.16667
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 2.379,
"predicted_H": 4.171,
"predicted_BB": 1.514,
"predicted_SO": 4.264,
"predicted_HR": 0.565,
"predicted_ERA": 5.7654,
"predicted_WHIP": 1.5306
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6518,
"form_weight": 0.3482,
"form_reliability": 0.2857,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 3.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.379,
"final": 2.132,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.171,
"final": 3.4078,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.514,
"final": 1.8308,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 4.264,
"final": 2.1366,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.565,
"final": 0.1967,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7654,
"final": 5.7654,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5306,
"final": 1.5306,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 6.0,
"ER": 6,
"H": 9,
"BB": 3,
"SO": 10,
"HR": 1,
"ERA": 9.0,
"WHIP": 2.0,
"K9": 15.0,
"HR9": 1.5,
"games_pitched": 2,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 2,
"error_prone": false
},
"games_count": 2,
"latest_game_date": "2026-08-29T00:00:00"
},
"recent_form_boost": 1.1055680010410254,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 1,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "802408",
"player_name": "Brycen Mautz",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_R": 2.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 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": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.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": "STL",
"games": 139,
"wins": 69,
"losses": 70,
"win_pct": 0.4964,
"runs_scored": 623.0,
"runs_allowed": 633.0,
"run_differential": -10.0,
"run_differential_per_game": -0.0719,
"avg_runs_scored": 4.482,
"avg_runs_allowed": 4.554,
"offense_index": 0.9979,
"defense_index": 0.9863,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 7.1,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.0819
},
"opponent": {
"team": "LAD",
"games": 138,
"wins": 82,
"losses": 56,
"win_pct": 0.5942,
"runs_scored": 678.0,
"runs_allowed": 530.0,
"run_differential": 148.0,
"run_differential_per_game": 1.0725,
"avg_runs_scored": 4.913,
"avg_runs_allowed": 3.8406,
"offense_index": 1.0939,
"defense_index": 1.1694,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.5,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.2114
},
"edges": {
"quality_edge": -0.2933,
"offense_edge": -0.0021,
"opponent_offense_edge": 0.0939,
"defense_strength": -0.0137,
"opponent_defense_weakness": -0.1694,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9841,
"run_prevention": 1.0311,
"strikeout": 0.9837
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "802408",
"profile": {
"available": true,
"pitcher_id": "802408",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 14.0,
"k_percent": 34.5,
"bb_percent": 10.3,
"woba": 0.401,
"xwoba": 0.329,
"sweet_spot_percent": 62.5,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 31.3,
"avg_best_speed": 82.8998,
"avg_hyper_speed": 93.9695,
"whiff_percent": 29.4,
"swing_percent": 42.5
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7526,
"command_and_miss": 0.9625,
"regression_edge": 2.0,
"xwoba_edge": -0.5143,
"barrel_edge": 0.2222,
"hard_hit_edge": 0.9429,
"whiff_edge": 0.6,
"bb_edge": -0.2875,
"pitch_design_score": -0.0579
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "802408",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 59,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 59,
"pitch_usage": 0.0,
"release_speed": 88.83050847457628,
"release_spin_rate": 2295.93220338983,
"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": 59,
"pitch_usage": 0.0,
"release_speed": 88.83050847457628,
"release_spin_rate": 2295.93220338983,
"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.8305,
"release_spin_rate": 2295.9322,
"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.0579,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4138,
"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.0109,
"sample_weight": 0.45,
"run_prevention_factor": 0.9991,
"strikeout_factor": 1.0432,
"walk_factor": 1.0104,
"homer_factor": 0.982,
"woba_minus_xwoba": 0.072,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "802408",
"espn_id": 5067321,
"player_name": "Brycen Mautz",
"team": "STL",
"role": "pitcher",
"espn_rank": 677,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 677,
"gp_value": 2.0,
"gp_rank": 738,
"gs_value": 0.0,
"gs_rank": 354,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 9.0,
"era_rank": null,
"w_value": 0.0,
"w_rank": 519,
"l_value": 1.0,
"l_rank": 415,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 6.0,
"ip_rank": 680,
"h_value": 9.0,
"h_rank": 634,
"er_value": 6.0,
"er_rank": 615,
"hr_value": 1.0,
"hr_rank": 597,
"bb_value": 3.0,
"bb_rank": 668,
"k_value": 10.0,
"k_rank": 574,
"k_per_9_value": 15.0,
"k_per_9_rank": 22,
"whip_value": 2.0,
"whip_rank": null,
"war_value": -0.23,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9996,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9996,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0047,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9919,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0194,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 1,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 16,
"Pitches": 67,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 2 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260902_STL@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_STL@LAD | home | Yoshinobu Yamamoto | Yoshinobu Yamamoto | True | 6.2 | 7.0 | 1 | 3 | 4 | 1 | 4/5 | 0/2 | 7/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5632911392405062,
"WHIP": 0.8924050632911392,
"IP": 158.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 6.583,
"recent_avg_IP": 6.467,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5591,
"sample_weight": 1.0,
"run_prevention_factor": 0.9525,
"strikeout_factor": 1.0274,
"walk_factor": 0.935,
"homer_factor": 0.9388,
"regression_flag": "neutral",
"k_percent": 25.2,
"bb_percent": 5.9,
"woba": 0.245,
"xwoba": 0.271,
"barrel_percent": 6.3,
"hard_hit_percent": 36.3,
"whiff_percent": 26.7
},
"espn_rank": {
"rank": 9,
"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": "808967",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.1,
"ER": 7.0,
"R": 7.0,
"H": 20.0,
"BB": 8.0,
"SO": 35.0,
"HR": 3.0,
"BF": 126.0,
"Pitches": 512.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.4,
"H": 4.0,
"BB": 1.6,
"SO": 7.0,
"HR": 0.6,
"BF": 25.2,
"Pitches": 102.4
},
"rates": {
"ERA": 1.9485,
"WHIP": 0.866,
"ER_per_IP": 0.21649,
"H_per_IP": 0.61856,
"BB_per_IP": 0.24742,
"SO_per_IP": 1.08247,
"HR_per_IP": 0.09278
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 66.1,
"ER": 18.0,
"R": 18.0,
"H": 42.0,
"BB": 19.0,
"SO": 67.0,
"HR": 6.0,
"BF": 258.0,
"Pitches": 1006.0
},
"per_game": {
"IP": 6.2,
"ER": 1.8,
"R": 1.8,
"H": 4.2,
"BB": 1.9,
"SO": 6.7,
"HR": 0.6,
"BF": 25.8,
"Pitches": 100.6
},
"rates": {
"ERA": 2.4422,
"WHIP": 0.9196,
"ER_per_IP": 0.27136,
"H_per_IP": 0.63317,
"BB_per_IP": 0.28643,
"SO_per_IP": 1.01005,
"HR_per_IP": 0.09045
}
},
"season": {
"games": 24,
"totals": {
"IP": 158.0,
"ER": 45.0,
"R": 46.0,
"H": 105.0,
"BB": 36.0,
"SO": 153.0,
"HR": 16.0,
"BF": 607.0,
"Pitches": 2372.0
},
"per_game": {
"IP": 6.2,
"ER": 1.875,
"R": 1.9167,
"H": 4.375,
"BB": 1.5,
"SO": 6.375,
"HR": 0.6667,
"BF": 25.2917,
"Pitches": 98.8333
},
"rates": {
"ERA": 2.5633,
"WHIP": 0.8924,
"ER_per_IP": 0.28481,
"H_per_IP": 0.66456,
"BB_per_IP": 0.22785,
"SO_per_IP": 0.96835,
"HR_per_IP": 0.10127
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.2,
"predicted_ER": 1.911,
"predicted_H": 4.523,
"predicted_BB": 1.81,
"predicted_SO": 6.661,
"predicted_HR": 0.672,
"predicted_ERA": 2.6282,
"predicted_WHIP": 0.9681
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 6.2,
"form": 6.2,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.911,
"final": 2.7943,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.523,
"final": 4.3019,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.81,
"final": 1.0447,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.661,
"final": 6.3815,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.672,
"final": 1.2335,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6282,
"final": 2.6282,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9681,
"final": 0.9681,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 66.1,
"ER": 18,
"H": 42,
"BB": 19,
"SO": 67,
"HR": 6,
"ERA": 2.4422110552763816,
"WHIP": 0.9195979899497486,
"K9": 9.090452261306531,
"HR9": 0.8140703517587938,
"games_pitched": 10,
"quality_starts": 8,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-27T00:00:00"
},
"recent_form_boost": 0.7740375609308513,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "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.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "808967",
"player_name": "Yoshinobu Yamamoto",
"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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 6.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.2,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.2,
"after": 6.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_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": "LAD",
"games": 138,
"wins": 82,
"losses": 56,
"win_pct": 0.5942,
"runs_scored": 678.0,
"runs_allowed": 530.0,
"run_differential": 148.0,
"run_differential_per_game": 1.0725,
"avg_runs_scored": 4.913,
"avg_runs_allowed": 3.8406,
"offense_index": 1.0939,
"defense_index": 1.1694,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.5,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.2114
},
"opponent": {
"team": "STL",
"games": 139,
"wins": 69,
"losses": 70,
"win_pct": 0.4964,
"runs_scored": 623.0,
"runs_allowed": 633.0,
"run_differential": -10.0,
"run_differential_per_game": -0.0719,
"avg_runs_scored": 4.482,
"avg_runs_allowed": 4.554,
"offense_index": 0.9979,
"defense_index": 0.9863,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 7.1,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.0819
},
"edges": {
"quality_edge": 0.2933,
"offense_edge": 0.0939,
"opponent_offense_edge": -0.0021,
"defense_strength": 0.1694,
"opponent_defense_weakness": 0.0137,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0169,
"run_prevention": 0.9681,
"strikeout": 1.009
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "808967",
"profile": {
"available": true,
"pitcher_id": "808967",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 555.0,
"k_percent": 25.2,
"bb_percent": 5.9,
"woba": 0.245,
"xwoba": 0.271,
"sweet_spot_percent": 30.1,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 36.3,
"avg_best_speed": 76.241,
"avg_hyper_speed": 93.8643,
"whiff_percent": 26.7,
"swing_percent": 49.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9123,
"command_and_miss": 0.4496,
"regression_edge": -0.7429,
"xwoba_edge": 1.1429,
"barrel_edge": 0.2222,
"hard_hit_edge": 0.2286,
"whiff_edge": 0.2143,
"bb_edge": 0.8125,
"pitch_design_score": 0.07
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "808967",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 100,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 100,
"pitch_usage": 0.0,
"release_speed": 91.11478597119859,
"release_spin_rate": 2175.449780817317,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 100,
"pitch_usage": 0.0,
"release_speed": 91.11478597119859,
"release_spin_rate": 2175.449780817317,
"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.1148,
"release_spin_rate": 2175.4498,
"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.07,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4999,
"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.5591,
"sample_weight": 1.0,
"run_prevention_factor": 0.9525,
"strikeout_factor": 1.0274,
"walk_factor": 0.935,
"homer_factor": 0.9388,
"woba_minus_xwoba": -0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "808967",
"espn_id": 4872587,
"player_name": "Yoshinobu Yamamoto",
"team": "LAD",
"role": "pitcher",
"espn_rank": 9,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 9,
"gp_value": 24.0,
"gp_rank": 318,
"gs_value": 24.0,
"gs_rank": 61,
"qs_value": 19.0,
"qs_rank": 2,
"era_value": 2.5632,
"era_rank": 7.0,
"w_value": 12.0,
"w_rank": 15,
"l_value": 8.0,
"l_rank": 44,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 158.0,
"ip_rank": 13,
"h_value": 105.0,
"h_rank": 100,
"er_value": 45.0,
"er_rank": 118,
"hr_value": 16.0,
"hr_rank": 74,
"bb_value": 36.0,
"bb_rank": 105,
"k_value": 153.0,
"k_rank": 23,
"k_per_9_value": 8.71519,
"k_per_9_rank": 47,
"whip_value": 0.8924,
"whip_rank": 2.0,
"war_value": 4.74,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9525,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9525,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.935,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9388,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0274,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +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/20260902_STL@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260902 | 20260902_TOR@CLE | away | Dylan Cease | Dylan Cease | True | 6.0 | 6.0 | 0 | 2 | 0 | -2 | 6/4 | 1/0 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.334811529933481,
"WHIP": 1.0509977827050998,
"IP": 150.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 6.013,
"recent_avg_IP": 6.2,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 1.0079,
"sample_weight": 1.0,
"run_prevention_factor": 0.9143,
"strikeout_factor": 1.1326,
"walk_factor": 1.033,
"homer_factor": 0.88,
"regression_flag": "neutral",
"k_percent": 36.1,
"bb_percent": 10.8,
"woba": 0.247,
"xwoba": 0.254,
"barrel_percent": 5.1,
"hard_hit_percent": 32.3,
"whiff_percent": 34.2
},
"espn_rank": {
"rank": 3,
"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": "656302",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 7.0,
"R": 7.0,
"H": 15.0,
"BB": 14.0,
"SO": 43.0,
"HR": 3.0,
"BF": 120.0,
"Pitches": 515.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.4,
"H": 3.0,
"BB": 2.8,
"SO": 8.6,
"HR": 0.6,
"BF": 24.0,
"Pitches": 103.0
},
"rates": {
"ERA": 2.0323,
"WHIP": 0.9355,
"ER_per_IP": 0.22581,
"H_per_IP": 0.48387,
"BB_per_IP": 0.45161,
"SO_per_IP": 1.3871,
"HR_per_IP": 0.09677
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 67.0,
"ER": 11.0,
"R": 13.0,
"H": 30.0,
"BB": 25.0,
"SO": 89.0,
"HR": 5.0,
"BF": 252.0,
"Pitches": 1052.0
},
"per_game": {
"IP": 6.2,
"ER": 1.1,
"R": 1.3,
"H": 3.0,
"BB": 2.5,
"SO": 8.9,
"HR": 0.5,
"BF": 25.2,
"Pitches": 105.2
},
"rates": {
"ERA": 1.4776,
"WHIP": 0.8209,
"ER_per_IP": 0.16418,
"H_per_IP": 0.44776,
"BB_per_IP": 0.37313,
"SO_per_IP": 1.32836,
"HR_per_IP": 0.07463
}
},
"season": {
"games": 25,
"totals": {
"IP": 150.1,
"ER": 39.0,
"R": 44.0,
"H": 93.0,
"BB": 65.0,
"SO": 217.0,
"HR": 10.0,
"BF": 601.0,
"Pitches": 2550.0
},
"per_game": {
"IP": 6.0,
"ER": 1.56,
"R": 1.76,
"H": 3.72,
"BB": 2.6,
"SO": 8.68,
"HR": 0.4,
"BF": 24.04,
"Pitches": 102.0
},
"rates": {
"ERA": 2.3348,
"WHIP": 1.051,
"ER_per_IP": 0.25942,
"H_per_IP": 0.61863,
"BB_per_IP": 0.43237,
"SO_per_IP": 1.44346,
"HR_per_IP": 0.06652
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.634,
"predicted_H": 3.648,
"predicted_BB": 2.604,
"predicted_SO": 8.246,
"predicted_HR": 0.591,
"predicted_ERA": 2.3276,
"predicted_WHIP": 0.9892
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.1,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.634,
"final": 2.2083,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.648,
"final": 4.6369,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.604,
"final": 1.9296,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 8.246,
"final": 5.62,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.591,
"final": 0.3425,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3276,
"final": 2.3276,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9892,
"final": 0.9892,
"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": 67.0,
"ER": 11,
"H": 30,
"BB": 25,
"SO": 89,
"HR": 5,
"ERA": 1.4776119402985075,
"WHIP": 0.8208955223880597,
"K9": 11.955223880597014,
"HR9": 0.6716417910447762,
"games_pitched": 10,
"quality_starts": 9,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-28T00:00:00"
},
"recent_form_boost": 0.687759725443311,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 2.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": 2,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656302",
"player_name": "Dylan Cease",
"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": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": 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": 8.0,
"delta": 6.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 8.0,
"delta": 6.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 3.0,
"delta": -5.0,
"percent_delta": -0.625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 8.0,
"after": 3.0,
"delta": -5.0,
"percent_delta": -0.625,
"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": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": 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": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 139,
"wins": 68,
"losses": 71,
"win_pct": 0.4892,
"runs_scored": 549.0,
"runs_allowed": 604.0,
"run_differential": -55.0,
"run_differential_per_game": -0.3957,
"avg_runs_scored": 3.9496,
"avg_runs_allowed": 4.3453,
"offense_index": 0.8811,
"defense_index": 1.0316,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.2,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0577
},
"opponent": {
"team": "CLE",
"games": 138,
"wins": 70,
"losses": 68,
"win_pct": 0.5072,
"runs_scored": 563.0,
"runs_allowed": 560.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0217,
"avg_runs_scored": 4.0797,
"avg_runs_allowed": 4.058,
"offense_index": 0.9101,
"defense_index": 1.1047,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 3.0,
"run_differential": 26.0
},
"available": true,
"quality_score": 0.1138
},
"edges": {
"quality_edge": -0.1715,
"offense_edge": -0.1189,
"opponent_offense_edge": -0.0899,
"defense_strength": 0.0316,
"opponent_defense_weakness": -0.1047,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9977,
"run_prevention": 0.991,
"strikeout": 1.002
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656302",
"profile": {
"available": true,
"pitcher_id": "656302",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 549.0,
"k_percent": 36.1,
"bb_percent": 10.8,
"woba": 0.247,
"xwoba": 0.254,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 32.3,
"avg_best_speed": 73.2785,
"avg_hyper_speed": 93.1879,
"whiff_percent": 34.2,
"swing_percent": 45.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.2323,
"command_and_miss": 1.2804,
"regression_edge": -0.2,
"xwoba_edge": 1.6286,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.8,
"whiff_edge": 1.2857,
"bb_edge": -0.4125,
"pitch_design_score": 0.0616
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656302",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 102,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 102,
"pitch_usage": 0.0,
"release_speed": 90.9657064009816,
"release_spin_rate": 2491.7307751389935,
"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": 102,
"pitch_usage": 0.0,
"release_speed": 90.9657064009816,
"release_spin_rate": 2491.7307751389935,
"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.9657,
"release_spin_rate": 2491.7308,
"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.0616,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4403,
"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.0079,
"sample_weight": 1.0,
"run_prevention_factor": 0.9143,
"strikeout_factor": 1.1326,
"walk_factor": 1.033,
"homer_factor": 0.88,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656302",
"espn_id": 34943,
"player_name": "Dylan Cease",
"team": "TOR",
"role": "pitcher",
"espn_rank": 3,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 3,
"gp_value": 25.0,
"gp_rank": 298,
"gs_value": 25.0,
"gs_rank": 48,
"qs_value": 14.0,
"qs_rank": 18,
"era_value": 2.3348,
"era_rank": 4.0,
"w_value": 9.0,
"w_rank": 36,
"l_value": 5.0,
"l_rank": 130,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 150.1,
"ip_rank": 29,
"h_value": 93.0,
"h_rank": 118,
"er_value": 39.0,
"er_rank": 145,
"hr_value": 10.0,
"hr_rank": 151,
"bb_value": 65.0,
"bb_rank": 8,
"k_value": 217.0,
"k_rank": 2,
"k_per_9_value": 12.991132,
"k_per_9_rank": 1,
"whip_value": 1.0509,
"whip_rank": 9.0,
"war_value": 5.71,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9143,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9143,
"adjusted": 3
},
"predicted_BB": {
"original": 3.0,
"factor": 1.033,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.88,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.1326,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260902_TOR@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"
}
} |
| 20260902 | 20260902_TOR@CLE | home | Joey Cantillo | Joey Cantillo | True | 5.0 | 5.1 | 1 | 2 | 4 | 2 | 4/9 | 2/2 | 2/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6968215158924203,
"WHIP": 1.452322738386308,
"IP": 136.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.869,
"recent_avg_IP": 4.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1045,
"sample_weight": 1.0,
"run_prevention_factor": 0.9911,
"strikeout_factor": 1.044,
"walk_factor": 1.055,
"homer_factor": 1.0088,
"regression_flag": "neutral",
"k_percent": 24.6,
"bb_percent": 11.9,
"woba": 0.33,
"xwoba": 0.309,
"barrel_percent": 7.6,
"hard_hit_percent": 38.8,
"whiff_percent": 30.2
},
"espn_rank": {
"rank": 114,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 136.1,
"season_ERA": 3.697,
"season_WHIP": 1.452,
"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": 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": "676282",
"report_date": "20260902",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 7.0,
"R": 11.0,
"H": 17.0,
"BB": 16.0,
"SO": 21.0,
"HR": 2.0,
"BF": 97.0,
"Pitches": 380.0
},
"per_game": {
"IP": 4.2,
"ER": 1.4,
"R": 2.2,
"H": 3.4,
"BB": 3.2,
"SO": 4.2,
"HR": 0.4,
"BF": 19.4,
"Pitches": 76.0
},
"rates": {
"ERA": 2.7794,
"WHIP": 1.4559,
"ER_per_IP": 0.30882,
"H_per_IP": 0.75,
"BB_per_IP": 0.70588,
"SO_per_IP": 0.92647,
"HR_per_IP": 0.08824
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.1,
"ER": 17.0,
"R": 23.0,
"H": 48.0,
"BB": 26.0,
"SO": 56.0,
"HR": 3.0,
"BF": 206.0,
"Pitches": 802.0
},
"per_game": {
"IP": 4.2,
"ER": 1.7,
"R": 2.3,
"H": 4.8,
"BB": 2.6,
"SO": 5.6,
"HR": 0.3,
"BF": 20.6,
"Pitches": 80.2
},
"rates": {
"ERA": 3.375,
"WHIP": 1.6324,
"ER_per_IP": 0.375,
"H_per_IP": 1.05882,
"BB_per_IP": 0.57353,
"SO_per_IP": 1.23529,
"HR_per_IP": 0.06618
}
},
"season": {
"games": 28,
"totals": {
"IP": 136.1,
"ER": 56.0,
"R": 66.0,
"H": 128.0,
"BB": 70.0,
"SO": 145.0,
"HR": 15.0,
"BF": 589.0,
"Pitches": 2357.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.3571,
"H": 4.5714,
"BB": 2.5,
"SO": 5.1786,
"HR": 0.5357,
"BF": 21.0357,
"Pitches": 84.1786
},
"rates": {
"ERA": 3.6968,
"WHIP": 1.4523,
"ER_per_IP": 0.41076,
"H_per_IP": 0.93888,
"BB_per_IP": 0.51345,
"SO_per_IP": 1.06357,
"HR_per_IP": 0.11002
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.787,
"predicted_H": 4.332,
"predicted_BB": 2.784,
"predicted_SO": 4.982,
"predicted_HR": 0.45,
"predicted_ERA": 3.3683,
"predicted_WHIP": 1.4906
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.787,
"final": 1.8752,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.332,
"final": 4.1945,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.784,
"final": 2.4594,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.982,
"final": 3.7474,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.45,
"final": 0.6777,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3683,
"final": 3.3683,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4906,
"final": 1.4906,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.1,
"ER": 17,
"H": 48,
"BB": 26,
"SO": 56,
"HR": 3,
"ERA": 3.3750000000000004,
"WHIP": 1.6323529411764708,
"K9": 11.11764705882353,
"HR9": 0.5955882352941178,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 0.8967951909929264,
"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": 2.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": "676282",
"player_name": "Joey Cantillo",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 138,
"wins": 70,
"losses": 68,
"win_pct": 0.5072,
"runs_scored": 563.0,
"runs_allowed": 560.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0217,
"avg_runs_scored": 4.0797,
"avg_runs_allowed": 4.058,
"offense_index": 0.9101,
"defense_index": 1.1047,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 3.0,
"run_differential": 26.0
},
"available": true,
"quality_score": 0.1138
},
"opponent": {
"team": "TOR",
"games": 139,
"wins": 68,
"losses": 71,
"win_pct": 0.4892,
"runs_scored": 549.0,
"runs_allowed": 604.0,
"run_differential": -55.0,
"run_differential_per_game": -0.3957,
"avg_runs_scored": 3.9496,
"avg_runs_allowed": 4.3453,
"offense_index": 0.8811,
"defense_index": 1.0316,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.2,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0577
},
"edges": {
"quality_edge": 0.1715,
"offense_edge": -0.0899,
"opponent_offense_edge": -0.1189,
"defense_strength": 0.1047,
"opponent_defense_weakness": -0.0316,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0148,
"run_prevention": 0.9619,
"strikeout": 1.0147
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676282",
"profile": {
"available": true,
"pitcher_id": "676282",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 538.0,
"k_percent": 24.6,
"bb_percent": 11.9,
"woba": 0.33,
"xwoba": 0.309,
"sweet_spot_percent": 31.8,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 38.8,
"avg_best_speed": 76.5218,
"avg_hyper_speed": 93.8203,
"whiff_percent": 30.2,
"swing_percent": 44.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.15,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.45,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6205,
"avg_hyper_speed": 93.9051,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0141,
"command_and_miss": 0.2861,
"regression_edge": 0.6,
"xwoba_edge": 0.0571,
"barrel_edge": -0.0667,
"hard_hit_edge": -0.1286,
"whiff_edge": 0.7143,
"bb_edge": -0.6875,
"pitch_design_score": -0.2748
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676282",
"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": 84.95762368108332,
"release_spin_rate": 2024.6855383454645,
"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": 84.95762368108332,
"release_spin_rate": 2024.6855383454645,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 84.9576,
"release_spin_rate": 2024.6855,
"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.2748,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.963,
"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.1045,
"sample_weight": 1.0,
"run_prevention_factor": 0.9911,
"strikeout_factor": 1.044,
"walk_factor": 1.055,
"homer_factor": 1.0088,
"woba_minus_xwoba": 0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676282",
"espn_id": 42488,
"player_name": "Joey Cantillo",
"team": "CLE",
"role": "pitcher",
"espn_rank": 114,
"espn_total_ranked": 848,
"metrics": {
"espn_rank": 114,
"gp_value": 28.0,
"gp_rank": 226,
"gs_value": 28.0,
"gs_rank": 4,
"qs_value": 6.0,
"qs_rank": 89,
"era_value": 3.6968,
"era_rank": null,
"w_value": 9.0,
"w_rank": 36,
"l_value": 7.0,
"l_rank": 77,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 345,
"ip_value": 136.1,
"ip_rank": 56,
"h_value": 128.0,
"h_rank": 50,
"er_value": 56.0,
"er_rank": 68,
"hr_value": 15.0,
"hr_rank": 79,
"bb_value": 70.0,
"bb_rank": 2,
"k_value": 145.0,
"k_rank": 30,
"k_per_9_value": 9.572127,
"k_per_9_rank": 14,
"whip_value": 1.4523,
"whip_rank": null,
"war_value": 1.49,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9911,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9911,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.055,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0088,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.044,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260902_TOR@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"
}
} |