| 20260910 | 20260910_COL@NYY | away | Ryan Feltner | Ryan Feltner | True | 4.2 | 5.0 | 1 | 4 | 4 | 0 | 7/6 | 0/1 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.90625,
"WHIP": 1.5656249999999998,
"IP": 106.2,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 4.889,
"recent_avg_IP": 5.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.437,
"sample_weight": 1.0,
"run_prevention_factor": 1.0371,
"strikeout_factor": 0.9634,
"walk_factor": 1.016,
"homer_factor": 1.0781,
"regression_flag": "neutral",
"k_percent": 16.9,
"bb_percent": 10.0,
"woba": 0.372,
"xwoba": 0.348,
"barrel_percent": 10.0,
"hard_hit_percent": 37.0,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 251,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663372",
"report_date": "20260910",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 18.0,
"R": 21.0,
"H": 33.0,
"BB": 15.0,
"SO": 22.0,
"HR": 1.0,
"BF": 121.0,
"Pitches": 445.0
},
"per_game": {
"IP": 5.0,
"ER": 3.6,
"R": 4.2,
"H": 6.6,
"BB": 3.0,
"SO": 4.4,
"HR": 0.2,
"BF": 24.2,
"Pitches": 89.0
},
"rates": {
"ERA": 6.5676,
"WHIP": 1.9459,
"ER_per_IP": 0.72973,
"H_per_IP": 1.33784,
"BB_per_IP": 0.60811,
"SO_per_IP": 0.89189,
"HR_per_IP": 0.04054
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 42.0,
"R": 45.0,
"H": 67.0,
"BB": 28.0,
"SO": 37.0,
"HR": 10.0,
"BF": 235.0,
"Pitches": 868.0
},
"per_game": {
"IP": 4.2,
"ER": 4.2,
"R": 4.5,
"H": 6.7,
"BB": 2.8,
"SO": 3.7,
"HR": 1.0,
"BF": 23.5,
"Pitches": 86.8
},
"rates": {
"ERA": 7.9301,
"WHIP": 1.993,
"ER_per_IP": 0.88112,
"H_per_IP": 1.40559,
"BB_per_IP": 0.58741,
"SO_per_IP": 0.77622,
"HR_per_IP": 0.20979
}
},
"season": {
"games": 22,
"totals": {
"IP": 106.2,
"ER": 70.0,
"R": 76.0,
"H": 119.0,
"BB": 48.0,
"SO": 81.0,
"HR": 19.0,
"BF": 479.0,
"Pitches": 1780.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1818,
"R": 3.4545,
"H": 5.4091,
"BB": 2.1818,
"SO": 3.6818,
"HR": 0.8636,
"BF": 21.7727,
"Pitches": 80.9091
},
"rates": {
"ERA": 5.9062,
"WHIP": 1.5656,
"ER_per_IP": 0.65625,
"H_per_IP": 1.11562,
"BB_per_IP": 0.45,
"SO_per_IP": 0.75937,
"HR_per_IP": 0.17813
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.526,
"predicted_H": 6.148,
"predicted_BB": 2.612,
"predicted_SO": 4.151,
"predicted_HR": 0.642,
"predicted_ERA": 6.4704,
"predicted_WHIP": 1.786
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.526,
"final": 4.1572,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 6.148,
"final": 6.5129,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.612,
"final": 1.4934,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.151,
"final": 4.5146,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.642,
"final": 0.7953,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.4704,
"final": 6.4704,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.786,
"final": 1.786,
"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": 42,
"H": 67,
"BB": 28,
"SO": 37,
"HR": 10,
"ERA": 7.930069930069929,
"WHIP": 1.993006993006993,
"K9": 6.986013986013985,
"HR9": 1.888111888111888,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 1.4123521141733844,
"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": 7.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 5,
"predicted_H": 7,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663372",
"player_name": "Ryan Feltner",
"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": 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": "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.2,
"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": 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": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 5.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": 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.2,
"after": 4.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": 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": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 145,
"wins": 55,
"losses": 90,
"win_pct": 0.3793,
"runs_scored": 683.0,
"runs_allowed": 830.0,
"run_differential": -147.0,
"run_differential_per_game": -1.0138,
"avg_runs_scored": 4.7103,
"avg_runs_allowed": 5.7241,
"offense_index": 1.0475,
"defense_index": 0.7856,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.9,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.2966
},
"opponent": {
"team": "NYY",
"games": 145,
"wins": 83,
"losses": 62,
"win_pct": 0.5724,
"runs_scored": 657.0,
"runs_allowed": 533.0,
"run_differential": 124.0,
"run_differential_per_game": 0.8552,
"avg_runs_scored": 4.531,
"avg_runs_allowed": 3.6759,
"offense_index": 1.0076,
"defense_index": 1.2233,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 3.5,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.2011
},
"edges": {
"quality_edge": -0.4977,
"offense_edge": 0.0475,
"opponent_offense_edge": 0.0076,
"defense_strength": -0.2144,
"opponent_defense_weakness": -0.2233,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9734,
"run_prevention": 1.0475,
"strikeout": 0.9845
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663372",
"profile": {
"available": true,
"pitcher_id": "663372",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 408.0,
"k_percent": 16.9,
"bb_percent": 10.0,
"woba": 0.372,
"xwoba": 0.348,
"sweet_spot_percent": 31.8,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 37.0,
"avg_best_speed": 75.5132,
"avg_hyper_speed": 93.5425,
"whiff_percent": 23.7,
"swing_percent": 48.6
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6985,
"command_and_miss": -0.4329,
"regression_edge": 0.6857,
"xwoba_edge": -1.0571,
"barrel_edge": -0.6444,
"hard_hit_edge": 0.1286,
"whiff_edge": -0.1857,
"bb_edge": -0.2,
"pitch_design_score": -0.0237
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663372",
"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": 89.45121101288434,
"release_spin_rate": 2332.457513921126,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 89.45121101288434,
"release_spin_rate": 2332.457513921126,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.4512,
"release_spin_rate": 2332.4575,
"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.0237,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1696,
"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.437,
"sample_weight": 1.0,
"run_prevention_factor": 1.0371,
"strikeout_factor": 0.9634,
"walk_factor": 1.016,
"homer_factor": 1.0781,
"woba_minus_xwoba": 0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663372",
"espn_id": 4019484,
"player_name": "Ryan Feltner",
"team": "COL",
"role": "pitcher",
"espn_rank": 251,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 251,
"gp_value": 22.0,
"gp_rank": 366,
"gs_value": 21.0,
"gs_rank": 93,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 5.9062,
"era_rank": null,
"w_value": 5.0,
"w_rank": 144,
"l_value": 9.0,
"l_rank": 31,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 106.2,
"ip_rank": 116,
"h_value": 120.0,
"h_rank": 76,
"er_value": 70.0,
"er_rank": 29,
"hr_value": 19.0,
"hr_rank": 48,
"bb_value": 48.0,
"bb_rank": 49,
"k_value": 81.0,
"k_rank": 153,
"k_per_9_value": 6.8343754,
"k_per_9_rank": 35,
"whip_value": 1.575,
"whip_rank": null,
"war_value": 0.53,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0371,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0371,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.016,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0781,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9634,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 92,
"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/20260910_COL@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260910 | 20260910_COL@NYY | home | Max Fried | Max Fried | True | 6.0 | 3.1 | -8 | 2 | 1 | -1 | 7/1 | 1/2 | 7/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.7282229965156795,
"WHIP": 0.9930313588850174,
"IP": 95.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.627,
"recent_avg_IP": 5.2,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8339,
"sample_weight": 1.0,
"run_prevention_factor": 0.9291,
"strikeout_factor": 1.0063,
"walk_factor": 0.974,
"homer_factor": 0.8008,
"regression_flag": "neutral",
"k_percent": 23.6,
"bb_percent": 7.9,
"woba": 0.242,
"xwoba": 0.248,
"barrel_percent": 1.6,
"hard_hit_percent": 29.6,
"whiff_percent": 24.5
},
"espn_rank": {
"rank": 24,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 95.2,
"season_ERA": 2.728,
"season_WHIP": 0.993,
"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": 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": "608331",
"report_date": "20260910",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 4.0,
"R": 4.0,
"H": 17.0,
"BB": 7.0,
"SO": 26.0,
"HR": 2.0,
"BF": 97.0,
"Pitches": 391.0
},
"per_game": {
"IP": 5.1,
"ER": 0.8,
"R": 0.8,
"H": 3.4,
"BB": 1.4,
"SO": 5.2,
"HR": 0.4,
"BF": 19.4,
"Pitches": 78.2
},
"rates": {
"ERA": 1.3846,
"WHIP": 0.9231,
"ER_per_IP": 0.15385,
"H_per_IP": 0.65385,
"BB_per_IP": 0.26923,
"SO_per_IP": 1.0,
"HR_per_IP": 0.07692
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 18.0,
"R": 18.0,
"H": 40.0,
"BB": 17.0,
"SO": 50.0,
"HR": 2.0,
"BF": 191.0,
"Pitches": 776.0
},
"per_game": {
"IP": 4.2,
"ER": 1.8,
"R": 1.8,
"H": 4.0,
"BB": 1.7,
"SO": 5.0,
"HR": 0.2,
"BF": 19.1,
"Pitches": 77.6
},
"rates": {
"ERA": 3.3517,
"WHIP": 1.1793,
"ER_per_IP": 0.37241,
"H_per_IP": 0.82759,
"BB_per_IP": 0.35172,
"SO_per_IP": 1.03448,
"HR_per_IP": 0.04138
}
},
"season": {
"games": 17,
"totals": {
"IP": 95.2,
"ER": 29.0,
"R": 29.0,
"H": 66.0,
"BB": 29.0,
"SO": 87.0,
"HR": 3.0,
"BF": 368.0,
"Pitches": 1431.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7059,
"R": 1.7059,
"H": 3.8824,
"BB": 1.7059,
"SO": 5.1176,
"HR": 0.1765,
"BF": 21.6471,
"Pitches": 84.1765
},
"rates": {
"ERA": 2.7282,
"WHIP": 0.993,
"ER_per_IP": 0.30314,
"H_per_IP": 0.6899,
"BB_per_IP": 0.30314,
"SO_per_IP": 0.90941,
"HR_per_IP": 0.03136
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.689,
"predicted_H": 4.172,
"predicted_BB": 1.714,
"predicted_SO": 5.258,
"predicted_HR": 0.408,
"predicted_ERA": 2.8384,
"predicted_WHIP": 1.099
}
},
"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": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.689,
"final": 1.8277,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.172,
"final": 5.4334,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.714,
"final": 1.3955,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.258,
"final": 6.035,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.408,
"final": 0.6721,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8384,
"final": 2.8384,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.099,
"final": 1.099,
"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": 18,
"H": 40,
"BB": 17,
"SO": 50,
"HR": 2,
"ERA": 3.3517241379310345,
"WHIP": 1.1793103448275861,
"K9": 9.310344827586206,
"HR9": 0.37241379310344824,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 0.8769457963532736,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 7.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": 2,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608331",
"player_name": "Max Fried",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": 1.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 145,
"wins": 83,
"losses": 62,
"win_pct": 0.5724,
"runs_scored": 657.0,
"runs_allowed": 533.0,
"run_differential": 124.0,
"run_differential_per_game": 0.8552,
"avg_runs_scored": 4.531,
"avg_runs_allowed": 3.6759,
"offense_index": 1.0076,
"defense_index": 1.2233,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 3.5,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.2011
},
"opponent": {
"team": "COL",
"games": 145,
"wins": 55,
"losses": 90,
"win_pct": 0.3793,
"runs_scored": 683.0,
"runs_allowed": 830.0,
"run_differential": -147.0,
"run_differential_per_game": -1.0138,
"avg_runs_scored": 4.7103,
"avg_runs_allowed": 5.7241,
"offense_index": 1.0475,
"defense_index": 0.7856,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.9,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.2966
},
"edges": {
"quality_edge": 0.4977,
"offense_edge": 0.0076,
"opponent_offense_edge": 0.0475,
"defense_strength": 0.2233,
"opponent_defense_weakness": 0.2144,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0247,
"run_prevention": 0.9604,
"strikeout": 1.0111
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608331",
"profile": {
"available": true,
"pitcher_id": "608331",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 331.0,
"k_percent": 23.6,
"bb_percent": 7.9,
"woba": 0.242,
"xwoba": 0.248,
"sweet_spot_percent": 29.6,
"barrel_batted_rate": 1.6,
"hard_hit_percent": 29.6,
"avg_best_speed": 74.4956,
"avg_hyper_speed": 92.5459,
"whiff_percent": 24.5,
"swing_percent": 45.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.4649,
"command_and_miss": 0.1429,
"regression_edge": -0.1714,
"xwoba_edge": 1.8,
"barrel_edge": 1.2222,
"hard_hit_edge": 1.1857,
"whiff_edge": -0.0714,
"bb_edge": 0.325,
"pitch_design_score": -0.0799
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608331",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 80,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 88.44857385808628,
"release_spin_rate": 2247.08543068494,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 88.44857385808628,
"release_spin_rate": 2247.08543068494,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.4486,
"release_spin_rate": 2247.0854,
"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.0799,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5706,
"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.8339,
"sample_weight": 1.0,
"run_prevention_factor": 0.9291,
"strikeout_factor": 1.0063,
"walk_factor": 0.974,
"homer_factor": 0.8008,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "608331",
"espn_id": 32685,
"player_name": "Max Fried",
"team": "NYY",
"role": "pitcher",
"espn_rank": 24,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 24,
"gp_value": 17.0,
"gp_rank": 432,
"gs_value": 17.0,
"gs_rank": 122,
"qs_value": 7.0,
"qs_rank": 82,
"era_value": 2.7282,
"era_rank": null,
"w_value": 4.0,
"w_rank": 190,
"l_value": 4.0,
"l_rank": 186,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 95.2,
"ip_rank": 134,
"h_value": 66.0,
"h_rank": 177,
"er_value": 29.0,
"er_rank": 197,
"hr_value": 3.0,
"hr_rank": 441,
"bb_value": 29.0,
"bb_rank": 174,
"k_value": 87.0,
"k_rank": 138,
"k_per_9_value": 8.184669,
"k_per_9_rank": 27,
"whip_value": 0.993,
"whip_rank": null,
"war_value": 3.28,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9291,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9291,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.82,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0063,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 7,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 113,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
},
{
"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/20260910_COL@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260910 | 20260910_HOU@PHI | away | Cristian Javier | Cristian Javier | True | 4.0 | 6.0 | 6 | 5 | 1 | -4 | 7/3 | 2/1 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.979865771812081,
"WHIP": 1.5503355704697988,
"IP": 49.2,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 4.037,
"recent_avg_IP": 4.8,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1862,
"sample_weight": 0.668,
"run_prevention_factor": 1.0158,
"strikeout_factor": 1.0206,
"walk_factor": 1.0094,
"homer_factor": 1.0351,
"regression_flag": "neutral",
"k_percent": 22.4,
"bb_percent": 9.9,
"woba": 0.36,
"xwoba": 0.34,
"barrel_percent": 9.4,
"hard_hit_percent": 35.6,
"whiff_percent": 30.0
},
"espn_rank": {
"rank": 734,
"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": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "664299",
"report_date": "20260910",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 13.0,
"R": 13.0,
"H": 24.0,
"BB": 7.0,
"SO": 27.0,
"HR": 5.0,
"BF": 98.0,
"Pitches": 420.0
},
"per_game": {
"IP": 4.1,
"ER": 2.6,
"R": 2.6,
"H": 4.8,
"BB": 1.4,
"SO": 5.4,
"HR": 1.0,
"BF": 19.6,
"Pitches": 84.0
},
"rates": {
"ERA": 5.2388,
"WHIP": 1.3881,
"ER_per_IP": 0.58209,
"H_per_IP": 1.07463,
"BB_per_IP": 0.31343,
"SO_per_IP": 1.20896,
"HR_per_IP": 0.22388
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 38.1,
"ER": 19.0,
"R": 19.0,
"H": 40.0,
"BB": 12.0,
"SO": 42.0,
"HR": 6.0,
"BF": 166.0,
"Pitches": 685.0
},
"per_game": {
"IP": 4.0,
"ER": 1.9,
"R": 1.9,
"H": 4.0,
"BB": 1.2,
"SO": 4.2,
"HR": 0.6,
"BF": 16.6,
"Pitches": 68.5
},
"rates": {
"ERA": 4.4609,
"WHIP": 1.3565,
"ER_per_IP": 0.49565,
"H_per_IP": 1.04348,
"BB_per_IP": 0.31304,
"SO_per_IP": 1.09565,
"HR_per_IP": 0.15652
}
},
"season": {
"games": 14,
"totals": {
"IP": 49.2,
"ER": 33.0,
"R": 33.0,
"H": 55.0,
"BB": 22.0,
"SO": 50.0,
"HR": 9.0,
"BF": 223.0,
"Pitches": 900.0
},
"per_game": {
"IP": 3.2,
"ER": 2.3571,
"R": 2.3571,
"H": 3.9286,
"BB": 1.5714,
"SO": 3.5714,
"HR": 0.6429,
"BF": 15.9286,
"Pitches": 64.2857
},
"rates": {
"ERA": 5.9799,
"WHIP": 1.5503,
"ER_per_IP": 0.66443,
"H_per_IP": 1.10738,
"BB_per_IP": 0.44295,
"SO_per_IP": 1.00671,
"HR_per_IP": 0.18121
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.287,
"predicted_H": 4.335,
"predicted_BB": 1.443,
"predicted_SO": 4.477,
"predicted_HR": 0.747,
"predicted_ERA": 4.96,
"predicted_WHIP": 1.3924
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4612,
"form_weight": 0.5388,
"form_reliability": 0.7368,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.287,
"final": 3.5382,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.335,
"final": 5.5641,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.443,
"final": 1.6999,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.477,
"final": 5.1794,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.747,
"final": 0.4025,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.96,
"final": 4.96,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3924,
"final": 1.3924,
"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": 38.1,
"ER": 19,
"H": 40,
"BB": 12,
"SO": 42,
"HR": 6,
"ERA": 4.460869565217392,
"WHIP": 1.356521739130435,
"K9": 9.860869565217392,
"HR9": 1.4086956521739131,
"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-09-04T00:00:00"
},
"recent_form_boost": 1.00615494178056,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
}
},
{
"step": "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": 7,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "664299",
"player_name": "Cristian Javier",
"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": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"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": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"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": 146,
"wins": 74,
"losses": 72,
"win_pct": 0.5068,
"runs_scored": 660.0,
"runs_allowed": 701.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2808,
"avg_runs_scored": 4.5205,
"avg_runs_allowed": 4.8014,
"offense_index": 1.0045,
"defense_index": 0.9373,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.7,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0065
},
"opponent": {
"team": "PHI",
"games": 146,
"wins": 82,
"losses": 64,
"win_pct": 0.5616,
"runs_scored": 658.0,
"runs_allowed": 620.0,
"run_differential": 38.0,
"run_differential_per_game": 0.2603,
"avg_runs_scored": 4.5068,
"avg_runs_allowed": 4.2466,
"offense_index": 1.0014,
"defense_index": 1.0598,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.0,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.1192
},
"edges": {
"quality_edge": -0.1127,
"offense_edge": 0.0045,
"opponent_offense_edge": 0.0014,
"defense_strength": -0.0627,
"opponent_defense_weakness": -0.0598,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9936,
"run_prevention": 1.0121,
"strikeout": 0.9965
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664299",
"profile": {
"available": true,
"pitcher_id": "664299",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 167.0,
"k_percent": 22.4,
"bb_percent": 9.9,
"woba": 0.36,
"xwoba": 0.34,
"sweet_spot_percent": 39.6,
"barrel_batted_rate": 9.4,
"hard_hit_percent": 35.6,
"avg_best_speed": 79.9323,
"avg_hyper_speed": 94.1518,
"whiff_percent": 30.0,
"swing_percent": 51.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7011,
"command_and_miss": 0.2407,
"regression_edge": 0.5714,
"xwoba_edge": -0.8286,
"barrel_edge": -0.5111,
"hard_hit_edge": 0.3286,
"whiff_edge": 0.7143,
"bb_edge": -0.175,
"pitch_design_score": -0.0734
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664299",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.56457245574717,
"release_spin_rate": 2333.204506137456,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.56457245574717,
"release_spin_rate": 2333.204506137456,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5646,
"release_spin_rate": 2333.2045,
"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.0734,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5242,
"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.1862,
"sample_weight": 0.668,
"run_prevention_factor": 1.0158,
"strikeout_factor": 1.0206,
"walk_factor": 1.0094,
"homer_factor": 1.0351,
"woba_minus_xwoba": 0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "664299",
"espn_id": 41261,
"player_name": "Cristian Javier",
"team": "HOU",
"role": "pitcher",
"espn_rank": 734,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 734,
"gp_value": 14.0,
"gp_rank": 473,
"gs_value": 9.0,
"gs_rank": 179,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 5.9798,
"era_rank": null,
"w_value": 2.0,
"w_rank": 316,
"l_value": 5.0,
"l_rank": 135,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 49.2,
"ip_rank": 302,
"h_value": 55.0,
"h_rank": 210,
"er_value": 33.0,
"er_rank": 173,
"hr_value": 9.0,
"hr_rank": 176,
"bb_value": 22.0,
"bb_rank": 260,
"k_value": 50.0,
"k_rank": 291,
"k_per_9_value": 9.060403,
"k_per_9_rank": 26,
"whip_value": 1.5503,
"whip_rank": null,
"war_value": -0.37,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0106,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0106,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0063,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0234,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0138,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 89,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260910_HOU@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260910 | 20260910_HOU@PHI | home | Zack Wheeler | Zack Wheeler | True | 5.2 | 7.0 | 4 | 3 | 1 | -2 | 7/5 | 1/2 | 6/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2347188264058677,
"WHIP": 1.078239608801956,
"IP": 136.1,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.681,
"recent_avg_IP": 5.2,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6684,
"sample_weight": 1.0,
"run_prevention_factor": 0.9432,
"strikeout_factor": 1.0794,
"walk_factor": 0.974,
"homer_factor": 0.9349,
"regression_flag": "neutral",
"k_percent": 29.8,
"bb_percent": 7.9,
"woba": 0.287,
"xwoba": 0.271,
"barrel_percent": 6.3,
"hard_hit_percent": 35.0,
"whiff_percent": 31.1
},
"espn_rank": {
"rank": 11,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 136.1,
"season_ERA": 3.235,
"season_WHIP": 1.078,
"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": 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": "554430",
"report_date": "20260910",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 16.0,
"R": 17.0,
"H": 24.0,
"BB": 15.0,
"SO": 31.0,
"HR": 6.0,
"BF": 116.0,
"Pitches": 488.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.4,
"H": 4.8,
"BB": 3.0,
"SO": 6.2,
"HR": 1.2,
"BF": 23.2,
"Pitches": 97.6
},
"rates": {
"ERA": 5.5385,
"WHIP": 1.5,
"ER_per_IP": 0.61538,
"H_per_IP": 0.92308,
"BB_per_IP": 0.57692,
"SO_per_IP": 1.19231,
"HR_per_IP": 0.23077
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 27.0,
"R": 28.0,
"H": 45.0,
"BB": 23.0,
"SO": 65.0,
"HR": 10.0,
"BF": 214.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.0,
"ER": 2.7,
"R": 2.8,
"H": 4.5,
"BB": 2.3,
"SO": 6.5,
"HR": 1.0,
"BF": 21.4,
"Pitches": 89.3
},
"rates": {
"ERA": 4.9257,
"WHIP": 1.3784,
"ER_per_IP": 0.5473,
"H_per_IP": 0.91216,
"BB_per_IP": 0.46622,
"SO_per_IP": 1.31757,
"HR_per_IP": 0.2027
}
},
"season": {
"games": 24,
"totals": {
"IP": 136.1,
"ER": 49.0,
"R": 50.0,
"H": 104.0,
"BB": 43.0,
"SO": 163.0,
"HR": 20.0,
"BF": 547.0,
"Pitches": 2250.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0417,
"R": 2.0833,
"H": 4.3333,
"BB": 1.7917,
"SO": 6.7917,
"HR": 0.8333,
"BF": 22.7917,
"Pitches": 93.75
},
"rates": {
"ERA": 3.2347,
"WHIP": 1.0782,
"ER_per_IP": 0.35941,
"H_per_IP": 0.76284,
"BB_per_IP": 0.3154,
"SO_per_IP": 1.1956,
"HR_per_IP": 0.1467
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.856,
"predicted_H": 4.825,
"predicted_BB": 2.494,
"predicted_SO": 6.342,
"predicted_HR": 1.039,
"predicted_ERA": 4.8052,
"predicted_WHIP": 1.3682
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.856,
"final": 3.3397,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 4.825,
"final": 6.1675,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.494,
"final": 1.8623,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.342,
"final": 5.7746,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.039,
"final": 0.5997,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8052,
"final": 4.8052,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3682,
"final": 1.3682,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.1,
"ER": 27,
"H": 45,
"BB": 23,
"SO": 65,
"HR": 10,
"ERA": 4.925675675675676,
"WHIP": 1.3783783783783785,
"K9": 11.858108108108109,
"HR9": 1.8243243243243246,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-05T00:00:00"
},
"recent_form_boost": 1.0589920451883157,
"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": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 5.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": 5.2,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "554430",
"player_name": "Zack Wheeler",
"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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.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": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"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": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"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_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"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": 5.2,
"after": 5.2,
"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": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"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": 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": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 146,
"wins": 82,
"losses": 64,
"win_pct": 0.5616,
"runs_scored": 658.0,
"runs_allowed": 620.0,
"run_differential": 38.0,
"run_differential_per_game": 0.2603,
"avg_runs_scored": 4.5068,
"avg_runs_allowed": 4.2466,
"offense_index": 1.0014,
"defense_index": 1.0598,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.0,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.1192
},
"opponent": {
"team": "HOU",
"games": 146,
"wins": 74,
"losses": 72,
"win_pct": 0.5068,
"runs_scored": 660.0,
"runs_allowed": 701.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2808,
"avg_runs_scored": 4.5205,
"avg_runs_allowed": 4.8014,
"offense_index": 1.0045,
"defense_index": 0.9373,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.7,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0065
},
"edges": {
"quality_edge": 0.1127,
"offense_edge": 0.0014,
"opponent_offense_edge": 0.0045,
"defense_strength": 0.0598,
"opponent_defense_weakness": 0.0627,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0061,
"run_prevention": 0.9891,
"strikeout": 1.003
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "554430",
"profile": {
"available": true,
"pitcher_id": "554430",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 473.0,
"k_percent": 29.8,
"bb_percent": 7.9,
"woba": 0.287,
"xwoba": 0.271,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 35.0,
"avg_best_speed": 74.929,
"avg_hyper_speed": 93.4258,
"whiff_percent": 31.1,
"swing_percent": 49.5
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.706,
"command_and_miss": 0.8714,
"regression_edge": 0.4571,
"xwoba_edge": 1.1429,
"barrel_edge": 0.1778,
"hard_hit_edge": 0.4143,
"whiff_edge": 0.8714,
"bb_edge": 0.325,
"pitch_design_score": 0.0094
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "554430",
"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.04289921739226,
"release_spin_rate": 2372.877200953717,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.04289921739226,
"release_spin_rate": 2372.877200953717,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0429,
"release_spin_rate": 2372.8772,
"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.0094,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0671,
"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.6684,
"sample_weight": 1.0,
"run_prevention_factor": 0.9432,
"strikeout_factor": 1.0794,
"walk_factor": 0.974,
"homer_factor": 0.9349,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "554430",
"espn_id": 31267,
"player_name": "Zack Wheeler",
"team": "PHI",
"role": "pitcher",
"espn_rank": 11,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 11,
"gp_value": 24.0,
"gp_rank": 339,
"gs_value": 24.0,
"gs_rank": 71,
"qs_value": 14.0,
"qs_rank": 23,
"era_value": 3.2347,
"era_rank": null,
"w_value": 12.0,
"w_rank": 17,
"l_value": 5.0,
"l_rank": 135,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 136.1,
"ip_rank": 69,
"h_value": 104.0,
"h_rank": 111,
"er_value": 49.0,
"er_rank": 107,
"hr_value": 20.0,
"hr_rank": 38,
"bb_value": 43.0,
"bb_rank": 67,
"k_value": 163.0,
"k_rank": 23,
"k_per_9_value": 10.760391,
"k_per_9_rank": 9,
"whip_value": 1.0782,
"whip_rank": null,
"war_value": 4.44,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9432,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9432,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 0.974,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9349,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0794,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260910_HOU@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260910 | 20260910_PIT@CHW | away | Jared Jones | Jared Jones | True | 4.2 | 7.0 | 7 | 3 | 0 | -3 | 2/1 | 2/2 | 4/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.461864406779661,
"WHIP": 1.233050847457627,
"IP": 78.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 4.627,
"recent_avg_IP": 4.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3207,
"sample_weight": 1.0,
"run_prevention_factor": 0.9727,
"strikeout_factor": 1.072,
"walk_factor": 0.984,
"homer_factor": 1.0121,
"regression_flag": "neutral",
"k_percent": 27.6,
"bb_percent": 8.4,
"woba": 0.312,
"xwoba": 0.295,
"barrel_percent": 8.1,
"hard_hit_percent": 39.3,
"whiff_percent": 32.0
},
"espn_rank": {
"rank": 166,
"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": "683003",
"report_date": "20260910",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 14.0,
"R": 14.0,
"H": 23.0,
"BB": 12.0,
"SO": 30.0,
"HR": 3.0,
"BF": 104.0,
"Pitches": 418.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 2.8,
"H": 4.6,
"BB": 2.4,
"SO": 6.0,
"HR": 0.6,
"BF": 20.8,
"Pitches": 83.6
},
"rates": {
"ERA": 5.5588,
"WHIP": 1.5441,
"ER_per_IP": 0.61765,
"H_per_IP": 1.01471,
"BB_per_IP": 0.52941,
"SO_per_IP": 1.32353,
"HR_per_IP": 0.13235
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 22.0,
"R": 22.0,
"H": 40.0,
"BB": 17.0,
"SO": 61.0,
"HR": 7.0,
"BF": 207.0,
"Pitches": 812.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.2,
"H": 4.0,
"BB": 1.7,
"SO": 6.1,
"HR": 0.7,
"BF": 20.7,
"Pitches": 81.2
},
"rates": {
"ERA": 3.9866,
"WHIP": 1.1477,
"ER_per_IP": 0.44295,
"H_per_IP": 0.80537,
"BB_per_IP": 0.34228,
"SO_per_IP": 1.22819,
"HR_per_IP": 0.14094
}
},
"season": {
"games": 17,
"totals": {
"IP": 78.2,
"ER": 39.0,
"R": 40.0,
"H": 69.0,
"BB": 28.0,
"SO": 92.0,
"HR": 12.0,
"BF": 333.0,
"Pitches": 1312.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2941,
"R": 2.3529,
"H": 4.0588,
"BB": 1.6471,
"SO": 5.4118,
"HR": 0.7059,
"BF": 19.5882,
"Pitches": 77.1765
},
"rates": {
"ERA": 4.4619,
"WHIP": 1.2331,
"ER_per_IP": 0.49576,
"H_per_IP": 0.87712,
"BB_per_IP": 0.35593,
"SO_per_IP": 1.16949,
"HR_per_IP": 0.15254
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.5,
"predicted_H": 4.411,
"predicted_BB": 1.979,
"predicted_SO": 5.645,
"predicted_HR": 0.671,
"predicted_ERA": 4.7295,
"predicted_WHIP": 1.3435
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.5,
"final": 2.723,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.411,
"final": 3.3356,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.979,
"final": 1.9884,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.645,
"final": 4.9113,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.671,
"final": 0.8177,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7295,
"final": 4.7295,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3435,
"final": 1.3435,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.2,
"ER": 22,
"H": 40,
"BB": 17,
"SO": 61,
"HR": 7,
"ERA": 3.9865771812080535,
"WHIP": 1.1476510067114092,
"K9": 11.053691275167784,
"HR9": 1.268456375838926,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 0.9475752802690338,
"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": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 4.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683003",
"player_name": "Jared Jones",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 146,
"wins": 73,
"losses": 73,
"win_pct": 0.5,
"runs_scored": 707.0,
"runs_allowed": 673.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2329,
"avg_runs_scored": 4.8425,
"avg_runs_allowed": 4.6096,
"offense_index": 1.0767,
"defense_index": 0.9757,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.6,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1335
},
"opponent": {
"team": "CHW",
"games": 145,
"wins": 75,
"losses": 70,
"win_pct": 0.5172,
"runs_scored": 685.0,
"runs_allowed": 644.0,
"run_differential": 41.0,
"run_differential_per_game": 0.2828,
"avg_runs_scored": 4.7241,
"avg_runs_allowed": 4.4414,
"offense_index": 1.0504,
"defense_index": 1.0127,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.1,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0208
},
"edges": {
"quality_edge": 0.1543,
"offense_edge": 0.0767,
"opponent_offense_edge": 0.0504,
"defense_strength": -0.0243,
"opponent_defense_weakness": -0.0127,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0034,
"run_prevention": 1.0028,
"strikeout": 1.0006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683003",
"profile": {
"available": true,
"pitcher_id": "683003",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 268.0,
"k_percent": 27.6,
"bb_percent": 8.4,
"woba": 0.312,
"xwoba": 0.295,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 39.3,
"avg_best_speed": 79.2466,
"avg_hyper_speed": 94.3291,
"whiff_percent": 32.0,
"swing_percent": 48.1
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1075,
"command_and_miss": 0.75,
"regression_edge": 0.4857,
"xwoba_edge": 0.4571,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.2,
"whiff_edge": 1.0,
"bb_edge": 0.2,
"pitch_design_score": 0.2124
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683003",
"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": 93.66750722649874,
"release_spin_rate": 2505.3321423171064,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 93.66750722649874,
"release_spin_rate": 2505.3321423171064,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6675,
"release_spin_rate": 2505.3321,
"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.2124,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.517,
"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.3207,
"sample_weight": 1.0,
"run_prevention_factor": 0.9727,
"strikeout_factor": 1.072,
"walk_factor": 0.984,
"homer_factor": 1.0121,
"woba_minus_xwoba": 0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "683003",
"espn_id": 4918156,
"player_name": "Jared Jones",
"team": "PIT",
"role": "pitcher",
"espn_rank": 166,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 166,
"gp_value": 17.0,
"gp_rank": 432,
"gs_value": 17.0,
"gs_rank": 122,
"qs_value": 4.0,
"qs_rank": 123,
"era_value": 4.4618,
"era_rank": null,
"w_value": 3.0,
"w_rank": 243,
"l_value": 6.0,
"l_rank": 113,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 78.2,
"ip_rank": 165,
"h_value": 69.0,
"h_rank": 167,
"er_value": 39.0,
"er_rank": 155,
"hr_value": 12.0,
"hr_rank": 135,
"bb_value": 28.0,
"bb_rank": 188,
"k_value": 92.0,
"k_rank": 123,
"k_per_9_value": 10.525424,
"k_per_9_rank": 20,
"whip_value": 1.233,
"whip_rank": null,
"war_value": 1.17,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9727,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9727,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.984,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0121,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.072,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +7 outs from the projected workload."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260910_PIT@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260910 | 20260910_PIT@CHW | home | Hagen Smith | Hagen Smith | True | 4.2 | 2.0 | -8 | 1 | 0 | -1 | 4/2 | 2/0 | 4/3 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 0.0,
"WHIP": 0.875,
"IP": 16.0,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 3.0,
"recent_avg_IP": 3.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3468,
"sample_weight": 0.45,
"run_prevention_factor": 0.9705,
"strikeout_factor": 1.0653,
"walk_factor": 1.0621,
"homer_factor": 0.9435,
"regression_flag": "negative_pitcher_regression",
"k_percent": 37.1,
"bb_percent": 16.1,
"woba": 0.209,
"xwoba": 0.264,
"barrel_percent": 3.4,
"hard_hit_percent": 34.5,
"whiff_percent": 35.3
},
"espn_rank": {
"rank": 187,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.229,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3924,
"prior_weight": 0.6076
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696146",
"report_date": "20260910",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 10.0,
"ER": 0.0,
"R": 0.0,
"H": 4.0,
"BB": 4.0,
"SO": 13.0,
"HR": 0.0,
"BF": 37.0,
"Pitches": 162.0
},
"per_game": {
"IP": 2.0,
"ER": 0.0,
"R": 0.0,
"H": 0.8,
"BB": 0.8,
"SO": 2.6,
"HR": 0.0,
"BF": 7.4,
"Pitches": 32.4
},
"rates": {
"ERA": 0.0,
"WHIP": 0.8,
"ER_per_IP": 0.0,
"H_per_IP": 0.4,
"BB_per_IP": 0.4,
"SO_per_IP": 1.3,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 16.0,
"ER": 0.0,
"R": 0.0,
"H": 4.0,
"BB": 10.0,
"SO": 23.0,
"HR": 0.0,
"BF": 61.0,
"Pitches": 266.0
},
"per_game": {
"IP": 1.2,
"ER": 0.0,
"R": 0.0,
"H": 0.4444,
"BB": 1.1111,
"SO": 2.5556,
"HR": 0.0,
"BF": 6.7778,
"Pitches": 29.5556
},
"rates": {
"ERA": 0.0,
"WHIP": 0.875,
"ER_per_IP": 0.0,
"H_per_IP": 0.25,
"BB_per_IP": 0.625,
"SO_per_IP": 1.4375,
"HR_per_IP": 0.0
}
},
"season": {
"games": 9,
"totals": {
"IP": 16.0,
"ER": 0.0,
"R": 0.0,
"H": 4.0,
"BB": 10.0,
"SO": 23.0,
"HR": 0.0,
"BF": 61.0,
"Pitches": 266.0
},
"per_game": {
"IP": 1.2,
"ER": 0.0,
"R": 0.0,
"H": 0.4444,
"BB": 1.1111,
"SO": 2.5556,
"HR": 0.0,
"BF": 6.7778,
"Pitches": 29.5556
},
"rates": {
"ERA": 0.0,
"WHIP": 0.875,
"ER_per_IP": 0.0,
"H_per_IP": 0.25,
"BB_per_IP": 0.625,
"SO_per_IP": 1.4375,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.091,
"predicted_H": 2.591,
"predicted_BB": 1.487,
"predicted_SO": 3.934,
"predicted_HR": 0.319,
"predicted_ERA": 2.7504,
"predicted_WHIP": 1.1421
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6067,
"form_weight": 0.3933,
"form_reliability": 0.3924,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.229,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3924,
"prior_weight": 0.6076
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.091,
"final": 1.0358,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.591,
"final": 3.4459,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.487,
"final": 1.7982,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.934,
"final": 3.974,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.319,
"final": 0.7322,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7504,
"final": 2.7504,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1421,
"final": 1.1421,
"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": 16.0,
"ER": 0,
"H": 4,
"BB": 10,
"SO": 23,
"HR": 0,
"ERA": 0.0,
"WHIP": 0.875,
"K9": 12.9375,
"HR9": 0.0,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.7334106527906407,
"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": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.229,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3924,
"prior_weight": 0.6076
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696146",
"player_name": "Hagen Smith",
"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": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 145,
"wins": 75,
"losses": 70,
"win_pct": 0.5172,
"runs_scored": 685.0,
"runs_allowed": 644.0,
"run_differential": 41.0,
"run_differential_per_game": 0.2828,
"avg_runs_scored": 4.7241,
"avg_runs_allowed": 4.4414,
"offense_index": 1.0504,
"defense_index": 1.0127,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.1,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0208
},
"opponent": {
"team": "PIT",
"games": 146,
"wins": 73,
"losses": 73,
"win_pct": 0.5,
"runs_scored": 707.0,
"runs_allowed": 673.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2329,
"avg_runs_scored": 4.8425,
"avg_runs_allowed": 4.6096,
"offense_index": 1.0767,
"defense_index": 0.9757,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.6,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1335
},
"edges": {
"quality_edge": -0.1543,
"offense_edge": 0.0504,
"opponent_offense_edge": 0.0767,
"defense_strength": 0.0127,
"opponent_defense_weakness": 0.0243,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.9911,
"run_prevention": 1.0187,
"strikeout": 0.9892
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696146",
"profile": {
"available": true,
"pitcher_id": "696146",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 21.0,
"k_percent": 37.1,
"bb_percent": 16.1,
"woba": 0.209,
"xwoba": 0.264,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 3.4,
"hard_hit_percent": 34.5,
"avg_best_speed": 78.8272,
"avg_hyper_speed": 94.145,
"whiff_percent": 35.3,
"swing_percent": 43.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.1271,
"command_and_miss": 1.1407,
"regression_edge": -1.5714,
"xwoba_edge": 1.3429,
"barrel_edge": 0.8222,
"hard_hit_edge": 0.4857,
"whiff_edge": 1.4714,
"bb_edge": -1.725,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "696146",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.3468,
"sample_weight": 0.45,
"run_prevention_factor": 0.9705,
"strikeout_factor": 1.0653,
"walk_factor": 1.0621,
"homer_factor": 0.9435,
"woba_minus_xwoba": -0.055,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "696146",
"espn_id": 5023126,
"player_name": "Hagen Smith",
"team": "CHW",
"role": "pitcher",
"espn_rank": 187,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 187,
"gp_value": 10.0,
"gp_rank": 528,
"gs_value": 0.0,
"gs_rank": 364,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 0.5625,
"era_rank": null,
"w_value": 3.0,
"w_rank": 243,
"l_value": 1.0,
"l_rank": 427,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 1.0,
"hld_rank": 271,
"ip_value": 16.0,
"ip_rank": 556,
"h_value": 5.0,
"h_rank": 720,
"er_value": 1.0,
"er_rank": 781,
"hr_value": 1.0,
"hr_rank": 613,
"bb_value": 10.0,
"bb_rank": 483,
"k_value": 23.0,
"k_rank": 460,
"k_per_9_value": 12.9375,
"k_per_9_rank": 22,
"whip_value": 0.9375,
"whip_rank": null,
"war_value": 0.97,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9867,
"adjusted": 0
},
"predicted_H": {
"original": 0.0,
"factor": 0.9867,
"adjusted": 0
},
"predicted_BB": {
"original": 0.0,
"factor": 1.0279,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9746,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0294,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260910_PIT@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260910 | 20260910_TB@ATL | away | Nick Martinez | Nick Martinez | True | 6.0 | 6.1 | 1 | 2 | 0 | -2 | 5/2 | 0/0 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0375,
"WHIP": 1.1,
"IP": 160.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.926,
"recent_avg_IP": 6.2,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1478,
"sample_weight": 1.0,
"run_prevention_factor": 1.0126,
"strikeout_factor": 0.9171,
"walk_factor": 0.89,
"homer_factor": 0.9739,
"regression_flag": "neutral",
"k_percent": 14.8,
"bb_percent": 3.7,
"woba": 0.294,
"xwoba": 0.316,
"barrel_percent": 6.9,
"hard_hit_percent": 33.2,
"whiff_percent": 17.7
},
"espn_rank": {
"rank": 20,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "607259",
"report_date": "20260910",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 16.0,
"R": 16.0,
"H": 30.0,
"BB": 4.0,
"SO": 22.0,
"HR": 4.0,
"BF": 124.0,
"Pitches": 440.0
},
"per_game": {
"IP": 6.1,
"ER": 3.2,
"R": 3.2,
"H": 6.0,
"BB": 0.8,
"SO": 4.4,
"HR": 0.8,
"BF": 24.8,
"Pitches": 88.0
},
"rates": {
"ERA": 4.6452,
"WHIP": 1.0968,
"ER_per_IP": 0.51613,
"H_per_IP": 0.96774,
"BB_per_IP": 0.12903,
"SO_per_IP": 0.70968,
"HR_per_IP": 0.12903
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 25.0,
"R": 25.0,
"H": 57.0,
"BB": 6.0,
"SO": 34.0,
"HR": 9.0,
"BF": 235.0,
"Pitches": 828.0
},
"per_game": {
"IP": 6.0,
"ER": 2.5,
"R": 2.5,
"H": 5.7,
"BB": 0.6,
"SO": 3.4,
"HR": 0.9,
"BF": 23.5,
"Pitches": 82.8
},
"rates": {
"ERA": 3.75,
"WHIP": 1.05,
"ER_per_IP": 0.41667,
"H_per_IP": 0.95,
"BB_per_IP": 0.1,
"SO_per_IP": 0.56667,
"HR_per_IP": 0.15
}
},
"season": {
"games": 27,
"totals": {
"IP": 160.0,
"ER": 54.0,
"R": 54.0,
"H": 152.0,
"BB": 24.0,
"SO": 95.0,
"HR": 19.0,
"BF": 643.0,
"Pitches": 2240.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 5.6296,
"BB": 0.8889,
"SO": 3.5185,
"HR": 0.7037,
"BF": 23.8148,
"Pitches": 82.963
},
"rates": {
"ERA": 3.0375,
"WHIP": 1.1,
"ER_per_IP": 0.3375,
"H_per_IP": 0.95,
"BB_per_IP": 0.15,
"SO_per_IP": 0.59375,
"HR_per_IP": 0.11875
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.785,
"predicted_H": 5.884,
"predicted_BB": 0.992,
"predicted_SO": 4.19,
"predicted_HR": 0.835,
"predicted_ERA": 4.091,
"predicted_WHIP": 1.1222
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.785,
"final": 2.4584,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.884,
"final": 5.5163,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.992,
"final": 0.5793,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.19,
"final": 4.527,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.835,
"final": 0.4876,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.091,
"final": 4.091,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1222,
"final": 1.1222,
"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": 25,
"H": 57,
"BB": 6,
"SO": 34,
"HR": 9,
"ERA": 3.7499999999999996,
"WHIP": 1.0499999999999998,
"K9": 5.1,
"HR9": 1.3499999999999999,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 0.9185190722153425,
"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": 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": 6.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607259",
"player_name": "Nick Martinez",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 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": "TB",
"games": 145,
"wins": 87,
"losses": 58,
"win_pct": 0.6,
"runs_scored": 661.0,
"runs_allowed": 603.0,
"run_differential": 58.0,
"run_differential_per_game": 0.4,
"avg_runs_scored": 4.5586,
"avg_runs_allowed": 4.1586,
"offense_index": 1.0129,
"defense_index": 1.0822,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.5,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.1689
},
"opponent": {
"team": "ATL",
"games": 146,
"wins": 85,
"losses": 61,
"win_pct": 0.5822,
"runs_scored": 668.0,
"runs_allowed": 560.0,
"run_differential": 108.0,
"run_differential_per_game": 0.7397,
"avg_runs_scored": 4.5753,
"avg_runs_allowed": 3.8356,
"offense_index": 1.0166,
"defense_index": 1.1733,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.3,
"run_differential": -8.0
},
"available": true,
"quality_score": 0.1253
},
"edges": {
"quality_edge": 0.0436,
"offense_edge": 0.0129,
"opponent_offense_edge": 0.0166,
"defense_strength": 0.0822,
"opponent_defense_weakness": -0.1733,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0035,
"run_prevention": 0.9923,
"strikeout": 1.0
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607259",
"profile": {
"available": true,
"pitcher_id": "607259",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 572.0,
"k_percent": 14.8,
"bb_percent": 3.7,
"woba": 0.294,
"xwoba": 0.316,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 33.2,
"avg_best_speed": 75.8751,
"avg_hyper_speed": 93.2162,
"whiff_percent": 17.7,
"swing_percent": 50.5
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1286,
"command_and_miss": -0.5529,
"regression_edge": -0.6286,
"xwoba_edge": -0.1429,
"barrel_edge": 0.0444,
"hard_hit_edge": 0.6714,
"whiff_edge": -1.0429,
"bb_edge": 1.375,
"pitch_design_score": -0.1654
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607259",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 86.92210877528385,
"release_spin_rate": 2192.935261117394,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 86.92210877528385,
"release_spin_rate": 2192.935261117394,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.9221,
"release_spin_rate": 2192.9353,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1654,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1812,
"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.1478,
"sample_weight": 1.0,
"run_prevention_factor": 1.0126,
"strikeout_factor": 0.9171,
"walk_factor": 0.89,
"homer_factor": 0.9739,
"woba_minus_xwoba": -0.022,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607259",
"espn_id": 33372,
"player_name": "Nick Martinez",
"team": "TB",
"role": "pitcher",
"espn_rank": 20,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 20,
"gp_value": 27.0,
"gp_rank": 285,
"gs_value": 27.0,
"gs_rank": 36,
"qs_value": 14.0,
"qs_rank": 23,
"era_value": 3.0375,
"era_rank": 14.0,
"w_value": 14.0,
"w_rank": 6,
"l_value": 4.0,
"l_rank": 186,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 160.0,
"ip_rank": 23,
"h_value": 152.0,
"h_rank": 16,
"er_value": 54.0,
"er_rank": 96,
"hr_value": 19.0,
"hr_rank": 48,
"bb_value": 24.0,
"bb_rank": 230,
"k_value": 95.0,
"k_rank": 113,
"k_per_9_value": 5.3437495,
"k_per_9_rank": 132,
"whip_value": 1.1,
"whip_rank": 15.0,
"war_value": 3.52,
"war_rank": 18.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0126,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0126,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.89,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9739,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9171,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260910_TB@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260910 | 20260910_TB@ATL | home | Martín Pérez | Martín Pérez | True | 5.2 | 7.0 | 4 | 2 | 0 | -2 | 4/4 | 1/2 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.248663101604278,
"WHIP": 1.267379679144385,
"IP": 124.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.014,
"recent_avg_IP": 4.867,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3096,
"sample_weight": 1.0,
"run_prevention_factor": 1.0263,
"strikeout_factor": 0.9594,
"walk_factor": 1.024,
"homer_factor": 0.9906,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.0,
"bb_percent": 10.4,
"woba": 0.302,
"xwoba": 0.334,
"barrel_percent": 5.4,
"hard_hit_percent": 38.1,
"whiff_percent": 21.9
},
"espn_rank": {
"rank": 57,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 124.2,
"season_ERA": 3.249,
"season_WHIP": 1.267,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "527048",
"report_date": "20260910",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 10.0,
"R": 13.0,
"H": 29.0,
"BB": 14.0,
"SO": 16.0,
"HR": 2.0,
"BF": 114.0,
"Pitches": 428.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.6,
"H": 5.8,
"BB": 2.8,
"SO": 3.2,
"HR": 0.4,
"BF": 22.8,
"Pitches": 85.6
},
"rates": {
"ERA": 3.6986,
"WHIP": 1.7671,
"ER_per_IP": 0.41096,
"H_per_IP": 1.19178,
"BB_per_IP": 0.57534,
"SO_per_IP": 0.65753,
"HR_per_IP": 0.08219
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 17.0,
"R": 21.0,
"H": 45.0,
"BB": 24.0,
"SO": 33.0,
"HR": 4.0,
"BF": 208.0,
"Pitches": 780.0
},
"per_game": {
"IP": 4.2,
"ER": 1.7,
"R": 2.1,
"H": 4.5,
"BB": 2.4,
"SO": 3.3,
"HR": 0.4,
"BF": 20.8,
"Pitches": 78.0
},
"rates": {
"ERA": 3.2098,
"WHIP": 1.4476,
"ER_per_IP": 0.35664,
"H_per_IP": 0.94406,
"BB_per_IP": 0.5035,
"SO_per_IP": 0.69231,
"HR_per_IP": 0.08392
}
},
"season": {
"games": 27,
"totals": {
"IP": 124.2,
"ER": 45.0,
"R": 49.0,
"H": 104.0,
"BB": 54.0,
"SO": 94.0,
"HR": 13.0,
"BF": 521.0,
"Pitches": 1985.0
},
"per_game": {
"IP": 4.2,
"ER": 1.6667,
"R": 1.8148,
"H": 3.8519,
"BB": 2.0,
"SO": 3.4815,
"HR": 0.4815,
"BF": 19.2963,
"Pitches": 73.5185
},
"rates": {
"ERA": 3.2487,
"WHIP": 1.2674,
"ER_per_IP": 0.36096,
"H_per_IP": 0.83422,
"BB_per_IP": 0.43316,
"SO_per_IP": 0.75401,
"HR_per_IP": 0.10428
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.984,
"predicted_H": 5.069,
"predicted_BB": 2.466,
"predicted_SO": 3.604,
"predicted_HR": 0.478,
"predicted_ERA": 3.6077,
"predicted_WHIP": 1.5224
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.984,
"final": 1.9907,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.069,
"final": 4.6243,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.466,
"final": 1.8562,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.604,
"final": 3.3527,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.478,
"final": 0.6951,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6077,
"final": 3.6077,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5224,
"final": 1.5224,
"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": 17,
"H": 45,
"BB": 24,
"SO": 33,
"HR": 4,
"ERA": 3.2097902097902096,
"WHIP": 1.4475524475524475,
"K9": 6.23076923076923,
"HR9": 0.7552447552447552,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-05T00:00:00"
},
"recent_form_boost": 0.8676842820055524,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 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": 5.2,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "527048",
"player_name": "Mart\u00edn P\u00e9rez",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 146,
"wins": 85,
"losses": 61,
"win_pct": 0.5822,
"runs_scored": 668.0,
"runs_allowed": 560.0,
"run_differential": 108.0,
"run_differential_per_game": 0.7397,
"avg_runs_scored": 4.5753,
"avg_runs_allowed": 3.8356,
"offense_index": 1.0166,
"defense_index": 1.1733,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.3,
"run_differential": -8.0
},
"available": true,
"quality_score": 0.1253
},
"opponent": {
"team": "TB",
"games": 145,
"wins": 87,
"losses": 58,
"win_pct": 0.6,
"runs_scored": 661.0,
"runs_allowed": 603.0,
"run_differential": 58.0,
"run_differential_per_game": 0.4,
"avg_runs_scored": 4.5586,
"avg_runs_allowed": 4.1586,
"offense_index": 1.0129,
"defense_index": 1.0822,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.5,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.1689
},
"edges": {
"quality_edge": -0.0436,
"offense_edge": 0.0166,
"opponent_offense_edge": 0.0129,
"defense_strength": 0.1733,
"opponent_defense_weakness": -0.0822,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0029,
"run_prevention": 0.9869,
"strikeout": 0.9977
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "527048",
"profile": {
"available": true,
"pitcher_id": "527048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 452.0,
"k_percent": 18.0,
"bb_percent": 10.4,
"woba": 0.302,
"xwoba": 0.334,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 5.4,
"hard_hit_percent": 38.1,
"avg_best_speed": 76.7045,
"avg_hyper_speed": 94.0984,
"whiff_percent": 21.9,
"swing_percent": 42.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1328,
"command_and_miss": -0.4721,
"regression_edge": -0.9143,
"xwoba_edge": -0.6571,
"barrel_edge": 0.3778,
"hard_hit_edge": -0.0286,
"whiff_edge": -0.4429,
"bb_edge": -0.3,
"pitch_design_score": -0.2622
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "527048",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 66,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 85.19235523869571,
"release_spin_rate": 1970.9370569367027,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 85.19235523869571,
"release_spin_rate": 1970.9370569367027,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.1924,
"release_spin_rate": 1970.9371,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2622,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8731,
"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.3096,
"sample_weight": 1.0,
"run_prevention_factor": 1.0263,
"strikeout_factor": 0.9594,
"walk_factor": 1.024,
"homer_factor": 0.9906,
"woba_minus_xwoba": -0.032,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "527048",
"espn_id": 31098,
"player_name": "Martin Perez",
"team": "ATL",
"role": "pitcher",
"espn_rank": 57,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 57,
"gp_value": 27.0,
"gp_rank": 285,
"gs_value": 23.0,
"gs_rank": 80,
"qs_value": 4.0,
"qs_rank": 123,
"era_value": 3.2486,
"era_rank": null,
"w_value": 8.0,
"w_rank": 65,
"l_value": 9.0,
"l_rank": 31,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 124.2,
"ip_rank": 87,
"h_value": 104.0,
"h_rank": 111,
"er_value": 45.0,
"er_rank": 128,
"hr_value": 13.0,
"hr_rank": 124,
"bb_value": 54.0,
"bb_rank": 28,
"k_value": 94.0,
"k_rank": 117,
"k_per_9_value": 6.7860966,
"k_per_9_rank": 36,
"whip_value": 1.2673,
"whip_rank": null,
"war_value": 2.39,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0263,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0263,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.024,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9906,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9594,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260910_TB@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260910 | 20260910_TEX@SEA | away | Jacob deGrom | Jacob deGrom | True | 5.0 | 6.0 | 3 | 1 | 0 | -1 | 1/1 | 1/0 | 6/12 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.955813953488372,
"WHIP": 1.1162790697674418,
"IP": 143.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.309,
"recent_avg_IP": 4.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3347,
"sample_weight": 1.0,
"run_prevention_factor": 0.9715,
"strikeout_factor": 1.0943,
"walk_factor": 0.946,
"homer_factor": 1.0468,
"regression_flag": "neutral",
"k_percent": 29.9,
"bb_percent": 6.5,
"woba": 0.283,
"xwoba": 0.292,
"barrel_percent": 8.4,
"hard_hit_percent": 44.9,
"whiff_percent": 33.6
},
"espn_rank": {
"rank": 73,
"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": "594798",
"report_date": "20260910",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 12.0,
"R": 12.0,
"H": 18.0,
"BB": 8.0,
"SO": 30.0,
"HR": 2.0,
"BF": 96.0,
"Pitches": 409.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 3.6,
"BB": 1.6,
"SO": 6.0,
"HR": 0.4,
"BF": 19.2,
"Pitches": 81.8
},
"rates": {
"ERA": 4.3784,
"WHIP": 1.0541,
"ER_per_IP": 0.48649,
"H_per_IP": 0.72973,
"BB_per_IP": 0.32432,
"SO_per_IP": 1.21622,
"HR_per_IP": 0.08108
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 26.0,
"R": 26.0,
"H": 47.0,
"BB": 18.0,
"SO": 59.0,
"HR": 3.0,
"BF": 202.0,
"Pitches": 855.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 4.7,
"BB": 1.8,
"SO": 5.9,
"HR": 0.3,
"BF": 20.2,
"Pitches": 85.5
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.3636,
"ER_per_IP": 0.54545,
"H_per_IP": 0.98601,
"BB_per_IP": 0.37762,
"SO_per_IP": 1.23776,
"HR_per_IP": 0.06294
}
},
"season": {
"games": 27,
"totals": {
"IP": 143.1,
"ER": 63.0,
"R": 63.0,
"H": 122.0,
"BB": 38.0,
"SO": 174.0,
"HR": 19.0,
"BF": 582.0,
"Pitches": 2380.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3333,
"R": 2.3333,
"H": 4.5185,
"BB": 1.4074,
"SO": 6.4444,
"HR": 0.7037,
"BF": 21.5556,
"Pitches": 88.1481
},
"rates": {
"ERA": 3.9558,
"WHIP": 1.1163,
"ER_per_IP": 0.43953,
"H_per_IP": 0.85116,
"BB_per_IP": 0.26512,
"SO_per_IP": 1.21395,
"HR_per_IP": 0.13256
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.472,
"predicted_H": 4.283,
"predicted_BB": 1.673,
"predicted_SO": 5.845,
"predicted_HR": 0.469,
"predicted_ERA": 4.487,
"predicted_WHIP": 1.2014
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.472,
"final": 1.8597,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.283,
"final": 2.9173,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.673,
"final": 1.393,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.845,
"final": 5.0775,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.469,
"final": 0.6899,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.487,
"final": 4.487,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2014,
"final": 1.2014,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.2,
"ER": 26,
"H": 47,
"BB": 18,
"SO": 59,
"HR": 3,
"ERA": 4.909090909090909,
"WHIP": 1.3636363636363638,
"K9": 11.13986013986014,
"HR9": 0.5664335664335665,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-05T00:00:00"
},
"recent_form_boost": 1.0567577085789788,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_BB": 1.0,
"predicted_SO": 4.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": 5.0,
"predicted_ER": 1,
"predicted_H": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "594798",
"player_name": "Jacob deGrom",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.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": "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": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 146,
"wins": 72,
"losses": 74,
"win_pct": 0.4932,
"runs_scored": 607.0,
"runs_allowed": 647.0,
"run_differential": -40.0,
"run_differential_per_game": -0.274,
"avg_runs_scored": 4.1575,
"avg_runs_allowed": 4.4315,
"offense_index": 0.9239,
"defense_index": 1.0154,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 4.6,
"run_differential": 14.0
},
"available": true,
"quality_score": -0.0043
},
"opponent": {
"team": "SEA",
"games": 146,
"wins": 68,
"losses": 78,
"win_pct": 0.4658,
"runs_scored": 577.0,
"runs_allowed": 652.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5137,
"avg_runs_scored": 3.9521,
"avg_runs_allowed": 4.4658,
"offense_index": 0.8783,
"defense_index": 1.0076,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.7,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.1269
},
"edges": {
"quality_edge": 0.1226,
"offense_edge": -0.0761,
"opponent_offense_edge": -0.1217,
"defense_strength": 0.0154,
"opponent_defense_weakness": -0.0076,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0102,
"run_prevention": 0.9729,
"strikeout": 1.0134
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "594798",
"profile": {
"available": true,
"pitcher_id": "594798",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 29.9,
"bb_percent": 6.5,
"woba": 0.283,
"xwoba": 0.292,
"sweet_spot_percent": 37.8,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 44.9,
"avg_best_speed": 80.2595,
"avg_hyper_speed": 94.6849,
"whiff_percent": 33.6,
"swing_percent": 51.6
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1202,
"command_and_miss": 1.0729,
"regression_edge": -0.2571,
"xwoba_edge": 0.5429,
"barrel_edge": -0.2889,
"hard_hit_edge": -1.0,
"whiff_edge": 1.2286,
"bb_edge": 0.675,
"pitch_design_score": 0.1772
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "594798",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 70,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 93.0397745860885,
"release_spin_rate": 2438.3276886434514,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 93.0397745860885,
"release_spin_rate": 2438.3276886434514,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0398,
"release_spin_rate": 2438.3277,
"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.1772,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2659,
"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.3347,
"sample_weight": 1.0,
"run_prevention_factor": 0.9715,
"strikeout_factor": 1.0943,
"walk_factor": 0.946,
"homer_factor": 1.0468,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "594798",
"espn_id": 32796,
"player_name": "Jacob deGrom",
"team": "TEX",
"role": "pitcher",
"espn_rank": 73,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 73,
"gp_value": 27.0,
"gp_rank": 285,
"gs_value": 27.0,
"gs_rank": 36,
"qs_value": 11.0,
"qs_rank": 45,
"era_value": 3.9558,
"era_rank": null,
"w_value": 10.0,
"w_rank": 29,
"l_value": 9.0,
"l_rank": 31,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 143.1,
"ip_rank": 53,
"h_value": 122.0,
"h_rank": 71,
"er_value": 63.0,
"er_rank": 56,
"hr_value": 19.0,
"hr_rank": 48,
"bb_value": 38.0,
"bb_rank": 102,
"k_value": 174.0,
"k_rank": 15,
"k_per_9_value": 10.925581,
"k_per_9_rank": 7,
"whip_value": 1.1162,
"whip_rank": null,
"war_value": 2.0,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9715,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9715,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.946,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0468,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0943,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 82,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"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/20260910_TEX@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260910 | 20260910_TEX@SEA | home | Logan Gilbert | Logan Gilbert | True | 5.2 | 7.0 | 4 | 3 | 3 | 0 | 4/3 | 3/2 | 6/11 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.709090909090909,
"WHIP": 1.0666666666666667,
"IP": 165.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.893,
"recent_avg_IP": 5.133,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1601,
"sample_weight": 1.0,
"run_prevention_factor": 0.9864,
"strikeout_factor": 1.0531,
"walk_factor": 0.944,
"homer_factor": 1.0677,
"regression_flag": "neutral",
"k_percent": 26.6,
"bb_percent": 6.4,
"woba": 0.297,
"xwoba": 0.299,
"barrel_percent": 10.3,
"hard_hit_percent": 41.6,
"whiff_percent": 29.7
},
"espn_rank": {
"rank": 40,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 165.0,
"season_ERA": 3.709,
"season_WHIP": 1.067,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669302",
"report_date": "20260910",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 15.0,
"R": 15.0,
"H": 27.0,
"BB": 10.0,
"SO": 31.0,
"HR": 7.0,
"BF": 112.0,
"Pitches": 483.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.0,
"H": 5.4,
"BB": 2.0,
"SO": 6.2,
"HR": 1.4,
"BF": 22.4,
"Pitches": 96.6
},
"rates": {
"ERA": 5.2597,
"WHIP": 1.4416,
"ER_per_IP": 0.58442,
"H_per_IP": 1.05195,
"BB_per_IP": 0.38961,
"SO_per_IP": 1.20779,
"HR_per_IP": 0.27273
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.2,
"ER": 30.0,
"R": 30.0,
"H": 54.0,
"BB": 20.0,
"SO": 62.0,
"HR": 12.0,
"BF": 242.0,
"Pitches": 958.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.4,
"BB": 2.0,
"SO": 6.2,
"HR": 1.2,
"BF": 24.2,
"Pitches": 95.8
},
"rates": {
"ERA": 4.6821,
"WHIP": 1.2832,
"ER_per_IP": 0.52023,
"H_per_IP": 0.93642,
"BB_per_IP": 0.34682,
"SO_per_IP": 1.07514,
"HR_per_IP": 0.20809
}
},
"season": {
"games": 28,
"totals": {
"IP": 165.0,
"ER": 68.0,
"R": 68.0,
"H": 134.0,
"BB": 42.0,
"SO": 176.0,
"HR": 26.0,
"BF": 661.0,
"Pitches": 2645.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4286,
"R": 2.4286,
"H": 4.7857,
"BB": 1.5,
"SO": 6.2857,
"HR": 0.9286,
"BF": 23.6071,
"Pitches": 94.4643
},
"rates": {
"ERA": 3.7091,
"WHIP": 1.0667,
"ER_per_IP": 0.41212,
"H_per_IP": 0.81212,
"BB_per_IP": 0.25455,
"SO_per_IP": 1.06667,
"HR_per_IP": 0.15758
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.864,
"predicted_H": 5.277,
"predicted_BB": 1.921,
"predicted_SO": 6.037,
"predicted_HR": 1.175,
"predicted_ERA": 4.714,
"predicted_WHIP": 1.3162
}
},
"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.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.864,
"final": 2.9203,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.277,
"final": 4.7483,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.921,
"final": 2.3677,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.037,
"final": 5.6077,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.175,
"final": 0.6885,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.714,
"final": 4.714,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3162,
"final": 1.3162,
"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.2,
"ER": 30,
"H": 54,
"BB": 20,
"SO": 62,
"HR": 12,
"ERA": 4.682080924855492,
"WHIP": 1.2832369942196533,
"K9": 9.676300578034683,
"HR9": 1.8728323699421967,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 1.0292091011170768,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669302",
"player_name": "Logan Gilbert",
"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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"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": 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.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": 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.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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.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": 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.2,
"after": 5.2,
"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": 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.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": 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.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": 146,
"wins": 68,
"losses": 78,
"win_pct": 0.4658,
"runs_scored": 577.0,
"runs_allowed": 652.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5137,
"avg_runs_scored": 3.9521,
"avg_runs_allowed": 4.4658,
"offense_index": 0.8783,
"defense_index": 1.0076,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.7,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.1269
},
"opponent": {
"team": "TEX",
"games": 146,
"wins": 72,
"losses": 74,
"win_pct": 0.4932,
"runs_scored": 607.0,
"runs_allowed": 647.0,
"run_differential": -40.0,
"run_differential_per_game": -0.274,
"avg_runs_scored": 4.1575,
"avg_runs_allowed": 4.4315,
"offense_index": 0.9239,
"defense_index": 1.0154,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 4.6,
"run_differential": 14.0
},
"available": true,
"quality_score": -0.0043
},
"edges": {
"quality_edge": -0.1226,
"offense_edge": -0.1217,
"opponent_offense_edge": -0.0761,
"defense_strength": 0.0076,
"opponent_defense_weakness": -0.0154,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9984,
"run_prevention": 0.9932,
"strikeout": 1.0024
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669302",
"profile": {
"available": true,
"pitcher_id": "669302",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 590.0,
"k_percent": 26.6,
"bb_percent": 6.4,
"woba": 0.297,
"xwoba": 0.299,
"sweet_spot_percent": 37.2,
"barrel_batted_rate": 10.3,
"hard_hit_percent": 41.6,
"avg_best_speed": 79.1322,
"avg_hyper_speed": 94.4467,
"whiff_percent": 29.7,
"swing_percent": 50.2
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.317,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5981,
"avg_hyper_speed": 93.9191,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0128,
"command_and_miss": 0.6707,
"regression_edge": -0.0571,
"xwoba_edge": 0.3429,
"barrel_edge": -0.7111,
"hard_hit_edge": -0.5286,
"whiff_edge": 0.6714,
"bb_edge": 0.7,
"pitch_design_score": -0.0181
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669302",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 89.55212588420072,
"release_spin_rate": 1933.4323936506946,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 89.55212588420072,
"release_spin_rate": 1933.4323936506946,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5521,
"release_spin_rate": 1933.4324,
"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.0181,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1292,
"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.1601,
"sample_weight": 1.0,
"run_prevention_factor": 0.9864,
"strikeout_factor": 1.0531,
"walk_factor": 0.944,
"homer_factor": 1.0677,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669302",
"espn_id": 41221,
"player_name": "Logan Gilbert",
"team": "SEA",
"role": "pitcher",
"espn_rank": 40,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 40,
"gp_value": 28.0,
"gp_rank": 261,
"gs_value": 28.0,
"gs_rank": 24,
"qs_value": 12.0,
"qs_rank": 33,
"era_value": 3.709,
"era_rank": 25.0,
"w_value": 11.0,
"w_rank": 22,
"l_value": 9.0,
"l_rank": 31,
"sv_value": 0.0,
"sv_rank": 249,
"hld_value": 0.0,
"hld_rank": 351,
"ip_value": 165.0,
"ip_rank": 16,
"h_value": 134.0,
"h_rank": 50,
"er_value": 68.0,
"er_rank": 39,
"hr_value": 26.0,
"hr_rank": 12,
"bb_value": 42.0,
"bb_rank": 72,
"k_value": 176.0,
"k_rank": 13,
"k_per_9_value": 9.599999,
"k_per_9_rank": 21,
"whip_value": 1.0666,
"whip_rank": 11.0,
"war_value": 2.85,
"war_rank": 26.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9864,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9864,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.944,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0677,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0531,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 107,
"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/20260910_TEX@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |