| 20260901 | 20260901_ATL@WAS | away | AJ Smith-Shawver | AJ Smith-Shawver | True | 4.1 | 4.0 | -1 | 3 | 5 | 2 | 6/6 | 2/3 | 2/5 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 5.926829268292683,
"WHIP": 1.6097560975609757,
"IP": 13.2,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 4.556,
"recent_avg_IP": 4.556,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2037,
"sample_weight": 0.45,
"run_prevention_factor": 1.0173,
"strikeout_factor": 0.9722,
"walk_factor": 1.0315,
"homer_factor": 1.0064,
"regression_flag": "neutral",
"k_percent": 15.9,
"bb_percent": 12.7,
"woba": 0.323,
"xwoba": 0.34,
"barrel_percent": 6.7,
"hard_hit_percent": 37.8,
"whiff_percent": 20.4
},
"espn_rank": {
"rank": 582,
"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": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "700363",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 13.2,
"ER": 9.0,
"R": 9.0,
"H": 14.0,
"BB": 8.0,
"SO": 10.0,
"HR": 1.0,
"BF": 63.0,
"Pitches": 234.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 4.6667,
"BB": 2.6667,
"SO": 3.3333,
"HR": 0.3333,
"BF": 21.0,
"Pitches": 78.0
},
"rates": {
"ERA": 5.9268,
"WHIP": 1.6098,
"ER_per_IP": 0.65854,
"H_per_IP": 1.02439,
"BB_per_IP": 0.58537,
"SO_per_IP": 0.73171,
"HR_per_IP": 0.07317
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 13.2,
"ER": 9.0,
"R": 9.0,
"H": 14.0,
"BB": 8.0,
"SO": 10.0,
"HR": 1.0,
"BF": 63.0,
"Pitches": 234.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 4.6667,
"BB": 2.6667,
"SO": 3.3333,
"HR": 0.3333,
"BF": 21.0,
"Pitches": 78.0
},
"rates": {
"ERA": 5.9268,
"WHIP": 1.6098,
"ER_per_IP": 0.65854,
"H_per_IP": 1.02439,
"BB_per_IP": 0.58537,
"SO_per_IP": 0.73171,
"HR_per_IP": 0.07317
}
},
"season": {
"games": 3,
"totals": {
"IP": 13.2,
"ER": 9.0,
"R": 9.0,
"H": 14.0,
"BB": 8.0,
"SO": 10.0,
"HR": 1.0,
"BF": 63.0,
"Pitches": 234.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 4.6667,
"BB": 2.6667,
"SO": 3.3333,
"HR": 0.3333,
"BF": 21.0,
"Pitches": 78.0
},
"rates": {
"ERA": 5.9268,
"WHIP": 1.6098,
"ER_per_IP": 0.65854,
"H_per_IP": 1.02439,
"BB_per_IP": 0.58537,
"SO_per_IP": 0.73171,
"HR_per_IP": 0.07317
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.605,
"predicted_H": 4.629,
"predicted_BB": 2.107,
"predicted_SO": 4.019,
"predicted_HR": 0.556,
"predicted_ERA": 5.0248,
"predicted_WHIP": 1.4433
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6141,
"form_weight": 0.3859,
"form_reliability": 0.375,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.605,
"final": 2.8476,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.629,
"final": 5.4709,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.107,
"final": 2.0413,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.019,
"final": 2.7792,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.556,
"final": 0.2146,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0248,
"final": 5.0248,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4433,
"final": 1.4433,
"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": 13.2,
"ER": 9,
"H": 14,
"BB": 8,
"SO": 10,
"HR": 1,
"ERA": 5.926829268292684,
"WHIP": 1.609756097560976,
"K9": 6.585365853658538,
"HR9": 0.6585365853658538,
"games_pitched": 3,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 3,
"error_prone": false
},
"games_count": 3,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 1.0811595316971523,
"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": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
}
},
{
"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": 6,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700363",
"player_name": "AJ Smith-Shawver",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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.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": "ATL",
"games": 138,
"wins": 82,
"losses": 56,
"win_pct": 0.5942,
"runs_scored": 639.0,
"runs_allowed": 526.0,
"run_differential": 113.0,
"run_differential_per_game": 0.8188,
"avg_runs_scored": 4.6304,
"avg_runs_allowed": 3.8116,
"offense_index": 1.0368,
"defense_index": 1.1717,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 3.0,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.2509
},
"opponent": {
"team": "WAS",
"games": 140,
"wins": 66,
"losses": 74,
"win_pct": 0.4714,
"runs_scored": 726.0,
"runs_allowed": 707.0,
"run_differential": 19.0,
"run_differential_per_game": 0.1357,
"avg_runs_scored": 5.1857,
"avg_runs_allowed": 5.05,
"offense_index": 1.1611,
"defense_index": 0.8844,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.5,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0076
},
"edges": {
"quality_edge": 0.2585,
"offense_edge": 0.0368,
"opponent_offense_edge": 0.1611,
"defense_strength": 0.1717,
"opponent_defense_weakness": 0.1156,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.009,
"run_prevention": 0.9957,
"strikeout": 0.9949
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700363",
"profile": {
"available": true,
"pitcher_id": "700363",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 40.0,
"k_percent": 15.9,
"bb_percent": 12.7,
"woba": 0.323,
"xwoba": 0.34,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 37.8,
"avg_best_speed": 78.025,
"avg_hyper_speed": 94.105,
"whiff_percent": 20.4,
"swing_percent": 46.2
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.3434,
"command_and_miss": -0.8007,
"regression_edge": -0.4857,
"xwoba_edge": -0.8286,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.0,
"whiff_edge": -0.6857,
"bb_edge": -0.875,
"pitch_design_score": -0.0463
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700363",
"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": 89.03730434782608,
"release_spin_rate": 1867.4026086956524,
"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": 89.03730434782608,
"release_spin_rate": 1867.4026086956524,
"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.0373,
"release_spin_rate": 1867.4026,
"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.0463,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.331,
"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.2037,
"sample_weight": 0.45,
"run_prevention_factor": 1.0173,
"strikeout_factor": 0.9722,
"walk_factor": 1.0315,
"homer_factor": 1.0064,
"woba_minus_xwoba": -0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "700363",
"espn_id": 4917640,
"player_name": "AJ Smith-Shawver",
"team": "ATL",
"role": "pitcher",
"espn_rank": 582,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 582,
"gp_value": 3.0,
"gp_rank": 691,
"gs_value": 3.0,
"gs_rank": 248,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 5.9268,
"era_rank": null,
"w_value": 0.0,
"w_rank": 517,
"l_value": 0.0,
"l_rank": 564,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 13.2,
"ip_rank": 563,
"h_value": 14.0,
"h_rank": 564,
"er_value": 9.0,
"er_rank": 538,
"hr_value": 1.0,
"hr_rank": 595,
"bb_value": 8.0,
"bb_rank": 513,
"k_value": 10.0,
"k_rank": 572,
"k_per_9_value": 6.585366,
"k_per_9_rank": 27,
"whip_value": 1.6097,
"whip_rank": null,
"war_value": -0.1,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0078,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0078,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0142,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0029,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9875,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 3 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."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_ATL@WAS | home | Jake Irvin | Jake Irvin | True | 5.0 | 4.0 | -3 | 2 | 2 | 0 | 5/5 | 1/1 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.620408163265306,
"WHIP": 1.3959183673469386,
"IP": 81.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 4.804,
"recent_avg_IP": 5.0,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5216,
"sample_weight": 1.0,
"run_prevention_factor": 1.0443,
"strikeout_factor": 0.9949,
"walk_factor": 1.032,
"homer_factor": 1.1436,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 10.8,
"woba": 0.337,
"xwoba": 0.351,
"barrel_percent": 11.2,
"hard_hit_percent": 44.8,
"whiff_percent": 23.5
},
"espn_rank": {
"rank": 735,
"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": "663623",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 16.0,
"R": 16.0,
"H": 24.0,
"BB": 15.0,
"SO": 23.0,
"HR": 5.0,
"BF": 114.0,
"Pitches": 467.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.2,
"H": 4.8,
"BB": 3.0,
"SO": 4.6,
"HR": 1.0,
"BF": 22.8,
"Pitches": 93.4
},
"rates": {
"ERA": 5.76,
"WHIP": 1.56,
"ER_per_IP": 0.64,
"H_per_IP": 0.96,
"BB_per_IP": 0.6,
"SO_per_IP": 0.92,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.0,
"ER": 32.0,
"R": 34.0,
"H": 45.0,
"BB": 24.0,
"SO": 43.0,
"HR": 10.0,
"BF": 208.0,
"Pitches": 860.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 3.4,
"H": 4.5,
"BB": 2.4,
"SO": 4.3,
"HR": 1.0,
"BF": 20.8,
"Pitches": 86.0
},
"rates": {
"ERA": 6.1277,
"WHIP": 1.4681,
"ER_per_IP": 0.68085,
"H_per_IP": 0.95745,
"BB_per_IP": 0.51064,
"SO_per_IP": 0.91489,
"HR_per_IP": 0.21277
}
},
"season": {
"games": 17,
"totals": {
"IP": 81.2,
"ER": 51.0,
"R": 55.0,
"H": 75.0,
"BB": 39.0,
"SO": 82.0,
"HR": 14.0,
"BF": 362.0,
"Pitches": 1477.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.2353,
"H": 4.4118,
"BB": 2.2941,
"SO": 4.8235,
"HR": 0.8235,
"BF": 21.2941,
"Pitches": 86.8824
},
"rates": {
"ERA": 5.6204,
"WHIP": 1.3959,
"ER_per_IP": 0.62449,
"H_per_IP": 0.91837,
"BB_per_IP": 0.47755,
"SO_per_IP": 1.00408,
"HR_per_IP": 0.17143
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.995,
"predicted_H": 4.643,
"predicted_BB": 2.453,
"predicted_SO": 4.547,
"predicted_HR": 0.908,
"predicted_ERA": 5.5477,
"predicted_WHIP": 1.4606
}
},
"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.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.995,
"final": 2.5512,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.643,
"final": 4.8022,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.453,
"final": 1.8049,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.547,
"final": 5.6411,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.908,
"final": 0.503,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5477,
"final": 5.5477,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4606,
"final": 1.4606,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.0,
"ER": 32,
"H": 45,
"BB": 24,
"SO": 43,
"HR": 10,
"ERA": 6.127659574468085,
"WHIP": 1.4680851063829787,
"K9": 8.23404255319149,
"HR9": 1.9148936170212767,
"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-27T00:00:00"
},
"recent_form_boost": 1.200999411697313,
"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": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 7.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663623",
"player_name": "Jake Irvin",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 140,
"wins": 66,
"losses": 74,
"win_pct": 0.4714,
"runs_scored": 726.0,
"runs_allowed": 707.0,
"run_differential": 19.0,
"run_differential_per_game": 0.1357,
"avg_runs_scored": 5.1857,
"avg_runs_allowed": 5.05,
"offense_index": 1.1611,
"defense_index": 0.8844,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.5,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0076
},
"opponent": {
"team": "ATL",
"games": 138,
"wins": 82,
"losses": 56,
"win_pct": 0.5942,
"runs_scored": 639.0,
"runs_allowed": 526.0,
"run_differential": 113.0,
"run_differential_per_game": 0.8188,
"avg_runs_scored": 4.6304,
"avg_runs_allowed": 3.8116,
"offense_index": 1.0368,
"defense_index": 1.1717,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 3.0,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.2509
},
"edges": {
"quality_edge": -0.2585,
"offense_edge": 0.1611,
"opponent_offense_edge": 0.0368,
"defense_strength": -0.1156,
"opponent_defense_weakness": -0.1717,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9847,
"run_prevention": 1.0304,
"strikeout": 0.9893
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663623",
"profile": {
"available": true,
"pitcher_id": "663623",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 313.0,
"k_percent": 22.7,
"bb_percent": 10.8,
"woba": 0.337,
"xwoba": 0.351,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 11.2,
"hard_hit_percent": 44.8,
"avg_best_speed": 77.4818,
"avg_hyper_speed": 94.6495,
"whiff_percent": 23.5,
"swing_percent": 46.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.7863,
"command_and_miss": -0.1136,
"regression_edge": -0.4,
"xwoba_edge": -1.1429,
"barrel_edge": -0.8667,
"hard_hit_edge": -1.0,
"whiff_edge": -0.2429,
"bb_edge": -0.4,
"pitch_design_score": -0.1465
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663623",
"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": 87.2489732816989,
"release_spin_rate": 2375.958323028785,
"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": 87.2489732816989,
"release_spin_rate": 2375.958323028785,
"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.249,
"release_spin_rate": 2375.9583,
"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.1465,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0463,
"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.5216,
"sample_weight": 1.0,
"run_prevention_factor": 1.0443,
"strikeout_factor": 0.9949,
"walk_factor": 1.032,
"homer_factor": 1.1436,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663623",
"espn_id": 41290,
"player_name": "Jake Irvin",
"team": "WSH",
"role": "pitcher",
"espn_rank": 735,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 735,
"gp_value": 17.0,
"gp_rank": 414,
"gs_value": 17.0,
"gs_rank": 113,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 5.6204,
"era_rank": null,
"w_value": 2.0,
"w_rank": 299,
"l_value": 8.0,
"l_rank": 44,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 81.2,
"ip_rank": 148,
"h_value": 75.0,
"h_rank": 152,
"er_value": 51.0,
"er_rank": 88,
"hr_value": 14.0,
"hr_rank": 95,
"bb_value": 39.0,
"bb_rank": 78,
"k_value": 82.0,
"k_rank": 140,
"k_per_9_value": 9.036735,
"k_per_9_rank": 25,
"whip_value": 1.3959,
"whip_rank": null,
"war_value": -0.42,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0443,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0443,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.032,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1436,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9949,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_BAL@COL | away | Kyle Bradish | Kyle Bradish | True | 5.1 | 5.0 | -1 | 3 | 2 | -1 | 6/6 | 2/2 | 2/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.027972027972028,
"WHIP": 1.4125874125874125,
"IP": 143.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.5,
"recent_avg_IP": 5.0,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0917,
"sample_weight": 1.0,
"run_prevention_factor": 1.0078,
"strikeout_factor": 0.9931,
"walk_factor": 1.02,
"homer_factor": 1.0248,
"regression_flag": "neutral",
"k_percent": 21.8,
"bb_percent": 10.2,
"woba": 0.329,
"xwoba": 0.32,
"barrel_percent": 8.1,
"hard_hit_percent": 38.3,
"whiff_percent": 24.1
},
"espn_rank": {
"rank": 139,
"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": "680694",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 15.0,
"R": 18.0,
"H": 31.0,
"BB": 10.0,
"SO": 19.0,
"HR": 4.0,
"BF": 109.0,
"Pitches": 435.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.6,
"H": 6.2,
"BB": 2.0,
"SO": 3.8,
"HR": 0.8,
"BF": 21.8,
"Pitches": 87.0
},
"rates": {
"ERA": 5.4,
"WHIP": 1.64,
"ER_per_IP": 0.6,
"H_per_IP": 1.24,
"BB_per_IP": 0.4,
"SO_per_IP": 0.76,
"HR_per_IP": 0.16
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 28.0,
"R": 32.0,
"H": 53.0,
"BB": 20.0,
"SO": 39.0,
"HR": 5.0,
"BF": 229.0,
"Pitches": 904.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 3.2,
"H": 5.3,
"BB": 2.0,
"SO": 3.9,
"HR": 0.5,
"BF": 22.9,
"Pitches": 90.4
},
"rates": {
"ERA": 4.6667,
"WHIP": 1.3519,
"ER_per_IP": 0.51852,
"H_per_IP": 0.98148,
"BB_per_IP": 0.37037,
"SO_per_IP": 0.72222,
"HR_per_IP": 0.09259
}
},
"season": {
"games": 26,
"totals": {
"IP": 143.0,
"ER": 64.0,
"R": 73.0,
"H": 140.0,
"BB": 62.0,
"SO": 133.0,
"HR": 16.0,
"BF": 610.0,
"Pitches": 2393.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4615,
"R": 2.8077,
"H": 5.3846,
"BB": 2.3846,
"SO": 5.1154,
"HR": 0.6154,
"BF": 23.4615,
"Pitches": 92.0385
},
"rates": {
"ERA": 4.028,
"WHIP": 1.4126,
"ER_per_IP": 0.44755,
"H_per_IP": 0.97902,
"BB_per_IP": 0.43357,
"SO_per_IP": 0.93007,
"HR_per_IP": 0.11189
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.781,
"predicted_H": 5.609,
"predicted_BB": 2.043,
"predicted_SO": 4.199,
"predicted_HR": 0.677,
"predicted_ERA": 4.8068,
"predicted_WHIP": 1.4694
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.781,
"final": 2.8726,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.609,
"final": 5.7725,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.043,
"final": 2.025,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.199,
"final": 3.2795,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.677,
"final": 0.8121,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8068,
"final": 4.8068,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4694,
"final": 1.4694,
"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": 28,
"H": 53,
"BB": 20,
"SO": 39,
"HR": 5,
"ERA": 4.666666666666667,
"WHIP": 1.3518518518518519,
"K9": 6.5,
"HR9": 0.8333333333333334,
"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-26T00:00:00"
},
"recent_form_boost": 1.0337318782063754,
"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": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680694",
"player_name": "Kyle Bradish",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 138,
"wins": 69,
"losses": 69,
"win_pct": 0.5,
"runs_scored": 628.0,
"runs_allowed": 645.0,
"run_differential": -17.0,
"run_differential_per_game": -0.1232,
"avg_runs_scored": 4.5507,
"avg_runs_allowed": 4.6739,
"offense_index": 1.0186,
"defense_index": 0.9558,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.5,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.0898
},
"opponent": {
"team": "COL",
"games": 138,
"wins": 52,
"losses": 86,
"win_pct": 0.3768,
"runs_scored": 645.0,
"runs_allowed": 788.0,
"run_differential": -143.0,
"run_differential_per_game": -1.0362,
"avg_runs_scored": 4.6739,
"avg_runs_allowed": 5.7101,
"offense_index": 1.0462,
"defense_index": 0.7824,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 4.6,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.3373
},
"edges": {
"quality_edge": 0.4271,
"offense_edge": 0.0186,
"opponent_offense_edge": 0.0462,
"defense_strength": -0.0442,
"opponent_defense_weakness": 0.2176,
"recent_win_pct_edge": 0.6
},
"player_factors": {
"ip": 1.0139,
"run_prevention": 0.9905,
"strikeout": 1.0091
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680694",
"profile": {
"available": true,
"pitcher_id": "680694",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 555.0,
"k_percent": 21.8,
"bb_percent": 10.2,
"woba": 0.329,
"xwoba": 0.32,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 38.3,
"avg_best_speed": 76.9014,
"avg_hyper_speed": 94.0185,
"whiff_percent": 24.1,
"swing_percent": 45.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1631,
"command_and_miss": -0.1114,
"regression_edge": 0.2571,
"xwoba_edge": -0.2571,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.0714,
"whiff_edge": -0.1571,
"bb_edge": -0.25,
"pitch_design_score": 0.0364
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680694",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 90.5144544635341,
"release_spin_rate": 2427.3950290002913,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 90.5144544635341,
"release_spin_rate": 2427.3950290002913,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.5145,
"release_spin_rate": 2427.395,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0364,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2599,
"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.0917,
"sample_weight": 1.0,
"run_prevention_factor": 1.0078,
"strikeout_factor": 0.9931,
"walk_factor": 1.02,
"homer_factor": 1.0248,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680694",
"espn_id": 4311625,
"player_name": "Kyle Bradish",
"team": "BAL",
"role": "pitcher",
"espn_rank": 139,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 139,
"gp_value": 26.0,
"gp_rank": 273,
"gs_value": 26.0,
"gs_rank": 33,
"qs_value": 12.0,
"qs_rank": 30,
"era_value": 4.0279,
"era_rank": 38.0,
"w_value": 7.0,
"w_rank": 76,
"l_value": 12.0,
"l_rank": 7,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 143.0,
"ip_rank": 42,
"h_value": 140.0,
"h_rank": 21,
"er_value": 64.0,
"er_rank": 39,
"hr_value": 16.0,
"hr_rank": 73,
"bb_value": 62.0,
"bb_rank": 12,
"k_value": 133.0,
"k_rank": 42,
"k_per_9_value": 8.370629,
"k_per_9_rank": 27,
"whip_value": 1.4125,
"whip_rank": 47.0,
"war_value": 1.19,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0078,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0078,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.02,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0248,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9931,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_BAL@COL | home | Gabriel Hughes | Gabriel Hughes | True | 4.1 | 4.2 | 1 | 5 | 1 | -4 | 7/4 | 0/2 | 9/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.608391608391608,
"WHIP": 1.4475524475524477,
"IP": 47.2,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 4.963,
"recent_avg_IP": 4.667,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0828,
"sample_weight": 0.648,
"run_prevention_factor": 0.993,
"strikeout_factor": 0.9615,
"walk_factor": 0.9974,
"homer_factor": 0.9271,
"regression_flag": "positive_pitcher_regression",
"k_percent": 18.0,
"bb_percent": 9.0,
"woba": 0.334,
"xwoba": 0.295,
"barrel_percent": 4.6,
"hard_hit_percent": 28.9,
"whiff_percent": 18.7
},
"espn_rank": {
"rank": 595,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687312",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 26.0,
"R": 26.0,
"H": 28.0,
"BB": 12.0,
"SO": 17.0,
"HR": 5.0,
"BF": 112.0,
"Pitches": 427.0
},
"per_game": {
"IP": 4.2,
"ER": 5.2,
"R": 5.2,
"H": 5.6,
"BB": 2.4,
"SO": 3.4,
"HR": 1.0,
"BF": 22.4,
"Pitches": 85.4
},
"rates": {
"ERA": 10.0286,
"WHIP": 1.7143,
"ER_per_IP": 1.11429,
"H_per_IP": 1.2,
"BB_per_IP": 0.51429,
"SO_per_IP": 0.72857,
"HR_per_IP": 0.21429
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 35.0,
"R": 35.0,
"H": 50.0,
"BB": 19.0,
"SO": 38.0,
"HR": 5.0,
"BF": 211.0,
"Pitches": 820.0
},
"per_game": {
"IP": 4.2,
"ER": 3.5,
"R": 3.5,
"H": 5.0,
"BB": 1.9,
"SO": 3.8,
"HR": 0.5,
"BF": 21.1,
"Pitches": 82.0
},
"rates": {
"ERA": 6.6084,
"WHIP": 1.4476,
"ER_per_IP": 0.73427,
"H_per_IP": 1.04895,
"BB_per_IP": 0.3986,
"SO_per_IP": 0.7972,
"HR_per_IP": 0.1049
}
},
"season": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 35.0,
"R": 35.0,
"H": 50.0,
"BB": 19.0,
"SO": 38.0,
"HR": 5.0,
"BF": 211.0,
"Pitches": 820.0
},
"per_game": {
"IP": 4.2,
"ER": 3.5,
"R": 3.5,
"H": 5.0,
"BB": 1.9,
"SO": 3.8,
"HR": 0.5,
"BF": 21.1,
"Pitches": 82.0
},
"rates": {
"ERA": 6.6084,
"WHIP": 1.4476,
"ER_per_IP": 0.73427,
"H_per_IP": 1.04895,
"BB_per_IP": 0.3986,
"SO_per_IP": 0.7972,
"HR_per_IP": 0.1049
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 3.724,
"predicted_H": 5.04,
"predicted_BB": 2.02,
"predicted_SO": 3.821,
"predicted_HR": 0.746,
"predicted_ERA": 7.1828,
"predicted_WHIP": 1.5129
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.724,
"final": 4.3503,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.04,
"final": 6.002,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.02,
"final": 1.0285,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 3.821,
"final": 6.363,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.746,
"final": 0.8707,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 7.1828,
"final": 7.1828,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5129,
"final": 1.5129,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.2,
"ER": 35,
"H": 50,
"BB": 19,
"SO": 38,
"HR": 5,
"ERA": 6.608391608391608,
"WHIP": 1.4475524475524477,
"K9": 7.174825174825175,
"HR9": 0.9440559440559441,
"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-27T00:00:00"
},
"recent_form_boost": 1.2545684490429463,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 0.0,
"predicted_SO": 9.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
},
{
"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": 5,
"predicted_H": 7,
"predicted_BB": 0,
"predicted_SO": 9,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687312",
"player_name": "Gabriel Hughes",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 9.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 5.0,
"predicted_SO": 9.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 138,
"wins": 52,
"losses": 86,
"win_pct": 0.3768,
"runs_scored": 645.0,
"runs_allowed": 788.0,
"run_differential": -143.0,
"run_differential_per_game": -1.0362,
"avg_runs_scored": 4.6739,
"avg_runs_allowed": 5.7101,
"offense_index": 1.0462,
"defense_index": 0.7824,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 4.6,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.3373
},
"opponent": {
"team": "BAL",
"games": 138,
"wins": 69,
"losses": 69,
"win_pct": 0.5,
"runs_scored": 628.0,
"runs_allowed": 645.0,
"run_differential": -17.0,
"run_differential_per_game": -0.1232,
"avg_runs_scored": 4.5507,
"avg_runs_allowed": 4.6739,
"offense_index": 1.0186,
"defense_index": 0.9558,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.5,
"run_differential": 19.0
},
"available": true,
"quality_score": 0.0898
},
"edges": {
"quality_edge": -0.4271,
"offense_edge": 0.0462,
"opponent_offense_edge": 0.0186,
"defense_strength": -0.2176,
"opponent_defense_weakness": 0.0442,
"recent_win_pct_edge": -0.6
},
"player_factors": {
"ip": 0.9756,
"run_prevention": 1.0461,
"strikeout": 0.9857
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687312",
"profile": {
"available": true,
"pitcher_id": "687312",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 162.0,
"k_percent": 18.0,
"bb_percent": 9.0,
"woba": 0.334,
"xwoba": 0.295,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 4.6,
"hard_hit_percent": 28.9,
"avg_best_speed": 77.7927,
"avg_hyper_speed": 92.6569,
"whiff_percent": 18.7,
"swing_percent": 47.7
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.2965,
"command_and_miss": -0.5657,
"regression_edge": 1.1143,
"xwoba_edge": 0.4571,
"barrel_edge": 0.6,
"hard_hit_edge": 1.2714,
"whiff_edge": -0.9286,
"bb_edge": 0.05,
"pitch_design_score": -0.0324
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687312",
"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": 89.28619381193431,
"release_spin_rate": 2171.9113714304062,
"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": 89.28619381193431,
"release_spin_rate": 2171.9113714304062,
"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.2862,
"release_spin_rate": 2171.9114,
"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.0324,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2314,
"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.0828,
"sample_weight": 0.648,
"run_prevention_factor": 0.993,
"strikeout_factor": 0.9615,
"walk_factor": 0.9974,
"homer_factor": 0.9271,
"woba_minus_xwoba": 0.039,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "687312",
"espn_id": 4634930,
"player_name": "Gabriel Hughes",
"team": "COL",
"role": "pitcher",
"espn_rank": 595,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 595,
"gp_value": 10.0,
"gp_rank": 509,
"gs_value": 9.0,
"gs_rank": 174,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 6.6083,
"era_rank": null,
"w_value": 0.0,
"w_rank": 517,
"l_value": 6.0,
"l_rank": 102,
"sv_value": 1.0,
"sv_rank": 133,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 47.2,
"ip_rank": 298,
"h_value": 50.0,
"h_rank": 227,
"er_value": 35.0,
"er_rank": 158,
"hr_value": 5.0,
"hr_rank": 299,
"bb_value": 19.0,
"bb_rank": 297,
"k_value": 38.0,
"k_rank": 350,
"k_per_9_value": 7.174825,
"k_per_9_rank": 31,
"whip_value": 1.4475,
"whip_rank": null,
"war_value": -0.12,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 0.9955,
"adjusted": 5
},
"predicted_H": {
"original": 5.0,
"factor": 0.9955,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9983,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9528,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9751,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 0,
"predicted_SO": 9,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 88,
"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."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_CHW@HOU | away | Sean Burke | Sean Burke | True | 5.0 | 5.2 | 2 | 4 | 0 | -4 | 7/1 | 1/4 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3221476510067114,
"WHIP": 1.1543624161073827,
"IP": 149.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.391,
"recent_avg_IP": 4.933,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1835,
"sample_weight": 1.0,
"run_prevention_factor": 0.9844,
"strikeout_factor": 1.028,
"walk_factor": 0.98,
"homer_factor": 0.9936,
"regression_flag": "neutral",
"k_percent": 26.3,
"bb_percent": 8.2,
"woba": 0.299,
"xwoba": 0.298,
"barrel_percent": 7.6,
"hard_hit_percent": 37.7,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 12,
"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": "680732",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 13.0,
"R": 13.0,
"H": 22.0,
"BB": 13.0,
"SO": 21.0,
"HR": 5.0,
"BF": 108.0,
"Pitches": 447.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.6,
"H": 4.4,
"BB": 2.6,
"SO": 4.2,
"HR": 1.0,
"BF": 21.6,
"Pitches": 89.4
},
"rates": {
"ERA": 4.7432,
"WHIP": 1.4189,
"ER_per_IP": 0.52703,
"H_per_IP": 0.89189,
"BB_per_IP": 0.52703,
"SO_per_IP": 0.85135,
"HR_per_IP": 0.2027
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 17.0,
"R": 18.0,
"H": 42.0,
"BB": 17.0,
"SO": 66.0,
"HR": 7.0,
"BF": 226.0,
"Pitches": 931.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7,
"R": 1.8,
"H": 4.2,
"BB": 1.7,
"SO": 6.6,
"HR": 0.7,
"BF": 22.6,
"Pitches": 93.1
},
"rates": {
"ERA": 2.716,
"WHIP": 1.0473,
"ER_per_IP": 0.30178,
"H_per_IP": 0.74556,
"BB_per_IP": 0.30178,
"SO_per_IP": 1.1716,
"HR_per_IP": 0.12426
}
},
"season": {
"games": 27,
"totals": {
"IP": 149.0,
"ER": 55.0,
"R": 57.0,
"H": 122.0,
"BB": 50.0,
"SO": 161.0,
"HR": 18.0,
"BF": 613.0,
"Pitches": 2446.0
},
"per_game": {
"IP": 5.2,
"ER": 2.037,
"R": 2.1111,
"H": 4.5185,
"BB": 1.8519,
"SO": 5.963,
"HR": 0.6667,
"BF": 22.7037,
"Pitches": 90.5926
},
"rates": {
"ERA": 3.3221,
"WHIP": 1.1544,
"ER_per_IP": 0.36913,
"H_per_IP": 0.81879,
"BB_per_IP": 0.33557,
"SO_per_IP": 1.08054,
"HR_per_IP": 0.12081
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.28,
"predicted_H": 4.507,
"predicted_BB": 2.144,
"predicted_SO": 5.3,
"predicted_HR": 0.833,
"predicted_ERA": 3.8641,
"predicted_WHIP": 1.2527
}
},
"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.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.28,
"final": 2.9955,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.507,
"final": 5.5441,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.144,
"final": 1.6681,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.3,
"final": 4.7592,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.833,
"final": 0.4865,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8641,
"final": 3.8641,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2527,
"final": 1.2527,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 17,
"H": 42,
"BB": 17,
"SO": 66,
"HR": 7,
"ERA": 2.715976331360947,
"WHIP": 1.047337278106509,
"K9": 10.544378698224852,
"HR9": 1.1183431952662723,
"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-26T00:00:00"
},
"recent_form_boost": 0.8066663511408483,
"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": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680732",
"player_name": "Sean Burke",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": "CHW",
"games": 137,
"wins": 72,
"losses": 65,
"win_pct": 0.5255,
"runs_scored": 655.0,
"runs_allowed": 614.0,
"run_differential": 41.0,
"run_differential_per_game": 0.2993,
"avg_runs_scored": 4.781,
"avg_runs_allowed": 4.4818,
"offense_index": 1.0721,
"defense_index": 0.9951,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 5.4,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0936
},
"opponent": {
"team": "HOU",
"games": 138,
"wins": 70,
"losses": 68,
"win_pct": 0.5072,
"runs_scored": 630.0,
"runs_allowed": 670.0,
"run_differential": -40.0,
"run_differential_per_game": -0.2899,
"avg_runs_scored": 4.5652,
"avg_runs_allowed": 4.8551,
"offense_index": 1.0237,
"defense_index": 0.9186,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.1,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0054
},
"edges": {
"quality_edge": 0.0882,
"offense_edge": 0.0721,
"opponent_offense_edge": 0.0237,
"defense_strength": -0.0049,
"opponent_defense_weakness": 0.0814,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0024,
"run_prevention": 0.9999,
"strikeout": 1.0008
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680732",
"profile": {
"available": true,
"pitcher_id": "680732",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 546.0,
"k_percent": 26.3,
"bb_percent": 8.2,
"woba": 0.299,
"xwoba": 0.298,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 37.7,
"avg_best_speed": 79.0384,
"avg_hyper_speed": 93.8038,
"whiff_percent": 25.7,
"swing_percent": 49.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.1582,
"command_and_miss": 0.3579,
"regression_edge": 0.0286,
"xwoba_edge": 0.3714,
"barrel_edge": -0.0667,
"hard_hit_edge": 0.0143,
"whiff_edge": 0.0714,
"bb_edge": 0.25,
"pitch_design_score": -0.0119
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680732",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.65202320477285,
"release_spin_rate": 2508.661669048999,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.65202320477285,
"release_spin_rate": 2508.661669048999,
"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.652,
"release_spin_rate": 2508.6617,
"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.0119,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0851,
"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.1835,
"sample_weight": 1.0,
"run_prevention_factor": 0.9844,
"strikeout_factor": 1.028,
"walk_factor": 0.98,
"homer_factor": 0.9936,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680732",
"espn_id": 4867679,
"player_name": "Sean Burke",
"team": "CHW",
"role": "pitcher",
"espn_rank": 12,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 12,
"gp_value": 27.0,
"gp_rank": 240,
"gs_value": 23.0,
"gs_rank": 71,
"qs_value": 10.0,
"qs_rank": 54,
"era_value": 3.3221,
"era_rank": 20.0,
"w_value": 7.0,
"w_rank": 76,
"l_value": 6.0,
"l_rank": 102,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 149.0,
"ip_rank": 31,
"h_value": 122.0,
"h_rank": 62,
"er_value": 55.0,
"er_rank": 71,
"hr_value": 18.0,
"hr_rank": 46,
"bb_value": 50.0,
"bb_rank": 27,
"k_value": 161.0,
"k_rank": 18,
"k_per_9_value": 9.724833,
"k_per_9_rank": 15,
"whip_value": 1.1543,
"whip_rank": 23.0,
"war_value": 3.96,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9844,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9844,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9936,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.028,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 91,
"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 6",
"detail": "Actual minus predicted hits was -6."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_CHW@HOU | home | Ronel Blanco | Ronel Blanco | True | 4.1 | 4.0 | -1 | 4 | 0 | -4 | 5/3 | 3/3 | 4/3 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 7.714285714285714,
"WHIP": 1.4571428571428573,
"IP": 23.1,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 4.833,
"recent_avg_IP": 4.833,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2309,
"sample_weight": 0.45,
"run_prevention_factor": 1.0196,
"strikeout_factor": 0.9961,
"walk_factor": 1.0243,
"homer_factor": 1.05,
"regression_flag": "positive_pitcher_regression",
"k_percent": 19.8,
"bb_percent": 11.9,
"woba": 0.387,
"xwoba": 0.354,
"barrel_percent": 11.8,
"hard_hit_percent": 36.8,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 736,
"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": "669854",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 20.0,
"R": 20.0,
"H": 22.0,
"BB": 12.0,
"SO": 20.0,
"HR": 7.0,
"BF": 101.0,
"Pitches": 390.0
},
"per_game": {
"IP": 4.2,
"ER": 4.0,
"R": 4.0,
"H": 4.4,
"BB": 2.4,
"SO": 4.0,
"HR": 1.4,
"BF": 20.2,
"Pitches": 78.0
},
"rates": {
"ERA": 7.7143,
"WHIP": 1.4571,
"ER_per_IP": 0.85714,
"H_per_IP": 0.94286,
"BB_per_IP": 0.51429,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.3
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 20.0,
"R": 20.0,
"H": 22.0,
"BB": 12.0,
"SO": 20.0,
"HR": 7.0,
"BF": 101.0,
"Pitches": 390.0
},
"per_game": {
"IP": 4.2,
"ER": 4.0,
"R": 4.0,
"H": 4.4,
"BB": 2.4,
"SO": 4.0,
"HR": 1.4,
"BF": 20.2,
"Pitches": 78.0
},
"rates": {
"ERA": 7.7143,
"WHIP": 1.4571,
"ER_per_IP": 0.85714,
"H_per_IP": 0.94286,
"BB_per_IP": 0.51429,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.3
}
},
"season": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 20.0,
"R": 20.0,
"H": 22.0,
"BB": 12.0,
"SO": 20.0,
"HR": 7.0,
"BF": 101.0,
"Pitches": 390.0
},
"per_game": {
"IP": 4.2,
"ER": 4.0,
"R": 4.0,
"H": 4.4,
"BB": 2.4,
"SO": 4.0,
"HR": 1.4,
"BF": 20.2,
"Pitches": 78.0
},
"rates": {
"ERA": 7.7143,
"WHIP": 1.4571,
"ER_per_IP": 0.85714,
"H_per_IP": 0.94286,
"BB_per_IP": 0.51429,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.3
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.275,
"predicted_H": 4.629,
"predicted_BB": 2.14,
"predicted_SO": 4.341,
"predicted_HR": 1.08,
"predicted_ERA": 6.0989,
"predicted_WHIP": 1.4003
}
},
"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.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.275,
"final": 2.5594,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.629,
"final": 4.8372,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.14,
"final": 2.6227,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.341,
"final": 4.1496,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.08,
"final": 1.0351,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.0989,
"final": 6.0989,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4003,
"final": 1.4003,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 23.1,
"ER": 20,
"H": 22,
"BB": 12,
"SO": 20,
"HR": 7,
"ERA": 7.7142857142857135,
"WHIP": 1.457142857142857,
"K9": 7.7142857142857135,
"HR9": 2.6999999999999997,
"games_pitched": 5,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-08-15T00:00:00"
},
"recent_form_boost": 1.2888016566449854,
"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": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 4,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669854",
"player_name": "Ronel Blanco",
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"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": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"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": 138,
"wins": 70,
"losses": 68,
"win_pct": 0.5072,
"runs_scored": 630.0,
"runs_allowed": 670.0,
"run_differential": -40.0,
"run_differential_per_game": -0.2899,
"avg_runs_scored": 4.5652,
"avg_runs_allowed": 4.8551,
"offense_index": 1.0237,
"defense_index": 0.9186,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.1,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0054
},
"opponent": {
"team": "CHW",
"games": 137,
"wins": 72,
"losses": 65,
"win_pct": 0.5255,
"runs_scored": 655.0,
"runs_allowed": 614.0,
"run_differential": 41.0,
"run_differential_per_game": 0.2993,
"avg_runs_scored": 4.781,
"avg_runs_allowed": 4.4818,
"offense_index": 1.0721,
"defense_index": 0.9951,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 5.4,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0936
},
"edges": {
"quality_edge": -0.0882,
"offense_edge": 0.0237,
"opponent_offense_edge": 0.0721,
"defense_strength": -0.0814,
"opponent_defense_weakness": 0.0049,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9911,
"run_prevention": 1.0241,
"strikeout": 0.9916
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669854",
"profile": {
"available": true,
"pitcher_id": "669854",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 80.0,
"k_percent": 19.8,
"bb_percent": 11.9,
"woba": 0.387,
"xwoba": 0.354,
"sweet_spot_percent": 27.9,
"barrel_batted_rate": 11.8,
"hard_hit_percent": 36.8,
"avg_best_speed": 79.8897,
"avg_hyper_speed": 93.5115,
"whiff_percent": 25.8,
"swing_percent": 50.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.9539,
"command_and_miss": -0.24,
"regression_edge": 0.9429,
"xwoba_edge": -1.2286,
"barrel_edge": -1.0,
"hard_hit_edge": 0.1429,
"whiff_edge": 0.0857,
"bb_edge": -0.675,
"pitch_design_score": -0.1342
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669854",
"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": 87.46770737139919,
"release_spin_rate": 2022.1533803616999,
"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": 87.46770737139919,
"release_spin_rate": 2022.1533803616999,
"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.4677,
"release_spin_rate": 2022.1534,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1342,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9588,
"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.2309,
"sample_weight": 0.45,
"run_prevention_factor": 1.0196,
"strikeout_factor": 0.9961,
"walk_factor": 1.0243,
"homer_factor": 1.05,
"woba_minus_xwoba": 0.033,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "669854",
"espn_id": 41829,
"player_name": "Ronel Blanco",
"team": "HOU",
"role": "pitcher",
"espn_rank": 736,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 736,
"gp_value": 5.0,
"gp_rank": 609,
"gs_value": 4.0,
"gs_rank": 228,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 7.7142,
"era_rank": null,
"w_value": 0.0,
"w_rank": 517,
"l_value": 1.0,
"l_rank": 413,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 23.1,
"ip_rank": 469,
"h_value": 22.0,
"h_rank": 472,
"er_value": 20.0,
"er_rank": 301,
"hr_value": 7.0,
"hr_rank": 218,
"bb_value": 12.0,
"bb_rank": 429,
"k_value": 20.0,
"k_rank": 471,
"k_per_9_value": 7.714286,
"k_per_9_rank": 27,
"whip_value": 1.4571,
"whip_rank": null,
"war_value": -0.42,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0088,
"adjusted": 4
},
"predicted_H": {
"original": 4.0,
"factor": 1.0088,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0109,
"adjusted": 3
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0225,
"adjusted": 2
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9982,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 93,
"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": "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": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_DET@MIN | away | Troy Melton | Troy Melton | True | 6.0 | 5.1 | -2 | 2 | 5 | 3 | 2/6 | 4/1 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.8556701030927836,
"WHIP": 1.0103092783505154,
"IP": 97.0,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 6.062,
"recent_avg_IP": 6.0,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2963,
"sample_weight": 1.0,
"run_prevention_factor": 0.9748,
"strikeout_factor": 0.9937,
"walk_factor": 0.962,
"homer_factor": 0.9494,
"regression_flag": "neutral",
"k_percent": 20.9,
"bb_percent": 7.3,
"woba": 0.27,
"xwoba": 0.287,
"barrel_percent": 5.9,
"hard_hit_percent": 36.9,
"whiff_percent": 25.1
},
"espn_rank": {
"rank": 13,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "675512",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 7.0,
"R": 10.0,
"H": 29.0,
"BB": 7.0,
"SO": 20.0,
"HR": 2.0,
"BF": 122.0,
"Pitches": 454.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 2.0,
"H": 5.8,
"BB": 1.4,
"SO": 4.0,
"HR": 0.4,
"BF": 24.4,
"Pitches": 90.8
},
"rates": {
"ERA": 2.1,
"WHIP": 1.2,
"ER_per_IP": 0.23333,
"H_per_IP": 0.96667,
"BB_per_IP": 0.23333,
"SO_per_IP": 0.66667,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.1,
"ER": 10.0,
"R": 14.0,
"H": 47.0,
"BB": 19.0,
"SO": 55.0,
"HR": 3.0,
"BF": 237.0,
"Pitches": 905.0
},
"per_game": {
"IP": 6.0,
"ER": 1.0,
"R": 1.4,
"H": 4.7,
"BB": 1.9,
"SO": 5.5,
"HR": 0.3,
"BF": 23.7,
"Pitches": 90.5
},
"rates": {
"ERA": 1.5169,
"WHIP": 1.1124,
"ER_per_IP": 0.16854,
"H_per_IP": 0.79213,
"BB_per_IP": 0.32022,
"SO_per_IP": 0.92697,
"HR_per_IP": 0.05056
}
},
"season": {
"games": 16,
"totals": {
"IP": 97.0,
"ER": 20.0,
"R": 24.0,
"H": 70.0,
"BB": 28.0,
"SO": 80.0,
"HR": 10.0,
"BF": 382.0,
"Pitches": 1427.0
},
"per_game": {
"IP": 6.0,
"ER": 1.25,
"R": 1.5,
"H": 4.375,
"BB": 1.75,
"SO": 5.0,
"HR": 0.625,
"BF": 23.875,
"Pitches": 89.1875
},
"rates": {
"ERA": 1.8557,
"WHIP": 1.0103,
"ER_per_IP": 0.20619,
"H_per_IP": 0.72165,
"BB_per_IP": 0.28866,
"SO_per_IP": 0.82474,
"HR_per_IP": 0.10309
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.65,
"predicted_H": 5.305,
"predicted_BB": 1.786,
"predicted_SO": 4.95,
"predicted_HR": 0.522,
"predicted_ERA": 2.4748,
"predicted_WHIP": 1.1819
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.65,
"final": 2.2583,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.305,
"final": 4.2664,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.786,
"final": 2.7836,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.95,
"final": 5.4231,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.522,
"final": 0.2868,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4748,
"final": 2.4748,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1819,
"final": 1.1819,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.1,
"ER": 10,
"H": 47,
"BB": 19,
"SO": 55,
"HR": 3,
"ERA": 1.5168539325842694,
"WHIP": 1.1123595505617976,
"K9": 8.342696629213481,
"HR9": 0.45505617977528084,
"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-26T00:00:00"
},
"recent_form_boost": 0.6950300914696047,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "675512",
"player_name": "Troy Melton",
"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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 3.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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 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": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 137,
"wins": 63,
"losses": 74,
"win_pct": 0.4599,
"runs_scored": 597.0,
"runs_allowed": 542.0,
"run_differential": 55.0,
"run_differential_per_game": 0.4015,
"avg_runs_scored": 4.3577,
"avg_runs_allowed": 3.9562,
"offense_index": 0.9771,
"defense_index": 1.1273,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.0,
"avg_runs_allowed": 4.7,
"run_differential": -27.0
},
"available": true,
"quality_score": -0.0896
},
"opponent": {
"team": "MIN",
"games": 138,
"wins": 66,
"losses": 72,
"win_pct": 0.4783,
"runs_scored": 637.0,
"runs_allowed": 683.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3333,
"avg_runs_scored": 4.6159,
"avg_runs_allowed": 4.9493,
"offense_index": 1.035,
"defense_index": 0.9011,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 5.0,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.1295
},
"edges": {
"quality_edge": 0.0399,
"offense_edge": -0.0229,
"opponent_offense_edge": 0.035,
"defense_strength": 0.1273,
"opponent_defense_weakness": 0.0989,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.004,
"run_prevention": 0.9909,
"strikeout": 0.9984
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "675512",
"profile": {
"available": true,
"pitcher_id": "675512",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 329.0,
"k_percent": 20.9,
"bb_percent": 7.3,
"woba": 0.27,
"xwoba": 0.287,
"sweet_spot_percent": 28.4,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 36.9,
"avg_best_speed": 78.1016,
"avg_hyper_speed": 93.6825,
"whiff_percent": 25.1,
"swing_percent": 49.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.5889,
"command_and_miss": 0.0257,
"regression_edge": -0.4857,
"xwoba_edge": 0.6857,
"barrel_edge": 0.3111,
"hard_hit_edge": 0.1286,
"whiff_edge": -0.0143,
"bb_edge": 0.475,
"pitch_design_score": 0.1054
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "675512",
"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": 91.7475265975609,
"release_spin_rate": 2195.3043061551607,
"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": 91.7475265975609,
"release_spin_rate": 2195.3043061551607,
"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.7475,
"release_spin_rate": 2195.3043,
"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.1054,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7531,
"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.2963,
"sample_weight": 1.0,
"run_prevention_factor": 0.9748,
"strikeout_factor": 0.9937,
"walk_factor": 0.962,
"homer_factor": 0.9494,
"woba_minus_xwoba": -0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "675512",
"espn_id": 5294127,
"player_name": "Troy Melton",
"team": "DET",
"role": "pitcher",
"espn_rank": 13,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 13,
"gp_value": 16.0,
"gp_rank": 428,
"gs_value": 16.0,
"gs_rank": 120,
"qs_value": 9.0,
"qs_rank": 62,
"era_value": 1.8556,
"era_rank": null,
"w_value": 7.0,
"w_rank": 76,
"l_value": 3.0,
"l_rank": 225,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 97.0,
"ip_rank": 117,
"h_value": 70.0,
"h_rank": 155,
"er_value": 20.0,
"er_rank": 301,
"hr_value": 10.0,
"hr_rank": 149,
"bb_value": 28.0,
"bb_rank": 169,
"k_value": 80.0,
"k_rank": 141,
"k_per_9_value": 7.4226804,
"k_per_9_rank": 32,
"whip_value": 1.0103,
"whip_rank": null,
"war_value": 3.76,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9748,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.9748,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9494,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9937,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
},
{
"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/20260901_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"
}
} |
| 20260901 | 20260901_DET@MIN | home | Andrew Morris | Andrew Morris | True | 4.2 | 1.0 | -11 | 1 | 1 | 0 | 1/2 | 1/0 | 5/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.816753926701571,
"WHIP": 1.3350785340314137,
"IP": 63.2,
"games_started": null,
"games_pitched": 53,
"role_avg_IP": 1.5,
"recent_avg_IP": 1.5,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5169,
"sample_weight": 0.98,
"run_prevention_factor": 0.9561,
"strikeout_factor": 0.9826,
"walk_factor": 0.9765,
"homer_factor": 0.8672,
"regression_flag": "neutral",
"k_percent": 21.5,
"bb_percent": 8.0,
"woba": 0.299,
"xwoba": 0.272,
"barrel_percent": 3.1,
"hard_hit_percent": 33.0,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 281,
"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.775,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7187,
"prior_weight": 0.2813
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702193",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 53,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.1,
"ER": 5.0,
"R": 8.0,
"H": 8.0,
"BB": 0.0,
"SO": 4.0,
"HR": 1.0,
"BF": 39.0,
"Pitches": 116.0
},
"per_game": {
"IP": 1.0,
"ER": 1.0,
"R": 1.6,
"H": 1.6,
"BB": 0.0,
"SO": 0.8,
"HR": 0.2,
"BF": 7.8,
"Pitches": 23.2
},
"rates": {
"ERA": 8.4375,
"WHIP": 1.5,
"ER_per_IP": 0.9375,
"H_per_IP": 1.5,
"BB_per_IP": 0.0,
"SO_per_IP": 0.75,
"HR_per_IP": 0.1875
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.0,
"ER": 8.0,
"R": 11.0,
"H": 14.0,
"BB": 5.0,
"SO": 7.0,
"HR": 1.0,
"BF": 63.0,
"Pitches": 212.0
},
"per_game": {
"IP": 1.0,
"ER": 0.8,
"R": 1.1,
"H": 1.4,
"BB": 0.5,
"SO": 0.7,
"HR": 0.1,
"BF": 6.3,
"Pitches": 21.2
},
"rates": {
"ERA": 7.2,
"WHIP": 1.9,
"ER_per_IP": 0.8,
"H_per_IP": 1.4,
"BB_per_IP": 0.5,
"SO_per_IP": 0.7,
"HR_per_IP": 0.1
}
},
"season": {
"games": 53,
"totals": {
"IP": 63.2,
"ER": 27.0,
"R": 33.0,
"H": 63.0,
"BB": 22.0,
"SO": 59.0,
"HR": 4.0,
"BF": 288.0,
"Pitches": 1131.0
},
"per_game": {
"IP": 1.1,
"ER": 0.5094,
"R": 0.6226,
"H": 1.1887,
"BB": 0.4151,
"SO": 1.1132,
"HR": 0.0755,
"BF": 5.434,
"Pitches": 21.3396
},
"rates": {
"ERA": 3.8168,
"WHIP": 1.3351,
"ER_per_IP": 0.42408,
"H_per_IP": 0.98953,
"BB_per_IP": 0.34555,
"SO_per_IP": 0.9267,
"HR_per_IP": 0.06283
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.0,
"predicted_ER": 1.467,
"predicted_H": 2.606,
"predicted_BB": 0.582,
"predicted_SO": 1.697,
"predicted_HR": 0.283,
"predicted_ERA": 6.3498,
"predicted_WHIP": 1.5329
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4688,
"form_weight": 0.5312,
"form_reliability": 0.7187,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.775,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7187,
"prior_weight": 0.2813
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 2.0,
"final": 3.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.467,
"final": 1.248,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 2.606,
"final": 1.853,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.582,
"final": 0.778,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 1.697,
"final": 2.7768,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.283,
"final": 0.1503,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.3498,
"final": 6.3498,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5329,
"final": 1.5329,
"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": 8,
"H": 14,
"BB": 5,
"SO": 7,
"HR": 1,
"ERA": 7.200000000000001,
"WHIP": 1.9000000000000004,
"K9": 6.300000000000001,
"HR9": 0.9000000000000001,
"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.108501983722757,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.775,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7187,
"prior_weight": 0.2813
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702193",
"player_name": "Andrew Morris",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 138,
"wins": 66,
"losses": 72,
"win_pct": 0.4783,
"runs_scored": 637.0,
"runs_allowed": 683.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3333,
"avg_runs_scored": 4.6159,
"avg_runs_allowed": 4.9493,
"offense_index": 1.035,
"defense_index": 0.9011,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 5.0,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.1295
},
"opponent": {
"team": "DET",
"games": 137,
"wins": 63,
"losses": 74,
"win_pct": 0.4599,
"runs_scored": 597.0,
"runs_allowed": 542.0,
"run_differential": 55.0,
"run_differential_per_game": 0.4015,
"avg_runs_scored": 4.3577,
"avg_runs_allowed": 3.9562,
"offense_index": 0.9771,
"defense_index": 1.1273,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 2.0,
"avg_runs_allowed": 4.7,
"run_differential": -27.0
},
"available": true,
"quality_score": -0.0896
},
"edges": {
"quality_edge": -0.0399,
"offense_edge": 0.035,
"opponent_offense_edge": -0.0229,
"defense_strength": -0.0989,
"opponent_defense_weakness": -0.1273,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9964,
"run_prevention": 1.0082,
"strikeout": 1.0006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702193",
"profile": {
"available": true,
"pitcher_id": "702193",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 245.0,
"k_percent": 21.5,
"bb_percent": 8.0,
"woba": 0.299,
"xwoba": 0.272,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 3.1,
"hard_hit_percent": 33.0,
"avg_best_speed": 74.7361,
"avg_hyper_speed": 92.9364,
"whiff_percent": 22.5,
"swing_percent": 48.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.8193,
"command_and_miss": -0.1007,
"regression_edge": 0.7714,
"xwoba_edge": 1.1143,
"barrel_edge": 0.9333,
"hard_hit_edge": 0.6857,
"whiff_edge": -0.3857,
"bb_edge": 0.3,
"pitch_design_score": 0.221
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702193",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 22,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 22,
"pitch_usage": 0.0,
"release_speed": 93.81125595054272,
"release_spin_rate": 2063.7543945439807,
"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": 22,
"pitch_usage": 0.0,
"release_speed": 93.81125595054272,
"release_spin_rate": 2063.7543945439807,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.8113,
"release_spin_rate": 2063.7544,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.221,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.5786,
"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.5169,
"sample_weight": 0.98,
"run_prevention_factor": 0.9561,
"strikeout_factor": 0.9826,
"walk_factor": 0.9765,
"homer_factor": 0.8672,
"woba_minus_xwoba": 0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "702193",
"espn_id": 5007765,
"player_name": "Andrew Morris",
"team": "MIN",
"role": "pitcher",
"espn_rank": 281,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 281,
"gp_value": 53.0,
"gp_rank": 69,
"gs_value": 2.0,
"gs_rank": 269,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.8167,
"era_rank": null,
"w_value": 4.0,
"w_rank": 178,
"l_value": 7.0,
"l_rank": 76,
"sv_value": 4.0,
"sv_rank": 52,
"hld_value": 20.0,
"hld_rank": 14,
"ip_value": 63.2,
"ip_rank": 193,
"h_value": 63.0,
"h_rank": 170,
"er_value": 27.0,
"er_rank": 202,
"hr_value": 4.0,
"hr_rank": 359,
"bb_value": 22.0,
"bb_rank": 236,
"k_value": 59.0,
"k_rank": 218,
"k_per_9_value": 8.340314,
"k_per_9_rank": 30,
"whip_value": 1.335,
"whip_rank": null,
"war_value": 0.38,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.957,
"adjusted": 3
},
"predicted_H": {
"original": 8.0,
"factor": 0.957,
"adjusted": 8
},
"predicted_BB": {
"original": 2.0,
"factor": 0.977,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8699,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9829,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 16,
"Pitches": 78,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_MIA@KC | away | Tyler Phillips | Tyler Phillips | True | 5.0 | 5.0 | 0 | 4 | 0 | -4 | 6/1 | 2/2 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.588607594936709,
"WHIP": 1.3670886075949367,
"IP": 105.1,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 4.578,
"recent_avg_IP": 4.8,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3303,
"sample_weight": 1.0,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9897,
"walk_factor": 1.014,
"homer_factor": 1.0689,
"regression_flag": "neutral",
"k_percent": 18.9,
"bb_percent": 9.9,
"woba": 0.32,
"xwoba": 0.334,
"barrel_percent": 8.2,
"hard_hit_percent": 43.6,
"whiff_percent": 26.4
},
"espn_rank": {
"rank": 135,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 105.1,
"season_ERA": 3.589,
"season_WHIP": 1.367,
"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": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663969",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 9.0,
"R": 9.0,
"H": 22.0,
"BB": 7.0,
"SO": 23.0,
"HR": 4.0,
"BF": 92.0,
"Pitches": 344.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 1.8,
"H": 4.4,
"BB": 1.4,
"SO": 4.6,
"HR": 0.8,
"BF": 18.4,
"Pitches": 68.8
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.381,
"ER_per_IP": 0.42857,
"H_per_IP": 1.04762,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.09524,
"HR_per_IP": 0.19048
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 39.2,
"ER": 20.0,
"R": 21.0,
"H": 43.0,
"BB": 15.0,
"SO": 36.0,
"HR": 7.0,
"BF": 175.0,
"Pitches": 656.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.1,
"H": 4.3,
"BB": 1.5,
"SO": 3.6,
"HR": 0.7,
"BF": 17.5,
"Pitches": 65.6
},
"rates": {
"ERA": 4.5378,
"WHIP": 1.4622,
"ER_per_IP": 0.5042,
"H_per_IP": 1.08403,
"BB_per_IP": 0.37815,
"SO_per_IP": 0.90756,
"HR_per_IP": 0.17647
}
},
"season": {
"games": 32,
"totals": {
"IP": 105.1,
"ER": 42.0,
"R": 45.0,
"H": 99.0,
"BB": 45.0,
"SO": 86.0,
"HR": 14.0,
"BF": 454.0,
"Pitches": 1701.0
},
"per_game": {
"IP": 3.1,
"ER": 1.3125,
"R": 1.4062,
"H": 3.0938,
"BB": 1.4062,
"SO": 2.6875,
"HR": 0.4375,
"BF": 14.1875,
"Pitches": 53.1562
},
"rates": {
"ERA": 3.5886,
"WHIP": 1.3671,
"ER_per_IP": 0.39873,
"H_per_IP": 0.93987,
"BB_per_IP": 0.42722,
"SO_per_IP": 0.81646,
"HR_per_IP": 0.13291
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.891,
"predicted_H": 4.273,
"predicted_BB": 1.528,
"predicted_SO": 4.021,
"predicted_HR": 0.707,
"predicted_ERA": 4.1014,
"predicted_WHIP": 1.3981
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4071,
"form_weight": 0.5929,
"form_reliability": 0.8649,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.891,
"final": 2.7495,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.273,
"final": 4.976,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.528,
"final": 1.7201,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.021,
"final": 4.0125,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.707,
"final": 0.8263,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1014,
"final": 4.1014,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3981,
"final": 1.3981,
"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": 39.2,
"ER": 20,
"H": 43,
"BB": 15,
"SO": 36,
"HR": 7,
"ERA": 4.53781512605042,
"WHIP": 1.46218487394958,
"K9": 8.168067226890757,
"HR9": 1.5882352941176472,
"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-25T00:00:00"
},
"recent_form_boost": 1.0219944054394907,
"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": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663969",
"player_name": "Tyler Phillips",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": "MIA",
"games": 138,
"wins": 69,
"losses": 69,
"win_pct": 0.5,
"runs_scored": 597.0,
"runs_allowed": 585.0,
"run_differential": 12.0,
"run_differential_per_game": 0.087,
"avg_runs_scored": 4.3261,
"avg_runs_allowed": 4.2391,
"offense_index": 0.9687,
"defense_index": 1.0535,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.9,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0107
},
"opponent": {
"team": "KC",
"games": 138,
"wins": 62,
"losses": 76,
"win_pct": 0.4493,
"runs_scored": 590.0,
"runs_allowed": 673.0,
"run_differential": -83.0,
"run_differential_per_game": -0.6014,
"avg_runs_scored": 4.2754,
"avg_runs_allowed": 4.8768,
"offense_index": 0.9573,
"defense_index": 0.9158,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.4,
"run_differential": 21.0
},
"available": true,
"quality_score": -0.0122
},
"edges": {
"quality_edge": 0.0229,
"offense_edge": -0.0313,
"opponent_offense_edge": -0.0427,
"defense_strength": 0.0535,
"opponent_defense_weakness": 0.0842,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 1.0042,
"run_prevention": 0.9867,
"strikeout": 1.0041
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663969",
"profile": {
"available": true,
"pitcher_id": "663969",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 421.0,
"k_percent": 18.9,
"bb_percent": 9.9,
"woba": 0.32,
"xwoba": 0.334,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 43.6,
"avg_best_speed": 79.7988,
"avg_hyper_speed": 94.5285,
"whiff_percent": 26.4,
"swing_percent": 45.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4322,
"command_and_miss": -0.1679,
"regression_edge": -0.4,
"xwoba_edge": -0.6571,
"barrel_edge": -0.2,
"hard_hit_edge": -0.8286,
"whiff_edge": 0.1714,
"bb_edge": -0.175,
"pitch_design_score": -0.0573
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663969",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 67,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 67,
"pitch_usage": 0.0,
"release_speed": 88.84117592259537,
"release_spin_rate": 2059.5043972880403,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 67,
"pitch_usage": 0.0,
"release_speed": 88.84117592259537,
"release_spin_rate": 2059.5043972880403,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.8412,
"release_spin_rate": 2059.5044,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0573,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4094,
"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.3303,
"sample_weight": 1.0,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9897,
"walk_factor": 1.014,
"homer_factor": 1.0689,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663969",
"espn_id": 41247,
"player_name": "Tyler Phillips",
"team": "MIA",
"role": "pitcher",
"espn_rank": 135,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 135,
"gp_value": 32.0,
"gp_rank": 198,
"gs_value": 15.0,
"gs_rank": 128,
"qs_value": 2.0,
"qs_rank": 153,
"era_value": 3.5886,
"era_rank": null,
"w_value": 3.0,
"w_rank": 234,
"l_value": 6.0,
"l_rank": 102,
"sv_value": 2.0,
"sv_rank": 86,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 105.1,
"ip_rank": 107,
"h_value": 99.0,
"h_rank": 104,
"er_value": 42.0,
"er_rank": 134,
"hr_value": 14.0,
"hr_rank": 95,
"bb_value": 45.0,
"bb_rank": 49,
"k_value": 86.0,
"k_rank": 122,
"k_per_9_value": 7.348101,
"k_per_9_rank": 30,
"whip_value": 1.367,
"whip_rank": null,
"war_value": 1.23,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0281,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0281,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 1.014,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0689,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9897,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 98,
"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 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_MIA@KC | home | Randy Dobnak | Randy Dobnak | True | 5.2 | 6.0 | 1 | 1 | 6 | 5 | 1/7 | 1/2 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.9161290322580646,
"WHIP": 1.3741935483870968,
"IP": 51.2,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 5.25,
"recent_avg_IP": 5.133,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2067,
"sample_weight": 0.696,
"run_prevention_factor": 1.0176,
"strikeout_factor": 0.9519,
"walk_factor": 1.0042,
"homer_factor": 0.9723,
"regression_flag": "neutral",
"k_percent": 15.4,
"bb_percent": 9.5,
"woba": 0.3,
"xwoba": 0.328,
"barrel_percent": 3.6,
"hard_hit_percent": 39.8,
"whiff_percent": 19.6
},
"espn_rank": {
"rank": 68,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 51.2,
"season_ERA": 1.916,
"season_WHIP": 1.374,
"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.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "677976",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 8.0,
"R": 8.0,
"H": 29.0,
"BB": 11.0,
"SO": 20.0,
"HR": 1.0,
"BF": 115.0,
"Pitches": 465.0
},
"per_game": {
"IP": 5.0,
"ER": 1.6,
"R": 1.6,
"H": 5.8,
"BB": 2.2,
"SO": 4.0,
"HR": 0.2,
"BF": 23.0,
"Pitches": 93.0
},
"rates": {
"ERA": 2.8052,
"WHIP": 1.5584,
"ER_per_IP": 0.31169,
"H_per_IP": 1.12987,
"BB_per_IP": 0.42857,
"SO_per_IP": 0.77922,
"HR_per_IP": 0.03896
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 11.0,
"R": 11.0,
"H": 50.0,
"BB": 21.0,
"SO": 34.0,
"HR": 3.0,
"BF": 221.0,
"Pitches": 897.0
},
"per_game": {
"IP": 5.1,
"ER": 1.1,
"R": 1.1,
"H": 5.0,
"BB": 2.1,
"SO": 3.4,
"HR": 0.3,
"BF": 22.1,
"Pitches": 89.7
},
"rates": {
"ERA": 1.9161,
"WHIP": 1.3742,
"ER_per_IP": 0.2129,
"H_per_IP": 0.96774,
"BB_per_IP": 0.40645,
"SO_per_IP": 0.65806,
"HR_per_IP": 0.05806
}
},
"season": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 11.0,
"R": 11.0,
"H": 50.0,
"BB": 21.0,
"SO": 34.0,
"HR": 3.0,
"BF": 221.0,
"Pitches": 897.0
},
"per_game": {
"IP": 5.1,
"ER": 1.1,
"R": 1.1,
"H": 5.0,
"BB": 2.1,
"SO": 3.4,
"HR": 0.3,
"BF": 22.1,
"Pitches": 89.7
},
"rates": {
"ERA": 1.9161,
"WHIP": 1.3742,
"ER_per_IP": 0.2129,
"H_per_IP": 0.96774,
"BB_per_IP": 0.40645,
"SO_per_IP": 0.65806,
"HR_per_IP": 0.05806
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.835,
"predicted_H": 5.479,
"predicted_BB": 2.143,
"predicted_SO": 4.24,
"predicted_HR": 0.428,
"predicted_ERA": 3.1053,
"predicted_WHIP": 1.433
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.835,
"final": 1.4252,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 5.479,
"final": 3.2806,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.143,
"final": 1.582,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.24,
"final": 4.613,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.428,
"final": 0.2179,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1053,
"final": 3.1053,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.433,
"final": 1.433,
"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": 11,
"H": 50,
"BB": 21,
"SO": 34,
"HR": 3,
"ERA": 1.9161290322580646,
"WHIP": 1.3741935483870968,
"K9": 5.922580645161291,
"HR9": 0.5225806451612903,
"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-26T00:00:00"
},
"recent_form_boost": 0.7248549367487886,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677976",
"player_name": "Randy Dobnak",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 138,
"wins": 62,
"losses": 76,
"win_pct": 0.4493,
"runs_scored": 590.0,
"runs_allowed": 673.0,
"run_differential": -83.0,
"run_differential_per_game": -0.6014,
"avg_runs_scored": 4.2754,
"avg_runs_allowed": 4.8768,
"offense_index": 0.9573,
"defense_index": 0.9158,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.4,
"run_differential": 21.0
},
"available": true,
"quality_score": -0.0122
},
"opponent": {
"team": "MIA",
"games": 138,
"wins": 69,
"losses": 69,
"win_pct": 0.5,
"runs_scored": 597.0,
"runs_allowed": 585.0,
"run_differential": 12.0,
"run_differential_per_game": 0.087,
"avg_runs_scored": 4.3261,
"avg_runs_allowed": 4.2391,
"offense_index": 0.9687,
"defense_index": 1.0535,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.9,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0107
},
"edges": {
"quality_edge": -0.0229,
"offense_edge": -0.0427,
"opponent_offense_edge": -0.0313,
"defense_strength": -0.0842,
"opponent_defense_weakness": -0.0535,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 0.9978,
"run_prevention": 1.0046,
"strikeout": 1.0018
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677976",
"profile": {
"available": true,
"pitcher_id": "677976",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 174.0,
"k_percent": 15.4,
"bb_percent": 9.5,
"woba": 0.3,
"xwoba": 0.328,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 3.6,
"hard_hit_percent": 39.8,
"avg_best_speed": 79.0473,
"avg_hyper_speed": 94.5056,
"whiff_percent": 19.6,
"swing_percent": 45.5
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.0363,
"command_and_miss": -0.7129,
"regression_edge": -0.8,
"xwoba_edge": -0.4857,
"barrel_edge": 0.8222,
"hard_hit_edge": -0.2857,
"whiff_edge": -0.8,
"bb_edge": -0.075,
"pitch_design_score": -0.1409
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677976",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.34840198382811,
"release_spin_rate": 2038.5773448044797,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.34840198382811,
"release_spin_rate": 2038.5773448044797,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.3484,
"release_spin_rate": 2038.5773,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1409,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0066,
"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.2067,
"sample_weight": 0.696,
"run_prevention_factor": 1.0176,
"strikeout_factor": 0.9519,
"walk_factor": 1.0042,
"homer_factor": 0.9723,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677976",
"espn_id": 42214,
"player_name": "Randy Dobnak",
"team": "KC",
"role": "pitcher",
"espn_rank": 68,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 68,
"gp_value": 10.0,
"gp_rank": 509,
"gs_value": 8.0,
"gs_rank": 182,
"qs_value": 2.0,
"qs_rank": 153,
"era_value": 1.9161,
"era_rank": null,
"w_value": 2.0,
"w_rank": 299,
"l_value": 2.0,
"l_rank": 314,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 51.2,
"ip_rank": 275,
"h_value": 50.0,
"h_rank": 227,
"er_value": 11.0,
"er_rank": 482,
"hr_value": 3.0,
"hr_rank": 423,
"bb_value": 21.0,
"bb_rank": 252,
"k_value": 34.0,
"k_rank": 372,
"k_per_9_value": 5.9225807,
"k_per_9_rank": 36,
"whip_value": 1.3741,
"whip_rank": null,
"war_value": 2.0,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0122,
"adjusted": 1
},
"predicted_H": {
"original": 6.0,
"factor": 1.0122,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0029,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9807,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9665,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 85,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was +6."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_MIL@CHC | away | Robert Gasser | Robert Gasser | True | 5.0 | 4.1 | -2 | 5 | 2 | -3 | 8/3 | 1/2 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.591093117408907,
"WHIP": 1.299595141700405,
"IP": 82.1,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 5.133,
"recent_avg_IP": 5.133,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0032,
"sample_weight": 1.0,
"run_prevention_factor": 1.0003,
"strikeout_factor": 0.9834,
"walk_factor": 0.95,
"homer_factor": 0.9598,
"regression_flag": "neutral",
"k_percent": 21.8,
"bb_percent": 6.7,
"woba": 0.332,
"xwoba": 0.317,
"barrel_percent": 6.1,
"hard_hit_percent": 33.6,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 298,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "688107",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 12.0,
"R": 12.0,
"H": 29.0,
"BB": 11.0,
"SO": 26.0,
"HR": 2.0,
"BF": 116.0,
"Pitches": 431.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 5.8,
"BB": 2.2,
"SO": 5.2,
"HR": 0.4,
"BF": 23.2,
"Pitches": 86.2
},
"rates": {
"ERA": 4.32,
"WHIP": 1.6,
"ER_per_IP": 0.48,
"H_per_IP": 1.16,
"BB_per_IP": 0.44,
"SO_per_IP": 1.04,
"HR_per_IP": 0.08
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 27.0,
"R": 27.0,
"H": 56.0,
"BB": 13.0,
"SO": 47.0,
"HR": 7.0,
"BF": 228.0,
"Pitches": 842.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.7,
"H": 5.6,
"BB": 1.3,
"SO": 4.7,
"HR": 0.7,
"BF": 22.8,
"Pitches": 84.2
},
"rates": {
"ERA": 4.6433,
"WHIP": 1.3185,
"ER_per_IP": 0.51592,
"H_per_IP": 1.07006,
"BB_per_IP": 0.24841,
"SO_per_IP": 0.89809,
"HR_per_IP": 0.13376
}
},
"season": {
"games": 16,
"totals": {
"IP": 82.1,
"ER": 42.0,
"R": 43.0,
"H": 82.0,
"BB": 25.0,
"SO": 78.0,
"HR": 13.0,
"BF": 358.0,
"Pitches": 1375.0
},
"per_game": {
"IP": 5.0,
"ER": 2.625,
"R": 2.6875,
"H": 5.125,
"BB": 1.5625,
"SO": 4.875,
"HR": 0.8125,
"BF": 22.375,
"Pitches": 85.9375
},
"rates": {
"ERA": 4.5911,
"WHIP": 1.2996,
"ER_per_IP": 0.51012,
"H_per_IP": 0.99595,
"BB_per_IP": 0.30364,
"SO_per_IP": 0.94737,
"HR_per_IP": 0.15789
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.537,
"predicted_H": 5.427,
"predicted_BB": 1.79,
"predicted_SO": 4.906,
"predicted_HR": 0.621,
"predicted_ERA": 4.4865,
"predicted_WHIP": 1.4181
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.537,
"final": 3.6468,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.427,
"final": 6.5864,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.79,
"final": 1.434,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.906,
"final": 4.4978,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.621,
"final": 0.7918,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4865,
"final": 4.4865,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4181,
"final": 1.4181,
"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": 27,
"H": 56,
"BB": 13,
"SO": 47,
"HR": 7,
"ERA": 4.643312101910828,
"WHIP": 1.318471337579618,
"K9": 8.0828025477707,
"HR9": 1.2038216560509556,
"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-26T00:00:00"
},
"recent_form_boost": 1.0302699768145378,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 5.0,
"predicted_H": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "688107",
"player_name": "Robert Gasser",
"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": 5.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": "MIL",
"games": 138,
"wins": 85,
"losses": 53,
"win_pct": 0.6159,
"runs_scored": 686.0,
"runs_allowed": 523.0,
"run_differential": 163.0,
"run_differential_per_game": 1.1812,
"avg_runs_scored": 4.971,
"avg_runs_allowed": 3.7899,
"offense_index": 1.1131,
"defense_index": 1.1784,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.0,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.279
},
"opponent": {
"team": "CHC",
"games": 138,
"wins": 78,
"losses": 60,
"win_pct": 0.5652,
"runs_scored": 742.0,
"runs_allowed": 601.0,
"run_differential": 141.0,
"run_differential_per_game": 1.0217,
"avg_runs_scored": 5.3768,
"avg_runs_allowed": 4.3551,
"offense_index": 1.2039,
"defense_index": 1.0255,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 8.6,
"avg_runs_allowed": 4.5,
"run_differential": 41.0
},
"available": true,
"quality_score": 0.1462
},
"edges": {
"quality_edge": 0.1328,
"offense_edge": 0.1131,
"opponent_offense_edge": 0.2039,
"defense_strength": 0.1784,
"opponent_defense_weakness": -0.0255,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0025,
"run_prevention": 1.0081,
"strikeout": 0.9877
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "688107",
"profile": {
"available": true,
"pitcher_id": "688107",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 312.0,
"k_percent": 21.8,
"bb_percent": 6.7,
"woba": 0.332,
"xwoba": 0.317,
"sweet_spot_percent": 38.9,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 33.6,
"avg_best_speed": 75.3091,
"avg_hyper_speed": 93.0515,
"whiff_percent": 22.4,
"swing_percent": 50.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.0582,
"command_and_miss": -0.0214,
"regression_edge": 0.4286,
"xwoba_edge": -0.1714,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.6,
"whiff_edge": -0.4,
"bb_edge": 0.625,
"pitch_design_score": -0.0985
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "688107",
"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.10672773196258,
"release_spin_rate": 2274.4345249885405,
"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.10672773196258,
"release_spin_rate": 2274.4345249885405,
"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.1067,
"release_spin_rate": 2274.4345,
"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.0985,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7032,
"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.0032,
"sample_weight": 1.0,
"run_prevention_factor": 1.0003,
"strikeout_factor": 0.9834,
"walk_factor": 0.95,
"homer_factor": 0.9598,
"woba_minus_xwoba": 0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "688107",
"espn_id": 4918251,
"player_name": "Robert Gasser",
"team": "MIL",
"role": "pitcher",
"espn_rank": 298,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 298,
"gp_value": 16.0,
"gp_rank": 428,
"gs_value": 15.0,
"gs_rank": 128,
"qs_value": 4.0,
"qs_rank": 121,
"era_value": 4.591,
"era_rank": null,
"w_value": 4.0,
"w_rank": 178,
"l_value": 5.0,
"l_rank": 129,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 82.1,
"ip_rank": 147,
"h_value": 82.0,
"h_rank": 131,
"er_value": 42.0,
"er_rank": 134,
"hr_value": 13.0,
"hr_rank": 111,
"bb_value": 25.0,
"bb_rank": 205,
"k_value": 78.0,
"k_rank": 145,
"k_per_9_value": 8.526316,
"k_per_9_rank": 26,
"whip_value": 1.2995,
"whip_rank": null,
"war_value": 0.32,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0003,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0003,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.95,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9598,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9834,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 8,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_MIL@CHC | home | Matthew Boyd | Matthew Boyd | True | 6.0 | 5.1 | -2 | 4 | 3 | -1 | 3/7 | 3/1 | 8/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9896907216494846,
"WHIP": 1.2164948453608246,
"IP": 97.0,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.706,
"recent_avg_IP": 6.2,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3772,
"sample_weight": 1.0,
"run_prevention_factor": 1.0321,
"strikeout_factor": 0.9686,
"walk_factor": 0.966,
"homer_factor": 1.0778,
"regression_flag": "neutral",
"k_percent": 19.0,
"bb_percent": 7.5,
"woba": 0.316,
"xwoba": 0.341,
"barrel_percent": 10.1,
"hard_hit_percent": 38.2,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 226,
"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": "571510",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 18.0,
"R": 20.0,
"H": 28.0,
"BB": 11.0,
"SO": 16.0,
"HR": 9.0,
"BF": 127.0,
"Pitches": 467.0
},
"per_game": {
"IP": 6.1,
"ER": 3.6,
"R": 4.0,
"H": 5.6,
"BB": 2.2,
"SO": 3.2,
"HR": 1.8,
"BF": 25.4,
"Pitches": 93.4
},
"rates": {
"ERA": 5.2258,
"WHIP": 1.2581,
"ER_per_IP": 0.58065,
"H_per_IP": 0.90323,
"BB_per_IP": 0.35484,
"SO_per_IP": 0.51613,
"HR_per_IP": 0.29032
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.1,
"ER": 24.0,
"R": 26.0,
"H": 51.0,
"BB": 20.0,
"SO": 39.0,
"HR": 11.0,
"BF": 256.0,
"Pitches": 929.0
},
"per_game": {
"IP": 6.1,
"ER": 2.4,
"R": 2.6,
"H": 5.1,
"BB": 2.0,
"SO": 3.9,
"HR": 1.1,
"BF": 25.6,
"Pitches": 92.9
},
"rates": {
"ERA": 3.4105,
"WHIP": 1.1211,
"ER_per_IP": 0.37895,
"H_per_IP": 0.80526,
"BB_per_IP": 0.31579,
"SO_per_IP": 0.61579,
"HR_per_IP": 0.17368
}
},
"season": {
"games": 17,
"totals": {
"IP": 97.0,
"ER": 43.0,
"R": 46.0,
"H": 88.0,
"BB": 30.0,
"SO": 76.0,
"HR": 15.0,
"BF": 401.0,
"Pitches": 1511.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5294,
"R": 2.7059,
"H": 5.1765,
"BB": 1.7647,
"SO": 4.4706,
"HR": 0.8824,
"BF": 23.5882,
"Pitches": 88.8824
},
"rates": {
"ERA": 3.9897,
"WHIP": 1.2165,
"ER_per_IP": 0.4433,
"H_per_IP": 0.90722,
"BB_per_IP": 0.30928,
"SO_per_IP": 0.78351,
"HR_per_IP": 0.15464
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.992,
"predicted_H": 5.496,
"predicted_BB": 2.098,
"predicted_SO": 4.188,
"predicted_HR": 1.263,
"predicted_ERA": 4.3751,
"predicted_WHIP": 1.234
}
},
"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": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.992,
"final": 2.9956,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.496,
"final": 4.3827,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.098,
"final": 2.5003,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.188,
"final": 5.4422,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.263,
"final": 1.5917,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3751,
"final": 4.3751,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.234,
"final": 1.234,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 63.1,
"ER": 24,
"H": 51,
"BB": 20,
"SO": 39,
"HR": 11,
"ERA": 3.4105263157894736,
"WHIP": 1.1210526315789473,
"K9": 5.542105263157895,
"HR9": 1.563157894736842,
"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-26T00:00:00"
},
"recent_form_boost": 0.8866461082258685,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 2.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "571510",
"player_name": "Matthew Boyd",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 138,
"wins": 78,
"losses": 60,
"win_pct": 0.5652,
"runs_scored": 742.0,
"runs_allowed": 601.0,
"run_differential": 141.0,
"run_differential_per_game": 1.0217,
"avg_runs_scored": 5.3768,
"avg_runs_allowed": 4.3551,
"offense_index": 1.2039,
"defense_index": 1.0255,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 8.6,
"avg_runs_allowed": 4.5,
"run_differential": 41.0
},
"available": true,
"quality_score": 0.1462
},
"opponent": {
"team": "MIL",
"games": 138,
"wins": 85,
"losses": 53,
"win_pct": 0.6159,
"runs_scored": 686.0,
"runs_allowed": 523.0,
"run_differential": 163.0,
"run_differential_per_game": 1.1812,
"avg_runs_scored": 4.971,
"avg_runs_allowed": 3.7899,
"offense_index": 1.1131,
"defense_index": 1.1784,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.0,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.279
},
"edges": {
"quality_edge": -0.1328,
"offense_edge": 0.2039,
"opponent_offense_edge": 0.1131,
"defense_strength": 0.0255,
"opponent_defense_weakness": -0.1784,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9909,
"run_prevention": 1.0222,
"strikeout": 0.987
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "571510",
"profile": {
"available": true,
"pitcher_id": "571510",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 354.0,
"k_percent": 19.0,
"bb_percent": 7.5,
"woba": 0.316,
"xwoba": 0.341,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 38.2,
"avg_best_speed": 76.0835,
"avg_hyper_speed": 94.0922,
"whiff_percent": 22.6,
"swing_percent": 49.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4017,
"command_and_miss": -0.2314,
"regression_edge": -0.7143,
"xwoba_edge": -0.8571,
"barrel_edge": -0.6222,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.3714,
"bb_edge": 0.425,
"pitch_design_score": -0.2582
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "571510",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.25414106885589,
"release_spin_rate": 2219.1498721779217,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.25414106885589,
"release_spin_rate": 2219.1498721779217,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.2541,
"release_spin_rate": 2219.1499,
"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.2582,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8443,
"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.3772,
"sample_weight": 1.0,
"run_prevention_factor": 1.0321,
"strikeout_factor": 0.9686,
"walk_factor": 0.966,
"homer_factor": 1.0778,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "571510",
"espn_id": 34401,
"player_name": "Matthew Boyd",
"team": "CHC",
"role": "pitcher",
"espn_rank": 226,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 226,
"gp_value": 17.0,
"gp_rank": 414,
"gs_value": 17.0,
"gs_rank": 113,
"qs_value": 7.0,
"qs_rank": 75,
"era_value": 3.9896,
"era_rank": null,
"w_value": 8.0,
"w_rank": 58,
"l_value": 3.0,
"l_rank": 225,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 97.0,
"ip_rank": 117,
"h_value": 88.0,
"h_rank": 122,
"er_value": 43.0,
"er_rank": 129,
"hr_value": 15.0,
"hr_rank": 78,
"bb_value": 30.0,
"bb_rank": 150,
"k_value": 76.0,
"k_rank": 151,
"k_per_9_value": 7.0515466,
"k_per_9_rank": 34,
"whip_value": 1.2164,
"whip_rank": null,
"war_value": 0.64,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0321,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0321,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0778,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9686,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 109,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_NYM@TB | away | Sean Manaea | Sean Manaea | True | 6.0 | 5.2 | -1 | 2 | 5 | 3 | 5/11 | 3/1 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.548913043478261,
"WHIP": 1.3206521739130435,
"IP": 122.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.69,
"recent_avg_IP": 6.2,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3547,
"sample_weight": 1.0,
"run_prevention_factor": 1.0301,
"strikeout_factor": 0.9869,
"walk_factor": 0.966,
"homer_factor": 1.1153,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 7.5,
"woba": 0.346,
"xwoba": 0.336,
"barrel_percent": 11.2,
"hard_hit_percent": 42.1,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 352,
"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": "640455",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 17.0,
"R": 17.0,
"H": 29.0,
"BB": 10.0,
"SO": 32.0,
"HR": 7.0,
"BF": 132.0,
"Pitches": 472.0
},
"per_game": {
"IP": 6.1,
"ER": 3.4,
"R": 3.4,
"H": 5.8,
"BB": 2.0,
"SO": 6.4,
"HR": 1.4,
"BF": 26.4,
"Pitches": 94.4
},
"rates": {
"ERA": 4.9355,
"WHIP": 1.2581,
"ER_per_IP": 0.54839,
"H_per_IP": 0.93548,
"BB_per_IP": 0.32258,
"SO_per_IP": 1.03226,
"HR_per_IP": 0.22581
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 29.0,
"R": 33.0,
"H": 58.0,
"BB": 18.0,
"SO": 56.0,
"HR": 14.0,
"BF": 254.0,
"Pitches": 949.0
},
"per_game": {
"IP": 6.0,
"ER": 2.9,
"R": 3.3,
"H": 5.8,
"BB": 1.8,
"SO": 5.6,
"HR": 1.4,
"BF": 25.4,
"Pitches": 94.9
},
"rates": {
"ERA": 4.3743,
"WHIP": 1.2737,
"ER_per_IP": 0.48603,
"H_per_IP": 0.97207,
"BB_per_IP": 0.30168,
"SO_per_IP": 0.93855,
"HR_per_IP": 0.23464
}
},
"season": {
"games": 28,
"totals": {
"IP": 122.2,
"ER": 62.0,
"R": 69.0,
"H": 122.0,
"BB": 40.0,
"SO": 120.0,
"HR": 20.0,
"BF": 533.0,
"Pitches": 2080.0
},
"per_game": {
"IP": 4.1,
"ER": 2.2143,
"R": 2.4643,
"H": 4.3571,
"BB": 1.4286,
"SO": 4.2857,
"HR": 0.7143,
"BF": 19.0357,
"Pitches": 74.2857
},
"rates": {
"ERA": 4.5489,
"WHIP": 1.3207,
"ER_per_IP": 0.50543,
"H_per_IP": 0.99457,
"BB_per_IP": 0.32609,
"SO_per_IP": 0.97826,
"HR_per_IP": 0.16304
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 3.01,
"predicted_H": 5.622,
"predicted_BB": 1.895,
"predicted_SO": 5.734,
"predicted_HR": 1.203,
"predicted_ERA": 4.6348,
"predicted_WHIP": 1.2863
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.01,
"final": 2.5919,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.622,
"final": 5.3645,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.895,
"final": 2.3525,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.734,
"final": 5.8441,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.203,
"final": 0.7049,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6348,
"final": 4.6348,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2863,
"final": 1.2863,
"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": 29,
"H": 58,
"BB": 18,
"SO": 56,
"HR": 14,
"ERA": 4.374301675977653,
"WHIP": 1.2737430167597765,
"K9": 8.446927374301675,
"HR9": 2.1117318435754187,
"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-27T00:00:00"
},
"recent_form_boost": 0.9988880958765594,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 6.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": "640455",
"player_name": "Sean Manaea",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 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,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 138,
"wins": 62,
"losses": 76,
"win_pct": 0.4493,
"runs_scored": 565.0,
"runs_allowed": 617.0,
"run_differential": -52.0,
"run_differential_per_game": -0.3768,
"avg_runs_scored": 4.0942,
"avg_runs_allowed": 4.471,
"offense_index": 0.9167,
"defense_index": 0.9989,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.4,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.1245
},
"opponent": {
"team": "TB",
"games": 137,
"wins": 82,
"losses": 55,
"win_pct": 0.5985,
"runs_scored": 618.0,
"runs_allowed": 565.0,
"run_differential": 53.0,
"run_differential_per_game": 0.3869,
"avg_runs_scored": 4.5109,
"avg_runs_allowed": 4.1241,
"offense_index": 1.0101,
"defense_index": 1.0829,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.1,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.1664
},
"edges": {
"quality_edge": -0.2909,
"offense_edge": -0.0833,
"opponent_offense_edge": 0.0101,
"defense_strength": -0.0011,
"opponent_defense_weakness": -0.0829,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9879,
"run_prevention": 1.0163,
"strikeout": 0.9905
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "640455",
"profile": {
"available": true,
"pitcher_id": "640455",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 479.0,
"k_percent": 22.5,
"bb_percent": 7.5,
"woba": 0.346,
"xwoba": 0.336,
"sweet_spot_percent": 36.2,
"barrel_batted_rate": 11.2,
"hard_hit_percent": 42.1,
"avg_best_speed": 77.7213,
"avg_hyper_speed": 94.6707,
"whiff_percent": 22.3,
"swing_percent": 50.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6375,
"command_and_miss": -0.0214,
"regression_edge": 0.2857,
"xwoba_edge": -0.7143,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.6143,
"whiff_edge": -0.4143,
"bb_edge": 0.425,
"pitch_design_score": -0.2585
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "640455",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 85.24923102451848,
"release_spin_rate": 2111.7826014761895,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 85.24923102451848,
"release_spin_rate": 2111.7826014761895,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.2492,
"release_spin_rate": 2111.7826,
"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.2585,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8462,
"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.3547,
"sample_weight": 1.0,
"run_prevention_factor": 1.0301,
"strikeout_factor": 0.9869,
"walk_factor": 0.966,
"homer_factor": 1.1153,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "640455",
"espn_id": 33244,
"player_name": "Sean Manaea",
"team": "NYM",
"role": "pitcher",
"espn_rank": 352,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 352,
"gp_value": 28.0,
"gp_rank": 223,
"gs_value": 14.0,
"gs_rank": 139,
"qs_value": 6.0,
"qs_rank": 88,
"era_value": 4.5489,
"era_rank": null,
"w_value": 4.0,
"w_rank": 178,
"l_value": 6.0,
"l_rank": 102,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 122.2,
"ip_rank": 87,
"h_value": 122.0,
"h_rank": 62,
"er_value": 62.0,
"er_rank": 47,
"hr_value": 20.0,
"hr_rank": 28,
"bb_value": 40.0,
"bb_rank": 76,
"k_value": 120.0,
"k_rank": 61,
"k_per_9_value": 8.804348,
"k_per_9_rank": 18,
"whip_value": 1.3206,
"whip_rank": null,
"war_value": 0.16,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0301,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0301,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1153,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9869,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 115,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was +6."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_NYM@TB | home | Freddy Peralta | Freddy Peralta | True | 5.1 | 6.0 | 2 | 4 | 1 | -3 | 5/3 | 2/0 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.1063829787234045,
"WHIP": 1.4113475177304964,
"IP": 141.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.222,
"recent_avg_IP": 5.467,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0903,
"sample_weight": 1.0,
"run_prevention_factor": 0.9923,
"strikeout_factor": 1.0029,
"walk_factor": 0.99,
"homer_factor": 0.9784,
"regression_flag": "positive_pitcher_regression",
"k_percent": 21.4,
"bb_percent": 8.7,
"woba": 0.341,
"xwoba": 0.308,
"barrel_percent": 6.1,
"hard_hit_percent": 38.2,
"whiff_percent": 26.2
},
"espn_rank": {
"rank": 779,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "642547",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 17.0,
"R": 17.0,
"H": 25.0,
"BB": 6.0,
"SO": 20.0,
"HR": 5.0,
"BF": 109.0,
"Pitches": 424.0
},
"per_game": {
"IP": 5.1,
"ER": 3.4,
"R": 3.4,
"H": 5.0,
"BB": 1.2,
"SO": 4.0,
"HR": 1.0,
"BF": 21.8,
"Pitches": 84.8
},
"rates": {
"ERA": 5.5976,
"WHIP": 1.1341,
"ER_per_IP": 0.62195,
"H_per_IP": 0.91463,
"BB_per_IP": 0.21951,
"SO_per_IP": 0.73171,
"HR_per_IP": 0.18293
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 34.0,
"R": 37.0,
"H": 55.0,
"BB": 19.0,
"SO": 45.0,
"HR": 10.0,
"BF": 221.0,
"Pitches": 910.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4,
"R": 3.7,
"H": 5.5,
"BB": 1.9,
"SO": 4.5,
"HR": 1.0,
"BF": 22.1,
"Pitches": 91.0
},
"rates": {
"ERA": 6.1611,
"WHIP": 1.4899,
"ER_per_IP": 0.68456,
"H_per_IP": 1.10738,
"BB_per_IP": 0.38255,
"SO_per_IP": 0.90604,
"HR_per_IP": 0.20134
}
},
"season": {
"games": 27,
"totals": {
"IP": 141.0,
"ER": 80.0,
"R": 88.0,
"H": 145.0,
"BB": 54.0,
"SO": 133.0,
"HR": 22.0,
"BF": 621.0,
"Pitches": 2517.0
},
"per_game": {
"IP": 5.1,
"ER": 2.963,
"R": 3.2593,
"H": 5.3704,
"BB": 2.0,
"SO": 4.9259,
"HR": 0.8148,
"BF": 23.0,
"Pitches": 93.2222
},
"rates": {
"ERA": 5.1064,
"WHIP": 1.4113,
"ER_per_IP": 0.56738,
"H_per_IP": 1.02837,
"BB_per_IP": 0.38298,
"SO_per_IP": 0.94326,
"HR_per_IP": 0.15603
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.203,
"predicted_H": 5.234,
"predicted_BB": 1.669,
"predicted_SO": 4.456,
"predicted_HR": 0.933,
"predicted_ERA": 5.5071,
"predicted_WHIP": 1.3187
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.203,
"final": 3.5345,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.234,
"final": 5.1367,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.669,
"final": 1.8067,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.456,
"final": 4.2663,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.933,
"final": 1.3769,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5071,
"final": 5.5071,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3187,
"final": 1.3187,
"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": 34,
"H": 55,
"BB": 19,
"SO": 45,
"HR": 10,
"ERA": 6.161073825503356,
"WHIP": 1.4899328859060403,
"K9": 8.154362416107382,
"HR9": 1.8120805369127517,
"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-26T00:00:00"
},
"recent_form_boost": 1.2053047094268576,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 2.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": "642547",
"player_name": "Freddy Peralta",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 137,
"wins": 82,
"losses": 55,
"win_pct": 0.5985,
"runs_scored": 618.0,
"runs_allowed": 565.0,
"run_differential": 53.0,
"run_differential_per_game": 0.3869,
"avg_runs_scored": 4.5109,
"avg_runs_allowed": 4.1241,
"offense_index": 1.0101,
"defense_index": 1.0829,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.1,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.1664
},
"opponent": {
"team": "NYM",
"games": 138,
"wins": 62,
"losses": 76,
"win_pct": 0.4493,
"runs_scored": 565.0,
"runs_allowed": 617.0,
"run_differential": -52.0,
"run_differential_per_game": -0.3768,
"avg_runs_scored": 4.0942,
"avg_runs_allowed": 4.471,
"offense_index": 0.9167,
"defense_index": 0.9989,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.4,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.1245
},
"edges": {
"quality_edge": 0.2909,
"offense_edge": 0.0101,
"opponent_offense_edge": -0.0833,
"defense_strength": 0.0829,
"opponent_defense_weakness": 0.0011,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0175,
"run_prevention": 0.9638,
"strikeout": 1.0154
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "642547",
"profile": {
"available": true,
"pitcher_id": "642547",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 571.0,
"k_percent": 21.4,
"bb_percent": 8.7,
"woba": 0.341,
"xwoba": 0.308,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 38.2,
"avg_best_speed": 76.1024,
"avg_hyper_speed": 93.5759,
"whiff_percent": 26.2,
"swing_percent": 47.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.0219,
"command_and_miss": 0.0429,
"regression_edge": 0.9429,
"xwoba_edge": 0.0857,
"barrel_edge": 0.2667,
"hard_hit_edge": -0.0571,
"whiff_edge": 0.1429,
"bb_edge": 0.125,
"pitch_design_score": -0.0354
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "642547",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 89.23342464094252,
"release_spin_rate": 2302.228094715452,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 89.23342464094252,
"release_spin_rate": 2302.228094715452,
"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.2334,
"release_spin_rate": 2302.2281,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0354,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2525,
"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.0903,
"sample_weight": 1.0,
"run_prevention_factor": 0.9923,
"strikeout_factor": 1.0029,
"walk_factor": 0.99,
"homer_factor": 0.9784,
"woba_minus_xwoba": 0.033,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "642547",
"espn_id": 39825,
"player_name": "Freddy Peralta",
"team": "TB",
"role": "pitcher",
"espn_rank": 779,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 779,
"gp_value": 27.0,
"gp_rank": 240,
"gs_value": 27.0,
"gs_rank": 13,
"qs_value": 6.0,
"qs_rank": 88,
"era_value": 5.1063,
"era_rank": 51.0,
"w_value": 6.0,
"w_rank": 98,
"l_value": 11.0,
"l_rank": 9,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 141.0,
"ip_rank": 47,
"h_value": 145.0,
"h_rank": 15,
"er_value": 80.0,
"er_rank": 7,
"hr_value": 22.0,
"hr_rank": 19,
"bb_value": 54.0,
"bb_rank": 22,
"k_value": 133.0,
"k_rank": 42,
"k_per_9_value": 8.489362,
"k_per_9_rank": 24,
"whip_value": 1.4113,
"whip_rank": 46.0,
"war_value": -0.58,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9923,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9923,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.99,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9784,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0029,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_NYY@LAA | away | Gerrit Cole | Gerrit Cole | True | 6.0 | 5.1 | -2 | 1 | 3 | 2 | 9/8 | 0/1 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.1925675675675675,
"WHIP": 1.0743243243243243,
"IP": 98.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.804,
"recent_avg_IP": 6.133,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.279,
"sample_weight": 1.0,
"run_prevention_factor": 0.9763,
"strikeout_factor": 1.008,
"walk_factor": 0.92,
"homer_factor": 1.0115,
"regression_flag": "neutral",
"k_percent": 26.1,
"bb_percent": 5.2,
"woba": 0.287,
"xwoba": 0.282,
"barrel_percent": 7.9,
"hard_hit_percent": 42.3,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 46,
"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": "543037",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 8.0,
"R": 9.0,
"H": 25.0,
"BB": 7.0,
"SO": 32.0,
"HR": 2.0,
"BF": 123.0,
"Pitches": 440.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.8,
"H": 5.0,
"BB": 1.4,
"SO": 6.4,
"HR": 0.4,
"BF": 24.6,
"Pitches": 88.0
},
"rates": {
"ERA": 2.3478,
"WHIP": 1.0435,
"ER_per_IP": 0.26087,
"H_per_IP": 0.81522,
"BB_per_IP": 0.22826,
"SO_per_IP": 1.04348,
"HR_per_IP": 0.06522
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.0,
"ER": 18.0,
"R": 19.0,
"H": 49.0,
"BB": 11.0,
"SO": 71.0,
"HR": 6.0,
"BF": 242.0,
"Pitches": 920.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.9,
"H": 4.9,
"BB": 1.1,
"SO": 7.1,
"HR": 0.6,
"BF": 24.2,
"Pitches": 92.0
},
"rates": {
"ERA": 2.6557,
"WHIP": 0.9836,
"ER_per_IP": 0.29508,
"H_per_IP": 0.80328,
"BB_per_IP": 0.18033,
"SO_per_IP": 1.16393,
"HR_per_IP": 0.09836
}
},
"season": {
"games": 17,
"totals": {
"IP": 98.2,
"ER": 35.0,
"R": 36.0,
"H": 85.0,
"BB": 21.0,
"SO": 105.0,
"HR": 13.0,
"BF": 402.0,
"Pitches": 1505.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0588,
"R": 2.1176,
"H": 5.0,
"BB": 1.2353,
"SO": 6.1765,
"HR": 0.7647,
"BF": 23.6471,
"Pitches": 88.5294
},
"rates": {
"ERA": 3.1926,
"WHIP": 1.0743,
"ER_per_IP": 0.35473,
"H_per_IP": 0.86149,
"BB_per_IP": 0.21284,
"SO_per_IP": 1.06419,
"HR_per_IP": 0.13176
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.014,
"predicted_H": 5.085,
"predicted_BB": 1.46,
"predicted_SO": 6.279,
"predicted_HR": 0.613,
"predicted_ERA": 3.0471,
"predicted_WHIP": 1.1002
}
},
"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": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.014,
"final": 1.5617,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 5.085,
"final": 6.8312,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.46,
"final": 0.8088,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.279,
"final": 4.8165,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.613,
"final": 0.7856,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0471,
"final": 3.0471,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1002,
"final": 1.1002,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 61.0,
"ER": 18,
"H": 49,
"BB": 11,
"SO": 71,
"HR": 6,
"ERA": 2.6557377049180326,
"WHIP": 0.983606557377049,
"K9": 10.475409836065573,
"HR9": 0.8852459016393441,
"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.7982962376477839,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 9.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 1.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": 6.0,
"predicted_ER": 1,
"predicted_H": 9,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543037",
"player_name": "Gerrit Cole",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 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": "NYY",
"games": 138,
"wins": 78,
"losses": 60,
"win_pct": 0.5652,
"runs_scored": 623.0,
"runs_allowed": 515.0,
"run_differential": 108.0,
"run_differential_per_game": 0.7826,
"avg_runs_scored": 4.5145,
"avg_runs_allowed": 3.7319,
"offense_index": 1.0093,
"defense_index": 1.1985,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 4.3,
"run_differential": 12.0
},
"available": true,
"quality_score": 0.1517
},
"opponent": {
"team": "LAA",
"games": 138,
"wins": 53,
"losses": 85,
"win_pct": 0.3841,
"runs_scored": 565.0,
"runs_allowed": 638.0,
"run_differential": -73.0,
"run_differential_per_game": -0.529,
"avg_runs_scored": 4.0942,
"avg_runs_allowed": 4.6232,
"offense_index": 0.9154,
"defense_index": 0.9675,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.8,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.2686
},
"edges": {
"quality_edge": 0.4203,
"offense_edge": 0.0093,
"opponent_offense_edge": -0.0846,
"defense_strength": 0.1985,
"opponent_defense_weakness": 0.0325,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0262,
"run_prevention": 0.9456,
"strikeout": 1.0194
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543037",
"profile": {
"available": true,
"pitcher_id": "543037",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 348.0,
"k_percent": 26.1,
"bb_percent": 5.2,
"woba": 0.287,
"xwoba": 0.282,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 42.3,
"avg_best_speed": 80.6862,
"avg_hyper_speed": 94.0829,
"whiff_percent": 22.4,
"swing_percent": 49.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3017,
"command_and_miss": 0.33,
"regression_edge": 0.1429,
"xwoba_edge": 0.8286,
"barrel_edge": -0.1333,
"hard_hit_edge": -0.6429,
"whiff_edge": -0.4,
"bb_edge": 1.0,
"pitch_design_score": 0.1242
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543037",
"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": 92.0825980662545,
"release_spin_rate": 2363.5792056180953,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.0825980662545,
"release_spin_rate": 2363.5792056180953,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.0826,
"release_spin_rate": 2363.5792,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1242,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8871,
"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.279,
"sample_weight": 1.0,
"run_prevention_factor": 0.9763,
"strikeout_factor": 1.008,
"walk_factor": 0.92,
"homer_factor": 1.0115,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "543037",
"espn_id": 32081,
"player_name": "Gerrit Cole",
"team": "NYY",
"role": "pitcher",
"espn_rank": 46,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 46,
"gp_value": 17.0,
"gp_rank": 414,
"gs_value": 17.0,
"gs_rank": 113,
"qs_value": 11.0,
"qs_rank": 40,
"era_value": 3.1925,
"era_rank": null,
"w_value": 7.0,
"w_rank": 76,
"l_value": 7.0,
"l_rank": 76,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 98.2,
"ip_rank": 113,
"h_value": 85.0,
"h_rank": 126,
"er_value": 35.0,
"er_rank": 158,
"hr_value": 13.0,
"hr_rank": 111,
"bb_value": 21.0,
"bb_rank": 252,
"k_value": 105.0,
"k_rank": 83,
"k_per_9_value": 9.5777025,
"k_per_9_rank": 19,
"whip_value": 1.0743,
"whip_rank": null,
"war_value": 2.6,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9763,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9763,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.92,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0115,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.008,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 9,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 115,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_NYY@LAA | home | Grayson Rodriguez | Grayson Rodriguez | True | 5.0 | 6.0 | 3 | 3 | 4 | 1 | 4/7 | 3/2 | 8/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.027906976744186,
"WHIP": 1.5209302325581395,
"IP": 71.2,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 4.778,
"recent_avg_IP": 5.533,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5738,
"sample_weight": 1.0,
"run_prevention_factor": 1.0488,
"strikeout_factor": 0.9783,
"walk_factor": 1.008,
"homer_factor": 1.1109,
"regression_flag": "neutral",
"k_percent": 20.2,
"bb_percent": 9.6,
"woba": 0.359,
"xwoba": 0.355,
"barrel_percent": 9.1,
"hard_hit_percent": 45.0,
"whiff_percent": 23.1
},
"espn_rank": {
"rank": 818,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680570",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 9.0,
"R": 12.0,
"H": 22.0,
"BB": 10.0,
"SO": 29.0,
"HR": 1.0,
"BF": 114.0,
"Pitches": 461.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 2.4,
"H": 4.4,
"BB": 2.0,
"SO": 5.8,
"HR": 0.2,
"BF": 22.8,
"Pitches": 92.2
},
"rates": {
"ERA": 2.9277,
"WHIP": 1.1566,
"ER_per_IP": 0.3253,
"H_per_IP": 0.79518,
"BB_per_IP": 0.36145,
"SO_per_IP": 1.04819,
"HR_per_IP": 0.03614
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 27.0,
"R": 30.0,
"H": 49.0,
"BB": 18.0,
"SO": 42.0,
"HR": 6.0,
"BF": 211.0,
"Pitches": 852.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7,
"R": 3.0,
"H": 4.9,
"BB": 1.8,
"SO": 4.2,
"HR": 0.6,
"BF": 21.1,
"Pitches": 85.2
},
"rates": {
"ERA": 5.0276,
"WHIP": 1.3862,
"ER_per_IP": 0.55862,
"H_per_IP": 1.01379,
"BB_per_IP": 0.37241,
"SO_per_IP": 0.86897,
"HR_per_IP": 0.12414
}
},
"season": {
"games": 15,
"totals": {
"IP": 71.2,
"ER": 48.0,
"R": 53.0,
"H": 78.0,
"BB": 31.0,
"SO": 65.0,
"HR": 10.0,
"BF": 322.0,
"Pitches": 1299.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 3.5333,
"H": 5.2,
"BB": 2.0667,
"SO": 4.3333,
"HR": 0.6667,
"BF": 21.4667,
"Pitches": 86.6
},
"rates": {
"ERA": 6.0279,
"WHIP": 1.5209,
"ER_per_IP": 0.66977,
"H_per_IP": 1.08837,
"BB_per_IP": 0.43256,
"SO_per_IP": 0.90698,
"HR_per_IP": 0.13953
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.489,
"predicted_H": 4.865,
"predicted_BB": 1.951,
"predicted_SO": 4.926,
"predicted_HR": 0.529,
"predicted_ERA": 4.3329,
"predicted_WHIP": 1.3182
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4556,
"form_weight": 0.5444,
"form_reliability": 0.75,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.489,
"final": 2.7218,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.865,
"final": 3.5596,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.951,
"final": 2.429,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.926,
"final": 6.3266,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.529,
"final": 0.288,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3329,
"final": 4.3329,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3182,
"final": 1.3182,
"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": 27,
"H": 49,
"BB": 18,
"SO": 42,
"HR": 6,
"ERA": 5.027586206896551,
"WHIP": 1.3862068965517238,
"K9": 7.820689655172412,
"HR9": 1.1172413793103446,
"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-26T00:00:00"
},
"recent_form_boost": 1.075194202599734,
"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": 3.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
}
},
{
"step": "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": 3,
"predicted_SO": 8,
"predicted_HR": 0
}
},
{
"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": 3,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680570",
"player_name": "Grayson Rodriguez",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": "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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 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": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 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": "LAA",
"games": 138,
"wins": 53,
"losses": 85,
"win_pct": 0.3841,
"runs_scored": 565.0,
"runs_allowed": 638.0,
"run_differential": -73.0,
"run_differential_per_game": -0.529,
"avg_runs_scored": 4.0942,
"avg_runs_allowed": 4.6232,
"offense_index": 0.9154,
"defense_index": 0.9675,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.8,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.2686
},
"opponent": {
"team": "NYY",
"games": 138,
"wins": 78,
"losses": 60,
"win_pct": 0.5652,
"runs_scored": 623.0,
"runs_allowed": 515.0,
"run_differential": 108.0,
"run_differential_per_game": 0.7826,
"avg_runs_scored": 4.5145,
"avg_runs_allowed": 3.7319,
"offense_index": 1.0093,
"defense_index": 1.1985,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 4.3,
"run_differential": 12.0
},
"available": true,
"quality_score": 0.1517
},
"edges": {
"quality_edge": -0.4203,
"offense_edge": -0.0846,
"opponent_offense_edge": 0.0093,
"defense_strength": -0.0325,
"opponent_defense_weakness": -0.1985,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9818,
"run_prevention": 1.0258,
"strikeout": 0.9866
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680570",
"profile": {
"available": true,
"pitcher_id": "680570",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 259.0,
"k_percent": 20.2,
"bb_percent": 9.6,
"woba": 0.359,
"xwoba": 0.355,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 45.0,
"avg_best_speed": 79.9417,
"avg_hyper_speed": 94.9599,
"whiff_percent": 23.1,
"swing_percent": 48.7
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.9367,
"command_and_miss": -0.2343,
"regression_edge": 0.1143,
"xwoba_edge": -1.2571,
"barrel_edge": -0.4,
"hard_hit_edge": -1.0286,
"whiff_edge": -0.3,
"bb_edge": -0.1,
"pitch_design_score": 0.0025
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680570",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.90981092943103,
"release_spin_rate": 2190.6226176168993,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.90981092943103,
"release_spin_rate": 2190.6226176168993,
"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.9098,
"release_spin_rate": 2190.6226,
"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.0025,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.018,
"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.5738,
"sample_weight": 1.0,
"run_prevention_factor": 1.0488,
"strikeout_factor": 0.9783,
"walk_factor": 1.008,
"homer_factor": 1.1109,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680570",
"espn_id": 41196,
"player_name": "Grayson Rodriguez",
"team": "LAA",
"role": "pitcher",
"espn_rank": 818,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 818,
"gp_value": 15.0,
"gp_rank": 445,
"gs_value": 15.0,
"gs_rank": 128,
"qs_value": 2.0,
"qs_rank": 153,
"era_value": 6.0279,
"era_rank": null,
"w_value": 4.0,
"w_rank": 178,
"l_value": 5.0,
"l_rank": 129,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 71.2,
"ip_rank": 168,
"h_value": 78.0,
"h_rank": 144,
"er_value": 48.0,
"er_rank": 105,
"hr_value": 10.0,
"hr_rank": 149,
"bb_value": 31.0,
"bb_rank": 139,
"k_value": 65.0,
"k_rank": 182,
"k_per_9_value": 8.16279,
"k_per_9_rank": 29,
"whip_value": 1.5209,
"whip_rank": null,
"war_value": -0.9,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0488,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0488,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.008,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1109,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9783,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_OAK@TEX | away | Brady Basso | Brady Basso | True | 4.1 | 2.1 | -6 | 4 | 2 | -2 | 5/4 | 0/0 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.5,
"WHIP": 1.3928571428571428,
"IP": 28.0,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 1.889,
"recent_avg_IP": 1.889,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0498,
"sample_weight": 0.45,
"run_prevention_factor": 0.9958,
"strikeout_factor": 0.9774,
"walk_factor": 0.9469,
"homer_factor": 0.9752,
"regression_flag": "positive_pitcher_regression",
"k_percent": 17.9,
"bb_percent": 3.3,
"woba": 0.341,
"xwoba": 0.295,
"barrel_percent": 5.2,
"hard_hit_percent": 37.1,
"whiff_percent": 20.4
},
"espn_rank": {
"rank": 291,
"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": 5.618,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5291,
"prior_weight": 0.4709
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669620",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 7.1,
"ER": 4.0,
"R": 5.0,
"H": 9.0,
"BB": 1.0,
"SO": 4.0,
"HR": 1.0,
"BF": 32.0,
"Pitches": 102.0
},
"per_game": {
"IP": 1.1,
"ER": 0.8,
"R": 1.0,
"H": 1.8,
"BB": 0.2,
"SO": 0.8,
"HR": 0.2,
"BF": 6.4,
"Pitches": 20.4
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.3636,
"ER_per_IP": 0.54545,
"H_per_IP": 1.22727,
"BB_per_IP": 0.13636,
"SO_per_IP": 0.54545,
"HR_per_IP": 0.13636
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 14.0,
"ER": 5.0,
"R": 6.0,
"H": 13.0,
"BB": 1.0,
"SO": 8.0,
"HR": 2.0,
"BF": 56.0,
"Pitches": 196.0
},
"per_game": {
"IP": 1.1,
"ER": 0.5,
"R": 0.6,
"H": 1.3,
"BB": 0.1,
"SO": 0.8,
"HR": 0.2,
"BF": 5.6,
"Pitches": 19.6
},
"rates": {
"ERA": 3.2143,
"WHIP": 1.0,
"ER_per_IP": 0.35714,
"H_per_IP": 0.92857,
"BB_per_IP": 0.07143,
"SO_per_IP": 0.57143,
"HR_per_IP": 0.14286
}
},
"season": {
"games": 20,
"totals": {
"IP": 28.0,
"ER": 14.0,
"R": 15.0,
"H": 35.0,
"BB": 4.0,
"SO": 22.0,
"HR": 3.0,
"BF": 123.0,
"Pitches": 427.0
},
"per_game": {
"IP": 1.1,
"ER": 0.7,
"R": 0.75,
"H": 1.75,
"BB": 0.2,
"SO": 1.1,
"HR": 0.15,
"BF": 6.15,
"Pitches": 21.35
},
"rates": {
"ERA": 4.5,
"WHIP": 1.3929,
"ER_per_IP": 0.5,
"H_per_IP": 1.25,
"BB_per_IP": 0.14286,
"SO_per_IP": 0.78571,
"HR_per_IP": 0.10714
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.328,
"predicted_H": 2.895,
"predicted_BB": 0.647,
"predicted_SO": 2.09,
"predicted_HR": 0.383,
"predicted_ERA": 4.3516,
"predicted_WHIP": 1.2899
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.549,
"form_weight": 0.451,
"form_reliability": 0.5291,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.618,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5291,
"prior_weight": 0.4709
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 2.2,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.328,
"final": 2.7948,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 2.895,
"final": 4.0506,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.647,
"final": 0.2918,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.09,
"final": 3.1385,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.383,
"final": 0.1728,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3516,
"final": 4.3516,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2899,
"final": 1.2899,
"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": 14.0,
"ER": 5,
"H": 13,
"BB": 1,
"SO": 8,
"HR": 2,
"ERA": 3.2142857142857144,
"WHIP": 1.0,
"K9": 5.142857142857143,
"HR9": 1.2857142857142858,
"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-30T00:00:00"
},
"recent_form_boost": 0.9367334732575803,
"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": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.618,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5291,
"prior_weight": 0.4709
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669620",
"player_name": "Brady Basso",
"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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.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": "OAK",
"games": 138,
"wins": 53,
"losses": 85,
"win_pct": 0.3841,
"runs_scored": 597.0,
"runs_allowed": 795.0,
"run_differential": -198.0,
"run_differential_per_game": -1.4348,
"avg_runs_scored": 4.3261,
"avg_runs_allowed": 5.7609,
"offense_index": 0.97,
"defense_index": 0.7741,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.3,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.3105
},
"opponent": {
"team": "TEX",
"games": 138,
"wins": 68,
"losses": 70,
"win_pct": 0.4928,
"runs_scored": 562.0,
"runs_allowed": 606.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3188,
"avg_runs_scored": 4.0725,
"avg_runs_allowed": 4.3913,
"offense_index": 0.9132,
"defense_index": 1.0156,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.6,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.0454
},
"edges": {
"quality_edge": -0.2651,
"offense_edge": -0.03,
"opponent_offense_edge": -0.0868,
"defense_strength": -0.2259,
"opponent_defense_weakness": -0.0156,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9861,
"run_prevention": 1.022,
"strikeout": 0.999
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669620",
"profile": {
"available": true,
"pitcher_id": "669620",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 100.0,
"k_percent": 17.9,
"bb_percent": 3.3,
"woba": 0.341,
"xwoba": 0.295,
"sweet_spot_percent": 39.2,
"barrel_batted_rate": 5.2,
"hard_hit_percent": 37.1,
"avg_best_speed": 78.209,
"avg_hyper_speed": 93.9309,
"whiff_percent": 20.4,
"swing_percent": 52.9
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0763,
"command_and_miss": -0.2021,
"regression_edge": 1.3143,
"xwoba_edge": 0.4571,
"barrel_edge": 0.4667,
"hard_hit_edge": 0.1,
"whiff_edge": -0.6857,
"bb_edge": 1.475,
"pitch_design_score": -0.1353
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669620",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 29,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 29,
"pitch_usage": 0.0,
"release_speed": 87.4492706156902,
"release_spin_rate": 2216.2276490722184,
"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": 29,
"pitch_usage": 0.0,
"release_speed": 87.4492706156902,
"release_spin_rate": 2216.2276490722184,
"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.4493,
"release_spin_rate": 2216.2276,
"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.1353,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9662,
"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.0498,
"sample_weight": 0.45,
"run_prevention_factor": 0.9958,
"strikeout_factor": 0.9774,
"walk_factor": 0.9469,
"homer_factor": 0.9752,
"woba_minus_xwoba": 0.046,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "669620",
"espn_id": 4179551,
"player_name": "Brady Basso",
"team": "ATH",
"role": "pitcher",
"espn_rank": 291,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 291,
"gp_value": 20.0,
"gp_rank": 376,
"gs_value": 3.0,
"gs_rank": 248,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 4.5,
"era_rank": null,
"w_value": 0.0,
"w_rank": 517,
"l_value": 1.0,
"l_rank": 413,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 3.0,
"hld_rank": 202,
"ip_value": 28.0,
"ip_rank": 434,
"h_value": 35.0,
"h_rank": 353,
"er_value": 14.0,
"er_rank": 420,
"hr_value": 3.0,
"hr_rank": 423,
"bb_value": 4.0,
"bb_rank": 631,
"k_value": 22.0,
"k_rank": 452,
"k_per_9_value": 7.0714283,
"k_per_9_rank": 28,
"whip_value": 1.3928,
"whip_rank": null,
"war_value": 0.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9981,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9981,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9761,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9888,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9898,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 70,
"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."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_OAK@TEX | home | MacKenzie Gore | MacKenzie Gore | True | 5.1 | 5.1 | 0 | 3 | 1 | -2 | 3/5 | 3/4 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.399553571428571,
"WHIP": 1.279017857142857,
"IP": 149.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.333,
"recent_avg_IP": 5.333,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1049,
"sample_weight": 1.0,
"run_prevention_factor": 0.9911,
"strikeout_factor": 1.032,
"walk_factor": 0.992,
"homer_factor": 1.0421,
"regression_flag": "neutral",
"k_percent": 25.8,
"bb_percent": 8.8,
"woba": 0.313,
"xwoba": 0.305,
"barrel_percent": 8.8,
"hard_hit_percent": 41.4,
"whiff_percent": 26.9
},
"espn_rank": {
"rank": 123,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "669022",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 8.0,
"R": 8.0,
"H": 25.0,
"BB": 12.0,
"SO": 29.0,
"HR": 2.0,
"BF": 116.0,
"Pitches": 484.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.6,
"H": 5.0,
"BB": 2.4,
"SO": 5.8,
"HR": 0.4,
"BF": 23.2,
"Pitches": 96.8
},
"rates": {
"ERA": 2.7,
"WHIP": 1.3875,
"ER_per_IP": 0.3,
"H_per_IP": 0.9375,
"BB_per_IP": 0.45,
"SO_per_IP": 1.0875,
"HR_per_IP": 0.075
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 27.0,
"R": 27.0,
"H": 52.0,
"BB": 17.0,
"SO": 61.0,
"HR": 9.0,
"BF": 231.0,
"Pitches": 917.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.7,
"H": 5.2,
"BB": 1.7,
"SO": 6.1,
"HR": 0.9,
"BF": 23.1,
"Pitches": 91.7
},
"rates": {
"ERA": 4.5562,
"WHIP": 1.2937,
"ER_per_IP": 0.50625,
"H_per_IP": 0.975,
"BB_per_IP": 0.31875,
"SO_per_IP": 1.14375,
"HR_per_IP": 0.16875
}
},
"season": {
"games": 28,
"totals": {
"IP": 149.1,
"ER": 73.0,
"R": 73.0,
"H": 135.0,
"BB": 56.0,
"SO": 165.0,
"HR": 18.0,
"BF": 639.0,
"Pitches": 2552.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6071,
"R": 2.6071,
"H": 4.8214,
"BB": 2.0,
"SO": 5.8929,
"HR": 0.6429,
"BF": 22.8214,
"Pitches": 91.1429
},
"rates": {
"ERA": 4.3996,
"WHIP": 1.279,
"ER_per_IP": 0.48884,
"H_per_IP": 0.90402,
"BB_per_IP": 0.375,
"SO_per_IP": 1.10491,
"HR_per_IP": 0.12054
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.258,
"predicted_H": 5.057,
"predicted_BB": 2.06,
"predicted_SO": 5.785,
"predicted_HR": 0.648,
"predicted_ERA": 3.8099,
"predicted_WHIP": 1.3346
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.258,
"final": 2.5652,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.057,
"final": 4.2054,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.06,
"final": 2.4492,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.785,
"final": 5.046,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.648,
"final": 0.3797,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8099,
"final": 3.8099,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3346,
"final": 1.3346,
"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": 52,
"BB": 17,
"SO": 61,
"HR": 9,
"ERA": 4.55625,
"WHIP": 1.2937500000000002,
"K9": 10.293750000000001,
"HR9": 1.51875,
"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-26T00:00:00"
},
"recent_form_boost": 1.0198574569100791,
"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": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 4.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": "669022",
"player_name": "MacKenzie Gore",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 138,
"wins": 68,
"losses": 70,
"win_pct": 0.4928,
"runs_scored": 562.0,
"runs_allowed": 606.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3188,
"avg_runs_scored": 4.0725,
"avg_runs_allowed": 4.3913,
"offense_index": 0.9132,
"defense_index": 1.0156,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.6,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.0454
},
"opponent": {
"team": "OAK",
"games": 138,
"wins": 53,
"losses": 85,
"win_pct": 0.3841,
"runs_scored": 597.0,
"runs_allowed": 795.0,
"run_differential": -198.0,
"run_differential_per_game": -1.4348,
"avg_runs_scored": 4.3261,
"avg_runs_allowed": 5.7609,
"offense_index": 0.97,
"defense_index": 0.7741,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.3,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.3105
},
"edges": {
"quality_edge": 0.2651,
"offense_edge": -0.0868,
"opponent_offense_edge": -0.03,
"defense_strength": 0.0156,
"opponent_defense_weakness": 0.2259,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0123,
"run_prevention": 0.9804,
"strikeout": 1.0104
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669022",
"profile": {
"available": true,
"pitcher_id": "669022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 595.0,
"k_percent": 25.8,
"bb_percent": 8.8,
"woba": 0.313,
"xwoba": 0.305,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 41.4,
"avg_best_speed": 77.4859,
"avg_hyper_speed": 94.5361,
"whiff_percent": 26.9,
"swing_percent": 49.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.0222,
"command_and_miss": 0.3557,
"regression_edge": 0.2286,
"xwoba_edge": 0.1714,
"barrel_edge": -0.3333,
"hard_hit_edge": -0.5143,
"whiff_edge": 0.2429,
"bb_edge": 0.1,
"pitch_design_score": 0.0248
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 99,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 90.30705137786757,
"release_spin_rate": 2168.388338902536,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 90.30705137786757,
"release_spin_rate": 2168.388338902536,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.3071,
"release_spin_rate": 2168.3883,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0248,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1769,
"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.1049,
"sample_weight": 1.0,
"run_prevention_factor": 0.9911,
"strikeout_factor": 1.032,
"walk_factor": 0.992,
"homer_factor": 1.0421,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669022",
"espn_id": 39636,
"player_name": "MacKenzie Gore",
"team": "TEX",
"role": "pitcher",
"espn_rank": 123,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 123,
"gp_value": 28.0,
"gp_rank": 223,
"gs_value": 28.0,
"gs_rank": 3,
"qs_value": 9.0,
"qs_rank": 62,
"era_value": 4.3995,
"era_rank": 44.0,
"w_value": 7.0,
"w_rank": 76,
"l_value": 10.0,
"l_rank": 13,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 149.1,
"ip_rank": 29,
"h_value": 135.0,
"h_rank": 32,
"er_value": 73.0,
"er_rank": 13,
"hr_value": 18.0,
"hr_rank": 46,
"bb_value": 56.0,
"bb_rank": 16,
"k_value": 165.0,
"k_rank": 16,
"k_per_9_value": 9.944197,
"k_per_9_rank": 14,
"whip_value": 1.279,
"whip_rank": 39.0,
"war_value": 1.33,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9911,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9911,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.992,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0421,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.032,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 100,
"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/20260901_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"
}
} |
| 20260901 | 20260901_PHI@ARI | away | Jesús Luzardo | Jesús Luzardo | True | 6.2 | 6.2 | 0 | 1 | 1 | 0 | 5/6 | 4/1 | 9/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0920245398773005,
"WHIP": 1.1226993865030674,
"IP": 163.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 6.037,
"recent_avg_IP": 6.867,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7593,
"sample_weight": 1.0,
"run_prevention_factor": 0.9355,
"strikeout_factor": 1.0869,
"walk_factor": 0.966,
"homer_factor": 0.9151,
"regression_flag": "neutral",
"k_percent": 30.3,
"bb_percent": 7.5,
"woba": 0.282,
"xwoba": 0.264,
"barrel_percent": 6.4,
"hard_hit_percent": 32.8,
"whiff_percent": 32.0
},
"espn_rank": {
"rank": 6,
"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": "666200",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 34.1,
"ER": 5.0,
"R": 7.0,
"H": 21.0,
"BB": 9.0,
"SO": 46.0,
"HR": 2.0,
"BF": 133.0,
"Pitches": 521.0
},
"per_game": {
"IP": 7.0,
"ER": 1.0,
"R": 1.4,
"H": 4.2,
"BB": 1.8,
"SO": 9.2,
"HR": 0.4,
"BF": 26.6,
"Pitches": 104.2
},
"rates": {
"ERA": 1.3107,
"WHIP": 0.8738,
"ER_per_IP": 0.14563,
"H_per_IP": 0.61165,
"BB_per_IP": 0.26214,
"SO_per_IP": 1.33981,
"HR_per_IP": 0.05825
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 65.2,
"ER": 14.0,
"R": 16.0,
"H": 39.0,
"BB": 17.0,
"SO": 87.0,
"HR": 5.0,
"BF": 256.0,
"Pitches": 1007.0
},
"per_game": {
"IP": 6.2,
"ER": 1.4,
"R": 1.6,
"H": 3.9,
"BB": 1.7,
"SO": 8.7,
"HR": 0.5,
"BF": 25.6,
"Pitches": 100.7
},
"rates": {
"ERA": 1.9188,
"WHIP": 0.8528,
"ER_per_IP": 0.2132,
"H_per_IP": 0.59391,
"BB_per_IP": 0.25888,
"SO_per_IP": 1.32487,
"HR_per_IP": 0.07614
}
},
"season": {
"games": 27,
"totals": {
"IP": 163.0,
"ER": 56.0,
"R": 64.0,
"H": 133.0,
"BB": 50.0,
"SO": 203.0,
"HR": 14.0,
"BF": 670.0,
"Pitches": 2652.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0741,
"R": 2.3704,
"H": 4.9259,
"BB": 1.8519,
"SO": 7.5185,
"HR": 0.5185,
"BF": 24.8148,
"Pitches": 98.2222
},
"rates": {
"ERA": 3.092,
"WHIP": 1.1227,
"ER_per_IP": 0.34356,
"H_per_IP": 0.81595,
"BB_per_IP": 0.30675,
"SO_per_IP": 1.2454,
"HR_per_IP": 0.08589
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.2,
"predicted_ER": 1.697,
"predicted_H": 4.658,
"predicted_BB": 1.909,
"predicted_SO": 8.397,
"predicted_HR": 0.548,
"predicted_ERA": 2.2865,
"predicted_WHIP": 0.983
}
},
"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.2,
"form": 6.2,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.697,
"final": 1.4071,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.658,
"final": 4.8003,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.909,
"final": 2.7788,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 8.397,
"final": 7.8159,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.548,
"final": 0.32,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2865,
"final": 2.2865,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.983,
"final": 0.983,
"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": 14,
"H": 39,
"BB": 17,
"SO": 87,
"HR": 5,
"ERA": 1.9187817258883246,
"WHIP": 0.8527918781725887,
"K9": 11.923857868020304,
"HR9": 0.6852791878172588,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 0.7121183230268302,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.2,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 4,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "666200",
"player_name": "Jes\u00fas Luzardo",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.2,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.2,
"predicted_R": 1.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 8.0,
"after": 9.0,
"delta": 1.0,
"percent_delta": 0.125,
"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": 8.0,
"after": 9.0,
"delta": 1.0,
"percent_delta": 0.125,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 9.0,
"delta": 2.0,
"percent_delta": 0.2857,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 9.0,
"delta": 2.0,
"percent_delta": 0.2857,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 138,
"wins": 78,
"losses": 60,
"win_pct": 0.5652,
"runs_scored": 624.0,
"runs_allowed": 593.0,
"run_differential": 31.0,
"run_differential_per_game": 0.2246,
"avg_runs_scored": 4.5217,
"avg_runs_allowed": 4.2971,
"offense_index": 1.011,
"defense_index": 1.0409,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.4,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.188
},
"opponent": {
"team": "ARI",
"games": 139,
"wins": 73,
"losses": 66,
"win_pct": 0.5252,
"runs_scored": 626.0,
"runs_allowed": 622.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0288,
"avg_runs_scored": 4.5036,
"avg_runs_allowed": 4.4748,
"offense_index": 1.0069,
"defense_index": 0.9995,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.7,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.025
},
"edges": {
"quality_edge": 0.163,
"offense_edge": 0.011,
"opponent_offense_edge": 0.0069,
"defense_strength": 0.0409,
"opponent_defense_weakness": 0.0005,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0075,
"run_prevention": 0.9889,
"strikeout": 1.0043
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "666200",
"profile": {
"available": true,
"pitcher_id": "666200",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 616.0,
"k_percent": 30.3,
"bb_percent": 7.5,
"woba": 0.282,
"xwoba": 0.264,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 32.8,
"avg_best_speed": 76.6267,
"avg_hyper_speed": 93.1683,
"whiff_percent": 32.0,
"swing_percent": 46.2
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.8103,
"command_and_miss": 0.965,
"regression_edge": 0.5143,
"xwoba_edge": 1.3429,
"barrel_edge": 0.2,
"hard_hit_edge": 0.7143,
"whiff_edge": 0.9714,
"bb_edge": 0.425,
"pitch_design_score": 0.0393
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "666200",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 101,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 101,
"pitch_usage": 0.0,
"release_speed": 90.56733124144404,
"release_spin_rate": 2203.6617933348475,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 101,
"pitch_usage": 0.0,
"release_speed": 90.56733124144404,
"release_spin_rate": 2203.6617933348475,
"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.5673,
"release_spin_rate": 2203.6618,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0393,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.281,
"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.7593,
"sample_weight": 1.0,
"run_prevention_factor": 0.9355,
"strikeout_factor": 1.0869,
"walk_factor": 0.966,
"homer_factor": 0.9151,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "666200",
"espn_id": 39667,
"player_name": "Jesus Luzardo",
"team": "PHI",
"role": "pitcher",
"espn_rank": 6,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 6,
"gp_value": 27.0,
"gp_rank": 240,
"gs_value": 27.0,
"gs_rank": 13,
"qs_value": 15.0,
"qs_rank": 14,
"era_value": 3.092,
"era_rank": 14.0,
"w_value": 12.0,
"w_rank": 13,
"l_value": 5.0,
"l_rank": 129,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 163.0,
"ip_rank": 5,
"h_value": 133.0,
"h_rank": 38,
"er_value": 56.0,
"er_rank": 65,
"hr_value": 14.0,
"hr_rank": 95,
"bb_value": 50.0,
"bb_rank": 27,
"k_value": 203.0,
"k_rank": 4,
"k_per_9_value": 11.20859,
"k_per_9_rank": 21,
"whip_value": 1.1226,
"whip_rank": 19.0,
"war_value": 5.18,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9355,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.9355,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9151,
"adjusted": 0
},
"predicted_SO": {
"original": 9.0,
"factor": 1.0869,
"adjusted": 10
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.2,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 30,
"Pitches": 127,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_PHI@ARI | home | Eduardo Rodriguez | Eduardo Rodriguez | True | 6.0 | 5.0 | -3 | 1 | 3 | 2 | 5/8 | 1/3 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5,
"WHIP": 1.1851851851851851,
"IP": 162.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 6.0,
"recent_avg_IP": 6.267,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1947,
"sample_weight": 1.0,
"run_prevention_factor": 1.0166,
"strikeout_factor": 0.9543,
"walk_factor": 0.974,
"homer_factor": 0.9977,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.0,
"bb_percent": 7.9,
"woba": 0.291,
"xwoba": 0.324,
"barrel_percent": 7.8,
"hard_hit_percent": 33.9,
"whiff_percent": 21.1
},
"espn_rank": {
"rank": 7,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "593958",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 9.0,
"R": 11.0,
"H": 27.0,
"BB": 7.0,
"SO": 31.0,
"HR": 1.0,
"BF": 128.0,
"Pitches": 516.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 2.2,
"H": 5.4,
"BB": 1.4,
"SO": 6.2,
"HR": 0.2,
"BF": 25.6,
"Pitches": 103.2
},
"rates": {
"ERA": 2.5851,
"WHIP": 1.0851,
"ER_per_IP": 0.28723,
"H_per_IP": 0.8617,
"BB_per_IP": 0.2234,
"SO_per_IP": 0.98936,
"HR_per_IP": 0.03191
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 20.0,
"R": 22.0,
"H": 58.0,
"BB": 14.0,
"SO": 48.0,
"HR": 5.0,
"BF": 247.0,
"Pitches": 976.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.2,
"H": 5.8,
"BB": 1.4,
"SO": 4.8,
"HR": 0.5,
"BF": 24.7,
"Pitches": 97.6
},
"rates": {
"ERA": 3.0,
"WHIP": 1.2,
"ER_per_IP": 0.33333,
"H_per_IP": 0.96667,
"BB_per_IP": 0.23333,
"SO_per_IP": 0.8,
"HR_per_IP": 0.08333
}
},
"season": {
"games": 27,
"totals": {
"IP": 162.0,
"ER": 45.0,
"R": 49.0,
"H": 140.0,
"BB": 52.0,
"SO": 119.0,
"HR": 14.0,
"BF": 661.0,
"Pitches": 2574.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6667,
"R": 1.8148,
"H": 5.1852,
"BB": 1.9259,
"SO": 4.4074,
"HR": 0.5185,
"BF": 24.4815,
"Pitches": 95.3333
},
"rates": {
"ERA": 2.5,
"WHIP": 1.1852,
"ER_per_IP": 0.27778,
"H_per_IP": 0.8642,
"BB_per_IP": 0.32099,
"SO_per_IP": 0.73457,
"HR_per_IP": 0.08642
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.035,
"predicted_H": 5.578,
"predicted_BB": 1.629,
"predicted_SO": 5.407,
"predicted_HR": 0.455,
"predicted_ERA": 2.9898,
"predicted_WHIP": 1.1763
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.035,
"final": 1.6044,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.578,
"final": 5.3376,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.629,
"final": 1.3673,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.407,
"final": 4.4057,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.455,
"final": 0.6817,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9898,
"final": 2.9898,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1763,
"final": 1.1763,
"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": 60.0,
"ER": 20,
"H": 58,
"BB": 14,
"SO": 48,
"HR": 5,
"ERA": 3.0,
"WHIP": 1.2,
"K9": 7.2,
"HR9": 0.75,
"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-26T00:00:00"
},
"recent_form_boost": 0.8424355819100791,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "593958",
"player_name": "Eduardo Rodriguez",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"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": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 4.0,
"delta": 1.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": 3.0,
"after": 4.0,
"delta": 1.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": "ARI",
"games": 139,
"wins": 73,
"losses": 66,
"win_pct": 0.5252,
"runs_scored": 626.0,
"runs_allowed": 622.0,
"run_differential": 4.0,
"run_differential_per_game": 0.0288,
"avg_runs_scored": 4.5036,
"avg_runs_allowed": 4.4748,
"offense_index": 1.0069,
"defense_index": 0.9995,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.7,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.025
},
"opponent": {
"team": "PHI",
"games": 138,
"wins": 78,
"losses": 60,
"win_pct": 0.5652,
"runs_scored": 624.0,
"runs_allowed": 593.0,
"run_differential": 31.0,
"run_differential_per_game": 0.2246,
"avg_runs_scored": 4.5217,
"avg_runs_allowed": 4.2971,
"offense_index": 1.011,
"defense_index": 1.0409,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.4,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.188
},
"edges": {
"quality_edge": -0.163,
"offense_edge": 0.0069,
"opponent_offense_edge": 0.011,
"defense_strength": -0.0005,
"opponent_defense_weakness": -0.0409,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.993,
"run_prevention": 1.01,
"strikeout": 0.9942
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "593958",
"profile": {
"available": true,
"pitcher_id": "593958",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 610.0,
"k_percent": 18.0,
"bb_percent": 7.9,
"woba": 0.291,
"xwoba": 0.324,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 33.9,
"avg_best_speed": 76.0943,
"avg_hyper_speed": 93.3432,
"whiff_percent": 21.1,
"swing_percent": 48.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0144,
"command_and_miss": -0.3907,
"regression_edge": -0.9429,
"xwoba_edge": -0.3714,
"barrel_edge": -0.1111,
"hard_hit_edge": 0.5571,
"whiff_edge": -0.5857,
"bb_edge": 0.325,
"pitch_design_score": -0.0867
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "593958",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 104,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 104,
"pitch_usage": 0.0,
"release_speed": 88.31573743838237,
"release_spin_rate": 2174.324470429921,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 104,
"pitch_usage": 0.0,
"release_speed": 88.31573743838237,
"release_spin_rate": 2174.324470429921,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.3157,
"release_spin_rate": 2174.3245,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0867,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6196,
"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.1947,
"sample_weight": 1.0,
"run_prevention_factor": 1.0166,
"strikeout_factor": 0.9543,
"walk_factor": 0.974,
"homer_factor": 0.9977,
"woba_minus_xwoba": -0.033,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "593958",
"espn_id": 32675,
"player_name": "Eduardo Rodriguez",
"team": "ARI",
"role": "pitcher",
"espn_rank": 7,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 7,
"gp_value": 27.0,
"gp_rank": 240,
"gs_value": 27.0,
"gs_rank": 13,
"qs_value": 17.0,
"qs_rank": 5,
"era_value": 2.5,
"era_rank": 6.0,
"w_value": 14.0,
"w_rank": 5,
"l_value": 4.0,
"l_rank": 169,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 162.0,
"ip_rank": 7,
"h_value": 140.0,
"h_rank": 21,
"er_value": 45.0,
"er_rank": 116,
"hr_value": 14.0,
"hr_rank": 95,
"bb_value": 52.0,
"bb_rank": 24,
"k_value": 119.0,
"k_rank": 63,
"k_per_9_value": 6.611111,
"k_per_9_rank": 243,
"whip_value": 1.1851,
"whip_rank": 28.0,
"war_value": 5.16,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0166,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0166,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9977,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9543,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_SD@CIN | away | Randy Vásquez | Randy Vásquez | True | 5.0 | 4.2 | -1 | 3 | 2 | -1 | 2/5 | 0/1 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.024390243902439,
"WHIP": 1.2845528455284554,
"IP": 123.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.063,
"recent_avg_IP": 5.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.7777,
"sample_weight": 1.0,
"run_prevention_factor": 1.0661,
"strikeout_factor": 0.9229,
"walk_factor": 0.948,
"homer_factor": 1.1293,
"regression_flag": "negative_pitcher_regression",
"k_percent": 14.7,
"bb_percent": 6.6,
"woba": 0.325,
"xwoba": 0.361,
"barrel_percent": 10.2,
"hard_hit_percent": 43.9,
"whiff_percent": 18.9
},
"espn_rank": {
"rank": 175,
"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": "681190",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 8.0,
"R": 8.0,
"H": 14.0,
"BB": 4.0,
"SO": 12.0,
"HR": 1.0,
"BF": 102.0,
"Pitches": 387.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 2.8,
"BB": 0.8,
"SO": 2.4,
"HR": 0.2,
"BF": 20.4,
"Pitches": 77.4
},
"rates": {
"ERA": 2.5714,
"WHIP": 0.6429,
"ER_per_IP": 0.28571,
"H_per_IP": 0.5,
"BB_per_IP": 0.14286,
"SO_per_IP": 0.42857,
"HR_per_IP": 0.03571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 42.0,
"ER": 15.0,
"R": 15.0,
"H": 32.0,
"BB": 8.0,
"SO": 16.0,
"HR": 2.0,
"BF": 163.0,
"Pitches": 590.0
},
"per_game": {
"IP": 4.1,
"ER": 1.5,
"R": 1.5,
"H": 3.2,
"BB": 0.8,
"SO": 1.6,
"HR": 0.2,
"BF": 16.3,
"Pitches": 59.0
},
"rates": {
"ERA": 3.2143,
"WHIP": 0.9524,
"ER_per_IP": 0.35714,
"H_per_IP": 0.7619,
"BB_per_IP": 0.19048,
"SO_per_IP": 0.38095,
"HR_per_IP": 0.04762
}
},
"season": {
"games": 26,
"totals": {
"IP": 123.0,
"ER": 55.0,
"R": 59.0,
"H": 124.0,
"BB": 34.0,
"SO": 76.0,
"HR": 15.0,
"BF": 516.0,
"Pitches": 1971.0
},
"per_game": {
"IP": 4.2,
"ER": 2.1154,
"R": 2.2692,
"H": 4.7692,
"BB": 1.3077,
"SO": 2.9231,
"HR": 0.5769,
"BF": 19.8462,
"Pitches": 75.8077
},
"rates": {
"ERA": 4.0244,
"WHIP": 1.2846,
"ER_per_IP": 0.44715,
"H_per_IP": 1.00813,
"BB_per_IP": 0.27642,
"SO_per_IP": 0.61789,
"HR_per_IP": 0.12195
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.84,
"predicted_H": 3.692,
"predicted_BB": 1.08,
"predicted_SO": 2.643,
"predicted_HR": 0.358,
"predicted_ERA": 3.3123,
"predicted_WHIP": 0.9544
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.84,
"final": 2.3251,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.692,
"final": 2.9845,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.08,
"final": 0.6284,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.643,
"final": 3.6286,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.358,
"final": 0.2083,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3123,
"final": 3.3123,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9544,
"final": 0.9544,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 1,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0.0,
"OBP": 0.0,
"SLG": 0.0,
"OPS": 0.0,
"games_played": 1,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 42.0,
"ER": 15,
"H": 32,
"BB": 8,
"SO": 16,
"HR": 2,
"ERA": 3.2142857142857144,
"WHIP": 0.9523809523809523,
"K9": 3.4285714285714284,
"HR9": 0.42857142857142855,
"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-26T00:00:00"
},
"recent_form_boost": 0.8603522485767456,
"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": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 5.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": "681190",
"player_name": "Randy V\u00e1squez",
"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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 2.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": 0.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 138,
"wins": 73,
"losses": 65,
"win_pct": 0.529,
"runs_scored": 588.0,
"runs_allowed": 573.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1087,
"avg_runs_scored": 4.2609,
"avg_runs_allowed": 4.1522,
"offense_index": 0.9541,
"defense_index": 1.0756,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.3,
"run_differential": 12.0
},
"available": true,
"quality_score": 0.038
},
"opponent": {
"team": "CIN",
"games": 138,
"wins": 65,
"losses": 73,
"win_pct": 0.471,
"runs_scored": 570.0,
"runs_allowed": 683.0,
"run_differential": -113.0,
"run_differential_per_game": -0.8188,
"avg_runs_scored": 4.1304,
"avg_runs_allowed": 4.9493,
"offense_index": 0.9249,
"defense_index": 0.9024,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 7.1,
"run_differential": -24.0
},
"available": true,
"quality_score": -0.1605
},
"edges": {
"quality_edge": 0.1985,
"offense_edge": -0.0459,
"opponent_offense_edge": -0.0751,
"defense_strength": 0.0756,
"opponent_defense_weakness": 0.0976,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0132,
"run_prevention": 0.9705,
"strikeout": 1.012
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681190",
"profile": {
"available": true,
"pitcher_id": "681190",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 451.0,
"k_percent": 14.7,
"bb_percent": 6.6,
"woba": 0.325,
"xwoba": 0.361,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 10.2,
"hard_hit_percent": 43.9,
"avg_best_speed": 81.954,
"avg_hyper_speed": 94.7985,
"whiff_percent": 18.9,
"swing_percent": 49.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.9163,
"command_and_miss": -0.6479,
"regression_edge": -1.0286,
"xwoba_edge": -1.4286,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.8714,
"whiff_edge": -0.9,
"bb_edge": 0.65,
"pitch_design_score": 0.085
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681190",
"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": 91.38308720522035,
"release_spin_rate": 2598.7911471091766,
"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": 91.38308720522035,
"release_spin_rate": 2598.7911471091766,
"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.3831,
"release_spin_rate": 2598.7911,
"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.085,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.6073,
"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.7777,
"sample_weight": 1.0,
"run_prevention_factor": 1.0661,
"strikeout_factor": 0.9229,
"walk_factor": 0.948,
"homer_factor": 1.1293,
"woba_minus_xwoba": -0.036,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "681190",
"espn_id": 4722847,
"player_name": "Randy Vasquez",
"team": "SD",
"role": "pitcher",
"espn_rank": 175,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 175,
"gp_value": 26.0,
"gp_rank": 273,
"gs_value": 21.0,
"gs_rank": 87,
"qs_value": 6.0,
"qs_rank": 88,
"era_value": 4.0243,
"era_rank": null,
"w_value": 10.0,
"w_rank": 26,
"l_value": 6.0,
"l_rank": 102,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 1.0,
"hld_rank": 262,
"ip_value": 123.0,
"ip_rank": 85,
"h_value": 124.0,
"h_rank": 60,
"er_value": 55.0,
"er_rank": 71,
"hr_value": 15.0,
"hr_rank": 78,
"bb_value": 34.0,
"bb_rank": 121,
"k_value": 76.0,
"k_rank": 151,
"k_per_9_value": 5.5609756,
"k_per_9_rank": 47,
"whip_value": 1.2845,
"whip_rank": null,
"war_value": 0.98,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0661,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 1.0661,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.948,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1293,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9229,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 17,
"Pitches": 81,
"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/20260901_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"
}
} |
| 20260901 | 20260901_SD@CIN | home | Nick Lodolo | Nick Lodolo | True | 4.0 | 6.0 | 6 | 6 | 2 | -4 | 6/5 | 2/2 | 2/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.2405063291139244,
"WHIP": 1.5443037974683544,
"IP": 79.0,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.938,
"recent_avg_IP": 4.267,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.8604,
"sample_weight": 1.0,
"run_prevention_factor": 1.0731,
"strikeout_factor": 0.9583,
"walk_factor": 1.0,
"homer_factor": 1.1162,
"regression_flag": "neutral",
"k_percent": 17.8,
"bb_percent": 9.2,
"woba": 0.376,
"xwoba": 0.384,
"barrel_percent": 9.8,
"hard_hit_percent": 39.4,
"whiff_percent": 22.0
},
"espn_rank": {
"rank": 231,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "666157",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 16.0,
"R": 16.0,
"H": 29.0,
"BB": 9.0,
"SO": 18.0,
"HR": 7.0,
"BF": 102.0,
"Pitches": 407.0
},
"per_game": {
"IP": 4.1,
"ER": 3.2,
"R": 3.2,
"H": 5.8,
"BB": 1.8,
"SO": 3.6,
"HR": 1.4,
"BF": 20.4,
"Pitches": 81.4
},
"rates": {
"ERA": 6.75,
"WHIP": 1.7812,
"ER_per_IP": 0.75,
"H_per_IP": 1.35938,
"BB_per_IP": 0.42188,
"SO_per_IP": 0.84375,
"HR_per_IP": 0.32812
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.1,
"ER": 26.0,
"R": 26.0,
"H": 54.0,
"BB": 19.0,
"SO": 39.0,
"HR": 7.0,
"BF": 214.0,
"Pitches": 861.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 5.4,
"BB": 1.9,
"SO": 3.9,
"HR": 0.7,
"BF": 21.4,
"Pitches": 86.1
},
"rates": {
"ERA": 5.0504,
"WHIP": 1.5755,
"ER_per_IP": 0.56115,
"H_per_IP": 1.16547,
"BB_per_IP": 0.41007,
"SO_per_IP": 0.84173,
"HR_per_IP": 0.15108
}
},
"season": {
"games": 16,
"totals": {
"IP": 79.0,
"ER": 46.0,
"R": 46.0,
"H": 89.0,
"BB": 33.0,
"SO": 64.0,
"HR": 15.0,
"BF": 359.0,
"Pitches": 1416.0
},
"per_game": {
"IP": 5.0,
"ER": 2.875,
"R": 2.875,
"H": 5.5625,
"BB": 2.0625,
"SO": 4.0,
"HR": 0.9375,
"BF": 22.4375,
"Pitches": 88.5
},
"rates": {
"ERA": 5.2405,
"WHIP": 1.5443,
"ER_per_IP": 0.58228,
"H_per_IP": 1.12658,
"BB_per_IP": 0.41772,
"SO_per_IP": 0.81013,
"HR_per_IP": 0.18987
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.827,
"predicted_H": 5.432,
"predicted_BB": 1.869,
"predicted_SO": 3.962,
"predicted_HR": 0.997,
"predicted_ERA": 5.5271,
"predicted_WHIP": 1.586
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.827,
"final": 3.8061,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.432,
"final": 5.6879,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.869,
"final": 1.928,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.962,
"final": 3.0779,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.997,
"final": 0.9984,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5271,
"final": 5.5271,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.586,
"final": 1.586,
"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": 46.1,
"ER": 26,
"H": 54,
"BB": 19,
"SO": 39,
"HR": 7,
"ERA": 5.0503597122302155,
"WHIP": 1.5755395683453237,
"K9": 7.575539568345324,
"HR9": 1.3597122302158273,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 1.0824895387446114,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 5,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "666157",
"player_name": "Nick Lodolo",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"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.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"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.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 138,
"wins": 65,
"losses": 73,
"win_pct": 0.471,
"runs_scored": 570.0,
"runs_allowed": 683.0,
"run_differential": -113.0,
"run_differential_per_game": -0.8188,
"avg_runs_scored": 4.1304,
"avg_runs_allowed": 4.9493,
"offense_index": 0.9249,
"defense_index": 0.9024,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 7.1,
"run_differential": -24.0
},
"available": true,
"quality_score": -0.1605
},
"opponent": {
"team": "SD",
"games": 138,
"wins": 73,
"losses": 65,
"win_pct": 0.529,
"runs_scored": 588.0,
"runs_allowed": 573.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1087,
"avg_runs_scored": 4.2609,
"avg_runs_allowed": 4.1522,
"offense_index": 0.9541,
"defense_index": 1.0756,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.3,
"run_differential": 12.0
},
"available": true,
"quality_score": 0.038
},
"edges": {
"quality_edge": -0.1985,
"offense_edge": -0.0751,
"opponent_offense_edge": -0.0459,
"defense_strength": -0.0976,
"opponent_defense_weakness": -0.0756,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.991,
"run_prevention": 1.0123,
"strikeout": 0.9977
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "666157",
"profile": {
"available": true,
"pitcher_id": "666157",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 307.0,
"k_percent": 17.8,
"bb_percent": 9.2,
"woba": 0.376,
"xwoba": 0.384,
"sweet_spot_percent": 37.5,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 39.4,
"avg_best_speed": 79.7568,
"avg_hyper_speed": 94.7172,
"whiff_percent": 22.0,
"swing_percent": 45.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -1.2979,
"command_and_miss": -0.4236,
"regression_edge": -0.2286,
"xwoba_edge": -2.0857,
"barrel_edge": -0.5556,
"hard_hit_edge": -0.2286,
"whiff_edge": -0.4571,
"bb_edge": 0.0,
"pitch_design_score": -0.0074
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "666157",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 89.73344991310856,
"release_spin_rate": 2279.7813049186448,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 89.73344991310856,
"release_spin_rate": 2279.7813049186448,
"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.7334,
"release_spin_rate": 2279.7813,
"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.0074,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0525,
"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.8604,
"sample_weight": 1.0,
"run_prevention_factor": 1.0731,
"strikeout_factor": 0.9583,
"walk_factor": 1.0,
"homer_factor": 1.1162,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "666157",
"espn_id": 42433,
"player_name": "Nick Lodolo",
"team": "CIN",
"role": "pitcher",
"espn_rank": 231,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 231,
"gp_value": 16.0,
"gp_rank": 428,
"gs_value": 16.0,
"gs_rank": 120,
"qs_value": 3.0,
"qs_rank": 134,
"era_value": 5.2405,
"era_rank": null,
"w_value": 3.0,
"w_rank": 234,
"l_value": 3.0,
"l_rank": 225,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 79.0,
"ip_rank": 154,
"h_value": 89.0,
"h_rank": 121,
"er_value": 46.0,
"er_rank": 113,
"hr_value": 15.0,
"hr_rank": 78,
"bb_value": 33.0,
"bb_rank": 127,
"k_value": 64.0,
"k_rank": 193,
"k_per_9_value": 7.291139,
"k_per_9_rank": 33,
"whip_value": 1.5443,
"whip_rank": null,
"war_value": 0.62,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0731,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0731,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1162,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9583,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 88,
"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": "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/20260901_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"
}
} |
| 20260901 | 20260901_SEA@BOS | away | Bryan Woo | Bryan Woo | True | 5.2 | 6.0 | 1 | 1 | 1 | 0 | 3/5 | 2/1 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.362997658079625,
"WHIP": 1.0960187353629975,
"IP": 142.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.693,
"recent_avg_IP": 5.4,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1471,
"sample_weight": 1.0,
"run_prevention_factor": 0.9875,
"strikeout_factor": 1.0114,
"walk_factor": 0.92,
"homer_factor": 1.027,
"regression_flag": "neutral",
"k_percent": 24.4,
"bb_percent": 5.2,
"woba": 0.29,
"xwoba": 0.297,
"barrel_percent": 7.5,
"hard_hit_percent": 44.0,
"whiff_percent": 24.7
},
"espn_rank": {
"rank": 163,
"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": "693433",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 13.0,
"R": 13.0,
"H": 19.0,
"BB": 6.0,
"SO": 28.0,
"HR": 5.0,
"BF": 106.0,
"Pitches": 425.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.6,
"H": 3.8,
"BB": 1.2,
"SO": 5.6,
"HR": 1.0,
"BF": 21.2,
"Pitches": 85.0
},
"rates": {
"ERA": 4.3333,
"WHIP": 0.9259,
"ER_per_IP": 0.48148,
"H_per_IP": 0.7037,
"BB_per_IP": 0.22222,
"SO_per_IP": 1.03704,
"HR_per_IP": 0.18519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 30.0,
"R": 32.0,
"H": 53.0,
"BB": 14.0,
"SO": 54.0,
"HR": 8.0,
"BF": 227.0,
"Pitches": 897.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.2,
"H": 5.3,
"BB": 1.4,
"SO": 5.4,
"HR": 0.8,
"BF": 22.7,
"Pitches": 89.7
},
"rates": {
"ERA": 5.0625,
"WHIP": 1.2562,
"ER_per_IP": 0.5625,
"H_per_IP": 0.99375,
"BB_per_IP": 0.2625,
"SO_per_IP": 1.0125,
"HR_per_IP": 0.15
}
},
"season": {
"games": 25,
"totals": {
"IP": 142.1,
"ER": 69.0,
"R": 73.0,
"H": 126.0,
"BB": 30.0,
"SO": 142.0,
"HR": 17.0,
"BF": 581.0,
"Pitches": 2194.0
},
"per_game": {
"IP": 5.2,
"ER": 2.76,
"R": 2.92,
"H": 5.04,
"BB": 1.2,
"SO": 5.68,
"HR": 0.68,
"BF": 23.24,
"Pitches": 87.76
},
"rates": {
"ERA": 4.363,
"WHIP": 1.096,
"ER_per_IP": 0.48478,
"H_per_IP": 0.88525,
"BB_per_IP": 0.21077,
"SO_per_IP": 0.99766,
"HR_per_IP": 0.11944
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.768,
"predicted_H": 4.7,
"predicted_BB": 1.399,
"predicted_SO": 5.483,
"predicted_HR": 0.858,
"predicted_ERA": 4.576,
"predicted_WHIP": 1.1202
}
},
"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.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.768,
"final": 2.0247,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.7,
"final": 3.9853,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.399,
"final": 1.6517,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.483,
"final": 4.4391,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.858,
"final": 0.4973,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.576,
"final": 4.576,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1202,
"final": 1.1202,
"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": 30,
"H": 53,
"BB": 14,
"SO": 54,
"HR": 8,
"ERA": 5.0625,
"WHIP": 1.2562499999999999,
"K9": 9.112499999999999,
"HR9": 1.3499999999999999,
"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-26T00:00:00"
},
"recent_form_boost": 1.075873081910079,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693433",
"player_name": "Bryan Woo",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 138,
"wins": 64,
"losses": 74,
"win_pct": 0.4638,
"runs_scored": 538.0,
"runs_allowed": 611.0,
"run_differential": -73.0,
"run_differential_per_game": -0.529,
"avg_runs_scored": 3.8986,
"avg_runs_allowed": 4.4275,
"offense_index": 0.8729,
"defense_index": 1.0087,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 6.5,
"run_differential": -27.0
},
"available": true,
"quality_score": -0.1309
},
"opponent": {
"team": "BOS",
"games": 138,
"wins": 75,
"losses": 63,
"win_pct": 0.5435,
"runs_scored": 618.0,
"runs_allowed": 533.0,
"run_differential": 85.0,
"run_differential_per_game": 0.6159,
"avg_runs_scored": 4.4783,
"avg_runs_allowed": 3.8623,
"offense_index": 1.0027,
"defense_index": 1.1563,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.9,
"run_differential": -12.0
},
"available": true,
"quality_score": 0.1478
},
"edges": {
"quality_edge": -0.2787,
"offense_edge": -0.1271,
"opponent_offense_edge": 0.0027,
"defense_strength": 0.0087,
"opponent_defense_weakness": -0.1563,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.989,
"run_prevention": 1.0135,
"strikeout": 0.9914
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693433",
"profile": {
"available": true,
"pitcher_id": "693433",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 561.0,
"k_percent": 24.4,
"bb_percent": 5.2,
"woba": 0.29,
"xwoba": 0.297,
"sweet_spot_percent": 36.1,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 44.0,
"avg_best_speed": 79.4569,
"avg_hyper_speed": 94.5271,
"whiff_percent": 24.7,
"swing_percent": 53.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.1195,
"command_and_miss": 0.3357,
"regression_edge": -0.2,
"xwoba_edge": 0.4,
"barrel_edge": -0.0444,
"hard_hit_edge": -0.8857,
"whiff_edge": -0.0714,
"bb_edge": 1.0,
"pitch_design_score": 0.1607
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693433",
"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": 92.73481894159748,
"release_spin_rate": 2270.1822599774046,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 92.73481894159748,
"release_spin_rate": 2270.1822599774046,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.7348,
"release_spin_rate": 2270.1823,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1607,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.148,
"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.1471,
"sample_weight": 1.0,
"run_prevention_factor": 0.9875,
"strikeout_factor": 1.0114,
"walk_factor": 0.92,
"homer_factor": 1.027,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693433",
"espn_id": 4629089,
"player_name": "Bryan Woo",
"team": "SEA",
"role": "pitcher",
"espn_rank": 163,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 163,
"gp_value": 25.0,
"gp_rank": 296,
"gs_value": 25.0,
"gs_rank": 47,
"qs_value": 13.0,
"qs_rank": 23,
"era_value": 4.3629,
"era_rank": 43.0,
"w_value": 9.0,
"w_rank": 34,
"l_value": 9.0,
"l_rank": 25,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 142.1,
"ip_rank": 43,
"h_value": 126.0,
"h_rank": 53,
"er_value": 69.0,
"er_rank": 23,
"hr_value": 17.0,
"hr_rank": 58,
"bb_value": 30.0,
"bb_rank": 150,
"k_value": 142.0,
"k_rank": 31,
"k_per_9_value": 8.978923,
"k_per_9_rank": 19,
"whip_value": 1.096,
"whip_rank": 12.0,
"war_value": 1.05,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9875,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9875,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.92,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.027,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0114,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_SEA@BOS | home | Jedixson Paez | Jedixson Paez | True | 3.0 | 3.2 | 2 | 2 | 8 | 6 | 6/10 | 2/2 | 2/3 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 18.0,
"WHIP": 2.3333333333333335,
"IP": 3.0,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 1.0,
"recent_avg_IP": 1.0,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.7153,
"sample_weight": 0.45,
"run_prevention_factor": 1.0608,
"strikeout_factor": 0.9331,
"walk_factor": 1.0864,
"homer_factor": 1.1454,
"regression_flag": "neutral",
"k_percent": 0.0,
"bb_percent": 18.8,
"woba": 0.499,
"xwoba": 0.492,
"barrel_percent": 23.1,
"hard_hit_percent": 46.2,
"whiff_percent": 16.7
},
"espn_rank": {
"rank": 656,
"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": 0.602,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1075,
"prior_weight": 0.8925
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "699151",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 3.0,
"ER": 6.0,
"R": 6.0,
"H": 4.0,
"BB": 3.0,
"SO": 0.0,
"HR": 2.0,
"BF": 16.0,
"Pitches": 65.0
},
"per_game": {
"IP": 1.0,
"ER": 2.0,
"R": 2.0,
"H": 1.3333,
"BB": 1.0,
"SO": 0.0,
"HR": 0.6667,
"BF": 5.3333,
"Pitches": 21.6667
},
"rates": {
"ERA": 18.0,
"WHIP": 2.3333,
"ER_per_IP": 2.0,
"H_per_IP": 1.33333,
"BB_per_IP": 1.0,
"SO_per_IP": 0.0,
"HR_per_IP": 0.66667
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 3.0,
"ER": 6.0,
"R": 6.0,
"H": 4.0,
"BB": 3.0,
"SO": 0.0,
"HR": 2.0,
"BF": 16.0,
"Pitches": 65.0
},
"per_game": {
"IP": 1.0,
"ER": 2.0,
"R": 2.0,
"H": 1.3333,
"BB": 1.0,
"SO": 0.0,
"HR": 0.6667,
"BF": 5.3333,
"Pitches": 21.6667
},
"rates": {
"ERA": 18.0,
"WHIP": 2.3333,
"ER_per_IP": 2.0,
"H_per_IP": 1.33333,
"BB_per_IP": 1.0,
"SO_per_IP": 0.0,
"HR_per_IP": 0.66667
}
},
"season": {
"games": 3,
"totals": {
"IP": 3.0,
"ER": 6.0,
"R": 6.0,
"H": 4.0,
"BB": 3.0,
"SO": 0.0,
"HR": 2.0,
"BF": 16.0,
"Pitches": 65.0
},
"per_game": {
"IP": 1.0,
"ER": 2.0,
"R": 2.0,
"H": 1.3333,
"BB": 1.0,
"SO": 0.0,
"HR": 0.6667,
"BF": 5.3333,
"Pitches": 21.6667
},
"rates": {
"ERA": 18.0,
"WHIP": 2.3333,
"ER_per_IP": 2.0,
"H_per_IP": 1.33333,
"BB_per_IP": 1.0,
"SO_per_IP": 0.0,
"HR_per_IP": 0.66667
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 2.426,
"predicted_H": 3.719,
"predicted_BB": 1.613,
"predicted_SO": 3.082,
"predicted_HR": 0.745,
"predicted_ERA": 5.9366,
"predicted_WHIP": 1.4498
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7271,
"form_weight": 0.2729,
"form_reliability": 0.1075,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.602,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1075,
"prior_weight": 0.8925
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 3.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.426,
"final": 2.1163,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.719,
"final": 5.3775,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.613,
"final": 1.8944,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.082,
"final": 1.5682,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.745,
"final": 0.9304,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.9366,
"final": 5.9366,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4498,
"final": 1.4498,
"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": 3.0,
"ER": 6,
"H": 4,
"BB": 3,
"SO": 0,
"HR": 2,
"ERA": 18.0,
"WHIP": 2.3333333333333335,
"K9": 0.0,
"HR9": 6.0,
"games_pitched": 3,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 3,
"error_prone": false
},
"games_count": 3,
"latest_game_date": "2026-03-31T00:00:00"
},
"recent_form_boost": 1.152578674797049,
"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": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.602,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1075,
"prior_weight": 0.8925
}
},
{
"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": 6,
"predicted_BB": 2,
"predicted_SO": 1,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "699151",
"player_name": "Jedixson Paez",
"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": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.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": 6.0,
"predicted_HR": 1.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 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": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 3.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 2.0,
"delta": 1.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": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"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": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 138,
"wins": 75,
"losses": 63,
"win_pct": 0.5435,
"runs_scored": 618.0,
"runs_allowed": 533.0,
"run_differential": 85.0,
"run_differential_per_game": 0.6159,
"avg_runs_scored": 4.4783,
"avg_runs_allowed": 3.8623,
"offense_index": 1.0027,
"defense_index": 1.1563,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.9,
"run_differential": -12.0
},
"available": true,
"quality_score": 0.1478
},
"opponent": {
"team": "SEA",
"games": 138,
"wins": 64,
"losses": 74,
"win_pct": 0.4638,
"runs_scored": 538.0,
"runs_allowed": 611.0,
"run_differential": -73.0,
"run_differential_per_game": -0.529,
"avg_runs_scored": 3.8986,
"avg_runs_allowed": 4.4275,
"offense_index": 0.8729,
"defense_index": 1.0087,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 6.5,
"run_differential": -27.0
},
"available": true,
"quality_score": -0.1309
},
"edges": {
"quality_edge": 0.2787,
"offense_edge": 0.0027,
"opponent_offense_edge": -0.1271,
"defense_strength": 0.1563,
"opponent_defense_weakness": -0.0087,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0209,
"run_prevention": 0.9501,
"strikeout": 1.0185
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "699151",
"profile": {
"available": true,
"pitcher_id": "699151",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 9.0,
"k_percent": 0.0,
"bb_percent": 18.8,
"woba": 0.499,
"xwoba": 0.492,
"sweet_spot_percent": 23.1,
"barrel_batted_rate": 23.1,
"hard_hit_percent": 46.2,
"avg_best_speed": 89.4278,
"avg_hyper_speed": 96.3163,
"whiff_percent": 16.7,
"swing_percent": 46.2
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -1.9277,
"command_and_miss": -2.03,
"regression_edge": 0.2,
"xwoba_edge": -2.5,
"barrel_edge": -2.5,
"hard_hit_edge": -1.2,
"whiff_edge": -1.2143,
"bb_edge": -2.4,
"pitch_design_score": -0.0273
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "699151",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 18,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 89.37777777777778,
"release_spin_rate": 2233.6944444444443,
"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": 18,
"pitch_usage": 0.0,
"release_speed": 89.37777777777778,
"release_spin_rate": 2233.6944444444443,
"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.3778,
"release_spin_rate": 2233.6944,
"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.0273,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1948,
"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.7153,
"sample_weight": 0.45,
"run_prevention_factor": 1.0608,
"strikeout_factor": 0.9331,
"walk_factor": 1.0864,
"homer_factor": 1.1454,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "699151",
"espn_id": 5332994,
"player_name": "Jedixson Paez",
"team": "BOS",
"role": "pitcher",
"espn_rank": 656,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 656,
"gp_value": 3.0,
"gp_rank": 691,
"gs_value": 0.0,
"gs_rank": 353,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 18.0,
"era_rank": null,
"w_value": 0.0,
"w_rank": 517,
"l_value": 0.0,
"l_rank": 564,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 3.0,
"ip_rank": 750,
"h_value": 4.0,
"h_rank": 732,
"er_value": 6.0,
"er_rank": 611,
"hr_value": 2.0,
"hr_rank": 504,
"bb_value": 3.0,
"bb_rank": 664,
"k_value": 0.0,
"k_rank": 789,
"k_per_9_value": 0.0,
"k_per_9_rank": 28,
"whip_value": 2.3333,
"whip_rank": null,
"war_value": -0.21,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0274,
"adjusted": 4
},
"predicted_H": {
"original": 4.0,
"factor": 1.0274,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0389,
"adjusted": 3
},
"predicted_HR": {
"original": 2.0,
"factor": 1.0654,
"adjusted": 2
},
"predicted_SO": {
"original": 0.0,
"factor": 0.9699,
"adjusted": 0
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 17,
"Pitches": 74,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 3 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was +6; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_SF@PIT | away | Logan Webb | Logan Webb | True | 6.0 | 2.0 | -12 | 2 | 9 | 7 | 6/9 | 0/2 | 8/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.71783295711061,
"WHIP": 1.1038374717832957,
"IP": 147.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 6.153,
"recent_avg_IP": 5.733,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0488,
"sample_weight": 1.0,
"run_prevention_factor": 0.9959,
"strikeout_factor": 0.9611,
"walk_factor": 0.936,
"homer_factor": 0.9701,
"regression_flag": "neutral",
"k_percent": 19.6,
"bb_percent": 6.0,
"woba": 0.28,
"xwoba": 0.306,
"barrel_percent": 5.7,
"hard_hit_percent": 38.3,
"whiff_percent": 20.7
},
"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": 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": "657277",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 9.0,
"R": 9.0,
"H": 24.0,
"BB": 6.0,
"SO": 25.0,
"HR": 2.0,
"BF": 117.0,
"Pitches": 443.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 4.8,
"BB": 1.2,
"SO": 5.0,
"HR": 0.4,
"BF": 23.4,
"Pitches": 88.6
},
"rates": {
"ERA": 2.8256,
"WHIP": 1.0465,
"ER_per_IP": 0.31395,
"H_per_IP": 0.83721,
"BB_per_IP": 0.2093,
"SO_per_IP": 0.87209,
"HR_per_IP": 0.06977
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.1,
"ER": 30.0,
"R": 30.0,
"H": 53.0,
"BB": 14.0,
"SO": 42.0,
"HR": 6.0,
"BF": 242.0,
"Pitches": 920.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.3,
"BB": 1.4,
"SO": 4.2,
"HR": 0.6,
"BF": 24.2,
"Pitches": 92.0
},
"rates": {
"ERA": 4.7093,
"WHIP": 1.1686,
"ER_per_IP": 0.52326,
"H_per_IP": 0.92442,
"BB_per_IP": 0.24419,
"SO_per_IP": 0.73256,
"HR_per_IP": 0.10465
}
},
"season": {
"games": 24,
"totals": {
"IP": 147.2,
"ER": 61.0,
"R": 64.0,
"H": 127.0,
"BB": 36.0,
"SO": 118.0,
"HR": 11.0,
"BF": 603.0,
"Pitches": 2232.0
},
"per_game": {
"IP": 6.0,
"ER": 2.5417,
"R": 2.6667,
"H": 5.2917,
"BB": 1.5,
"SO": 4.9167,
"HR": 0.4583,
"BF": 25.125,
"Pitches": 93.0
},
"rates": {
"ERA": 3.7178,
"WHIP": 1.1038,
"ER_per_IP": 0.41309,
"H_per_IP": 0.86005,
"BB_per_IP": 0.24379,
"SO_per_IP": 0.7991,
"HR_per_IP": 0.07449
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.443,
"predicted_H": 5.141,
"predicted_BB": 1.462,
"predicted_SO": 4.803,
"predicted_HR": 0.543,
"predicted_ERA": 3.8047,
"predicted_WHIP": 1.1425
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.443,
"final": 2.2557,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.141,
"final": 5.5042,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.462,
"final": 0.8438,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.803,
"final": 5.732,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.543,
"final": 0.3134,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8047,
"final": 3.8047,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1425,
"final": 1.1425,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.1,
"ER": 30,
"H": 53,
"BB": 14,
"SO": 42,
"HR": 6,
"ERA": 4.709302325581396,
"WHIP": 1.1686046511627908,
"K9": 6.593023255813954,
"HR9": 0.9418604651162792,
"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-26T00:00:00"
},
"recent_form_boost": 1.033947209817056,
"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": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "657277",
"player_name": "Logan Webb",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 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": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 138,
"wins": 57,
"losses": 81,
"win_pct": 0.413,
"runs_scored": 567.0,
"runs_allowed": 637.0,
"run_differential": -70.0,
"run_differential_per_game": -0.5072,
"avg_runs_scored": 4.1087,
"avg_runs_allowed": 4.6159,
"offense_index": 0.92,
"defense_index": 0.9675,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.2,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.1364
},
"opponent": {
"team": "PIT",
"games": 138,
"wins": 67,
"losses": 71,
"win_pct": 0.4855,
"runs_scored": 669.0,
"runs_allowed": 643.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1884,
"avg_runs_scored": 4.8478,
"avg_runs_allowed": 4.6594,
"offense_index": 1.0855,
"defense_index": 0.9585,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.7,
"avg_runs_allowed": 3.1,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0109
},
"edges": {
"quality_edge": -0.1473,
"offense_edge": -0.08,
"opponent_offense_edge": 0.0855,
"defense_strength": -0.0325,
"opponent_defense_weakness": 0.0415,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9897,
"run_prevention": 1.0243,
"strikeout": 0.9887
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "657277",
"profile": {
"available": true,
"pitcher_id": "657277",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 558.0,
"k_percent": 19.6,
"bb_percent": 6.0,
"woba": 0.28,
"xwoba": 0.306,
"sweet_spot_percent": 30.8,
"barrel_batted_rate": 5.7,
"hard_hit_percent": 38.3,
"avg_best_speed": 76.5574,
"avg_hyper_speed": 93.8347,
"whiff_percent": 20.7,
"swing_percent": 47.6
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3275,
"command_and_miss": -0.2129,
"regression_edge": -0.7429,
"xwoba_edge": 0.1429,
"barrel_edge": 0.3556,
"hard_hit_edge": -0.0714,
"whiff_edge": -0.6429,
"bb_edge": 0.8,
"pitch_design_score": -0.0622
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "657277",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 88.75348866858918,
"release_spin_rate": 2029.9391366774676,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 88.75348866858918,
"release_spin_rate": 2029.9391366774676,
"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.7535,
"release_spin_rate": 2029.9391,
"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.0622,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4445,
"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.0488,
"sample_weight": 1.0,
"run_prevention_factor": 0.9959,
"strikeout_factor": 0.9611,
"walk_factor": 0.936,
"homer_factor": 0.9701,
"woba_minus_xwoba": -0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "657277",
"espn_id": 41216,
"player_name": "Logan Webb",
"team": "SF",
"role": "pitcher",
"espn_rank": 63,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 63,
"gp_value": 24.0,
"gp_rank": 315,
"gs_value": 24.0,
"gs_rank": 60,
"qs_value": 16.0,
"qs_rank": 10,
"era_value": 3.7178,
"era_rank": 29.0,
"w_value": 8.0,
"w_rank": 58,
"l_value": 8.0,
"l_rank": 44,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 147.2,
"ip_rank": 36,
"h_value": 127.0,
"h_rank": 50,
"er_value": 61.0,
"er_rank": 51,
"hr_value": 11.0,
"hr_rank": 136,
"bb_value": 36.0,
"bb_rank": 104,
"k_value": 118.0,
"k_rank": 65,
"k_per_9_value": 7.1918736,
"k_per_9_rank": 48,
"whip_value": 1.1038,
"whip_rank": 15.0,
"war_value": 2.11,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9959,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9959,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.936,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9701,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9611,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 7",
"detail": "Actual minus predicted earned runs was +7; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -12 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/20260901_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"
}
} |
| 20260901 | 20260901_SF@PIT | home | Paul Skenes | Paul Skenes | True | 5.1 | 4.2 | -2 | 1 | 5 | 4 | 2/8 | 0/3 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.786206896551724,
"WHIP": 1.1172413793103448,
"IP": 145.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.37,
"recent_avg_IP": 4.867,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5412,
"sample_weight": 1.0,
"run_prevention_factor": 0.954,
"strikeout_factor": 1.0623,
"walk_factor": 0.954,
"homer_factor": 0.9766,
"regression_flag": "neutral",
"k_percent": 29.5,
"bb_percent": 6.9,
"woba": 0.291,
"xwoba": 0.275,
"barrel_percent": 7.3,
"hard_hit_percent": 39.1,
"whiff_percent": 28.5
},
"espn_rank": {
"rank": 47,
"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": "694973",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 12.0,
"R": 13.0,
"H": 21.0,
"BB": 13.0,
"SO": 26.0,
"HR": 3.0,
"BF": 104.0,
"Pitches": 426.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.6,
"H": 4.2,
"BB": 2.6,
"SO": 5.2,
"HR": 0.6,
"BF": 20.8,
"Pitches": 85.2
},
"rates": {
"ERA": 4.4384,
"WHIP": 1.3973,
"ER_per_IP": 0.49315,
"H_per_IP": 0.86301,
"BB_per_IP": 0.53425,
"SO_per_IP": 1.06849,
"HR_per_IP": 0.12329
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 29.0,
"R": 31.0,
"H": 51.0,
"BB": 21.0,
"SO": 61.0,
"HR": 5.0,
"BF": 221.0,
"Pitches": 889.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9,
"R": 3.1,
"H": 5.1,
"BB": 2.1,
"SO": 6.1,
"HR": 0.5,
"BF": 22.1,
"Pitches": 88.9
},
"rates": {
"ERA": 5.0192,
"WHIP": 1.3846,
"ER_per_IP": 0.55769,
"H_per_IP": 0.98077,
"BB_per_IP": 0.40385,
"SO_per_IP": 1.17308,
"HR_per_IP": 0.09615
}
},
"season": {
"games": 27,
"totals": {
"IP": 145.0,
"ER": 61.0,
"R": 69.0,
"H": 121.0,
"BB": 41.0,
"SO": 175.0,
"HR": 14.0,
"BF": 594.0,
"Pitches": 2441.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2593,
"R": 2.5556,
"H": 4.4815,
"BB": 1.5185,
"SO": 6.4815,
"HR": 0.5185,
"BF": 22.0,
"Pitches": 90.4074
},
"rates": {
"ERA": 3.7862,
"WHIP": 1.1172,
"ER_per_IP": 0.42069,
"H_per_IP": 0.83448,
"BB_per_IP": 0.28276,
"SO_per_IP": 1.2069,
"HR_per_IP": 0.09655
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.607,
"predicted_H": 4.738,
"predicted_BB": 2.227,
"predicted_SO": 5.741,
"predicted_HR": 0.596,
"predicted_ERA": 4.5069,
"predicted_WHIP": 1.3379
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.607,
"final": 1.9385,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.738,
"final": 3.599,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.227,
"final": 1.3006,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.741,
"final": 5.4327,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.596,
"final": 0.3481,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5069,
"final": 4.5069,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3379,
"final": 1.3379,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 29,
"H": 51,
"BB": 21,
"SO": 61,
"HR": 5,
"ERA": 5.019230769230769,
"WHIP": 1.3846153846153846,
"K9": 10.557692307692308,
"HR9": 0.8653846153846154,
"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-25T00:00:00"
},
"recent_form_boost": 1.0742144280639252,
"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": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694973",
"player_name": "Paul Skenes",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 138,
"wins": 67,
"losses": 71,
"win_pct": 0.4855,
"runs_scored": 669.0,
"runs_allowed": 643.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1884,
"avg_runs_scored": 4.8478,
"avg_runs_allowed": 4.6594,
"offense_index": 1.0855,
"defense_index": 0.9585,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.7,
"avg_runs_allowed": 3.1,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0109
},
"opponent": {
"team": "SF",
"games": 138,
"wins": 57,
"losses": 81,
"win_pct": 0.413,
"runs_scored": 567.0,
"runs_allowed": 637.0,
"run_differential": -70.0,
"run_differential_per_game": -0.5072,
"avg_runs_scored": 4.1087,
"avg_runs_allowed": 4.6159,
"offense_index": 0.92,
"defense_index": 0.9675,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.2,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.1364
},
"edges": {
"quality_edge": 0.1473,
"offense_edge": 0.0855,
"opponent_offense_edge": -0.08,
"defense_strength": -0.0415,
"opponent_defense_weakness": 0.0325,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0078,
"run_prevention": 0.984,
"strikeout": 1.0108
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694973",
"profile": {
"available": true,
"pitcher_id": "694973",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 572.0,
"k_percent": 29.5,
"bb_percent": 6.9,
"woba": 0.291,
"xwoba": 0.275,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 39.1,
"avg_best_speed": 77.0007,
"avg_hyper_speed": 93.9998,
"whiff_percent": 28.5,
"swing_percent": 51.1
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.5061,
"command_and_miss": 0.7686,
"regression_edge": 0.4571,
"xwoba_edge": 1.0286,
"barrel_edge": 0.0,
"hard_hit_edge": -0.1857,
"whiff_edge": 0.4714,
"bb_edge": 0.575,
"pitch_design_score": 0.1532
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694973",
"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": 92.6007202524121,
"release_spin_rate": 2107.096720068865,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 92.6007202524121,
"release_spin_rate": 2107.096720068865,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.6007,
"release_spin_rate": 2107.0967,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1532,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0944,
"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.5412,
"sample_weight": 1.0,
"run_prevention_factor": 0.954,
"strikeout_factor": 1.0623,
"walk_factor": 0.954,
"homer_factor": 0.9766,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694973",
"espn_id": 4719507,
"player_name": "Paul Skenes",
"team": "PIT",
"role": "pitcher",
"espn_rank": 47,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 47,
"gp_value": 27.0,
"gp_rank": 240,
"gs_value": 27.0,
"gs_rank": 13,
"qs_value": 11.0,
"qs_rank": 40,
"era_value": 3.7862,
"era_rank": 30.0,
"w_value": 9.0,
"w_rank": 34,
"l_value": 11.0,
"l_rank": 9,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 145.0,
"ip_rank": 39,
"h_value": 121.0,
"h_rank": 66,
"er_value": 61.0,
"er_rank": 51,
"hr_value": 14.0,
"hr_rank": 95,
"bb_value": 41.0,
"bb_rank": 71,
"k_value": 175.0,
"k_rank": 10,
"k_per_9_value": 10.862069,
"k_per_9_rank": 6,
"whip_value": 1.1172,
"whip_rank": 16.0,
"war_value": 2.6,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.954,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.954,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.954,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9766,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0623,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 78,
"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 6",
"detail": "Actual minus predicted hits was +6."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_STL@LAD | away | Michael McGreevy | Michael McGreevy | True | 5.2 | 5.0 | -2 | 3 | 4 | 1 | 6/5 | 1/2 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8571428571428568,
"WHIP": 1.2505854800936766,
"IP": 142.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.474,
"recent_avg_IP": 5.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6118,
"sample_weight": 1.0,
"run_prevention_factor": 1.052,
"strikeout_factor": 0.9354,
"walk_factor": 0.946,
"homer_factor": 1.1097,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.7,
"bb_percent": 6.5,
"woba": 0.32,
"xwoba": 0.353,
"barrel_percent": 10.0,
"hard_hit_percent": 42.3,
"whiff_percent": 19.1
},
"espn_rank": {
"rank": 92,
"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": "700241",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 15.0,
"R": 18.0,
"H": 30.0,
"BB": 9.0,
"SO": 22.0,
"HR": 5.0,
"BF": 117.0,
"Pitches": 469.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.6,
"H": 6.0,
"BB": 1.8,
"SO": 4.4,
"HR": 1.0,
"BF": 23.4,
"Pitches": 93.8
},
"rates": {
"ERA": 5.1266,
"WHIP": 1.481,
"ER_per_IP": 0.56962,
"H_per_IP": 1.13924,
"BB_per_IP": 0.34177,
"SO_per_IP": 0.83544,
"HR_per_IP": 0.18987
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 30.0,
"R": 34.0,
"H": 59.0,
"BB": 17.0,
"SO": 41.0,
"HR": 8.0,
"BF": 231.0,
"Pitches": 898.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.4,
"H": 5.9,
"BB": 1.7,
"SO": 4.1,
"HR": 0.8,
"BF": 23.1,
"Pitches": 89.8
},
"rates": {
"ERA": 5.0943,
"WHIP": 1.434,
"ER_per_IP": 0.56604,
"H_per_IP": 1.11321,
"BB_per_IP": 0.32075,
"SO_per_IP": 0.77358,
"HR_per_IP": 0.15094
}
},
"season": {
"games": 26,
"totals": {
"IP": 142.1,
"ER": 61.0,
"R": 65.0,
"H": 140.0,
"BB": 38.0,
"SO": 98.0,
"HR": 20.0,
"BF": 586.0,
"Pitches": 2309.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3462,
"R": 2.5,
"H": 5.3846,
"BB": 1.4615,
"SO": 3.7692,
"HR": 0.7692,
"BF": 22.5385,
"Pitches": 88.8077
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.2506,
"ER_per_IP": 0.42857,
"H_per_IP": 0.98361,
"BB_per_IP": 0.26698,
"SO_per_IP": 0.68852,
"HR_per_IP": 0.14052
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.845,
"predicted_H": 5.752,
"predicted_BB": 1.748,
"predicted_SO": 4.317,
"predicted_HR": 0.87,
"predicted_ERA": 4.8005,
"predicted_WHIP": 1.4064
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.845,
"final": 2.9098,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.752,
"final": 5.8557,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.748,
"final": 1.4352,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.317,
"final": 5.4389,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.87,
"final": 0.9244,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8005,
"final": 4.8005,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4064,
"final": 1.4064,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.0,
"ER": 30,
"H": 59,
"BB": 17,
"SO": 41,
"HR": 8,
"ERA": 5.09433962264151,
"WHIP": 1.4339622641509433,
"K9": 6.962264150943396,
"HR9": 1.3584905660377358,
"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-26T00:00:00"
},
"recent_form_boost": 1.0838978460610225,
"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": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700241",
"player_name": "Michael McGreevy",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"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.2,
"delta": -0.1333,
"percent_delta": -0.025,
"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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"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.2,
"delta": -0.1333,
"percent_delta": -0.025,
"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": 138,
"wins": 68,
"losses": 70,
"win_pct": 0.4928,
"runs_scored": 610.0,
"runs_allowed": 625.0,
"run_differential": -15.0,
"run_differential_per_game": -0.1087,
"avg_runs_scored": 4.4203,
"avg_runs_allowed": 4.529,
"offense_index": 0.9883,
"defense_index": 0.9876,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 7.2,
"run_differential": -24.0
},
"available": true,
"quality_score": -0.0895
},
"opponent": {
"team": "LAD",
"games": 137,
"wins": 82,
"losses": 55,
"win_pct": 0.5985,
"runs_scored": 670.0,
"runs_allowed": 517.0,
"run_differential": 153.0,
"run_differential_per_game": 1.1168,
"avg_runs_scored": 4.8905,
"avg_runs_allowed": 3.7737,
"offense_index": 1.0934,
"defense_index": 1.1852,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 2.6,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.2561
},
"edges": {
"quality_edge": -0.3456,
"offense_edge": -0.0117,
"opponent_offense_edge": 0.0934,
"defense_strength": -0.0124,
"opponent_defense_weakness": -0.1852,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9821,
"run_prevention": 1.0335,
"strikeout": 0.9822
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700241",
"profile": {
"available": true,
"pitcher_id": "700241",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 511.0,
"k_percent": 16.7,
"bb_percent": 6.5,
"woba": 0.32,
"xwoba": 0.353,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 42.3,
"avg_best_speed": 78.9605,
"avg_hyper_speed": 94.8344,
"whiff_percent": 19.1,
"swing_percent": 44.7
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6677,
"command_and_miss": -0.5043,
"regression_edge": -0.9429,
"xwoba_edge": -1.2,
"barrel_edge": -0.6,
"hard_hit_edge": -0.6429,
"whiff_edge": -0.8714,
"bb_edge": 0.675,
"pitch_design_score": -0.1559
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700241",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 87.08161246517682,
"release_spin_rate": 2204.006727677546,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 87.08161246517682,
"release_spin_rate": 2204.006727677546,
"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.0816,
"release_spin_rate": 2204.0067,
"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.1559,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1133,
"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.6118,
"sample_weight": 1.0,
"run_prevention_factor": 1.052,
"strikeout_factor": 0.9354,
"walk_factor": 0.946,
"homer_factor": 1.1097,
"woba_minus_xwoba": -0.033,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "700241",
"espn_id": 4424141,
"player_name": "Michael McGreevy",
"team": "STL",
"role": "pitcher",
"espn_rank": 92,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 92,
"gp_value": 26.0,
"gp_rank": 273,
"gs_value": 26.0,
"gs_rank": 33,
"qs_value": 14.0,
"qs_rank": 18,
"era_value": 3.8571,
"era_rank": 32.0,
"w_value": 5.0,
"w_rank": 131,
"l_value": 9.0,
"l_rank": 25,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 142.1,
"ip_rank": 43,
"h_value": 140.0,
"h_rank": 21,
"er_value": 61.0,
"er_rank": 51,
"hr_value": 20.0,
"hr_rank": 28,
"bb_value": 38.0,
"bb_rank": 86,
"k_value": 98.0,
"k_rank": 95,
"k_per_9_value": 6.1967216,
"k_per_9_rank": 59,
"whip_value": 1.2505,
"whip_rank": 34.0,
"war_value": 1.73,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.052,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.052,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.946,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1097,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9354,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"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 +1."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_STL@LAD | home | Eric Lauer | Eric Lauer | True | 5.1 | 3.0 | -7 | 5 | 7 | 2 | 6/8 | 2/1 | 2/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.784810126582279,
"WHIP": 1.2626582278481013,
"IP": 105.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.137,
"recent_avg_IP": 5.333,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4454,
"sample_weight": 1.0,
"run_prevention_factor": 1.0379,
"strikeout_factor": 0.928,
"walk_factor": 0.968,
"homer_factor": 1.0709,
"regression_flag": "neutral",
"k_percent": 15.6,
"bb_percent": 7.6,
"woba": 0.336,
"xwoba": 0.335,
"barrel_percent": 10.9,
"hard_hit_percent": 35.4,
"whiff_percent": 18.9
},
"espn_rank": {
"rank": 330,
"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": "641778",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 12.0,
"R": 13.0,
"H": 24.0,
"BB": 6.0,
"SO": 18.0,
"HR": 4.0,
"BF": 102.0,
"Pitches": 432.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.6,
"H": 4.8,
"BB": 1.2,
"SO": 3.6,
"HR": 0.8,
"BF": 20.4,
"Pitches": 86.4
},
"rates": {
"ERA": 4.6286,
"WHIP": 1.2857,
"ER_per_IP": 0.51429,
"H_per_IP": 1.02857,
"BB_per_IP": 0.25714,
"SO_per_IP": 0.77143,
"HR_per_IP": 0.17143
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 24.0,
"R": 25.0,
"H": 49.0,
"BB": 16.0,
"SO": 34.0,
"HR": 9.0,
"BF": 224.0,
"Pitches": 894.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.5,
"H": 4.9,
"BB": 1.6,
"SO": 3.4,
"HR": 0.9,
"BF": 22.4,
"Pitches": 89.4
},
"rates": {
"ERA": 4.1013,
"WHIP": 1.2342,
"ER_per_IP": 0.4557,
"H_per_IP": 0.93038,
"BB_per_IP": 0.3038,
"SO_per_IP": 0.64557,
"HR_per_IP": 0.17089
}
},
"season": {
"games": 21,
"totals": {
"IP": 105.1,
"ER": 56.0,
"R": 57.0,
"H": 99.0,
"BB": 34.0,
"SO": 70.0,
"HR": 24.0,
"BF": 448.0,
"Pitches": 1751.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6667,
"R": 2.7143,
"H": 4.7143,
"BB": 1.619,
"SO": 3.3333,
"HR": 1.1429,
"BF": 21.3333,
"Pitches": 83.381
},
"rates": {
"ERA": 4.7848,
"WHIP": 1.2627,
"ER_per_IP": 0.53165,
"H_per_IP": 0.93987,
"BB_per_IP": 0.32278,
"SO_per_IP": 0.66456,
"HR_per_IP": 0.22785
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.506,
"predicted_H": 4.915,
"predicted_BB": 1.525,
"predicted_SO": 3.782,
"predicted_HR": 0.885,
"predicted_ERA": 4.4769,
"predicted_WHIP": 1.2785
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.506,
"final": 3.5815,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.915,
"final": 5.3829,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.525,
"final": 1.7298,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.782,
"final": 2.5823,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.885,
"final": 0.9346,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4769,
"final": 4.4769,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2785,
"final": 1.2785,
"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": 24,
"H": 49,
"BB": 16,
"SO": 34,
"HR": 9,
"ERA": 4.101265822784811,
"WHIP": 1.2341772151898736,
"K9": 5.810126582278481,
"HR9": 1.5379746835443038,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-26T00:00:00"
},
"recent_form_boost": 0.9671824173531169,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 1.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641778",
"player_name": "Eric Lauer",
"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": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 137,
"wins": 82,
"losses": 55,
"win_pct": 0.5985,
"runs_scored": 670.0,
"runs_allowed": 517.0,
"run_differential": 153.0,
"run_differential_per_game": 1.1168,
"avg_runs_scored": 4.8905,
"avg_runs_allowed": 3.7737,
"offense_index": 1.0934,
"defense_index": 1.1852,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 2.6,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.2561
},
"opponent": {
"team": "STL",
"games": 138,
"wins": 68,
"losses": 70,
"win_pct": 0.4928,
"runs_scored": 610.0,
"runs_allowed": 625.0,
"run_differential": -15.0,
"run_differential_per_game": -0.1087,
"avg_runs_scored": 4.4203,
"avg_runs_allowed": 4.529,
"offense_index": 0.9883,
"defense_index": 0.9876,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 7.2,
"run_differential": -24.0
},
"available": true,
"quality_score": -0.0895
},
"edges": {
"quality_edge": 0.3456,
"offense_edge": 0.0934,
"opponent_offense_edge": -0.0117,
"defense_strength": 0.1852,
"opponent_defense_weakness": 0.0124,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0198,
"run_prevention": 0.9623,
"strikeout": 1.0113
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641778",
"profile": {
"available": true,
"pitcher_id": "641778",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 436.0,
"k_percent": 15.6,
"bb_percent": 7.6,
"woba": 0.336,
"xwoba": 0.335,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 10.9,
"hard_hit_percent": 35.4,
"avg_best_speed": 77.9324,
"avg_hyper_speed": 93.6107,
"whiff_percent": 18.9,
"swing_percent": 52.0
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4779,
"command_and_miss": -0.64,
"regression_edge": 0.0286,
"xwoba_edge": -0.6857,
"barrel_edge": -0.8,
"hard_hit_edge": 0.3429,
"whiff_edge": -0.9,
"bb_edge": 0.4,
"pitch_design_score": -0.1784
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641778",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 86.67996357341568,
"release_spin_rate": 2144.1878840855206,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 86.67996357341568,
"release_spin_rate": 2144.1878840855206,
"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.68,
"release_spin_rate": 2144.1879,
"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.1784,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2739,
"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.4454,
"sample_weight": 1.0,
"run_prevention_factor": 1.0379,
"strikeout_factor": 0.928,
"walk_factor": 0.968,
"homer_factor": 1.0709,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641778",
"espn_id": 39915,
"player_name": "Eric Lauer",
"team": "LAD",
"role": "pitcher",
"espn_rank": 330,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 330,
"gp_value": 21.0,
"gp_rank": 357,
"gs_value": 17.0,
"gs_rank": 113,
"qs_value": 6.0,
"qs_rank": 88,
"era_value": 4.7848,
"era_rank": null,
"w_value": 8.0,
"w_rank": 58,
"l_value": 6.0,
"l_rank": 102,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 105.1,
"ip_rank": 107,
"h_value": 99.0,
"h_rank": 104,
"er_value": 56.0,
"er_rank": 65,
"hr_value": 24.0,
"hr_rank": 13,
"bb_value": 34.0,
"bb_rank": 121,
"k_value": 70.0,
"k_rank": 166,
"k_per_9_value": 5.9810123,
"k_per_9_rank": 41,
"whip_value": 1.2626,
"whip_rank": null,
"war_value": 0.22,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0379,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0379,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.968,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0709,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.928,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 105,
"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 -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_TOR@CLE | away | Spencer Miles | Spencer Miles | True | 5.0 | 1.0 | -12 | 2 | 0 | -2 | 3/1 | 3/0 | 2/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9160000000000004,
"WHIP": 1.092,
"IP": 83.1,
"games_started": null,
"games_pitched": 42,
"role_avg_IP": 3.2,
"recent_avg_IP": 3.2,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5061,
"sample_weight": 1.0,
"run_prevention_factor": 0.957,
"strikeout_factor": 0.968,
"walk_factor": 0.942,
"homer_factor": 0.8858,
"regression_flag": "neutral",
"k_percent": 22.9,
"bb_percent": 6.3,
"woba": 0.26,
"xwoba": 0.269,
"barrel_percent": 3.8,
"hard_hit_percent": 35.0,
"whiff_percent": 18.6
},
"espn_rank": {
"rank": 70,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 83.1,
"season_ERA": 2.916,
"season_WHIP": 1.092,
"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": 16.721,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7698,
"prior_weight": 0.2302
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693686",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 42,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.1,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 1.0,
"SO": 4.0,
"HR": 0.0,
"BF": 20.0,
"Pitches": 76.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.4,
"BB": 0.2,
"SO": 0.8,
"HR": 0.0,
"BF": 4.0,
"Pitches": 15.2
},
"rates": {
"ERA": 0.0,
"WHIP": 0.5625,
"ER_per_IP": 0.0,
"H_per_IP": 0.375,
"BB_per_IP": 0.1875,
"SO_per_IP": 0.75,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 2.0,
"R": 2.0,
"H": 9.0,
"BB": 1.0,
"SO": 6.0,
"HR": 0.0,
"BF": 38.0,
"Pitches": 133.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 0.9,
"BB": 0.1,
"SO": 0.6,
"HR": 0.0,
"BF": 3.8,
"Pitches": 13.3
},
"rates": {
"ERA": 1.9286,
"WHIP": 1.0714,
"ER_per_IP": 0.21429,
"H_per_IP": 0.96429,
"BB_per_IP": 0.10714,
"SO_per_IP": 0.64286,
"HR_per_IP": 0.0
}
},
"season": {
"games": 42,
"totals": {
"IP": 83.1,
"ER": 27.0,
"R": 29.0,
"H": 70.0,
"BB": 21.0,
"SO": 77.0,
"HR": 5.0,
"BF": 336.0,
"Pitches": 1294.0
},
"per_game": {
"IP": 2.0,
"ER": 0.6429,
"R": 0.6905,
"H": 1.6667,
"BB": 0.5,
"SO": 1.8333,
"HR": 0.119,
"BF": 8.0,
"Pitches": 30.8095
},
"rates": {
"ERA": 2.916,
"WHIP": 1.092,
"ER_per_IP": 0.324,
"H_per_IP": 0.84,
"BB_per_IP": 0.252,
"SO_per_IP": 0.924,
"HR_per_IP": 0.06
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.495,
"predicted_H": 1.655,
"predicted_BB": 0.486,
"predicted_SO": 1.764,
"predicted_HR": 0.096,
"predicted_ERA": 2.0007,
"predicted_WHIP": 0.9609
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4473,
"form_weight": 0.5527,
"form_reliability": 0.7698,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.721,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7698,
"prior_weight": 0.2302
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.1,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 0.495,
"final": 2.0626,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 1.655,
"final": 2.2566,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.486,
"final": 1.6104,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 1.764,
"final": 1.8696,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.096,
"final": 0.0531,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.0007,
"final": 2.0007,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9609,
"final": 0.9609,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.1,
"ER": 2,
"H": 9,
"BB": 1,
"SO": 6,
"HR": 0,
"ERA": 1.9285714285714288,
"WHIP": 1.0714285714285716,
"K9": 5.7857142857142865,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 0.9143043169806131,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.721,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7698,
"prior_weight": 0.2302
}
},
{
"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": 3,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693686",
"player_name": "Spencer Miles",
"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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 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.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 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": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 138,
"wins": 68,
"losses": 70,
"win_pct": 0.4928,
"runs_scored": 548.0,
"runs_allowed": 598.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3623,
"avg_runs_scored": 3.971,
"avg_runs_allowed": 4.3333,
"offense_index": 0.8892,
"defense_index": 1.0306,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.7,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0157
},
"opponent": {
"team": "CLE",
"games": 137,
"wins": 69,
"losses": 68,
"win_pct": 0.5036,
"runs_scored": 557.0,
"runs_allowed": 559.0,
"run_differential": -2.0,
"run_differential_per_game": -0.0146,
"avg_runs_scored": 4.0657,
"avg_runs_allowed": 4.0803,
"offense_index": 0.9104,
"defense_index": 1.0945,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.1,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.1063
},
"edges": {
"quality_edge": -0.122,
"offense_edge": -0.1108,
"opponent_offense_edge": -0.0896,
"defense_strength": 0.0306,
"opponent_defense_weakness": -0.0945,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9996,
"run_prevention": 0.9887,
"strikeout": 1.0035
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693686",
"profile": {
"available": true,
"pitcher_id": "693686",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 317.0,
"k_percent": 22.9,
"bb_percent": 6.3,
"woba": 0.26,
"xwoba": 0.269,
"sweet_spot_percent": 27.8,
"barrel_batted_rate": 3.8,
"hard_hit_percent": 35.0,
"avg_best_speed": 75.6438,
"avg_hyper_speed": 93.0096,
"whiff_percent": 18.6,
"swing_percent": 47.8
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.9964,
"command_and_miss": -0.1207,
"regression_edge": -0.2571,
"xwoba_edge": 1.2,
"barrel_edge": 0.7778,
"hard_hit_edge": 0.4,
"whiff_edge": -0.9429,
"bb_edge": 0.725,
"pitch_design_score": 0.0647
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693686",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 10,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 10,
"pitch_usage": 0.0,
"release_speed": 91.01993422348478,
"release_spin_rate": 2457.7211257707427,
"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": 10,
"pitch_usage": 0.0,
"release_speed": 91.01993422348478,
"release_spin_rate": 2457.7211257707427,
"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.0199,
"release_spin_rate": 2457.7211,
"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.0647,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4621,
"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.5061,
"sample_weight": 1.0,
"run_prevention_factor": 0.957,
"strikeout_factor": 0.968,
"walk_factor": 0.942,
"homer_factor": 0.8858,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693686",
"espn_id": 4833671,
"player_name": "Spencer Miles",
"team": "TOR",
"role": "pitcher",
"espn_rank": 70,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 70,
"gp_value": 42.0,
"gp_rank": 144,
"gs_value": 5.0,
"gs_rank": 213,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 2.916,
"era_rank": null,
"w_value": 5.0,
"w_rank": 131,
"l_value": 2.0,
"l_rank": 314,
"sv_value": 1.0,
"sv_rank": 133,
"hld_value": 4.0,
"hld_rank": 185,
"ip_value": 83.1,
"ip_rank": 144,
"h_value": 70.0,
"h_rank": 155,
"er_value": 27.0,
"er_rank": 202,
"hr_value": 5.0,
"hr_rank": 299,
"bb_value": 21.0,
"bb_rank": 252,
"k_value": 77.0,
"k_rank": 146,
"k_per_9_value": 8.316,
"k_per_9_rank": 27,
"whip_value": 1.092,
"whip_rank": null,
"war_value": 1.97,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.957,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.957,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.942,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8858,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -12 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260901_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"
}
} |
| 20260901 | 20260901_TOR@CLE | home | Gavin Williams | Gavin Williams | True | 5.1 | 7.0 | 5 | 3 | 0 | -3 | 5/2 | 2/1 | 7/13 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.980769230769231,
"WHIP": 1.1217948717948718,
"IP": 156.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.778,
"recent_avg_IP": 4.533,
"last_start_IP": 1.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.108,
"sample_weight": 1.0,
"run_prevention_factor": 0.9908,
"strikeout_factor": 1.096,
"walk_factor": 0.972,
"homer_factor": 1.1378,
"regression_flag": "neutral",
"k_percent": 32.3,
"bb_percent": 7.8,
"woba": 0.301,
"xwoba": 0.309,
"barrel_percent": 12.0,
"hard_hit_percent": 47.6,
"whiff_percent": 31.6
},
"espn_rank": {
"rank": 61,
"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": "668909",
"report_date": "20260901",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 14.0,
"R": 14.0,
"H": 21.0,
"BB": 11.0,
"SO": 36.0,
"HR": 6.0,
"BF": 100.0,
"Pitches": 440.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 2.8,
"H": 4.2,
"BB": 2.2,
"SO": 7.2,
"HR": 1.2,
"BF": 20.0,
"Pitches": 88.0
},
"rates": {
"ERA": 5.5588,
"WHIP": 1.4118,
"ER_per_IP": 0.61765,
"H_per_IP": 0.92647,
"BB_per_IP": 0.48529,
"SO_per_IP": 1.58824,
"HR_per_IP": 0.26471
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 26.0,
"R": 26.0,
"H": 41.0,
"BB": 15.0,
"SO": 87.0,
"HR": 12.0,
"BF": 218.0,
"Pitches": 904.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.6,
"H": 4.1,
"BB": 1.5,
"SO": 8.7,
"HR": 1.2,
"BF": 21.8,
"Pitches": 90.4
},
"rates": {
"ERA": 4.3067,
"WHIP": 1.0307,
"ER_per_IP": 0.47853,
"H_per_IP": 0.7546,
"BB_per_IP": 0.27607,
"SO_per_IP": 1.60123,
"HR_per_IP": 0.22086
}
},
"season": {
"games": 27,
"totals": {
"IP": 156.0,
"ER": 69.0,
"R": 72.0,
"H": 126.0,
"BB": 49.0,
"SO": 204.0,
"HR": 27.0,
"BF": 632.0,
"Pitches": 2519.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5556,
"R": 2.6667,
"H": 4.6667,
"BB": 1.8148,
"SO": 7.5556,
"HR": 1.0,
"BF": 23.4074,
"Pitches": 93.2963
},
"rates": {
"ERA": 3.9808,
"WHIP": 1.1218,
"ER_per_IP": 0.44231,
"H_per_IP": 0.80769,
"BB_per_IP": 0.3141,
"SO_per_IP": 1.30769,
"HR_per_IP": 0.17308
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.714,
"predicted_H": 4.432,
"predicted_BB": 1.935,
"predicted_SO": 7.414,
"predicted_HR": 1.119,
"predicted_ERA": 4.7548,
"predicted_WHIP": 1.2396
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.714,
"final": 2.833,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.432,
"final": 4.6683,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.935,
"final": 1.962,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 7.414,
"final": 7.2418,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.119,
"final": 1.0695,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7548,
"final": 4.7548,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2396,
"final": 1.2396,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 26,
"H": 41,
"BB": 15,
"SO": 87,
"HR": 12,
"ERA": 4.306748466257669,
"WHIP": 1.030674846625767,
"K9": 14.411042944785276,
"HR9": 1.987730061349693,
"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-25T00:00:00"
},
"recent_form_boost": 0.9852116555297109,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "668909",
"player_name": "Gavin Williams",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 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": "CLE",
"games": 137,
"wins": 69,
"losses": 68,
"win_pct": 0.5036,
"runs_scored": 557.0,
"runs_allowed": 559.0,
"run_differential": -2.0,
"run_differential_per_game": -0.0146,
"avg_runs_scored": 4.0657,
"avg_runs_allowed": 4.0803,
"offense_index": 0.9104,
"defense_index": 1.0945,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.1,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.1063
},
"opponent": {
"team": "TOR",
"games": 138,
"wins": 68,
"losses": 70,
"win_pct": 0.4928,
"runs_scored": 548.0,
"runs_allowed": 598.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3623,
"avg_runs_scored": 3.971,
"avg_runs_allowed": 4.3333,
"offense_index": 0.8892,
"defense_index": 1.0306,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.7,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0157
},
"edges": {
"quality_edge": 0.122,
"offense_edge": -0.0896,
"opponent_offense_edge": -0.1108,
"defense_strength": 0.0945,
"opponent_defense_weakness": -0.0306,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0121,
"run_prevention": 0.9667,
"strikeout": 1.0125
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "668909",
"profile": {
"available": true,
"pitcher_id": "668909",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 593.0,
"k_percent": 32.3,
"bb_percent": 7.8,
"woba": 0.301,
"xwoba": 0.309,
"sweet_spot_percent": 36.2,
"barrel_batted_rate": 12.0,
"hard_hit_percent": 47.6,
"avg_best_speed": 79.3547,
"avg_hyper_speed": 95.0648,
"whiff_percent": 31.6,
"swing_percent": 49.3
},
"league_medians": {
"pa": 119.0,
"k_percent": 21.9,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6109,
"avg_hyper_speed": 93.9028,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.2664,
"command_and_miss": 1.0586,
"regression_edge": -0.2286,
"xwoba_edge": 0.0571,
"barrel_edge": -1.0444,
"hard_hit_edge": -1.4,
"whiff_edge": 0.9143,
"bb_edge": 0.35,
"pitch_design_score": 0.0606
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "668909",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 90.94628314658443,
"release_spin_rate": 2281.2769819363643,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 90.94628314658443,
"release_spin_rate": 2281.2769819363643,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.9463,
"release_spin_rate": 2281.277,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0606,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4326,
"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.108,
"sample_weight": 1.0,
"run_prevention_factor": 0.9908,
"strikeout_factor": 1.096,
"walk_factor": 0.972,
"homer_factor": 1.1378,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "668909",
"espn_id": 4345076,
"player_name": "Gavin Williams",
"team": "CLE",
"role": "pitcher",
"espn_rank": 61,
"espn_total_ranked": 841,
"metrics": {
"espn_rank": 61,
"gp_value": 27.0,
"gp_rank": 240,
"gs_value": 27.0,
"gs_rank": 13,
"qs_value": 9.0,
"qs_rank": 62,
"era_value": 3.9807,
"era_rank": 35.0,
"w_value": 12.0,
"w_rank": 13,
"l_value": 7.0,
"l_rank": 76,
"sv_value": 0.0,
"sv_rank": 245,
"hld_value": 0.0,
"hld_rank": 344,
"ip_value": 156.0,
"ip_rank": 14,
"h_value": 126.0,
"h_rank": 53,
"er_value": 69.0,
"er_rank": 23,
"hr_value": 27.0,
"hr_rank": 5,
"bb_value": 49.0,
"bb_rank": 35,
"k_value": 204.0,
"k_rank": 3,
"k_per_9_value": 11.76923,
"k_per_9_rank": 5,
"whip_value": 1.1217,
"whip_rank": 18.0,
"war_value": 2.16,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9908,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9908,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.972,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1378,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.096,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "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."
},
{
"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/20260901_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"
}
} |